FAQ
Questions, answered
Everything you should know before putting funds in a pool.
How it works
What does ArcaneZK actually do?+
It breaks the on-chain link between the address that deposits and the address that withdraws. Funds of the same denomination are pooled together; a withdrawal proves membership in the pool with a zero-knowledge proof instead of pointing at a specific deposit.
Why fixed denominations?+
If every deposit were a different amount, matching a withdrawal to its deposit would be trivial. Fixed sizes make all deposits in a pool look identical.
What is in the note?+
Two random 31-byte numbers: a nullifier and a secret. Their Pedersen hash (the commitment) is stored on-chain at deposit time. At withdrawal the proof shows that you know a preimage of some commitment in the tree and reveals the hash of the nullifier so the same note cannot be spent twice.
Where is the proof computed?+
Entirely in your browser, using a Groth16 prover compiled to WebAssembly. The circuit and proving key (≈34 MB) are downloaded on first withdrawal and cached. Your note never leaves the device.
Which zero-knowledge circuit is used?+
The audited tornado-core v2 withdraw circuit (Merkle height 20, MiMC-sponge tree, Pedersen commitments). The on-chain Verifier was generated from the same trusted setup, so ArcaneZK does not introduce new cryptographic assumptions.
Assets & Arc
Which assets are supported?+
Native USDC (Arc's gas token) and EURC, Circle's euro stablecoin. New tokens and denominations can be added by anyone through the pool factory; this interface lists a curated set.
Why are USDC pools 'native' and what about decimals?+
On Arc, USDC is the native asset — like ETH on Ethereum — so USDC pools take the value directly with the transaction and need no approval. The native balance uses 18 decimals while the optional ERC20 view uses 6; they are the same balance, and this interface always shows one USDC figure.
What do I pay in gas?+
Arc fees are paid in USDC, typically a few cents. A deposit is roughly 1M gas (the Merkle tree update dominates); a withdrawal is ~350k gas for the pairing check. There is no protocol fee.
Is there a relayer?+
Not yet. The wallet you connect on the withdraw page sends the transaction and pays gas, so it should be a fresh wallet with a little USDC — ideally the recipient itself. The contracts already support relayers and fees, so one can be added later without redeploying.
Can a withdrawal fail because of Arc's transfer rules?+
Arc enforces a runtime blocklist on native USDC and rejects sends to the zero address. A withdrawal only pays the recipient you choose, so it can fail only if that recipient is blocklisted — pick another address and withdraw again; the note stays unspent.
Safety
I lost my note. Can you help?+
No. There is no account, no admin key and no backdoor. A lost note means the deposit is unrecoverable by anyone.
How long should I wait before withdrawing?+
As long as you can. Timing is the most common way privacy is broken: withdrawing minutes after depositing, or always withdrawing at the same time of day, links the two. Also prefer pools with a large anonymity set.
Can the team freeze or upgrade the contracts?+
No. The pools, verifier and factory are immutable, non-upgradeable and have no owner. This website can disappear and the funds remain withdrawable with the note and any compatible interface.
Is this legal to use?+
Privacy tools are legal in most jurisdictions, but sanctions and financial regulations vary. You are responsible for complying with the laws that apply to you. Do not use ArcaneZK to launder proceeds of crime or evade sanctions.