Skip to main content

System canisters

Intermediate
Concept

System canisters are canisters that provide a necessary function to the ICP network. They are controlled by the NNS and upgraded via NNS proposals. These canisters have static canister IDs that projects can make calls to. One common example of a system canister that is used by projects is the Internet Identity canister.

System canisters

System canisterCanister ID
Bitcoin mainnetghsi2-tqaaa-aaaan-aaaca-cai
Bitcoin testnetg4xu7-jiaaa-aaaan-aaaaq-cai
Cycles mintingrkp4c-7iaaa-aaaaa-aaaca-cai
Genesis tokenrenrk-eyaaa-aaaaa-aaada-cai
ICP indexqhbym-qaaaa-aaaaa-aaafq-cai
ICP ledgerryjl3-tyaaa-aaaaa-aaaba-cai
ICP ledger archiveqsgjb-riaaa-aaaaa-aaaga-cai
ICP ledger archiveqjdve-lqaaa-aaaaa-aaaeq-cai
Internet Identityrdmx6-jaaaa-aaaaa-aaadq-cai
NNS governancerrkah-fqaaa-aaaaa-aaaaq-cai
NNS lifelinerno2w-sqaaa-aaaaa-aaacq-cai
NNS registryrwlgt-iiaaa-aaaaa-aaaaa-cai
NNS rootr7inp-6aaaa-aaaaa-aaabq-cai
NNS UIqoctq-giaaa-aaaaa-aaaea-cai
SNS wasmqaa6y-5yaaa-aaaaa-aaafa-cai

Using system canisters

Developers can use system canisters in their project to integrate services into their dapp or enable functionality that requires data from a system canister.

For example, Internet Identity can be integrated into a dapp to provide user authentication service to the project. Internet Identity is commonly integrated into a dapp through the dfx deps command. dfx deps allows you to pull a system canister into your local project for testing.

For other projects, calls can be made to system canisters to obtain information, such as DeFi projects making calls to the ICP index to obtain information about ICP transactions or price.