AI agents are doing more and more of people's web searching now, but every one of those queries still leaks who's asking and what they're asking about to whoever runs the search backend. There's no way for an agent to search on your behalf privately. MeshSearch is an MCP server (works with Claude, Cursor, or anything else that speaks MCP) that tries to fix that with actual cryptography instead of a privacy policy.
How it's actually private
Getting any single piece of this right isn't that hard on its own, there's plenty of prior art for anonymous payments or private queries individually. What took the most thought was making sure none of the pieces leaked each other. Queries are committed client-side with Semaphore ZK proofs before they ever leave your device, so the backend never sees a query it can tie back to you. Payment is an x402 USDC micropayment on Base Sepolia, so there's no account or identity involved, just a wallet signing off on a request.
The part I spent the most time on was the payout side. Even with fully anonymous queries, if the same wallet keeps paying the same three relay operators over and over, that pattern alone tells you who's using the network and how often. So payouts route through BitGo instead of a plain on-chain transfer, and each relay operator gets paid from a fresh, unlinkable address every time. Nobody watching the chain can tell that two payments went to the same operator.
On top of that, the three relay hops are identified by ENS name instead of IP, so every search comes with a routing trail you can actually verify, and search history is encrypted with your wallet key and stored on Fileverse, so even the storage layer only ever sees ciphertext.
It ships as both the MCP server and a full web app, with wallet connect, a live x402 payment flow, and an animation of the stealth payout after a search.
Tech Stack
| Layer | Tools |
|---|---|
| ZK | Semaphore v4, Groth16 proofs, Poseidon hashing |
| Crypto | @noble/curves secp256k1 ECDH, @noble/hashes HKDF + AES-256-GCM |
| Payments | x402 (@x402/core, @x402/evm), USDC on Base Sepolia |
| Wallets | BitGo SDK, self-custody MPC hot wallets, Hoodi testnet |
| Blockchain | Solidity, Hardhat, ethers v6 |
| MCP | @modelcontextprotocol/sdk, Streamable HTTP + stdio |
| Search | SearXNG (self-hosted) |
| Frontend | Next.js, Tailwind, wagmi, shadcn/ui |
| Monorepo | pnpm workspaces, Turborepo |


