DECENT User Issuable Assets
DECENT network has internal token - DCT - used for all trading, fees paying, seeder rewards etc. In addition, we implemented so called "Monitored assets", that are used to reflect current price of major fiat currencies. So at any time, you can check get_asset USD to check current exchange rate between DCT and USD. This would be useless by itself, what makes this feature interesting is the fact, that the authors can peg price of their content to one of these monitored assets, setting the price e.g. to 10 USD. At the time of buying, the system looks at the current exchange rate between USD and DCT, and the actual price in DCT has to be paid - what makes around 25 DCT right now.
However, based on feedback we got from our partners, there is demand for own tokens, issued by different stakeholders. For example, one studio can issue Centurycoins, denominate all its content in Centurycoins, and build separate application with separate business model based on these Centurycoins. So to make it work, it requires DECENT to support User Issued Assets, with specific properties.
First, the UIA requires a manager - someone taking responsibility for managing all aspects of the coin, from issuing to setting prices. The manager is assigned at UIA creation. At creation, certain parameters are specified, such as name of the asset, its symbol or precision. The manager then can issue new UIA tokens and assign it to any DECENT account, so sometimes he is called "the issuer". For example, Bob, the issuer, can create 100 new Centurycoins, and give it to Alice. These coins are then visible in Alice's wallet, and she can do whatever she like with it - what, at this point, means she can only send it to some other account. While issuing new tokens and transferring them from one account to another is certainly interesting, the power of UIA lies in possibility to use it in DECENT economics, i.e. in content trading. Someone, e.g. Cecil, can create new content and price it in Centurycoins, e.g. 10 Centurycoins. Alice can use their newly gained coins and buy content from Cecil. Would David want to buy Cecil's content, he needs to acquire some Centurycoins from Alice.
To make it possible for David to buy Cecil's content, Bob, the issuer, can allow direct exchange between Centurycoins and DCTs. Each UIA can have two pools - the core pool, that has to be filled with DCTs, and the asset pool, that has to be filled with UIA tokens, in our example with Centurycoins. In addition, the issuer has to set the exchange rate, e.g. one Centurycoin costs 2 DCTs.
Now, if the interoperability is enabled, the two funds are properly funded, and exchange rate is set, David can use its DCTs to buy Cecil's content. David has to pay 20 DCTs from his wallet for the content. These 20 DCTs are added to the Centurycoin's core pool. On the other hand, from the Centurycoin's asset pool, 10 Centurycoins are deducted and added to Cecil's balance as the payment for the content.
It works also the other way - Alice can use her Centurycoins to buy Eva's content price in DCTs or even USDs, as long as the two Centurycoins pools are properly funded. She can also pay network fees in Centurycoins, which are automatically converted to DCTs.
This way, we allow using UIAs as full substitute for DCTs in certain situations, allow building more or less closed communities on top of DECENT, and support innovation in finding new business models for anybody willing to try DECENT.