New York City, 2020, Feb 14
Following months of design and development by the broader community, Cryptonomic is making asset tokenization available presently on the Tezos chain. The Typescript library, ConseilJS, provides trustless blockchain interaction and enables programmatic token interaction with a developer-friendly syntax (no more fiddling with command line tools!). Taking the reference implementation of the FA1.2 token contract outlined in the TZIP-7 proposal, originally written with Morley, the library provides for deployment of new tokens and interactions with existing fungible assets already on the chain. Additionally, ConseilJS makes it easy to create wrappers for custom token assets. Starting with a pre-defined, FA1.2-compatible contract in SmartPy or Ligo shortens the time-to-market for bringing new financial instruments to blockchain reality.
Issuing a token on the Tezos blockchain is as straightforward as deploying the contract.
Tzip7ReferenceTokenHelper.deployContract() comes with several defaults asking for just basic transaction parameters and the address of the token administrator.
By default, MorleyTokenHelper originates the token in paused state. This gives the administrator time to prepare the correct set of initial balances before allowing token activity to commence. activateLedger()
The administrator account has certain privileges over the contract. In addition to controlling the liveness state, it is also responsible for the creation and destruction of token balances. Balance creation can happen in several ways. For tokens with a pre-set supply, like those backed by some balance in an underlying asset, mint()ing the token total supply upfront to the administrator account is a good approach. For tokens controlled by external forces, like cross-chain swaps, creating or destroying supply would happen in reaction to that external input — the changing balance of the asset on a different chain. The target of this supply change would be the account responsible for the change on the other side. In this case leaving initial supply at 0 is normal.
The Reference token does not provide for market or settlement mechanisms, as such this activity is expected to take place externally. There is of course a method to reassign balances between accounts.
The Morley token includes some future-proofing in the form of token allowances. This method could allow smart contracts like DEXes to withdraw token balances in the process of trade settlement.
Cryptonomic has a host of products built around Conseil and ConseilJS. Support for tokens is coming to the Tezori project and the Galleon wallet in short order. The consumer-oriented Mininax explorer will start listing token balances for some accounts in the coming weeks. Finally, Arronax will gain reporting and analytics functionality over token balances and transactions as the underlying Conseil indexer is able to deliver them. We look forward to this new era of financial decentralization benefiting all chain participants, but especially those who have previously been unable to deploy complex, leveraged financial instruments on Tezos.
Check out this fully functional code sample for token deployment and interaction.