The Asset ID is unique identifier for an Asset in the MOI Protocol. It is typically represented as a hexadecimal string and encodes within itself key properties of the Asset along with the address on which it is deployed. It is important to note that the address of the Asset is not the same as the Asset ID but it can be retrieved from it.
The Asset ID Standard allows for internal versioning and any Asset ID decoder must decode the encoded asset properties depending on the schema defined for that version. The first four bits of the Asset ID are reserved to encode this version and hence the Asset ID standard as a whole supports extensibility upto 16 versions.
<aside> ⚠️ NOTE: This page only details the structure of parameter encoding for Asset ID versions. For information about the parameters and what they represent, refer to Assets
</aside>
The V0 Schema for the Asset ID is the current actively generated version (Babylon TestNet). It encodes parameters like dimension and standard of an asset along with flags for indicating if it is logical and stateful. The total length of V0 Asset ID is 36 bytes [288 bits]
The following image illustrates the internal structure of a V0 Asset ID
<aside>
<img src="/icons/currency-coin_gray.svg" alt="/icons/currency-coin_gray.svg" width="40px" /> 0x00000000b8fe9f7f6255a6fa08f668ab632a8d081ad87983c77cd274e48ce450f0b349fd
</aside>
In the above Asset ID, the first 8 hex characters represent the first 4 bytes containing the version, flags, dimension and standard of the Asset. The last 32 bytes represents the address of the account on which the Asset is registered [0xb8f...9fd
].
The first 4 bytes [0x00000000
] indicate that this Asset is represented by v0 Asset ID. It is neither logical nor stateful with a dimension of 0 and asset standard of 0 [MAS000].
Yes, it is technically possible for the same Asset to have multiple Asset IDs. However all of these Asset IDs would share the same address and would be of different Asset ID versions. This may occur when an Asset ID is upgraded to a new representation.
The ability to alias an Asset ID with a simple mnemonic, symbol or ticker such as MOI
or BTC
is not supported natively and must be handled at the application layer. At the protocol level, it is possible for multiple unique assets to share the same symbol in an exchnage application.