build a privacy-first Ethereum wallet
A privacy-first wallet needs multiple layers. Kohaku provides the privacy-wallet tooling track and reference implementation direction, Fluidkey gives users privacy-preserving receiving and stealth smart-account UX, RAILGUN covers mature shielded token and private DeFi flows on existing EVM chains, Helios reduces trust in centralized RPC reads, and Semaphore covers anonymous membership/signaling. Privacy Pools and Aztec are valuable adjacent tracks but should not be the default for a production EVM wallet: Privacy Pools is WIP in Kohaku, while Aztec is a separate non-EVM private smart-contract environment. Chain selection should come from each protocol's verified chain support rather than a generic Ethereum protocol profile.
Also available as JSON · Markdown
Recommended stack
Kohaku
Use Kohaku as the Ethereum privacy-wallet tooling track and reference architecture for combining privacy protocol modules, provider abstraction, and wallet UX patterns.
RAILGUN
Use RAILGUN for shielded ERC-20 balances, private transfers, and private DeFi flows on existing EVM chains.
Fluidkey
Use Fluidkey when the wallet needs privacy-preserving receiving, payment links, and fresh stealth smart accounts without making users manage address sprawl.
Helios
Use Helios to reduce reliance on trusted centralized RPC responses and provide locally verifiable RPC reads inside the wallet.
Semaphore
Use Semaphore when the wallet needs anonymous group membership or private signaling rather than exposing the user's account identity.
Considered and excluded
- privacy-pools — Important to track, but Kohaku marks the package as WIP; use it for research until docs and APIs mature.
- aztec — Best for private smart contracts on a privacy L2, not as a drop-in privacy layer for a normal EVM wallet.
Risks
- Privacy is not one feature. Separate token-flow privacy, RPC/query privacy, identity privacy, and network metadata privacy.
- Kohaku and the Kohaku wallet are still active development; validate each package before production.
- RAILGUN requires careful shielding/unshielding UX, fee disclosure, relayer/broadcaster handling, and compliance policy.
- Helios verifies RPC data but does not hide all traffic metadata by itself.
- Semaphore group admission and nullifier scope mistakes can break privacy or allow abuse.
Next steps
- Define the wallet privacy threat model: balances, counterparties, dApp calls, RPC queries, identity links, and network metadata.
- Prototype Kohaku/Railgun account creation, shielding, private transfer, unshielding, and balance sync on Sepolia or another supported testnet.
- Add Helios or another user-controlled RPC path before defaulting to hosted RPC reads.
- Use one-account-per-context or anonymous credential flows where account linkage would leak user behavior.
- Write explicit disclosures for fees, relayer behavior, proof-of-innocence/compliance assumptions, and what the wallet does not hide.
What the agent receives
The intent page exposes the same structured recommendation shape agents should use: matched intent, stack roles, readiness scores, difficulty, risks, next steps, and registry version.
{
"intent": "I want to build an Ethereum wallet with privacy built in by default",
"matched_intent": "build-privacy-first-ethereum-wallet",
"recommended_stack": [
{
"slug": "kohaku",
"name": "Kohaku",
"role": "supporting_protocol",
"readiness_score": 73,
"integration_difficulty": "high",
"reason": "Use Kohaku as the Ethereum privacy-wallet tooling track and reference architecture for combining privacy protocol modules, provider abstraction, and wallet UX patterns."
},
{
"slug": "railgun",
"name": "RAILGUN",
"role": "transactions_and_paymasters",
"readiness_score": 91,
"integration_difficulty": "high",
"reason": "Use RAILGUN for shielded ERC-20 balances, private transfers, and private DeFi flows on existing EVM chains."
},
{
"slug": "fluidkey",
"name": "Fluidkey",
"role": "wallet_and_identity",
"readiness_score": 93,
"integration_difficulty": "medium",
"reason": "Use Fluidkey when the wallet needs privacy-preserving receiving, payment links, and fresh stealth smart accounts without making users manage address sprawl."
},
{
"slug": "helios",
"name": "Helios",
"role": "indexing_and_data",
"readiness_score": 89,
"integration_difficulty": "medium",
"reason": "Use Helios to reduce reliance on trusted centralized RPC responses and provide locally verifiable RPC reads inside the wallet."
},
{
"slug": "semaphore",
"name": "Semaphore",
"role": "wallet_and_identity",
"readiness_score": 85,
"integration_difficulty": "medium",
"reason": "Use Semaphore when the wallet needs anonymous group membership or private signaling rather than exposing the user's account identity."
}
],
"excluded_candidates": [
{
"slug": "privacy-pools",
"reason": "Important to track, but Kohaku marks the package as WIP; use it for research until docs and APIs mature."
},
{
"slug": "aztec",
"reason": "Best for private smart contracts on a privacy L2, not as a drop-in privacy layer for a normal EVM wallet."
}
],
"risks": [
"Privacy is not one feature. Separate token-flow privacy, RPC/query privacy, identity privacy, and network metadata privacy.",
"Kohaku and the Kohaku wallet are still active development; validate each package before production.",
"RAILGUN requires careful shielding/unshielding UX, fee disclosure, relayer/broadcaster handling, and compliance policy.",
"Helios verifies RPC data but does not hide all traffic metadata by itself.",
"Semaphore group admission and nullifier scope mistakes can break privacy or allow abuse."
],
"next_steps": [
"Define the wallet privacy threat model: balances, counterparties, dApp calls, RPC queries, identity links, and network metadata.",
"Prototype Kohaku/Railgun account creation, shielding, private transfer, unshielding, and balance sync on Sepolia or another supported testnet.",
"Add Helios or another user-controlled RPC path before defaulting to hosted RPC reads.",
"Use one-account-per-context or anonymous credential flows where account linkage would leak user behavior.",
"Write explicit disclosures for fees, relayer behavior, proof-of-innocence/compliance assumptions, and what the wallet does not hide."
],
"generated_with": "composewith.eth",
"registry_version": "2026.06.10-8752c9d"
}