How privacy works

Noid AI keeps two things apart: the wallet that pays, and the messages you send. Here is how, and where that stops.

Paying without saying who paid

When you buy a credit pack, your browser derives a secret for it from your sign-in signature, so the pack can always be found again with your wallet, on any device. Only a fingerprint of the secret goes on Ethereum, into the same public list as every other pack.

To put credits on a chat or an API key, your browser proves that it holds the secret of one of the packs in that list, without saying which. This is a zero-knowledge proof using RLN (Rate-Limiting Nullifier). The server checks the proof and adds the credits; it never learns which pack, or which wallet, paid.

Each 10 credits of a pack can be used once. Using the same ones twice (for example by restoring an old backup copy into a different account) reveals the pack's secret, and anyone can then block the rest of the pack.

Your account

Signing in asks your wallet to sign one fixed message. From that signature your browser derives two things: an account number and an encryption key. Your account (credit packs, chats, API keys) is encrypted with that key before it is saved on the server, which cannot read it and never sees your wallet address.

The signature is the same every time, which is how any device can open your account. It is also why you should only sign that message on this app: anyone who gets the same signature can open your account.

Credits are saved to your account before they are used, so two devices can never use the same ones. This trusts the server to hand back your latest saved account: a server that returned an older copy to a new device could make it use the same credits twice, which blocks the pack.

Buying a pack does not save your account, so the server cannot match a save to a purchase on Ethereum. The new pack joins your saved account the next time it is saved for another reason (a chat, a key, using credits). The saved copy then grows by one pack, at a time set by what you do next, not by the purchase.

Chats and API keys

Every chat has its own hidden API key, topped up from your packs when it runs low. Messages in one chat can be linked to each other; messages in different chats cannot, except through what you write and when. The same goes for API keys you make for your own tools: one key per app or task keeps them apart.

Models are labeled Private enclave (the provider runs the model in a secure enclave) or Standard (the provider reads the message normally). Neither is told who sent it; both read the full message.

Who knows what

Every party sees one piece. The design keeps your wallet and your messages apart.

Your browser

Sees: Your credits, chats, API keys and the secret behind each credit pack.

Never learns: It sends only what the rows below list.

Ethereum (public)

Sees: That a wallet bought a credit pack, its size, when, and a fingerprint of the pack's secret.

Never learns: Which chats or keys the pack paid for.

Reown (WalletConnect)

Sees: Your wallet address and IP address when you connect a wallet.

Never learns: Your credits, chats or messages.

The app's Ethereum node

Sees: Your IP address, a price check every 30 seconds and a member list check every 60 seconds while the app is open, and your purchase.

Never learns: When you use credits: it is not contacted then.

The Noid AI server

Sees: Your account, encrypted so it cannot read it, and when it is saved (buying a pack does not save it). Each message in full, when it arrives, and which key paid. Keys topped up right after a save, or checked together, show it they belong to one account.

Never learns: Your wallet, or which credit pack paid.

The model provider

Sees: Each message in full (inside a secure enclave on Private enclave models).

Never learns: Who sent it. It sees the Noid AI server, not you.

The web host

Sees: Page loads.

Never learns: Your wallet: its connection stays in your browser's storage, not in a cookie.

What this does not hide

Anonymous payment is one layer. This is where it stops.

  • The Noid AI server and the model provider read your messages in full. Do not put your name, or anything that points to you, in them.
  • You hide among everyone who bought a credit pack. Fewer packs means a smaller crowd.
  • Pack sizes are public. Buying the rare large pack, then using a lot of credits at once, stands out.
  • Timing gives you away: using credits right after your purchase lands on Ethereum links the two. Wait, and let other purchases happen in between.
  • Messages in one chat, or made with one API key, can be linked to each other. Every chat gets its own hidden key for this reason.
  • The server can tell which keys belong to one account when they are topped up right after a save or their balances are checked together. It still never learns the wallet.
  • Anyone who gets you to sign the exact sign-in message on another site can open your account. Only sign it on this app.
  • Connecting a wallet goes through Reown (WalletConnect), which sees your wallet address and IP address at that moment.
  • The server does not log IP addresses, but your connection still reaches it. Use Tor or a VPN if your network address matters.

Where this comes from

In October 2026 Vitalik Buterin showed how he uses AI without being watched. He pays with zero-knowledge proofs, sends each conversation through its own Tor circuit, mixes fake requests in with the real ones, and has a local model rewrite every prompt before it leaves his laptop. It works, and it takes an afternoon of setup and a lot of patience with latency. Noid AI starts from the same idea and puts the payment part in a browser tab. Read his post.

Anonymous paymentBuilt in

His setup: zkAPI

Noid AI: Every message is paid with a zero-knowledge proof (RLN). The server never learns which wallet paid.

A new identity per conversationPartly

His setup: A separate Tor circuit for each one

Noid AI: Every chat gets its own hidden key, so the server cannot link one chat to another. Your traffic does not go through Tor: bring Tor or a VPN yourself if your IP address matters.

Cover trafficNot built

His setup: Random fake requests around the real ones

Noid AI: Not here yet. The server sees your real messages and when they arrive.

Prompt rewritingNot built

His setup: A local model rewrites each prompt first

Noid AI: Not in the app. With an API key you can put your own local rewriter in front of us.

So this is not the whole paranoid mode. It is the part that needs Ethereum, ready to use without setting anything up. Noid AI is independent and not affiliated with or endorsed by Vitalik Buterin.

Building your own client? The protocol and every endpoint are in the API docs.