Skip to Content
📢 Breaking change: Applications using LedgerJS for transport implementation should migrate to the Device Management Kit (DMK). Learn more.

How to add token support

This guide shows you how to make your token display with its name, symbol, and formatted amounts on Ledger signers, instead of a raw contract address and wei values.

How token support works

Without token support, users see contract addresses instead of token names, raw wei values instead of formatted amounts, and hexadecimal data instead of readable information. With it, they see token symbols (USDT, UNI, AAVE), formatted amounts (1,000 USDT instead of 1000000000), and collection names for NFTs.

Token support is automatic once your token is in the Ledger database. You do not need to create a descriptor just to add basic token display.

Support covers the common token standards:

  • ERC-20 — formatted amounts with correct decimals and the token symbol
  • ERC-721 — collection name and token ID from on-chain metadata
  • ERC-1155 — both fungible and non-fungible token information

Check whether your token is already supported

Before submitting a request, verify that your token is not already in the database:

  • Search the supported assets list — look up your token by name, symbol, or contract address in Ledger’s supported assets list .
  • Test a transaction — send a small test transaction involving your token. If it is supported, your signer shows the token symbol; if not, it shows the raw contract address.

Each chain requires a separate support entry. A token supported on Ethereum is not automatically supported on Polygon or Arbitrum.

Request token support

If your token is not in the database, submit a request with this information:

  • Contract address — checksummed address from your block explorer
  • Token symbol — official symbol (for example, UNI, AAVE)
  • Token name — full display name
  • Decimals — number of decimal places (18 for most ERC-20 tokens; 6 for USDC and USDT)
  • Chain or network — Ethereum, Polygon, Arbitrum, and so on; submit a separate request for each chain

Submit a support request

Contact Ledger Support  with your token information.

Wait for review

Tokens are reviewed and added in weekly batches. Expect one to two weeks from submission to availability.

Verify the addition

Check the supported assets list  or send a small test transaction once you receive confirmation.

Token support is subject to review. Tokens must have a legitimate use case, sufficient liquidity, and regulatory compliance.

Add a token icon (optional)

To display your token’s icon in Ledger Wallet, submit a PNG or SVG that is 64×64 px (or a scalable vector), on a transparent background, under 50 KB. Then:

  • Fork the ledger-live repository 
  • Add your icon to the assets/icons/ directory, following the existing naming convention
  • Open a pull request

Reference tokens in your metadata

When your contract interacts with tokens, reference them in your descriptor so amounts display correctly during signing.

Use a static token address when your contract always interacts with the same token:

{ "path": "amount", "label": "Amount", "format": "tokenAmount", "params": { "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" } }

Use tokenPath when the token address is passed as a parameter in the transaction. Its value is a path expression pointing to the parameter that holds the token contract address:

{ "path": "amount", "label": "Amount", "format": "tokenAmount", "params": { "tokenPath": "tokenAddress" } }

For NFT collections, use nftName to display the collection name and token ID. Reference the collection with collection (fixed address) or collectionPath (address from transaction data):

{ "path": "tokenId", "label": "NFT", "format": "nftName", "params": { "collection": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D" } }

For the full list of format types and their parameters, see the format types reference.

Troubleshooting

Token shows as “Unknown Token”

The token is not yet in the Ledger database. Follow the request process above to add it.

Amounts show with incorrect decimal places

The decimal value in the database is incorrect. Contact support with the correct decimal count. You can find the authoritative value from the token contract’s decimals() function on Etherscan.

NFT metadata is not loading

Ensure the NFT contract implements the standard metadata methods: tokenURI(uint256) for ERC-721 and uri(uint256) for ERC-1155.

Token is supported on Ethereum but not on another chain

Each chain deployment requires a separate support entry. Submit a new request specifying the chain and contract address for each additional network.

Next steps

Your token is ready to display correctly in Clear Signing transactions. Reference it in your protocol’s descriptor:

Last updated on
Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Flex, Ledger Nano, Ledger Nano S, Ledger OS, Ledger Wallet, [LEDGER] (logo), [L] (logo) are trademarks owned by Ledger SAS.