Launch Compliant Security Token Offerings (STO) in Three Steps using Ignis
The blockchain market is slowly moving towards security tokens instead of utility tokens. This controversial fact will force most blockchain technologies to be adapted to be compliant with the relevant regulations.
Furthermore, in order to attract VCs and private investors for crowdfunding, companies that were considering ICOs in 2017 are turning to the Security Token Offering model, known as STOs.
The Ardor multi chain platform has been ready for security tokens since its inception in January 2018 due to having built-in KYC and AML features on-blockchain thanks to the Ignis child chain. In this article we will explain how to launch your STO on Ignis. It is assumed that you already have your paperwork in order.
What does an STO need in terms of technology? It basically needs a solution to comply with the registered jurisdiction, transparency and a process to deny or accept users to be eligible to buy and trade the security token. Either an equity token, reserve asset or debt token can be launched with the following instructions (no coding needed). The steps are:
- Issue an Asset with the Ignis child chain
- Configure Asset control with by-property phasing
- Set up Account properties of your clients that passed the KYC / AML
Software Requirements: Ardor Client wallet
In the event you are not familiar with the platform, follow the instructions in Getting Started for installing the client, creating an account, and getting your first ARDR and IGNIS tokens. Take a moment to get familiar with the Ardor wallet using the Basic Tutorials.
Issue an Asset
Click on "Issue Asset" on the Ignis chain:
Then specify the number of tokens and issue the transaction. Note this article follows the process for creating fungible tokens; however, Ignis also offers the ability to launch nonfungible tokens in 3 simple steps. In this example we will create 500.000 tokens of an asset called 'CompanySTO':
Your asset will become available. Your account will own all the tokens and they will almost be ready for distribution.
Prior to beginning to offer your asset, it is a must to implement a whitelist process for enabling accounts to buy and trade your token. Many regulators will require from time to time to review all the transactions done by your token holders, and these token holders must be identified when dealing with securities.
Configure Asset control
Asset control is the feature that will enable your token to be traded according to the rules required. Ardor allows this requirement to be implemented on-blockchain using Ignis. So the operational process is as follows:
- On-blockchain asset control implementation
- KYC and AML from your clients - there are many service providers that can take care of this process or you can implement your own. Client information should be recorded off-blockchain in a centralised database for data protection regulation. The link between the Ardor account and this centralised entry normally is configured as a pointer.
- Map your users with their Ardor accounts and tag these accounts as valid.
Let's configure Asset control to our recently created asset with the id 5692806492937393454 named CompanySTO (Note: the asset id is unique within Ardor while the name can be repeated, hence always refer to the asset id).
First, create an Approval Model for the by-property phasing. Click on "Approval Models" under "Dashboard", and then click on "Add Approval Model", a pop-up will appear:
In this case, the Sender and Recipient property setter is the master account we used for the asset issuance. This account is the one responsible for tagging the accounts as valid.
This approval model is using the phasing by-property.
Once the approval model is created, click on "Setup Asset Control":
A pop-up appears with the following entries:
Select from the previously created approval model "sKYC" and complete all fields to submit the transaction.
At this point, your STO is ready to be launched in the Ignis chain since you already have control over the accounts that are approved or not.
In order to submit a "Sell order" transaction for receiving Ignis, you have to perform the following:
Click on Assets, Asset Exchange and then fill the Sell order. Note that you have to submit the transaction from the Asset issuer account and it must have the property isApproved set up to true prior to submit the transaction:
Then, click on Sell (CompanySTO -> IGNIS) and a pop-up will appear:
Fill all the values accordingly as shown above and submit the transaction. After a few seconds the sell order will be available as shown in the following figure:
Now, the offer for buying your tokens is ready but no one is able to buy them until you configure the Account Properties using the Ignis chain.
Let's suppose that you want to receive EUR currency for your asset. Ardor has the advantage of interoperability, which makes it possible to issue a "sell order" of your token using the AEUR chain. As mentioned earlier, the asset issuer account must have the property isApproved set up to "true" prior to submitting the transaction. Switch to the AEUR chain and select the asset exchange to submit a new sell order transaction:
So, your second sell order is set up as you can see in the following figure. Again, as Asset control is configured, nobody is able to buy your asset with AEUR until their account is identified and tagged with an account property:
Set up account properties to the approved KYC Account
The final step is setting up the Account Property specified from the approval models to the potential buyers that passed the KYC and AML process.
In order to perform such an operation, use the asset issuer account, select the Ignis chain (this feature is only available in the Ignis chain) and click on "Account Properties" under the Dashboard section. Then, click on "Set" and the following pop-up appears:
Where Recipient is the account that you already have identified and passed the KYC and AML process. Property is "isApproved" and Value is "true", as shown in the figure above for the account ARDOR-GHKP-XWB5-XMZB-CTUE3
Setting up this property you allow the account to buy your asset and trade it with other accounts that are also identified.
In case an account or user goes rogue, you can disable the account to perform any operation related with your asset, just update or delete the property.
Buying STO from the approved account
One the account has the property already set up, it is free to buy tokens from your STO and trade them with other approved accounts.
First, let's see the account property already set up:
Where the approved account ARDOR-GHKP-XWB5-XMZB-CTUE3 has the property isApproved set to value true from the asset issuer account ARDOR-X8ZN-WUJ2-SXY3-FBUYC
Clicking on the asset exchange, the mentioned account ARDOR-GHKP-XWB5-XMZB-CTUE3 is free to buy these tokens as shown in the following figure:
Click on "Buy Ignis -> CompanySTO" and a pop-up will appear. Note that the message Asset Control is enabled for this transaction. Please set Finish Height, meaning that as we have already configured Asset Control we must execute a phased transaction with the approval model configure:
Then we click on Advanced, and we set up the Phasing Approval Model to be sKYC approval model configured on this part of the tutorial
Once the transaction is submitted, after few seconds the asset tokens will appear under My Assets of the buyer account.
One the advantages of publishing your STO under the Ardor umbrella is the possibility of paying dividends to all your token holders with one single transaction.
In order to do that, from the asset issuer account click on Assets, Asset Exchange and the Dividends Payment link as shown in the following figure:
A pop-up will appear for the "Pay Dividends" transaction. Filling all the values as shown in the next figure will make a total of 300 IGNIS to be distributed among 1 account that owns a total of 25 of our STO tokens or shares:
In this case it was chosen as "Holding Type" of IGNIS. However it is possible to pay in any other token within the Ardor platform.
- Once you have your asset and paperwork ready, it takes 30 minutes to configure it all.
- The process for linking the real user to on-blockchain data can be automated using the lightweight contracts feature.
- The rich Ardor API allows it to integrate with the functionality of your own, existing front-end. It also provides the functionality to extract all the data related to your asset transactions, buyers, and operations in the simplest way possible.
- The zero fees feature allows you to use "bundlers" to sponsor the transactions of your STO buyers if needed. It makes a seamless experience for them with no need to directly interact with the blockchain.
- No developing is needed for a basic STO as shown in this article.
- A dividends payment can be performed with one single transaction to all the STO holders