Reference > Standards > Metadata Standards > Metadata for Wallet Display — View on GitHub
Introduction
These metadata standards are intended to assist clients like the Radix Wallet, Radix Dashboard, exchanges, and more, to display useful information about the assets a user holds, and the on-ledger things a user interacts with, like dApps, components, and blueprints.
Developers can feel free to add and use whatever metadata they like, but these standards are recommended as a “least common denominator” standard for the basic attributes that the Radix Wallet and any other client would expect to be present in a standard way.
In short, if you set these things on the things you create, you can be sure of having clear and excellent presentation for users.
Resources
Metadata set on tokens and NFTs helps identify those assets and provide customized presentation to wallet users.
Note that, for NFTs, this is metadata set on the NFT resource itself (or “resource manager”) that refers to all individual non-fungibles that belong to that resource. Separate standards for setting data on individual non-fungibles is below.
Metadata field | Type | Intended Use | Radix Wallet Treatment |
|---|---|---|---|
|
| Simple name of the asset as intended to be displayed, with capitals. |
|
|
|
|
|
|
| Summarized description of the asset and its purpose as intended to be displayed, with capitals. |
|
|
|
|
|
|
|
|
|
|
| Direct link to an informational webpage. | If provided, the wallet will present this URL that may route users to an informational webpage about the token in the detailed page view of the token. |
Non-fungible Data Standards
Non-fungible data is not technically metadata, but often displayed similarly. These are captured via the non-fungible data standards.
Components and Blueprint Packages
Unlike most of the metadata standards, the fields here are not primarily intended for use in the wallet, but rather for use by network browsing and searching interfaces such as the Radix Dashboard, or perhaps future Scrypto code browsing and discovery services. It might be used along with other non-metadata information about the component or package, such as the methods available or royalty fees charged for its usage.
Metadata field | Type | Intended Use | Radix Wallet Treatment |
|---|---|---|---|
|
| Simple name of the component as intended to be displayed, with capitals. |
|
|
| Summarized description of the component and its usage as intended to be displayed, with capitals |
|
|
|
|
|
Special Native Components and Resources
The Radix Network includes a selection of native blueprints from which users can instantiate native components with known and trustable behavior. Some of these components also mint their own associated resources.
Below are the metadata standards a developer should consider to customize how these components and resources are presented in the Radix Wallet and other clients.
Metadata standards for verification may also be applied to these components and resources.
“Account” (for users) system component metadata
Accounts are the elemental holder of resources. The wallet interacts with them directly, or wraps them in an access controller component, which works by holding the owner badge issued by the account.
No metadata is expected to be set on simple account components for users.
“Account” (for dApp definitions) system components metadata
In addition to user accounts in the wallet, accounts may be used as repositories for metadata that define the collection of things that make up a “dApp” so that they have a single on-ledger identity that they may be registered to, and recognized by in the wallet. This registration is done by this component claiming ownership of other components, packages, resources, and more – and those entities in turn confirming that claim by setting metadata that points to this account’s address.
This is an account because this component may also need to hold resources of various types (in particular badges).
Metadata field | Type | Intended Use | Radix Wallet Treatment |
|---|---|---|---|
|
| Simple name of the dApp as intended to be displayed, with capitals. |
|
|
| Summarized description of the dApp as intended to be displayed, with capitals. |
|
|
|
|
|
|
|
|
|
| string | One of:
|
|
“Identity” system component metadata
This system component is specifically intended to be used as a repository for a public key that can be used for web3 login verification as part of the ROLA system. The Radix Wallet creates and associates an identity component with each Persona that a user creates there to be used for web3 logins. The Identity component holds no resources. The login mechanism is designed to be pseudo-anonymous, therefore there is little reason for general metadata to be stored here (and there is good reason to not store data there).
Identities have no standard metadata fields.
“Validator” system component metadata
A validator node-runner will instantiate a system Validator component that holds its stake and allows its owner to define various pieces of metadata that might be visible on a staking dashboard or the Radix Wallet. Other more functional aspects of Validator configuration, such as setting the validator’s fee, are set via component methods, not metadata.
Metadata field | Type | Intended Use | Radix Wallet Treatment |
|---|---|---|---|
|
| Simple name of the validator as intended to be displayed, with capitals. |
|
|
| Summarized description of the validator as intended to be displayed, with capitals. |
|
|
|
|
|
|
| Direct link to an informational webpage. | If provided, the wallet will present this URL that may route users to an informational webpage about the token in the detailed page view of the token. |
"Liquid Staking Unit" and "Stake Claim" resources for Validators
Validator components automatically mint liquid stake unit tokens and stake claim NFTs. It is not expected for the validator node-runner to set any metadata for these resources, and the Radix Wallet will show validator information taken from the validator component metadata as above.
“Pool” component metadata
A developer who wishes to use a pool will instantiate one from a native Pool blueprint, and they will have the ability to set metadata on it as they wish.
The metadata standards for pool components are the same as those for other components above.
"Pool Unit" resource metadata
Pool components automatically mint pool unit tokens. Instantiators of pool components will also be given the ability to set the metadata on this resource as they wish.
The metadata standards for these resources are the same as other resources above.
