Ethereum Foundation zkAPI launch October 2026
On 1 October 2026 the Ethereum Foundation and the Open Anonymity Project launched zkAPI on Ethereum mainnet. A zero-knowledge proof authorizes spend without telling the payment layer who paid.

On 1 October 2026 the Ethereum Foundation and the Open Anonymity Project launched zkAPI on Ethereum mainnet. The Ethereum Foundation zkAPI launch October 2026 is a way to pay for model access without telling the payment layer who paid. A user deposits ETH or USDC into a vault, authorizes a spend with a zero-knowledge proof, and a server returns a short-lived, spend-capped API key. Prompts still go to the model provider. The design draws a line between hiding a payment and hiding a person.
What happened
The organizations named in both accounts are the Ethereum Foundation and the Open Anonymity Project. The date both accounts support is 1 October 2026. The network is Ethereum mainnet. The product name is zkAPI. This article stays with that launch. It does not add a design history, a fee schedule, or a list of assets beyond ETH and USDC.
A session starts with a deposit. The user places ETH or USDC into a vault. That deposit is the balance that can later fund model use. The accounts do not say the vault accepts any other asset, and this article will not name one. After the deposit, the user authorizes a spend with a zero-knowledge proof. In plain terms, a proof of that kind lets the user show that a spend is allowed without handing the payment layer the facts that would identify the payer or the deposit. The privacy claim is about the payment layer. It is not a claim about every computer the prompt later touches.
A server then issues an API key. The key is short-lived. The key is spend-capped. The accounts do not state how many minutes "short-lived" means, and they do not state the cap in ETH, in USDC, or in dollars. The key is what the client uses. The proof is what authorizes the spend. They are different objects. Treating the key as if it were the proof would overstate what the credential itself hides.
The client speaks the OpenAI and Ollama APIs on localhost. A program that already knows how to call those two APIs can point at the local client. Localhost means the client is on the user's own machine. It does not mean the model runs there. Prompts go to the model provider. The local client is a speaking layer. The provider is still the party that receives the prompt.
The payment layer does not learn who paid. It also does not learn which deposit funded the session. Those are two limits, and both are stated. Not learning the payer's identity is not the same fact as not learning which vault balance paid. A nullifier blocks spending the same balance twice. A nullifier is a marker that a particular right to spend has already been used. Without it, a proof that a balance is available could be presented again. The accounts give the nullifier that job only. They do not describe it as a tool that hides an IP address or that strips a prompt of identifying detail.
Why it matters
The useful way to read the launch is to list who still sees what. The payment layer does not learn who paid or which deposit funded the session. The model provider receives the prompt. The client does not hide the user's IP, so the network path can still expose it. Prompt content can still re-link sessions. Payment privacy and session unlinkability are not the same property. zkAPI, as launched, claims the first. It does not claim the second.
That limit is part of the news. Both accounts say the client does not hide the user's IP, and both say prompt content can still re-link sessions. The proof sits between the user and the payment layer. It does not sit between the user and the model provider, and it does not sit between the user and the network.
Speaking the OpenAI and Ollama APIs on localhost makes the payment step fit tools that already use those interfaces. It also means those tools still send prompts onward. Compatibility is not confidentiality. A short-lived key limits how long a credential remains useful. A spend cap limits how much that credential can draw. Neither limit removes the prompt from the provider, and neither limit masks a network address.
The nullifier matters because the system these accounts describe depends on a balance that can be spent once. The marker blocks a second spend of the same balance. It is not, in these pages, an anonymity feature. What the payment layer is kept from learning is still a real boundary: a ledger of model use attached to a name, or to a particular deposit, is what that layer does not receive. The boundary stops there. Identity can still leak through the IP address the client does not hide, and through the words in the prompt.
What's next
The supported description is narrow. Deposits are ETH or USDC. A zero-knowledge proof authorizes the spend. A server issues a short-lived, spend-capped API key. The client speaks the OpenAI and Ollama APIs on localhost. Prompts go to the model provider. The payment layer does not learn who paid or which deposit funded the session. A nullifier blocks spending the same balance twice. The client does not hide the user's IP. Prompt content can still re-link sessions.
No key lifetime, no cap amount, no fee, and no further model provider is stated in the accounts used here. The launch is the event. The limits on what it hides are the point. For adjacent coverage, see Robinhood agents and SEC crypto AI charges.
The Ethereum Foundation's account is here. A second account is here.
This article is for information only and is not investment advice.