Solana Namespace - Asset
| Author | Qiao Liang |
|---|---|
| Status | Draft |
| Type | Standard |
| Created | 2022-06-01 |
| Updated | 2022-06-01 |
| Requires | CAIP-2, CAIP-10, CAIP-19, CAIP-30 |
CAIP-19
For context, see the CAIP-19 specification.
Rationale
On Solana, all contracts are stateless and state is instead represented using “accounts”. More specifically, all fungible and non-fungible tokens use the same instance of token contracts and for each token:
- 1 single global “mint” account instance is used for the global data like “total supply”.
- each token account represents an account balance belonging to a given address.
The only difference between fungible tokens and non-fungible tokens is that non-fungible token mints have a total supply of 1 and zero decimal place. Both asset type can be identified by their “mint” account.
Syntax
After the CAIP-2 (namespace+chainID), a slash defines an asset_namespace and an asset_reference. Since both fungible and non-fungible tokens can be identified using the mint account, we use token (fungible) and nft (non-fungible) as the asset namespaces and the address of the mint account as the reference in both.
| Reference | Equivalent to | See also |
|---|---|---|
| token | ERC20 Token | Metaplex Fungible |
| nft | ERC721 | Metaplex NonFungible |
Examples
# One Solana Mainnet NFT:Pesky Penguins #398
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:Fz6LxeUg5qjesYX3BdmtTwyyzBtMxk644XiTqU5W3w9w
# Solana Mainnet USDC
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Links
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Qiao Liang, "namespaces/solana-caip19: Solana Namespace - Asset [DRAFT]," Chain Agnostic Namespaces, solana-caip19, June 2022 / June 2022. [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/solana-caip19.md