For AI agents: Documentation index at /llms.txt

Skip to content

Chain-Key Token Canister IDs

Canister IDs for all chain-key tokens. For deposit and withdrawal flows, see Chain-key tokens.

Always query icrc1_fee and icrc1_decimals at runtime. Fees and decimal precision are set per ledger and can change.

CanisterID
Ledgermxzaz-hqaaa-aaaar-qaada-cai
Mintermqygn-kiaaa-aaaar-qaadq-cai
Indexn5wcd-faaaa-aaaar-qaaea-cai
Checkeroltsj-fqaaa-aaaar-qal5q-cai

The checker canister monitors KYT (know your transaction) compliance and is called internally by the minter on deposit.

CanisterID
Ledgermc6ru-gyaaa-aaaar-qaaaq-cai
Minterml52i-qqaaa-aaaar-qaaba-cai
Indexmm444-5iaaa-aaaar-qaabq-cai

Use the Testnet4 canisters for integration testing. The ckBTC minter connects to the Bitcoin testnet4 network, so you need real testnet4 BTC (available from faucets).

CanisterID
Ledgerss2fx-dyaaa-aaaar-qacoq-cai
Mintersv3dd-oaaaa-aaaar-qacoa-cai
Indexs3zol-vqaaa-aaaar-qacpa-cai

The ckETH minter also handles all ckERC20 tokens. To get the current Ethereum helper contract address, call get_minter_info on the minter and read deposit_with_subaccount_helper_contract_address. Always verify this before constructing an Ethereum deposit transaction.

CanisterID
Ledger (ckTestETH)apia6-jaaaa-aaaar-qabma-cai
Minterjzenf-aiaaa-aaaar-qaa7q-cai

The Sepolia testnet minter connects to Ethereum Sepolia. Use ckTestETH for integration testing without spending real ETH.

ckERC20 tokens share the ckETH minter. Each token has its own ledger canister. For the authoritative current list, query the minter at runtime; new tokens are added via NNS governance and the table below may lag.

Query the mainnet minter:

Terminal window
icp canister call sv3dd-oaaaa-aaaar-qacoa-cai get_minter_info '()' -n ic

ckERC20 ledger canister IDs on mainnet:

AssetLedgerERC-20 contract
ckUSDCxevnm-gaaaa-aaaar-qafnq-cai0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
ckUSDTcngnf-vqaaa-aaaar-qag4q-cai0xdAC17F958D2ee523a2206206994597C13D831ec7
ckEURCpe5t5-diaaa-aaaar-qahwa-cai0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c
ckWBTCbptq2-faaaa-aaaar-qagxq-cai0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
ckWSTETHj2tuh-yqaaa-aaaar-qahcq-cai0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
ckLINKg4tto-rqaaa-aaaar-qageq-cai0x514910771AF9Ca656af840dff83E8264EcF986CA
ckUNIilzky-ayaaa-aaaar-qahha-cai0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
ckSHIBfxffn-xiaaa-aaaar-qagoa-cai0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE
ckPEPEetik7-oiaaa-aaaar-qagia-cai0x6982508145454Ce325dDbE47a25d4ec3d2311933
ckXAUTnza5v-qaaaa-aaaar-qahzq-cai0x68749665FF8D2d112Fa859AA293F07A622782F38
ckOCTebo5g-cyaaa-aaaar-qagla-cai0xF5cFBC74057C610c8EF151A439252680AC68c6DC

Query the Sepolia minter:

Terminal window
icp canister call jzenf-aiaaa-aaaar-qaa7q-cai get_minter_info '()' -n ic
AssetLedgerSepolia ERC-20 contract
ckSepoliaUSDCyfumr-cyaaa-aaaar-qaela-cai0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238
ckSepoliaLINKr52mc-qaaaa-aaaar-qafzq-cai0x779877A7B0D9E8603169DdbD7836e478b4624789
ckSepoliaPEPEhw4ru-taaaa-aaaar-qagdq-cai0x560eF9F39E4B08f9693987cad307f6FBfd97B2F6
CanisterID
Mintereqltq-xqaaa-aaaar-qb3vq-cai
Ledgerefmc5-wyaaa-aaaar-qb3wa-cai
Indexecnej-3aaaa-aaaar-qb3wq-cai

The ckDOGE minter follows the same UTXO-based pattern as ckBTC. Source: dfinity/ic rs/dogecoin/ckdoge.

CanisterID
Minterlh22c-kyaaa-aaaar-qb5nq-cai
Ledgerls5lp-lqaaa-aaaar-qb5oa-cai
Index2ezyf-hqaaa-aaaar-qb6ga-cai

Source: dfinity/cksol.