The token repository contains the following collections:
- ERC20, ERC223 tokens on Ethereum compatible networks such as:
- Binance DEX tokens (native marketplace on Binance Chain)
- Tokens on TRON blockchain (TRC10, TRC20)
- DApp logos displayed in
Browser
section of the Trust Wallet app, and bookmarks icons - Staking validators information, such as name:
image
,validator_id
,website_url
- Crypto price providers map: CoinMarketCap
- Token and coin information
- Smart contract deprecation/upgrade. Read more
The blockchains
folder contains several subfolders corresponding to blockchain networks, such as
ethereum
, binance
, etc.
The assets
subfolder contains token folders named by smart contract address,
in checksum format for Ethereum like networks.
This folder should contain the logo.png
image file, and the info.json
file.
For other networks the address must be specified as it was originated on the chain, e.g TRON TRC10: 1002000
, TRON TRC20: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
etc.
The info
folder contains a logo.png
that represents the coin image.
The validators
folder contains folders: assets
same structure as above and list.json
information about validators.
The denylist.json
and allowlist.json
, present in some chain folders like ethereum
and binance
, contain list of approved tokens and banned tokens. Trust Wallet will never show denylisted tokens, and only allowlisted tokens are shown in the token search results.
For Ethereum like networks, contract folders must be named according to the so-called Checksum Format, with mixed lowercase and uppercase letters, such as 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359
.
Non-checksum addresses (e.g. all lowercase) are considered invalid.
You can find the checksum address by searching on etherscan.io, for example stablecoin DAI the checksum address is located at the top left corner of the page and has both uppercase and lowercase characters. Or convert Ethereum address to Checksum address.
.
├── blockchains
│ └──ethereum
│ │ └──assets
│ │ │ └──0x0a2D9370cF74Da3FD3dF5d764e394Ca8205C50B6 // address folder
│ │ │ └──logo.png // token logo
| | | └──info.json // optional token info
│ │ └──info
│ │ │ └──logo.png // chain coin logo
| | │ └──info.json // chain coin info
│ │ └──allowlist.json // list of accepted tokens
│ │ └──denylist.json // list of blocked tokens
| |
| └──binance
│ │ └──assets
│ │ │ └──ONE-5F9
│ │ │ └──logo.png
| | | └──info.json
│ │ └──info
│ │ └──logo.png
| └──tron
│ | └──assets
│ | │ └──1002000
│ | │ | └──logo.png
| | | | └──info.json
| | | └──TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
| | | └──logo.png
| | | └──info.json
| | |
│ | └──info
│ | └──logo.png
| | └──info.json
| |
| └──cosmos
│ │ └──info
| | | └──logo.png
| | | └──info.json
| | |
│ │ └──validators
│ │ | └──assets
| | | └──cosmosvaloper1clpqr4nrk4khgkxj78fcwwh6dl3uw4epsluffn
| | | └──logo.png
| | |
| | └──list.json
├── ...
- Prepare asset, look at image requirements, dapp requirements.
- Get familiar with our folder structure, it will give you an understanding where assets should be placed
- Add asset guide
- Pay the merge fee
Whenever you updating or deleting an asset on behalf of the asset owner or just found outdated information, please provide a link to the source saying about changes. That will help to speed up the review process.
This instruction wil be helpfull if you want to:
-
Update information about the smart contract
-
Deprecate or update contract address
Smart contract address update procedure:
-
Rename old contract address in coresponding coin folder to new contract e.g.:
-
Remove smart contract e.g.:
`rm -r ./blockchains/<COIN>/assets/<OLD_CONTRACT_ADDRESS>/`
`rm -r ./blockchains/ethereum/assets/0x19fFfd124CD9089E21026d10dA97f8cD6B442Bff/`
- Commit changes and make a PR (pull request)
- File location: must be placed in the correct folder and subfolder within the folder structure.
- File extension:
png
. UppercasePNG
is considered invalid. - File name:
logo.png
, all lowercase. - Dimension:
256 x 256 pixels
or512 x 512 pixels
. - Background: Avoid transparency, set background as your brand color or white by default otherwise your token image wont look good on white/dark theme design.
- File size: maximum 100kB. Tip: optimize image size, e.g. using simple drag-and-drop online service tinypng.
The info.json
file contains basic information about the token/project.
It has following required fields:
name
: name of the tokentype
: such as ERC20, BEP2, BEP20, TRC20, TRC10, ...symbol
: the token symboldecimals
: number of decimal digits used in the amounts (e.g. 18 for ETH)description
: a few sentence summary of the token/projectwebsite
: project web siteexplorer
: URL of the token explorer pageid
: the id/contract/address of the token, same as the subfolder name
And optionally:
links
: Optional array withname
/url
pairs, for social media links, documentation, etc. List of currently supported types:github
,whitepaper
,twitter
,telegram
,telegram_news
,medium
,discord
,reddit
,facebook
,youtube
,coinmarketcap
,coingecko
,blog
,forum
,docs
,source_code
. Note: thesocials
section is no longer used.
If in doubt about fields, look around / search in existing info.json files.
Sample info.json
:
{
"name": "Trust Wallet Token",
"website": "https://trustwallet.com",
"description": "Utility token to increase adoption of cryptocurrency.",
"explorer": "https://explorer.binance.org/asset/TWT-8C2",
"type": "BEP2",
"symbol": "TWT",
"decimals": 8,
"status": "active",
"id": "TWT-8C2"
"links": [
{
"name": "github",
"url": "https://github.com/trustwallet/"
},
{
"name": "twitter",
"url": "https://twitter.com/TrustWalletApp"
},
{
"name": "reddit",
"url": "https://reddit.com/r/trustapp"
}
]
}
- Folder for upload
<subdomain>.<domain_name>.png
e.g: https://app.compound.finance/ =>app.compound.finance.png
https://kyberswap.com/ =>kyberswap.com.png
- Upload logo – Make sure you follow rules for image requirements.
- Integrate deep linking
- Add logo as dApp supported wallet
- Test dApp inside Trust Wallet on iOS and Android devices
- Submit form for review
- Add validator basic information to the bottom of the list, see example for: Kava, Cosmos, Tezos, Tron, Solana, Harmony
- Add validator logo image to
blockchains/<chain>/validators/assets/<validator_address>/logo.png
see images requirements - Check chain specific requirements.
- Ethereum ERC20 token folder
- Binance DEX BEP2, BEP8 token token folder
- TRON TRC10, TRC20 token token folder
- Add Cosmos validator image
- Add Tezos validator info
- Add Ethereum contract address to denylist
- Add TRON TRC10 ID or TRC20 owner contract address to allowlist
If you are not familiar with GitHub or Git, the process of adding new tokens may look complicated at first glance, but it consists of only a few steps, and is not very complicated.
The assets repository is maintained in GitHub, the largest hosting for open source projects. You need a GitHub account to interact with it.
To do changes in the assets repository, you need to create a personal copy called a fork.
Once the changes are prepared inside the fork, you need to create a pull request to the main repository. Upon review the maintainers will accept your pull request, and the changes will be incorporated.
active
- Token meets the standard requirements in circulation (number of holders and transactions).
spam
- Token that is distribtued to a large number of recepients that have no inherent value or has been verified as a dishonest scheme or fraud.
abandoned
- Token with very low activity (below 100 token transfers a year), migrated to mainnet or to a new contract.
No longer active