0x564EF37e0104426E829d66Dc916a30376aE1239C
This repo contains the token lists to be used in Polygon products' interfaces.
The JSON schema for the tokens includes: chainId, name, address, decimals, symbol, logoURI (optional), tags (optional), and custom extensions metadata.
There are two token lists that we are maintaining currently on mainet and another one on testnet:
-
Polygon Tokens List contains all the valid tokens that are mapped on the Polygon PoS chain. The community can raise token addition and updation issues to help us keep the token list up-to-date.
-
Popular Tokens List is a subset of the allTokens list. It contains the mostly used tokens on Polygon products.
-
Testnet Tokens List contains the tokens mapped on the Mumbai chain.
Apart from these 3 token list there is one blacklisted token list:
- Blacklist Tokens List contains all the blacklisted tokens which should be filtered out from the UI.
-
Fork the repository
-
Add the new token at the end of the token array in
src/tokens/polygonTokens.json
Please make sure that the new token follows this schema.
{ "chainId": 137, // Chain Id of the L2 chain "name": "token_name", "symbol": "token_symbol", "decimals": "<token_decimals>", "address": "token_address on Polygon", "logoURI": "token_icon_uri", "tags": ["<bridge>", "<token_type>", "<optional_tag>", "<optional_tag>", ...], // For all acceptable tags, check the below list "extensions": { "originTokenAddress": "token_address on the origin chain", // If not deployed on ethereum, add noDeposit and noWithdraw tags "originTokenNetwork": "id of the token's origin chain", // Use 0 for Ethereum, 1 for zkEVM, -1 for PoS "wrappedTokenNetwork": "id of the wrapper token's chain", // Only for tokens bridged via LxLy bridge (zkEVM) "project": { "name": "Project_Name", "summary": "Short_Project_Description", "contact": "Project_Support", "website": "Project_Website" }, "originChainBridgeAdapter": "Bridge adapter contract address on origin chain", // Only required for tokens bridged using zkEVM messaging layer "wrapperChainBridgeAdapter": "Bridge adapter contract address on wrapper chain" // Only required for tokens bridged using zkEVM messaging layer } }
-
stablecoin
: Tokens that are pegged to a fiat asset, e.g. USDC, USDT -
swapable
: Tokens are eligible for swapping through the 0x contracts -
native
: Tokens are native tokens of the chain -
erc20
: Tokens are of ERC20 token type -
pos
: Tokens that are bridged using the PoS bridge Note: Also use this tag if the tokens cannot be bridged. -
fx
: Tokens that are bridged using the FX or custom FX bridge -
plasma
: Tokens that are bridged using the PLASMA bridge -
lxly
: Tokens that are bridged using the LxLy bridge (zkEVM) -
metaTx
: Tokens are eligible for meta transactions Note: Use this tag if the tokens support meta transactions and can be used for a gasless swaps. -
customSig
: The token has its custom withdraw event signature and does not depend on the transfer event signature while verifing withdrawals -
noDeposit
: Tokens are not eligible for deposits from Ethereum Note: Also use this tag if the tokens cannot be bridged. -
noWithdraw
: Tokens are not eligible for withdrawals back to Ethereum Note: Also use this tag if the tokens cannot be bridged. -
customZkevmBridge
: Tokens that are bridged using zkEVM messaging layer
-
-
Run linter and fix the issues if any
npm run lint
npm run lint:fix
-
Make sure that the tests are passing and the tokenlist builds
npm run test
npm run build
-
Commit the changes and raise a Pull request to our repo's dev branch
After raising a PR, please allow us some time to verify the PR. We do not follow any particular order in reviewing token additions and updations.