Token directory that contains a comprehensive list of ERC-20, ERC-721, ERC-1155 and other contracts.
NOTES:
- The ./index/index.json is an auto-generated file that is a master index of all ./index/**/* contents including chain names, chain ids, file names, and sha256 hashes of the file contents. This file is perfect for using as the primary index of this repo, and when syncing contents you can traverse this index file and also compare the sha256 hash if the file has changed.
- The ./index/deprecated.json is a manually maintained file which lists all folders which are deprecated and as a result the files will be labelled as deprecated in the master index.json.
- The ./index/external.json is a manually maintained file of external token list sources which are synced and downloaded to the ./index/_external folder. We store the contents here to ensure data integrity, and we also compute and include these files in the master index.json.
REMINDERS:
pnpm reindex
is automatically called as a pre-commit hook anytime an entry it changed. You may also call it manually if you like.pnpm sync-external
must be called manually periodically to ensure we have the latest contents, this script is not run automatically.
pnpm install
will setup your local toolspnpm reindex
to reindex the token directory master index.json, but see notes above, as this is also automatically called as a pre-commit hook.pnpm sync-external
to sync ./index/external.json files to local ./index/_external/ folder.
The ERC-20 token lists present in this repository follow the Uniswap Token List Schema. The original list was populated using Coingecko's erc20 token list CoinGecko. Token description and links are taken from Coingecko's API.
The ERC-721 and ERC-1155 token lists present in this repository follow the Sequence Collectible List Schema.
If a token is missing entirely, or contains incorrect or missing information, please stick to the following procedure;
- Fork this repository
- git clone, then:
pnpm install
to setup local tools - Add your entry directly inside of
./index/<chain>/<standard>.json
- Open a PR comparing the master branch with your fork
- In the PR, add an explanation if this PR is for an existing token that needs to be updated
Depending on the standard, your token entries should respect the following format:
See here for examples.
{
chainId: number, // Chain ID
address: string, // Contract address
name: string, // Name of token, 40 chars max
symbol: string, // Symbol of token, 20 chars max
decimals: number, // Number of decimals token uses
logoURI: string | null, // URI / URL for token logo
extensions: {
link: string | null, // URL of token's website
description: string | null, // Short description of token (1000 chars max)
ogImage: string | null // URL of Open Graph image of token website
}
See here for erc721 and here for erc1155 examples.
{
chainId: number, // Chain ID
address: string, // Contract address
name: string, // Name of token, 40 chars max
standard: 'erc721' | 'erc1155', // Name of token's standard
symbol: string | null, // Symbol of token, 20 chars max
logoURI: string | null, // URI / URL for token logo
extensions: {
link: string | null, // URL of token's website
description: string | null, // Short description of token (1000 chars max)
ogImage: string | null // URL of Open Graph image of token website
}
MIT