Smart Assets released on TestNet
The Smart Account functionality facilitates asset freezing, whitelisting/blacklisting, taxation, multi-signature and controlling asset pairs.
Smart Assets allow Waves users to apply scripts to tokens in much the same way that they can already apply them to accounts. Whenever a transaction for the Smart Asset is created, it is validated by the script before being confirmed by the blockchain.
One of the key features of the Waves platform is easy token creation. Unlike Ethereum, tokens are not smart contracts. They are supported at the core level and require no programming experience to issue. Smart Asset functionality adds another layer of operations to Waves tokens, making them both enormously flexible and straightforward to use — a unique combination. While knowledge of the RIDE language is needed to set a script, RIDE has been specifically created for blockchain execution and is significantly simpler — and safer to use — than Ethereum’s Solidity. Its structure purposely avoids the ambiguities that have led to a number of high-profile exploits of Ethereum smart contracts.
Much of this Smart Asset functionality will already be familiar to the community through Waves Smart Accounts, though it is obviously applied in a different way — to a token, rather than to an account. The combination of Smart Assets and Smart Accounts is a powerful one, giving users a high degree of flexibility.
Scripts can be applied for:
- Asset freezing (locking a token and preventing its transfer until a certain block height is reached).
- Whitelisting/blacklisting, allowing or denying the transfer of tokens to certain addresses.
- ‘Taxation’. In this instance, the asset issuer receives a fee with every transaction, via Sponsorship in a special asset.
- Multi-sig (asset issuer has to co-sign every transaction).
- Controlling Asset Pairs (tokens can be exchanged only with specified currencies).
Just as tokens can be reissuable or non-reissuable, a script can permanently be applied to a token, or a script can be created that will later be updated using Set Script Transaction. In addition, Waves has a low and fixed fee for script execution, set at just 0.004 WAVES. (Transaction fees are added to this, where applicable.)
Potential use cases
There are many use cases for this functionality, and we expect them to be used by a wide range of businesses and individuals.
For example, we know that gaming is a huge use case for blockchain (Waves itself is launching a major initiative for the gaming industry). Game developers have shown particular interest in tokenisation for in-game economies. Using Smart Assets, it would be possible for a game developer to create an asset that can only be owned by a player with certain attributes — for example, a sword that could only be used when a certain skill level is reached. Trade of these items could also be restricted to the native in-game currency, to help mitigate the effects of the black economy around digital game tokens, and through use of whitelisting.
In other cases, regular token issuers will want to make use of Smart Asset functionality. It may be desirable to prevent the sale of a given token for a period of time while distribution takes place — whether that occurs through a token sale, leasing rewards or other means. When contractors are paid in tokens, it may be particularly important to create a vesting period or prevent transfer for a period of time using a multi-sig condition, to avoid early holders with no long-term interest in the project from cashing out large amounts.
Finally, the ‘taxation’ script offers initiatives a new kind of business model, which will be sustainable over the long term; once initial funds are spent, receipt of regular fees in proportion to token use will provide ongoing revenues to maintain and develop the platform further.
There will be many other use cases, limited only by the imagination of the community and its entrepreneurs, but even a brief overview suggests that this new functionality will provide some very promising possibilities.
You can find out more about Smart Assets at https://docs.wavesplatform.com/en/technical-details/smart-assets.html.