⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

zkAddress System

Manta Atlantic augments traditional Substrate accounts with shielded zkAddresses so users can transact privately while retaining compatibility with Polkadot tooling.

Dual-Address Model

  • Public account – Handles staking, governance, and XCMP interactions using standard Polkadot keys.
  • Private zkAddress – Holds UTXO-style notes that represent balances, credentials, or proofs, enabling confidential transfers and credential issuance.

Key Concepts

ComponentPurpose
Viewing KeyLets holders inspect their private note set locally without revealing it to the network.
Prove KeyGrants third parties the ability to verify specific proofs, supporting selective disclosure in compliance workflows.
Note CommitmentBinds balances or credentials to zkAddresses using commitments stored in Atlantic’s runtime.

Private Transaction Flow

  1. Note creation – Sender generates a new commitment and encrypts the payload with the recipient’s viewing key.
  2. Proof generation – Sender calls zk_generateProof to produce a zero-knowledge proof of validity without revealing note contents.
  3. Submission – The proof and ciphertext are broadcast via extrinsic or RPC, updating the UTXO set while keeping balances hidden.
  4. Consumption – Recipient scans encrypted updates, decrypts matching notes, and updates their local wallet state.

Interoperability

  • zkAddresses can export proofs to partner chains (e.g., Bifrost, Moonbeam) to unlock wrapped liquidity without disclosing identities.
  • Polkadot asynchronous backing keeps private transfers within expected latency bounds even during high throughput periods.

Operational Tips

  • Rotate Prove Keys regularly and record distribution logs to maintain auditability.
  • Cache circuit parameters locally to avoid latency spikes in proof generation services.
  • Monitor state_getStorage for note commitment merkle roots to keep client state synchronized.

Continue to the RPC reference for invocation details.