Waves Namespace - Assets

Author Maxim Smolyakov, Yury Sidorov
Discussions-To https://github.com/ChainAgnostic/namespaces/pull/49
Status Draft
Type Standard
Created 2023-01-19
Requires CAIP-2, CAIP-19

Rationale

Any account can issue its own token. The new token is immediately available.

The ID format for fungible (ERC20-equivalent) and non-fungible (ERC-721 equivalent) tokens is the same. The process for issuance of either is also the same. The only difference is that NFTs must have specific values for certain properties.

Specification of Asset ID

Asset ID is a 32 byte array encoded as a Base58btc-encoded string. When issued directly, it is equal to the ID of the transaction that issued this asset; when the token is issued using via a smart contract call, the asset will instead be addressed by a Blake2b-256 hash of the transaction and parameters passed in the call. This is true for both fungible and non-fungible tokens, which are distinguished instead by their token metadata which can be retrieved or verified by an RPC call from a node (see token reference).

Syntax

The syntax of Waves Asset ID:

address:    namespace + ":" chainId + ":" + reference
namespace:  waves
chain ID:   [-128..127] value packed to 3 characters with leading zeros
reference:  Waves Asset ID represented as [Base58btc][]-encoded string

Examples

# Waves Mainnet (87)
waves:087:DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p

# Waves Testnet (84)
waves:084:2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ

# Waves custom network (-7)
waves:-07:2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ

Copyright and related rights waived via CC0.

Citation

Please cite this document as:

Maxim Smolyakov, Yury Sidorov, "namespaces/waves-caip19: Waves Namespace - Assets [DRAFT]," Chain Agnostic Namespaces, waves-caip19, January 2023 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/waves-caip19.md