STO
How to Distribute your Security Token
Last updated
Was this helpful?
How to Distribute your Security Token
Last updated
Was this helpful?
After this tutorial, you'll be able to raise funds via a "Tiered Security Token Offering" or TieredSTO in short. The STO allows investors to participate in one or more tiers of investments, each with its predetermined price, volume, and discounts.
Similar to previous tutorials, load any existing STOs that might be associated with the security token:
Load STOs using token.issuance.offerings.getStos()
, which is wrapped in an asyncAction that updates the UI accordingly.
There are many parameters required to launch an STO. Some are self-explanatory, such as startDate
and endDate
.
nonAccreditedInvestmentLimit
is the limit of tokens that non-accredited investors can buy. Investors are non-accredited by default. You can change their accredited status as follows:token.tokenholders.modifyData({tokenholders: [{address, isAccredited: true}]}).
raisedFundsWallet
is the wallet to receive raised funds. In the example above, we set it to the user's address.
allowPreIssuance
means that new tokens will be minted as soon as the STO is launched. In that case, any unsold tokens after the STO ends will be transferred to the address specified with the unsoldTokensWallet
parameter. If allowPreIssuance
is set to false
, then tokens will be issued on purchase instead.
tiers[]
is a list of STO tiers. Each one declares that amount of tokens sold, their price, and whether there are discounted tokens.
In case you need to denominate investments in a non-USD Stable Coin (e.g., a Stable Coin for CAD), you need to pass two additional parameters to launchTieredSto
, as well as adding Stable Coins to the supported currencies:
currencies
allows you to specify the asset that will be raised, such as ETH or Stablecoins.
Changing the currency you want to price your raise in is done via currencySymbol
.
The protocol converts the specified price to ETH (or the chosen currency for the raise) via price oracles. You must specify the oracle address (e.g., ethOracleAddress
above). You can find a list of oracle addresses on .