Introduction
About STO
STO stands for Security Token Offering, a fundraising method that involves issuing tokens representing ownership of a real-world asset or security. Polymesh is a blockchain network that is designed specifically for security tokens, with a focus on compliance, governance, and regulatory requirements.
The tokens in an STO are intended to be compliant with KYC/AML requirements, and securities laws in the jurisdictions they touch.
Learn more about creating and trading security tokens here.
STO on Polymesh
Once a token is created you are able to take that and create an STO to raise funds by exchanging your token for a stablecoin or other asset.
It's important to note that the specific steps and requirements for launching an STO on Polymesh may vary depending on your specific needs and the legal and regulatory requirements in your jurisdiction. Selling security tokens results in the application of an extensive set of laws, regulations, and potential liabilities. It's always advisable to consult with legal and financial experts to ensure that you comply with all applicable laws and regulations before you proceed with your STO.
Polymesh does not provide any advice or assurance your security tokens comply with applicable laws and regulations.
There are two methods to create an STO. This guide will cover both.
1) Create an STO with Token Studio
2) Create an STO with the Polymesh App
If you would like to invest in an STO, please follow this guide.
Create an STO on the Polymath Token Studio
- Open the Polymath Token Studio.
- Look for the card of your token, then click on "Manage token".
- Click on the "STOs" tab.
Alternatively, you can reach it via this URL: https://tokenstudio.polymath.network/token/YOURTICKER/stos (replace YOURTICKER with your actual token ticker). - Click on "Create an STO".
- A popup window will appear. Fill in the details about your offering as appropriate. Note that all details entered will be visible to prospective token holders.
- STO Name: Give your STO a name. This name will be visible to your investors.
- Funding period: Set the funding period for your STO.
- Receiver of funds: Enter the receiver of funds for the STO. It must be a verified Polymesh account that begins with 0x. You can add your own Polymesh Account as a receiver.
- Funding Asset: Enter the funding asset for your STO. On Polymesh Mainnet, the Funding token can be USDS (Stably's USD stablecoin on Polymesh) or a specific asset issued by the fundraiser.
For a video guide on how to buy Polymesh USDS with Stably Ramp, please visit this video. - Token price: Enter a price for your token.
- Tokens for sale: Enter the number of tokens you would like to sell.
- Minimum investment amount per investor (optional): You can specify the minimum investment amount needed to invest per investor.
- Once all data are filled, click on "Save".
- A popup window will appear. Review the details then click on "Confirm".
- Sign the transaction with your wallet.
Extend, Pause, or Cancel an STO with the Polymath Token Studio
Once your STO has been created, you can click on the "Details" button to see more details about your STO.
Create an STO on Polymesh Testnet
It is recommended to test the process of creating an STO without any real-world assets.
On Polymesh Testnet, you will need to follow a similar process as described above for Polymesh Mainnet, with a couple of differences:
- You will need to have two separate verified accounts, one for the issuer and one for the investor.
- You will need to create a separate funding asset to fund your STO
- The investor account needs to have enough of this funding asset to be able to invest in the STO
You can create an STO either on the Token Studio or the Polymesh App on Testnet.
In order to onboard to Polymesh Testnet, please follow this guide.
Create an STO with the Polymesh App
Create a Venue
Before proceeding to the STO creation, a venue must be created. Venues are logical groups of instructions and settlements. All settlement instructions are created within a venue in Polymesh.
Each user would only need to create one venue that they can reuse.
Follow the steps below to create a venue:
- Go to the Polymesh App.
- For the account at the top, select your Polymesh account.
- For the extrinsic, select "settlement" then "createVenue(details, signers, type)".
- Enter a name/description for the venue in the details field in text format. In this example, we are using "test":
Click here to see this image at full resolution. - AccountId32: Choose the account you want to sign this transaction. This will likely be the same account you've chosen in step 2.
- Type: Leave it as "Other". It should look as per the screenshot below:
Click here to see this image at full resolution. - Once all data are filled, click on "Submit Transaction" at the right-left of the page:
- Another popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
- Successful transactions are reflected with a green checkmark at the top right of the page:
Retrieve the VenueID
- Open the Polymesh Block Explorer
- Copy the key from your wallet (which starts with 2), then do a search in Subscan for it:
Click here to see this image at full resolution.
The screenshot is on Testnet where addresses start with 5. On Mainnet, addresses begin with 2. - On the account page, scroll down to the Extrinsics, where you will see the venue you've just created with the action named "settlement (create_venue)". Click on the Extrinsic ID:
Click here to see this image at full resolution. - You will be directed to the details of the extrinsic. Scroll down to the Events at the bottom to the action named "settlement (VenueCreated)".
- Click on the triangle on the right-hand side to expand it:
Click here to see this image at full resolution. - You will see the VenueId, in this example, it's 1252. Note this down as you will need it at the next step.
Create your STO with the Polymesh app
1. Open the Polymesh app.
2. Select the key you want to sign the transaction.
3. For the extrinsic, Select "sto" then "createFundraiser", and fill in the values as per below:
Click here to see this image at full resolution.
- offeringPortfolio: This is the portfolio that contains the offering asset.
- did: Enter the DID (which begins with 0x) which holds the offering asset. Typically this is the portfolio of the Fundraiser.
- kind: This is the portfolio that holds the offering asset. Keep it as "Default" if this is your default portfolio (named "Unassigned" on the Polymesh Dashboard). If it is one of your named/user portfolios, enter the number of it.
Note: The first portfolio you create on the Polymesh Dashboard has the number 1 and it increments by 1 for any new portfolio you create.
- offeringAsset: This is the asset that is being offered in the STO. Enter the asset ticker in HEX format.
Click here to see this image at full resolution. - raisingPortfolio: This is the portfolio that contains the raising asset/stablecoin which will fund the STO.
- did: Enter the DID (which begins with 0x) which holds the raising asset. Typically this is the portfolio of the Fundraiser.
- kind: This is the portfolio that holds the funding/raising asset. Keep it as "Default" if this is your default portfolio (named "Unassigned" on the Polymesh Dashboard).
- raisingAsset: This is the raising asset/stablecoin that is going to be exchanged for the offering asset on investment. On Polymesh Mainnet, the Funding token can be USDS (Stably's USD stablecoin on Polymesh) or a specific asset issued by the fundraiser.
For a video guide on how to buy Polymesh USDS with Stably Ramp, please visit this video.
Click here to see this image at full resolution. - tiers: The STO module allows investors to participate in one or more tiers of investments, each with its predetermined volume and price. Each one declares the number of tokens sold and their price.
- PalletStoPriceTier: These are the price tiers to charge investors for investment. If you don't want to raise a tiered STO then click on "Remove item" to remove this field. Otherwise, fill in the details as per the below:
- total: Enter the total amount of the asset you want to raise in your STO
- price: Enter a price for your asset that an investor needs to spend for this tier
Note that you can add more tiers to your STO by clicking on "Add item"
- venue_id: this is the Venue ID of the settlement. Enter the VenueID you gathered in the previous step:
Click here to see this image at full resolution. - start: This is the STO start time. If you don't enable it with the "include option" then the STO will start immediately. If you would like to start your STO at a specific time, enter the start date and time in Unix timestamp format. You can use a converter like this one.
- end: This is the STO end time. If you don't enable it with the "include option" then the STO will never expire. If you would like to end your STO at a specific time, enter the start date and time in Unix timestamp format. You can use a converter like this one.
Click here to see this image at full resolution. - minimum_investment: This is the minimum amount of your token (raising_asset) that an investor needs to spend to invest in this STO.
- fundraiser_name: This is the name or the Fundraiser/STO. It is only used in user interfaces like Token Studio. This can be your company's name or any name you like.
Click here to see this image at full resolution.
4. Once all data are filled, click on "Submit Transaction" at the right corner of the page:
5. A popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
6. A successful transaction is reflected with a green checkmark at the top right of the page:
Pause an STO with the Polymesh App
1. Open the Polymesh app
2. Select the key you want to sign the transaction.
3. For the extrinsic, select sto > "freezeFundraiser(offeringAsset, id)", then fill in the values as per below:
Click here to see this image at full resolution.
- offeringAsset: This is the asset to freeze/pause. Enter the offering asset name in HEX format:
Click here to see this image at full resolution.
Note: Use a HEX converter like this one. For the Output delimiter string, select "None".Example: The offering asset name is "testtoken", which is "4D79207465737420746F6B656E" in HEX.
This HEX value should be padded with zeros to be 12 bytes like "74657374746F6B656E00000" with a 0x prefix, so the value you should enter is "0x74657374746F6B656E00000".Fill up the offering asset field with zeros until the below message in red disappears: - id: This is the ID of the fundraiser to freeze. If this is the first STO you created, the Fundraiser ID is 0, then it increments by 1 with any new STO you create.
Click here to see this image at full resolution.
4. Once all data are filled, click on "Submit Transaction" at the right corner of the page:
5. A popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
6. A successful transaction is reflected with a green checkmark at the top right of the page:
Continue a paused STO with the Polymesh App
1. Open the Polymesh app
2. Select the key you want to sign the transaction.
3. For the extrinsic, select sto > "unfreezeFundraiser(offeringAsset, id)", then fill in the values as per below:
Click here to see this image at full resolution.
- offering_asset: This is the asset of the STO to freeze. Enter the offering asset name in HEX format:
- id: ID of the fundraiser to freeze. If this is the first STO you have created, the Fundraiser ID is 0, then it increments by 1 with any new STO.
Click here to see this image at full resolution.
4. Once all data are filled, click on "Submit Transaction" at the right corner of the page:
5. A popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
6. A successful transaction is reflected with a green checkmark at the top right of the page:
Extend an STO with the Polymesh App
1. Open the Polymesh app
2. Select the key you want to sign the transaction.
3. For the extrinsic, select sto > "modifyFundraiserWindow(offeringAsset, id, start, end)", then fill in the values as per below:
Click here to see this image at full resolution.
- offering_asset: This is the asset of the STO to modify. Enter the offering asset name in HEX format:
- id: This is the ID of the fundraiser to modify. If this is the first STO you have created, the Fundraiser ID is 0, then it increments by 1 with any new STO.
- start: This is the new start time of the STO. Enter the start date and time in Unix timestamp format. You can use a converter like this one.
- end: This is the new end time of the STO. enter the end date and time in Unix timestamp format. You can use a converter like this one.
Click here to see this image at full resolution.
4. Once all data are filled, click on "Submit Transaction" at the right corner of the page:
5. A popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
6. A successful transaction is reflected with a green checkmark at the top right of the page:
Cancel an STO with the Polymesh App
1. Open the Polymesh app
2. Select the key you want to sign the transaction.
3. For the extrinsic, select sto > "stop(offeringAsset, id)", then fill in the values as per below:
Click here to see this image at full resolution.
- offering_asset: This is the asset of the STO to stop.
- id: ID of the fundraiser to stop.
4. Once all data are filled, click on "Submit Transaction" at the right corner of the page:
5. A popup window will appear, click on "Sign and Submit" and then sign the transaction with your wallet.
6. A successful transaction is reflected with a green checkmark at the top right of the page:
If you have any questions or issues, feel free to open a conversation with our support team through the Polymesh Community page.
Comments
0 comments
Please sign in to leave a comment.