Status
| Tag | Meaning on this site |
|---|---|
| Built | Runs end to end on local chains with real proofs. Not deployed on a public network. |
| Held back | The software exists and is intentionally not opened to user funds. |
| Proposed | Direction is set. The contracts or parameters are not. |
| Separate | Part of DarkSwap, not part of ZK Darkpool. Linked so the two are not confused. |
Proof system
| Item | Value | Status |
|---|---|---|
| Circuit language | circom | Built |
| Proof | Groth16 on BN254, also written alt_bn128 or bn128. Eight public inputs. | Built |
| Hash | Poseidon for commitments, nullifiers, and the note tree | Built |
| Prover | snarkjs in the browser | Built |
| Proving time | 2 to 5 seconds per transaction on a 2-core test machine | Local measurement |
| Shape | Up to 2 notes in, 2 notes out, one asset | Built |
Note tree
| Item | Value |
|---|---|
| Depth | 26 |
| Slots per pool | 67,108,864, shared across assets in that pool |
| Slots per shield or spend | 2, so about 33.5 million such operations |
| When full | Deposits stop. Withdrawals of whole notes continue. |
| Accepted roots | Last 1,000 on Ethereum and Base. Last 256 on Solana. |
Local cost measurements
These are measurements on local chains, not a fee quote for a public network.
| Action | Ethereum and Base | Solana |
|---|---|---|
| Shield | About 1.16 to 1.22 million gas | Spend path measured at about 161,000 to 172,000 compute units. A separate shield figure was not published. |
| Private send | About 1.32 million gas | About 161,000 to 172,000 compute units |
| Unshield | About 1.38 million gas | Same spend range. Relayer rent for two small accounts is recovered in its fee. |
Assets
| Pool | Accepts | Does not accept |
|---|---|---|
| Solana program | SOL and listed SPL tokens on the original Token program | Token-2022 tokens. DarkSwap’s $DARK is Token-2022, so it cannot be shielded in this pool as built. |
| Ethereum and Base contract | ETH and listed ERC-20 tokens | Assets the admin has not listed. Unlisted assets have no books in the pool. |
Listing an asset sets its minimum deposit, maximum deposit, and the cap on how much the pool may hold. Books are per asset. A bug or a loss in one asset’s accounting is not allowed, by design, to pay out from another.
Fees
| Fee | Amount | Status |
|---|---|---|
| Protocol fee on shield | 0.5% in tests. Admin may change it. Contract cap 1%. | Built |
| Protocol fee on private send | None | Built |
| Protocol fee on unshield | Same rate as shield | Built |
| Relayer fee | Separate. Taken from a relayed withdrawal. Private sends are relayed inside a rate limit without this fee. | Built |
| Fee recipient | One address, fixed at deployment. Sweep pays that address and no other. | Built |
| Where fees go after the recipient | Undecided in the contracts. An earlier DarkSwap note proposed converting fees onward. Those forwarding contracts are not written. | Proposed |
ZKDARK is the Solana token. Buy it on PumpSwap and read the market on DexScreener. This reference does not assign it a supply, a fee share, or a holder distribution. DarkSwap’s $DARK creator fee, wNEAR payouts, and ZEC-DARK liquidity belong to that token and that terminal. They are not ZKDARK economics.
Admin and upgrades
The admin can list assets, set deposit limits, disable deposits for an asset, pause all new deposits until a date fixed at deployment, change the protocol fee up to the cap, and hand the admin role to another key. Handover takes two steps on Ethereum and Base, and one step on Solana.
The admin cannot move user funds, pause withdrawals, change the fee recipient, or change the verifying key.
The Ethereum and Base pool has no upgrade path. The Solana program has an upgrade authority, as Solana programs do. Until that authority sits behind a multisig with a delay, or is removed, its holder can replace the program and every rule in it, including the rules about funds. That move is required before mainnet and has not been made. The signers are not chosen.
Keys in the client
- One spending secret, from a wallet signature over a fixed message or from 24 words.
- Held in memory only after unlock. Not written to storage.
- Dropped on lock, or after 30 minutes idle.
- While unlocked, that page can spend the notes.
Gates before user funds
- Public testnets.
- The two circuit decisions that must be settled before a ceremony.
- Fee-recipient contracts, written and reviewed first, because the recipient is immutable after deployment.
- A setup ceremony with outside contributors, replacing development proving keys.
- An independent audit, with findings resolved.
- Mainnet with deposit caps. Solana upgrade authority delayed or removed.
Not built yet: viewing keys, a standalone recovery page, swaps inside the pool, and a path that funds the Ethereum and Base pools from Solana.
Also still open, and not assumed here: who would own any liquidity bought with fees, the exact launch fee inside the 1% cap, whether the Ethereum and Base pools check a sanctions list on depositors, and the licence under which source is published.
Risks
- Development keys. Groth16 trusts the ceremony. Keys from a single development machine are not a ceremony. Forged proofs are possible until that changes.
- No public deployment and no independent audit. Local tests and two internal reviews are the record so far. Reviews are not an audit.
- The client holds the key. A bad or look-alike site that gets your signature or your 24 words can spend notes.
- One relayer. If it is down, you submit yourself. That costs gas and, for a withdrawal, names your wallet.
- Solana upgrade authority. Until it is constrained, the program can be replaced.
- Edges leak. Deposits name a wallet and an amount. Withdrawals name an address and an amount. Unusual amounts and tight timing can reconnect them. Small pools hide less.
- Network metadata. IP addresses and connection times are visible to the site, the relayer, and RPC providers.
- Assets can freeze. A token issuer may still freeze or blacklist an address. The pool cannot undo that, and it also cannot undo its own acceptance of a deposit.
- Legal. DarkSwap reported that no legal opinion had been obtained for this design. Privacy tools draw regulatory attention. This site does not add an opinion.
Sources
The numbers and limits above are restated from DarkSwap’s published description of its own ZK pools, so the successor protocol does not invent a second design.
- DarkSwap whitepaper v0.4 — 6 October 2026. Supersedes v0.3.
- How DarkSwap works — the three tiers, and which one is live.
- Confidential routing and ZK shielding — why NEAR routing is not this pool.
- ZK Darkpool on X — @thezkdarkpool.
Where a future deployment disagrees with this page, the deployment governs. Where DarkSwap’s terminal disagrees with this page about NEAR swaps, DarkSwap’s terminal governs those swaps.