Issue Tokens
Learn how to create and deploy your ERC-3643
Tokenise your asset
One of the core feature of the Assets API is to allow you to deploy an ERC-3643 representing your asset onchain. In this part, we're going to explain how to create a new ERC-3643 or to import one that you deployed on your own.
Create a new token
If you haven't already deployed your token, you can use T-REX Engine's Factory to easily make the deployment. The next parts are going to breakdown the needed steps to make your token functional. Only the 2 first ones are mandatory, the others are optional and can be set after the token deployment.
Note: You can choose to do all the steps before deployment or just make the mandatory ones and make the others later. Please note that in the second case you might have higher transaction cost and that some information cannot be changed after first deployment (token name, symbol, number of decimals and network).
Token details - Mandatory for deployment
The first step is to define the basic details of the token:
- Name: The name of your token, which will be displayed publicly on the blockchain
- Symbol: The symbol of your token. For example, the symbol for Ether token is ETH.
- Decimals: The number of decimals for the token. For example, ETH has 18 decimals.
- Network: The network on which the token will be deployed. T-REX Engine currently supports the following networks:
- Ethereum
- Polygon
- Avalanche
- Telos
- Klaytn
- Token logo: The logo representing your token.
- Instrument type: The type of instrument. You can set one of the following value:
- Fund
- Equity
- Debt
- Commodity
- Stable coin
- Other
- Base currency: The currency of the underlying instrument.
Token ownership - Mandatory for deployment
When an ERC3643 is deployed through, an owner wallet is required. It is the key that will let you control who can manage the token for you. Consider this as the Master Key to your ERC-3643: it is absolutely mandatory that this key is secured. The owner wallet cannot be restored nor forced.
Identity eligibility - Optional for deployment
In order for an identity to be eligible for an ERC-3643, it needs to have the following criterias met:
- Having an ONCHAINID
- Holding the required claim, as defined on the ERC-3643, on said ONCHAINID
- The required claim should be emitted by a trusted claim issuer
In this step, the goal is to set up the required claim and the truster claim issuer.
Note: If you perform this action on an already deployed token, a blockchain transaction requires to be signed.
Compliance rules - Optional for deployment
The compliance rules for an ERC-3643 can be divided into 4 categories, allowing you to fine tune the trading rules of your asset.
All rules are executed onchain, through the compliance smart contract, for each movement where tokens are received on a wallet.
Jurisdictions
In this step, you can define the countries you want to authorise or deny from your token sale. This function will check the country of residence from the ONCHAINID of the investor to approve or reject the compliance of the trade.
Supply
In this step, you can define the supply limits as following:
- Total supply: maximal circulating supply that the token can exist
- Investor balance limit: maximal supply a single investor can have on the wallets linked to their ONCHAINID
All those rules can be activated or deactivated during the lifecycle of the token.
Transfer
As described above, ERC-3643 supports 3 types of transfers:
- Simple transfer: allow an authorised investor to send tokens to another authorised investor.
- Conditional transfer: approval(s) is(are) required for the transfer to be executed.
- Transfer whitelisting: only a subset of whitelisted addresses are allowed to perform transfers.
Note: Transfer whitelisting and Conditional transfer are mutually exclusive. You can only activate one or the other on the same ERC-3643.
On those type of transfers, you can also define:
- Transfer limits over a given period of time
- Transfer fees to be taken on each transfer
Simple transfer is the default method used when the token is deployed.
Set up the type of transfer
Reminder: Conditional transfer and Transfer whitelisting are mutually exclusive.
Conditional transfer
Conditional transfers allows you to put transfers initiated by an investor on hold until up to 5 validators approved the transfer.
Validators are defined by their wallet. The validation is expected onchain, enforcing that all the transfers initiated on the token are respecting this rule, whether they are created through the T-REX Engine or on the blockchain directly.
Transfer whitelisting
Transfer whitelisting allows you to restrict the investors to initiate transfers. This restriction is based upon investor ONCHAINID, to ensure that even if several wallets are used, the whitelisting will be respected. The checks are executed onchain, enforcing that all the transfers initiated on the token are respecting this rule, whether they are created through the T-REX Engine or on the blockchain directly.
Update the transfer limits
On top of the type of transfer to be used by the ERC-3643, you can also define a limit of transfer per identity for a given period of time. You can define limits per day, per week or to a given custom period of time. As for supply limit, the limits apply to the whole ONCHAINID of an investor, across all their wallets.
Set up the transfer fees
For each transfer, you can also decide to take a percentage of the transfer as fees, through a stablecoin of your choice. You need to set up:
- The address of the wallet receiving the fees
- The percentage of the fees
- The address of the stablecoin used to take the fees.
Custom
You can also develop your own compliance rules and add it to the ERC3643 through the T-REX Engine API.
Import an existing ERC-3643 deployed outside of Tokeny
As ERC3643 is an open-source standard, it would be possible that you have deployed an ERC-3643 previously to the creation of your T-REX Engine access. You can import this ERC-3643 directly into the T-REX Engine to use Tokeny's expertise in managing the whole lifecycle of the token.
Note: This feature requires the signature of a blockchain transaction with the owner wallet defined on the ERC-3643.
Note: This feature only works with a compatible ERC3643 token. If you tokenised using another standard, please reach out to our sales team to discuss your available options.
Updated about 1 month ago