Thursday, 4 April 2019

Security Token Offering

Concept

Security tokens are cryptographic blockchain based tokens that represent financial assets such as bonds, notes, debentures, shares, options, and private equities; as well as tokenised real assets.

It allows fractional ownership of assets. It meets regulation scrutiny.

Companies use STO to raise money from investors. STO investors are promised gains in the form of dividends, rewards (interest rates), or increase in the value of the company.


STO standards

-  ST-20, from Polymath, basically is ERC20 with whitelist investor
-  ERC1400, draft standard, tranches of security (different filings of same
underlying security, Reg D for U.S. investors and Reg S for foreigners), ERC
20 compatible, incorporates ERC1410
-  ERC1410, partially fungible token (organise tokens into set of partitions)
-  ERC1404, draft standard, with transfer restrictions, ERC20 compatible
-  R-Token, from Harbor, ERC20 with additional compliance checking

ERC1400
-  Transfer of tokens can be reversed
-  Token balance includes metadata - shareholder rights , other restrictions
-  Token separated into tranches
-  Standard UI to query transfer
-  Standard event for redemption and issuance
-  ST-20 results in ERC1400

ERC1404
-  Maintain a whitelist of investor addresses
-  Enforce complex restrictions
-  Support branded standards, such as ST-20 and R-token

STO issuance platforms
- Polymath, with DAPP for STO token issuance, using Poly tokens
- Harbor, using R-tokens
- Securitize, using DS protocols, issues security tokens on XRP and Ethereum
- Swarm, using src20 protocol
- Securrency, using CAT-20 token, with KYC and AML engines, compatible
with any blockchain
- tZERO, using tZERO token

Polymath STO steps
- Register ticker symbol
- Deploy smart token contract
- Add investor to whitelist
- Mint tokens for shareholder
- Setup STO parameters - start date, end date, supply cap
- Starts STO - deploy STO contract
It has modular approach: STO module, Transfer Manager module, etc.
It uses smart contract method, such as verifyTransfer method in Transfer Manager module, to validate transfer.