Chain metadata used by Mintscan Explorer, managed by Cosmos
- Validator's moniker image
- Add Asset's Info
- Add Cw20 Info
- Add Erc20 Info
- Add IBC Eureka Info
- Add gRPC/EVM Endpoint
- dApp link and description on Wallet
- Chains and Assets image with 3D
- Available in all sizes and formats.
- From March 2025, Display moniker information based on the on-chain validator description (Keybase Identity).
- The existing moniker folder will be deleted soon.
-
Fork this repo to your own github account
-
Clone fork and create new branch
git clone git@github.com:YOUR_ACCOUNT/chainlist.git cd chainlist git branch <branch_name> git checkout <branch_name>
-
Add the info of your asset in the chain
assets_2.jsonfile that your asset needs to be displayedIf there is no chain in the list, create a folder for the chain
Then addassets_2.jsonfile to the folder, add asset info to that file
Changes will be updated within 24 hours after merged to master-
Common info to fill
typenativerefers that the asset is a native asset issued on a chain.ibcrefers that the asset was ibc transferred.bridgerefers that the asset is a bridge asset.
denom- Asset's denom
name- Asset's name
symbol- The displayed name of the asset in the list.
description- A brief summary of the asset
decimals- Asset's decimals.
image(optional)- Image route of the asset.
- Add image in
${targetchain}/assetfolder.- Make sure to upload a
pngfile.
- Make sure to upload a
color(optional)coinGeckoId- Asset gecko site's API ID
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- API ID: cosmos
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- Empty string if none
- Asset gecko site's API ID
-
If the type is , provide the info below:
ibc_infopath- If the asset was transferred via ibc, bridge or other path, provide full details of where it was transferred from.
clientchannelport- Add the asset's channel and port
counterpartychannelport- Add counter party's channel and port
chaindenom- Assets's denom before ibc transfer
-
If the type is , provide the info below:
bridge_infopath(optional)- If the asset was transferred via ibc, bridge or other path, provide full details of where it was transferred from.
counterpartychaincontract(optional)- If the asset was transferred via contract, provide the contract address.
enable(optional)trueif ibc transmission is possible
chain/${chain}/assets_2.json-
Native Asset
// example OSMOSIS [ { "type": "native", "denom": "uosmo", "name": "Osmosis", "symbol": "OSMO", "description": "The native token of Osmosis", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/osmosis/asset/osmo.png", "color": "#760dbb", "coinGeckoId": "osmosis" }, { "type": "native", "denom": "uion", "name": "Ion DAO", "symbol": "ION", "description": "ION is the second native token of Osmosis.", "decimals": 6, "image": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.svg", "color": "#4453c7", "coinGeckoId": "ion" } ]
-
IBC Asset
[ // example COSMOS { "type": "ibc", "denom": "ibc/14F9BC3E44B8A9C1BE1FB08980FAB87034C9905EF17CF2F5008FC085218811CC", "name" : "Osmosis", "symbol": "OSMO", "description": "Osmosis Staking Coin", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/osmosis/asset/osmo.png", "coinGeckoId": "osmosis", "ibc_info" : { "path": "osmosis>cosmos", "client" : { "channel": "channel-141", "port": "transfer" }, "counterparty": { "channel": "channel-0", "port": "transfer", "chain": "osmosis", "denom": "uosmo" } } } // example IRIS { "type": "ibc", "denom": "ibc/E244B968EE0D1EC047E7516F6ABECE7B68E9FD93B4BD8D08D13642247416BB17", "name" : "Wrapped Ethereum (Ethereum to Gravity-Bridge)", "symbol": "WETH.grv", "description": "Gravity Bridge WETH", "decimals": 18, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/weth.png", "coinGeckoId": "weth", "ibc_info" : { "path": "ethereum>gravity-bridge>iris", "client" : { "channel": "channel-29", "port": "transfer" }, "counterparty": { "channel": "channel-47", "port": "transfer", "chain": "gravity-bridge", "denom": "gravity0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" } } } ]
-
Bridge Asset
[ // example GRAVITY-BRIDGE { "type": "bridge", "denom": "gravity0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", "name" : "Wrapped Bitcoin (Ethereum to Gravity-Bridge)", "symbol": "WBTC.grv", "description": "Gravity Bridge WBTC", "decimals": 8, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/wbtc.png", "coinGeckoId": "wrapped-bitcoin", "color": "#f39444", "bridge_info" : { "path": "ethereum>gravity-bridge", "counterparty": { "chain": "ethereum", "contract": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599" } } } // example IRIS { "type": "bridge", "denom": "htltbcbusd", "name" : "BUSD - Deprecated", "symbol": "BUSD", "description": "BUSD on IRIS - Deprecated", "decimals": 8, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/bnb-beacon-chain/asset/busd.png", "coinGeckoId": "binance-usd", "bridge_info" : { "path": "bnb-beacon-chain>iris", "enable": false } } ]
-
-
Commit and push to your fork
git add -A git commit -m “Add <YOUR ASSET NAME>” git push origin <branch_name>
-
From your repository, make pull request (PR)
Juno Cw20 list supporting
-
Fork this repo to your own github account
-
Clone fork and create new branch
git clone git@github.com:YOUR_ACCOUNT/chainlist.git cd chainlist git branch <branch_name> git checkout <branch_name>
-
Add the info of your token in the chain
cw20_2.jsonfile that your token needs to be displayedIf there is no chain in the list, create a folder for the chain
Then addcw20_2.jsonfile to the folder, add token info to that file
Changes will be updated within 24 hours after merged to mastertype- cw20
contract- Token's contract_address
name- Token's name
symbol- Name of token's symbol
description- A brief summary of the token
decimals- Decimal of the token
image- Image route of the token
/${targetChain}/assetadd image in the folder- Make sure to upload a
pngfile
coinGeckoId- Coin gecko site's API ID
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- API ID: cosmos
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- Empty string if none
- Coin gecko site's API ID
color(optional)wallet_preload(optional)- default value is
false
- default value is
chain/${targetChain}/cw20_2.json-
Cw20 Token
// example JUNO [ { "type": "cw20", "contract": "juno1pqht3pkhr5fpyre2tw3ltrzc0kvxknnsgt04thym9l7n2rmxgw0sgefues", "name" : "DAO", "symbol": "DAO", "description": "DAO DAO", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/juno/asset/dao.png", "coinGeckoId": "" }, { "type": "cw20", "contract": "juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr", "name" : "Neta", "symbol": "NETA", "description": "The native token cw20 for Neta on Juno Chain", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/juno/asset/neta.png", "coinGeckoId": "neta", "color": "#f87b7b", "wallet_preload": true } ]
-
Commit and push to your fork
git add -A git commit -m “Add <YOUR TOKEN NAME>” git push origin <branch_name>
-
From your repository, make pull request (PR)
Ethereum Erc20 list supporting
-
Fork this repo to your own github account
-
Clone fork and create new branch
git clone git@github.com:YOUR_ACCOUNT/chainlist.git cd chainlist git branch <branch_name> git checkout <branch_name>
-
Add the info of your token in the chain that your token needs to be displayed
If there is no chain in the list, create a folder for the chain
Then adderc20_2.jsonfile to the folder, add token info to that file
Changes will be updated within 24 hours after merged to mastertype- erc20
contract- Token's contract_address
name- Token's name
symbol- Name of token's symbol
description- A brief summary of the token
decimals- Decimal of the token
image- Image route of the token
/${targetChain}/assetadd image in the folder- Make sure to upload a
pngfile
coinGeckoId(optional)- Coin gecko site's API ID
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- API ID: cosmos
- ex. https://www.coingecko.com/en/coins/cosmos-hub
- Empty string if none
- Coin gecko site's API ID
color(optional)wallet_preload(optional)- default value is
false
- default value is
chain/${targetChain}/erc20_2.json-
ERC20 Token
// example Ethereum [ { "type": "erc20", "contract": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "name" : "Tether", "symbol": "USDT", "description": "Tether", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/usdt.png", "coinGeckoId": "tether", "wallet_preload": true }, { "type": "erc20", "contract": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "name" : "WETH", "symbol": "WETH", "description": "WETH", "decimals": 18, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/weth.png", "coinGeckoId": "weth" } ]
-
Commit and push to your fork
git add -A git commit -m “Add <YOUR TOKEN NAME>” git push origin <branch_name>
-
From your repository, make pull request (PR)
-
Fork this repo to your own github account
-
Clone fork and create new branch
git clone git@github.com:YOUR_ACCOUNT/chainlist.git cd chainlist git branch <branch_name> git checkout <branch_name>
-
Add the info of your asset in the chain
assets_2.jsonfile that your asset needs to be displayedIf there is no chain in the list, create a folder for the chain
Changes will be updated within 24 hours after merged to mastertypeibc
denom- IBC denom on the target chain
name- Asset's name
symbol- Name of Asset's symbol
description- A brief summary of the asset
decimals- Asset's decimals
image- Image route of the token
/${targetChain}/assetadd image in the folder- Make sure to upload a
pngfile
coinGeckoId- Coin gecko site's API ID
- Empty string if none
ibc_infopath- Transfer path (e.g.
ethereum>cosmos)
- Transfer path (e.g.
counterpartyICS20ContractAddress- ICS20 contract address on Ethereum
channel- Channel ID on the target chain
port- Asset's port (e.g.
transfer)
- Asset's port (e.g.
chain- Source chain (e.g.
ethereum)
- Source chain (e.g.
denom- ERC20 contract address of the token on Ethereum
chain/${chain}/assets_2.json-
Eureka Asset
[ // example USDT on Cosmos Hub { "type": "ibc", "denom": "ibc/E7E51FFF94A8B55BE84CEB0345E5CAF0A5DAEB374C6806CE908098B8996C7782", "name": "Tether", "symbol": "USDT", "description": "Tether via Eureka", "decimals": 6, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/usdt.png", "coinGeckoId": "tether", "ibc_info": { "path": "ethereum>cosmos", "counterparty": { "ICS20ContractAddress": "0xa348cfe719b63151f228e3c30eb424ba5a983012", "channel": "cosmoshub-0", "port": "transfer", "chain": "ethereum", "denom": "0xdAC17F958D2ee523a2206206994597C13D831ec7" } } }, // example SEDA on Cosmos Hub { "type": "ibc", "denom": "ibc/D0BD765CF2EC6B97264795351BD75685A7B806F857D7D84633F5AC5E4A9812ED", "name": "SEDA", "symbol": "SEDA", "description": "SEDA on the Cosmos Hub", "decimals": 18, "image": "https://raw.githubusercontent.com/CosmosLabsKR/chainlist/master/chain/ethereum/asset/seda.png", "coinGeckoId": "seda-2", "ibc_info": { "path": "ethereum>cosmos", "counterparty": { "ICS20ContractAddress": "0xa348cfe719b63151f228e3c30eb424ba5a983012", "channel": "cosmoshub-0", "port": "transfer", "chain": "ethereum", "denom": "0x14862c03A0cACcC1aB328B062E64e31B2a1afcd7" } } }
]
-
Commit and push to your fork
git add -A git commit -m "Add <YOUR TOKEN NAME>" git push origin <branch_name>
-
From your repository, make pull request (PR)
To add endpoints managed by chainlist,
You must add an endpoint to https://github.com/CosmosLabsKR/chainlist/blob/main/chain/{chain}/param_2.json
{
...,
"grpc_endpoint" : [
{
"provider": "Stakin",
"url": "cosmoshub.grpc.stakin-nodes.com:443"
},
{
"provider": "Citizen Web3",
"url": "grpc.cosmoshub-4.citizenweb3.com:443"
}
],
"evm_rpc_endpoint" : [
{
"provider": "Drpc",
"url": "https://eth.drpc.org"
},
{
"provider": "Publicnode",
"url": "https://ethereum-rpc.publicnode.com"
}
],
...
}
Before requesting addition, please check whether the endpoint is operating properly using the method below.
- Check gRPC Endpoint
GRPC_URL=<GRPC_ENDPOINT_URL>
# check has grpc endpoints
grpcurl $GRPC_URL list
# check has grpc nodeinfo
grpcurl $GRPC_URL cosmos.base.tendermint.v1beta1.Service.GetNodeInfo
# check has grpc plaintext(non-TLS) endpoints
grpcurl -plaintext $GRPC_URL list
# check has grpc plaintext(non-TLS) nodeinfo
grpcurl -plaintext $GRPC_URL cosmos.base.tendermint.v1beta1.Service.GetNodeInfo- Check EVM Endpoint
EVM_URL=<EVM_ENDPOINT_URL>
curl --location '$EVM_URL' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "eth_getBlockByNumber",
"params": [
"latest",
false
],
"id": 1
}'Copyright © CosmoslabsKR, Inc. All rights reserved. Licensed under the MIT.

