NFT or fungible, which way would you go to tokenise Bond?
In the Ethereum community, NFT is defined as tokens that can't be divided into equal parts. Since a bond can be split into equal parts, it's not NFT.
However, in my former life in the banking sector, the word "Token" was defined differently. All assets managed by the same smart contract rules are instances of one token. For example, Apple stock and Microsoft stock are both "NYSE Stock" tokens. Therefore you get a case that tokens are dividable but not fungible.
- If you own 100 shares of Apple, you can divide it into 100 equal parts
- Your Apple share is not fungible with your Microsoft stock. (They are the same type of token as they are managed by the same contract).
With the mounting critiques that "Weiwu likes to make things complicated", I will always post start from the simple one and lay out the problems.
There is a simple method to return you the current Ethereum world view that a token is either ERC20 or NFT, that is:
Let's define a smart contract for each Bond. Hence, each Bond is a fungible token and the non-fungible aspect of one bond versus another is solved by decentralised exchanges/markets.
The problems of that approach are:
One company can issue a bond with different parameters at different times, and indeed they often do and strategise the difference between short term and long term bonds. If every bond is a smart contract of its own, such a company would have to deploy 100+ smart contracts in a few years and upgrade them individually if there are problems. In reality, some of them will be upgraded and some will be left using old code. In the end, the difference between each bond will be not only of parameters but also of deployments, making it difficult to compare one with another, adding to market friction.
Similarly, the smart contract deployed by different companies will differ not only on parameters but also on deployments. Bond traders will need to evaluate not only the bond's maturity, grading, yield etc (the attributes) but also how secure is the deployment of that bond.
Ethereum community currently can use as much advice on how to implement bonds from bank implementations as banks can heed to the advice from public Ethereum pioneers - both are an empty set. Taking an evolutionist by-stander view, ultimately a version that works better than the current financial market, therefore amounts to "improvement" on reducing market friction and improving integration, would involve unified (or almost unified) smart contract handling multiple, individually different bonds each are dividable, and the fungible vs NFT world view will break eventually. But I may look far off the mark before that happens:)
To the point of TokenScript, which we are working on, it should work with bonds defined either as fungible or NFT or a mix. The artificial divide doesn't exist in TS - it doesn't exist for Smart Contracts either! No one stops you from creating a fungible NFT smart contract then to write a TS to go with it.