The Trust Wallet Token Repository https://github.com/trustwallet/assets is a comprehensive, up-to-date collection of information about several thousands (!) of crypto tokens. Trust Wallet uses token logos from this source, alongside a number of other projects.
The repository contains token info from several blockchains, info on dApps, staking validators, etc. For every token a logo and optional additional information is available (such data is not available on-chain).
Such a large collection can be maintained only through a community effort, so additions are welcome, primarily from token projects.
Please note that new tokens are not accepted, the projects have to be sound, with information available, and non-minimal circulation (for limit details see https://community.trustwallet.com/t/how-to-submit-a-token-logo/3863).
Details of the repository structure and contribution guidelines are listed below. Here is a quick starter summary for the most common use case.
For adding an ERC20 token:
fork the Github repository
prepare a logo file, according to the rules below, but must importantly: PNG format, recommended pixel size of 256x256, max. 512x512, and max. file size of 100kB.
add/upload the logo file named logo.png
to the folder blockchains/ethereum/assets/<contract>
,
where the last part is the token contract address in checksum format, such as
blockchains/ethereum/assets/0x1234567461d3f8Db7496581774Bd869C83D51c93/logo.png
.
Create info.json
file with info about the token/project
Create a PR to the main repo
Pay the processing fee
The token repository contains the following collections:
ERC20, ERC223 tokens on Ethereum compatible networks such as: Ethereum (ETH), Ethereum Classic (ETC), POA Network (POA), TomoChain (TOMO), GoChain (GO), Wanchain (WAN), Callisto Network (CLO), Thunder Token (TT), etc.
TRC10, TRC20 tokens on TRON blockchain
dApp images available in Browser
section in Trust Wallet, and bookmarks icons. Read requirements. Also you can submit dApp to our list read more.
Staking validators info, such as name, image, validator id, website url. Supported staking coins. Read requirements.
Crypto price providers map: CoinMarketCap
Token and coin info
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
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
. Uppercase PNG
is considered invalid.
File name:logo.png
, all lowercase.
Dimension: 256 x 256 pixels
or 512 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 fields:
name
: name of the token
type
: such as ERC20, BEP2, BEP20, TRC20, TRC10, ...
symbol
: the token symbol
decimals
: number of decimal digits used in the amounts (e.g. 18 for ETH)
description
: a few sentence summary of the token/project
website
: project web site
explorer
: URL of the token explorer page
id
: the id/contract/address of the token, same as the subfolder name
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","research": "https://research.binance.com/en/projects/trustwallet","type": "BEP2","symbol": "TWT","decimals": 8,"status": "active","id": "TWT-8C2"}
<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
Add validator logo image to blockchains/<chain>/validators/assets/<validator_address>/logo.png
see images requirements
Check chain specific requirements.
Uploading: 1. Ethereum ERC20 token folder 2. Binance DEX BEP2, BEP8 token token folder 3. TRON TRC10, TRC20 token token folder 4. Add Cosmos validator image 5. Add Tezos validator info 6. Add Ethereum contract address to denylist 7. 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.
Proceed to https://github.com/trustwallet/assets
Press on Fork
in the top right corner, wait for process to complete.
Note: if you already have a fork, it should be updated: easiest is to remove the fork and create it afresh.
Navigate to desire chain folder you want to add asset
Prepare on your local drive a folder corresponding to the token cortact.
Copy the logo image as logo.png
into the folder (and optional info file).
Simply drag and drop the folder to active window
In Commit changes
box:
Add files via upload
add meaningfull comment what you adding to the repo
optional: In Add an optional extended description
write a comment about upload
optional: adjust fork branch name
Click on Propose changes
Press on Create pull request
The steps are similar to using the web page, but the desktop app has more control for overwriting the files, branching, pushing.
Fork the repository to your own GitHub account
Clone fork and create new branch:
git clone git@github.com:YOUR_HANDLE/assets.gitcd assetsgit checkout -b <branch_name>
Add asset to appropriate directory, the folder strcture documentation will help you
Commit and push to your fork
git add -Agit commit -m “Add <token_name>”git push origin <branch_name>
From your repo clone page make a new PR (pull request)
Due to an increasing number of pull request (and proportional checking & merging effort), a modest fee is required for processing a pull request, payable in cryptocurrency. Follow the instructions in the pull request for completing the fee payment.
See the fee FAQ
Contributions in a pull request are verified by an automated build. The checks fail if something is wrong, like to logo is too large or an Ethereum contract is not in checksum format. Checks the exact error message in the build to find out the problem.
A merge conflict happens if the same file has been modified in the pull request, and also in the master branch since the fork was created. With assets repo, this typically caused by using a fork that was created long ago. The simplest solution in this case is to delete your pull request, delete your fork, create a new fork, and create a new PR. Alternatively, a merge conflict can be resolved using git command line, but Git skills are required. A pull request can also happen when overriding an existing logo.
After PR was merged, it may take some time, but not longer than one hour, until search will show the new logo.
Both clients, Android and iOS keep old image cache for up to a few days. In order to see changes immediately, reinstall Trust Wallet. But as always, make sure you have a backup of all your wallets.
A process of removing smart contract information such as (token logo and info) from this repository. Removed contract address will be added to the denylist and, as a result, will no longer be present in token search results inside the TW app. Why would you want to do this ?. You are contract owner or just good samaritan who noticed contract to be no longer "active" and was an upgrade and abandoned by owning organization, involved in a scam, mimicking by its name or/and symbol a real contract. All facts must be supported with a link to any resource proving these statements.
--> For developers
active
- Token meets the standard requirements in terms of holders (2,500) and transactions (5,000).
spam
- Token that is distribtued to a large number of recepients that have no inherent value.
scam
- Token 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
Trust Wallet - iOS and Android
0x Tracker - The 0x Protocol Trade Explorer and news aggregator.
Uniswap - Uniswap is a protocol for automated token exchange on Ethereum.
LinkDrop - A customer acquisition platform for DApps. The easiest crypto onboarding.
Aragon − Aragon is platform and network for decentralized organizations.
SpiderDEX - Decentralized exchange for crypto collectibles.
Zerion — A simple interface to decentralized finance.
Trust Wallet team allows anyone to submit new assets to this repository. However, this does not mean that we are in direct partnership with all of the projects.
Trust Wallet team will reject projects that are deemed as scam or fraudulent after careful review. Trust Wallet team reserves the right to change the terms of asset submissions at any time due to changing market conditions, risk of fraud, or any other factors we deem relevant.