Quick reference for all active Kusama Shield contract deployments.
| Contract | Address |
| Shield Pool V7 | 0x0D694Da746e73D1e255c1894F90e38170db45809 |
| ZK Verifier | 0x6A13781E43AEA21918120CD0E7a2ed8614c01e14 |
| Poseidon Hasher | 0xB8F0C6679D6Cc56450470522Bd96573C3D615052 |
| Deployment Block | 18460000 |
| Contract | Address |
| Shield Pool V7 | 0xbcE09D4De052b2816df1285663ac89528DF45380 |
| ZK Verifier | 0xcA4cBc5d31eccd08d393C43aF492F729FF30b685 |
| Poseidon Hasher | 0x1d165f6fE5A30422E0E2140e91C8A9B800380637 |
| Deployment Block | 11273491 |
| Contract | Address |
| Shield Pool V5 | 0x625159459EB6C50C4F4b126A955B18d5c4DCA573 |
| ZK Verifier | 0x66988131CFfd10d2804ffaC93Ac302D0886D7829 |
| Deployment Block | 0 |
| Network | HTTP (EVM) | WSS (Substrate) |
| Polkadot AH | https://polkadot-assethub-rpc.laissez-faire.trade | wss://asset-hub-polkadot-rpc.polkadot.io |
| Polkadot AH (alt) | https://eth-rpc.polkadot.io/ | — |
| Paseo AH | https://paseo-assethub-rpc.laissez-faire.trade | wss://asset-hub-paseo-rpc.n.dwellir.com |
| Kusama AH | https://kusama-rpc.laissez-faire.trade | wss://kusama-asset-hub-rpc.polkadot.io |
| Kusama AH (alt) | https://eth-rpc-kusama.polkadot.io/ | — |
| Network | URL |
| Polkadot AH | https://blockscout.polkadot.io/ |
| Paseo AH | https://testnet.routescan.io/ |
| Kusama AH | https://blockscout-kusama.polkadot.io/ |
// Deposit
function depositNative(bytes32 commitment) external payable
function depositAsset(uint256 assetId, uint256 amount, bytes32 commitment) external
function depositAssetDirect(uint256 assetId, uint256 amount, bytes32 commitment) external
// Withdraw
function withdraw(uint256[2] pA, uint256[2][2] pB, uint256[2] pC, uint[8] pubSignals, address recipient) external
function proxy_withdraw(uint256[2] pA, uint256[2][2] pB, uint256[2] pC, uint[8] pubSignals, address recipient) external
// Queries
function currentRoot() external view returns (uint256)
function treeSize() external view returns (uint256)
function getEscrowBalance(address) external view returns (uint256)
function isNullifierSpent(bytes32) external view returns (bool)
function isKnownRoot(uint256) external view returns (bool)
function verifier() external view returns (address)
// Events
event Deposit(address indexed asset, bytes32 commitment)
pubSignals = [
newCommitmentHash, // [0] Change commitment in tree
existingNullifierHash, // [1] Marks spent deposit
contextHash, // [2] Replay protection
withdrawnValue, // [3] Amount withdrawn
treeDepth, // [4] = 128
context, // [5] Chain-specific binding
root, // [6] Merkle tree root
asset, // [7] Asset precompile address
]
// pi_a: [bigint, bigint] — 2 elements
// pi_b: [[bigint, bigint], [bigint, bigint]] — 2×2, transposed for Solidity
// pi_c: [bigint, bigint] — 2 elements
The pi_b matrix is transposed — [[b[0][1], b[0][0]], [b[1][1], b[1][0]]] — matching the snarkJS Solidity verifier convention.
| File | Purpose |
withdraw_phase2_fixed_v7.wasm | Witness calculator |
withdraw_phase2_fixed_v7_0001.zkey | Proving key |
withdraw_phase2_fixed_v7.circom | Circuit source |
These addresses are no longer in use — do not interact with them:
| Contract | Address | Issue |
| Old Polkadot Pool | 0x6f54d64C5619363722e4D1E4E53176F7f2FD57bf | Used incompatible bn254_x5 hasher |
| Old Polkadot Hasher | 0x66988131CFfd10d2804ffaC93Ac302D0886D7829 | Mismatched ZK circuit constants |
| Old Paseo Pool (V3) | 0x3099889C1538f0200B831181cbfb532a4e9A418F | Pre-V7 circuit |
21888242871839275222246405745257275088548364400416034343698204186575808495617
All Poseidon hashing, Merkle tree arithmetic, and Groth16 proofs operate in this field.
npm install @kusamashield/shielded-transfers@0.1.4
See Integrate via the SDK for usage instructions.