Developers can derive canister public keys entirely offline / client-side, without calling the management canister.
We’ve released a new Rust library, and a TypeScript library many developers haven’t discovered yet — both supporting ECDSA and Schnorr key derivation.
Why this matters
ICP’s key derivation is deterministic and public — given the master public key, canister ID, and derivation path, anyone can compute the same canister public key locally.
No secrets. No blockchain calls. Just pure math.
What this enables
-
Verify canister public keys offline / client-side
-
Derive blockchain addresses (e.g. Ethereum, Bitcoin) for canisters
-
Build explorers or dashboards showing cross-chain balances
-
Simplify development and testing without connecting to ICP
Learn how it works
Get started
- Rust: ic-pub-key (brand new)
- TypeScript: @dfinity/ic-pub-key