Both are needed for a complete integration. On-chain metadata ensures EVM compatibility; off-chain metadata ensures display in Injective dApps.
Setting On-Chain Metadata
How you set bank module metadata depends on your denom type:- TokenFactory (factory/...)
- Peggy (peggy0x...)
- IBC (ibc/...)
- ERC20 (erc20:0x...)
The denom admin can set metadata directly using Where Once set, the MTS ERC20 contract will immediately return the correct values for
MsgSetDenomMetadata:metadata.json:name(), symbol(), and decimals().See TokenFactory examples for TypeScript SDK usage.Frontend Metadata (injective-lists)
For display in Injective-native dApps (Hub, Explorer, trading interfaces built with@injectivelabs/sdk-ts), submit your token to the injective-lists repository.
This is separate from on-chain metadata. Injective-lists controls display in Injective frontends, while bank module metadata controls what EVM tools (MetaMask, Blockscout, Solidity) see.
Follow the contributing guide to submit a PR with your token’s metadata.
If your token is missing from injective-lists,
TokenFactoryStatic will return undefined for that denom. See the injective-lists integration guide for setup.