Ethereum Foundation's zkAPI mainnet launch brings a privacy-first AI payment system. Users can get back unspent balances even if the server goes offline, but missing deadlines means the protocol treasury can take the funds.
When a billing server disappears, most crypto users assume their prepaid funds are gone for good. The Ethereum Foundation's zkAPI, live on mainnet since October 1, 2026, tries something different. It's a privacy-focused AI payment system that lets users recover leftover balances without needing the server to cooperate. But there's a catch. If you miss the right window, your deposit can end up in the protocol's treasury instead of your wallet.
How zkAPI changes recovery
zkAPI was built by Open Anonymity with the Ethereum Foundation, using a design from Davide Crapis and Vitalik Buterin. It's made for metered API payments. Instead of moving funds onchain for every API call, users deposit ETH (or, as the announcement says, USDC credits) into a vault. Their wallet keeps a private spending state. Cryptographic proofs authorize usage. As the server handles requests, it signs new states showing the updated balance. The key difference: if a user still has an unused spending state, they can try to withdraw funds even if the server won't respond.
zkAPI uses Groth16 zero-knowledge proofs on the BN254 curve, Poseidon hashes, and a 32-level Merkle tree to enable privacy-preserving API payments.
There are two ways to withdraw. The first, called mutual close, needs the server's signature to approve a payout. The second, escape withdrawal, lets users start recovery without the server. When a user triggers an escape, the vault marks the note as inactive and sets up a pending payout. A 24-hour challenge period starts. If no one proves the spending state was already used, the user gets the remaining balance. If someone submits a valid challenge, the payout is canceled and the note goes back to active. There's no penalty for a failed escape.
Deadlines and treasury claims
Timing matters. The vault code sets a 30-day note lifetime, rounded up to the next full day. If a user doesn't withdraw before expiry, the protocol treasury can claim the whole deposit through an expiry claim. This is a hard cutoff. Once a note expires, the user loses the right to recover any leftover balance unless an escape withdrawal was already in progress. The vault owner also has a pause switch. This can block new deposits, mutual closes, and escape starts, but not the finalization of already-pending escapes or expiry claims. Users who act fast can recover funds. Those who wait too long risk losing everything.
The system tracks balances in ETH, not stablecoins, even though the announcement mentions USDC credits. API usage priced in dollars is converted to a capped ETH charge using a Chainlink ETH/USD price quote, locked at the time of authorization. This stops repricing during settlement, but the dollar value of the user's ETH can still change with the market.
While zkAPI enables users to prove payment for API usage without linking activity to a billing identity, independent coverage confirms that full anonymity is not achieved: the AI provider can still see prompts and network metadata may link sessions across uses.
Security, trust, and practical limits
zkAPI's cryptography uses a Groth16 circuit. Setup keys come from a single party, with no multiparty ceremony. The manifest calls the integration experimental and unaudited, so users have limited guarantees. The privacy setup means the provider still sees API request content and network metadata. Billing privacy does not mean full user anonymity. Recovery depends on the user keeping their spending state and acting before expiry or pause events block their options.
Provider receipts and server-signed successor states are still needed for settlement. If a user tries to withdraw from a state that already paid for a request, a challenger can use the state's nullifier to block the payout. This stops double-spending but does not settle disputes over the provider's billing. The escape route is a fallback, not a blank check. Users must prove their claim and act before protocol deadlines close the door.
Onchain recovery in context
Ethereum's push for better payment and settlement tools goes beyond zkAPI. Other experiments, like instant transaction guarantees, also try to cut user reliance on centralized middlemen. But zkAPI shows that technical safeguards only work if they're well built, and users must watch deadlines, keep backups, and know recovery steps.
Etherscan shows the vault tied to zkAPI's mainnet launch was created on September 30. Activity logs show ETH-denominated deposits and payouts. The protocol's challenge period is 86,400 seconds (24 hours), and the note expiry window is 30 days, rounded up. These set the real window for user recovery and treasury claims.
zkAPI's design shows the trade-offs between user control, protocol deadlines, and server risk. The escape withdrawal gives users a way out if servers fail, but it doesn't remove the need for careful record-keeping and quick action. The protocol is experimental and lacks a multiparty trusted setup, so users should treat it as a testbed, not a finished product. For anyone prepaying for AI cloud services, the lesson is simple: keeping control of your funds depends on cryptography-and on acting before time runs out.
Onchain payment systems like zkAPI show how hard it is to balance user freedom with protocol rules. Nullifiers stop double-spending, challenge periods allow disputes, and expiry claims handle abandoned funds. But these tools also bring new dependencies-on wallet backups, user timing, and smart contract uptime. As more crypto payment tools move onchain, both developers and users will need to understand these trade-offs to handle the risks and rewards of decentralized finance.