Guide · updated 2026-10-24
The Anoma shielded pool: what is public and what stays private
The shielded pool is where AnomaPay holds tokens so people can use them privately on ordinary EVM networks. The pool's total and the wallets that move tokens in or out are public. Who owns what inside is not. This guide explains both sides and where each one is measured on this site.
What the shielded pool is
AnomaPay brings a shielded pool to EVM networks, so tokens can be used privately without bridging them to a separate privacy chain. Value inside the pool is held as resources: records stored encrypted on-chain, each standing for an amount of one token owned by one user, which only that owner can decrypt. AnomaPay's introduction draws the line this guide follows. The total balance of the pool is public, but which tokens inside it belong to whom is known only to each holder. Anoma's post on the Base launch makes the same point from the user's side: depositing cuts the link to the public wallet the tokens came from, and that is what makes the AnomaPay balance private. [1] [2] [3]
- Shield (Mint, or deposit)
- Moving tokens from an ordinary wallet into the pool. AnomaPay's Transfers page calls this a Mint (deposit): the user signs a Permit2 authorization (a signed permission to move tokens), the tokens go to the forwarder contract, and a new private resource encrypted to the user is created. [1]
- Private transfer (Transfer)
- Moving value inside the pool. In AnomaPay's docs a Transfer (private send) moves tokens from the sender's resource into a new resource encrypted to the receiver's public keys, and a change-back resource is created for any remainder. Nothing crosses the pool boundary. [1]
- Unshield (Burn, or withdrawal)
- Moving tokens out of the pool to an ordinary wallet. AnomaPay's docs call this a Burn (withdrawal). It works like a private transfer, except that the receiver is an EVM wallet address. [1]
- Resource
- AnomaPay's unit of private value: a record of a token amount owned by one user, stored encrypted on-chain. A resource is immutable: the protocol creates and consumes resources instead of updating balances. Whether one has been spent is found by checking its nullifier against the public list of nullifiers. [1]
- Forwarder contract
- A contract through which the Protocol Adapter controls shielded funds. AnomaPay's introduction calls the Protocol Adapter, a smart contract deployed on every supported EVM chain, the anchor of the system: it controls shielded funds through forwarder contracts and verifies the proofs that authorize transfers. [1]
- Contract call from the pool (generic call)
- Using shielded tokens with another contract, such as a swap, without first unshielding to a wallet. Anoma's docs describe value being unwrapped from the pool to a generic call forwarder, the calls running in order, and the results being wrapped back into the pool, all in one transaction that reverts if any step fails. [1]
- Pool boundary
- Gnoma's word for the shields and unshields taken together: the point where the pool meets ordinary wallets. AnomaPay's privacy page lists this part, under Shielding/Unshielding, as visible on-chain. [1]
What stays private, and what is public
AnomaPay's privacy page lists what a shielded transfer in the AnomaPay app hides: the sender, the amount and the receiver. Amounts are encrypted in the state of the Anoma Resource Machine, which is Anoma's state and execution model, and only the sender knows who the recipient is. A chain observer sees the Protocol Adapter working with AnomaPay's Transaction Service, not the user's own address. The security and trust model page says the same: someone reading the chain cannot see the sender, the receiver, the token or the amount of a shielded transfer. AnomaPay's Transfers page sums up a private send in one line: [1] [2] [3]
Neither the amount nor the parties are visible on-chain.
docs.anoma.net
Moving tokens in or out is the visible part. AnomaPay's privacy page says the wallet a deposit comes from and the wallet a withdrawal goes to are visible on-chain: they are the addresses that interact with the forwarder contracts through Permit2. This explorer reads each shield and unshield from the forwarder's call data, which also carries the token and the amount. A swap run from the pool is partly public too: AnomaPay's Swaps page says the forwarder's trade on the venue (the market that fills the trade) is visible on-chain with its tokens and amounts, but cannot be linked to a specific AnomaPay user. One more limit is on the privacy page. The Proving and Transaction services receive a transaction's witness data to generate its proofs, so they can see its metadata while they process it, and the trust model page adds that this witness data includes the sender, receiver, asset and amount. The privacy described here is privacy from people reading the chain, and the public ends are what the Shielded pool page measures. [1] [2] [3]
Where the tokens sit, and the check on Proof
Shielded tokens are held by contracts, not by anyone's wallet. A Mint sends the tokens to the forwarder contract, and the Protocol Adapter page says the smart contract governing funds on-chain lets them move only with a valid proof. The generic call forwarder used for swaps and other calls is different: Anoma's docs describe it as a pass-through rather than a store of funds. Tokens pass through it inside one atomic transaction, and anything left behind can be swept by anyone. The same docs describe its movements as an unwrap out of the pool and a wrap back in, and this explorer's API uses the same pair of words: wrap for a shield and unwrap for an unshield. Because a forwarder's token balance is public, anyone can compare it with what was shielded. The Proof page does this on each network every ten minutes: every shield the explorer indexed, minus every unshield, per token, must equal what the forwarder contract holds. Holding more is possible, since anyone can send tokens straight to the contract, and means nothing indexed is missing; holding less would mean a flow is missing. A disagreement has to show up in three checks in a row before it is reported. [1] [2] [3] [4]
What an observer can measure at the boundary
- Value in the pool: every shield minus every unshield, per token, drawn by network over time and priced in US dollars at today's prices where a price feed exists.
- What settlements do: the share of settlements that moved value entirely inside the pool, next to those that shielded, unshielded or called other contracts. A fully shielded settlement moves no token in or out of the pool.
- Round trips: unshields paid to a wallet that had shielded the same asset before. Reusing a wallet links the two ends directly.
- Repeated amounts: unshields whose amount equals an earlier shield's amount of the same asset, and the ones where exactly one shield ever had that amount, which is the easiest link to draw.
- Time in the pool: for round trips, the wait between a wallet's shield and its next unshield, grouped from under ten minutes to over a week, with the median. A short wait leaves fewer shields an unshield could have come from.
- The crowd: distinct wallets that have ever shielded, the group an unshield can hide among, and how many of them have also received an unshield.
- Contracts called from the pool: the first contract each multi-step call paid from shielded tokens reached, with a count per contract. Each call is decoded step by step on External calls.
- Per asset: each token on each network has its own page at
/shielded/{chainId}/{token}, opened from the By asset table, with its balance over time, flows, the amounts people shield most often, time in the pool and the latest shields and unshields. - Per wallet: an address page,
/address/{address}, lists the shields that wallet made and the unshields it received. Transfers inside the pool never appear there. - The same data as JSON: /api/v2/shielded/analytics for the boundary measures, /api/v2/calls for each decoded shield and unshield, and /api/v2/proof for the forwarder balance check.
Shielded pool The value in the pool now, the share of fully shielded settlements, round trips, repeated amounts, time in the pool and the crowd, with a table of every asset and when the figures were computed.
Questions
- Is the Anoma shielded pool balance public?
- Yes, the total is public. AnomaPay's introduction says the pool's total balance is public, while which tokens belong to whom is private and known only to each holder. The live value, by network and by asset, is on Shielded pool, and the forwarder balances behind it are checked on Proof.
- Can people see my AnomaPay deposit or withdrawal?
- Yes. AnomaPay's privacy page says the wallet a deposit comes from and the wallet a withdrawal goes to are visible on-chain, and this explorer reads the token and amount of each one from the forwarder's call data. What happens between those two ends, inside the pool, is not shown.
- Is a shield the same as a Mint or a deposit?
- Yes, they are names for one action. This site says shield and unshield, AnomaPay's Transfers page says Mint (deposit) and Burn (withdrawal), and the explorer's API labels them
wrapandunwrapin /api/v2/calls. - Where are shielded tokens actually held?
- In forwarder contracts: AnomaPay's Transfers page says a Mint sends the tokens to the forwarder contract, and its introduction says the Protocol Adapter controls shielded funds through them. Each forwarder the explorer checks is listed on Proof with its address and token balances, compared every ten minutes with every shield minus every unshield.
- What makes a withdrawal easier to link to a deposit?
- Three public patterns link the two ends: an unshield to the wallet that shielded, an amount only one shield ever had, and a short time between the two. A fresh receiving wallet, a common or different amount and time in the pool leave more possible sources. The Shielded pool page counts each pattern, overall and for every asset.
- Is this explorer part of AnomaPay or Anoma?
- No. Gnoma Explorer is independent and not affiliated with the Anoma Foundation or Heliax, and explorer.anoma.net is Anoma's official explorer. Gnoma and explorer.anoma.net explains how the two differ.
Sources
- Introduction
- Privacy Guarantees
- Security, Compliance, & Trust Model
- The Anoma Protocol Adapter
- Transfers
- Resources
- Generic Calls
- Swaps
- The Anoma Resource Machine
- AnomaPay is Now LIVE on Base
Gnoma Explorer is independent and not affiliated with the Anoma Foundation or Heliax. Statements about Anoma are Anoma's own, from the sources above; figures are this explorer's, from the pages linked in the text.
Read next: Shielded pool · Proof · External calls · Anoma glossary: the terms in plain words · How to look up and verify an Anoma transaction