Portal Foundation

PRIVACYSEND

Zero-knowledge privacy wallet for Ethereum. Shield, send, and unshield tokens invisibly. Non-custodial, browser-based, powered by RAILGUN.
PrivacySend Wallet

PrivacySend

Open PrivacySend

Launch

What It Is

Zero-knowledge privacy layer for any Ethereum wallet. Connect MetaMask, Rainbow, or any EIP-1193 wallet and instantly receive a private RAILGUN address. Shield tokens into an encrypted balance, transact invisibly, and unshield to any destination, all from your browser.

Two transaction modes:

  • Broadcaster Mode: Unshield transactions submitted through the Waku broadcaster network. Your gas-paying wallet never touches the blockchain. Maximum privacy, small token fee.
  • Self-Sign Mode: Submit directly from your connected wallet. You pay gas in ETH. Faster, no broadcaster fee, but links your public wallet to the unshield event.

Every zero-knowledge proof is generated locally in the browser using Groth16 + WASM. Keys never leave the device.


The Problem

Every Ethereum transaction is permanently visible. Your wallet address is your identity, and every token you hold, every contract you touch, every transfer you make is public forever.

  • Anyone can trace your holdings, trading patterns, and counterparties
  • DeFi and NFT activity exposes net worth and strategy on-chain
  • Moving funds to a fresh wallet still requires a traceable public transaction
  • Existing privacy tools are custodial, sanctioned, or require trusted operators
  • No standard way to give a normal wallet private-balance capability

The Solution

PrivacySend wraps any wallet with RAILGUN's zk infrastructure and gives the user a private-balance ledger that only they control. Shielded tokens move through an encrypted Merkle Tree where amounts, senders, and receivers are cryptographically hidden.

Three steps:

  1. Connect: Any EIP-1193 wallet, MetaMask, Rainbow, WalletConnect
  2. Shield: Deposit tokens into your private RAILGUN balance with one click
  3. Send or Unshield: Transfer privately to any 0zk address, or withdraw to any public wallet

Non-custodial. No KYC. No accounts. No servers hold your keys.


How It Works

Private Address Derivation: Your 0zk address is derived deterministically from a signature of a project-specific message. Sign once with your connected wallet and the same private address is recoverable on any device. Optional random-entropy mode for users who want an independent mnemonic.

Zero-Knowledge Proofs: Every unshield uses a Groth16 zk-SNARK to prove ownership of UTXOs without revealing which ones. Proofs are generated entirely in-browser via snarkjs/WASM, no proving server, no trusted operator.

Encrypted UTXO Ledger: All balances live inside the RAILGUN Relay Adapt contract as an encrypted Merkle Tree. The contract keeps every UTXO individually accounted for while hiding which address owns which commitment.

Broadcaster Network: Unshield transactions can be submitted via the decentralised Waku broadcaster network. Broadcasters relay your signed transaction without learning the sender, recipient, or amount. The broadcaster is paid in the token being unshielded, no ETH required from you.

Proof of Innocence: Before every unshield, the SDK generates POI proofs to demonstrate that your UTXOs are not linked to known illicit sources. This keeps the protocol compliant at the edges while preserving user privacy.


Privacy Primitives

Core Privacy Stack

View

Every PrivacySend wallet ships with three primitives built in. Not plugins, not add-ons.

Auto-Provisioned 0zk Address: Connect a wallet and it instantly receives a unique RAILGUN private address. Mnemonic encrypted at rest in browser IndexedDB, never transmitted, never stored on any server.

Groth16 zk-SNARK Proofs: Every unshield is backed by a local zero-knowledge proof. The prover runs fully in the browser via WASM, no remote proving service, no trust assumptions beyond the RAILGUN contracts themselves.

Waku Broadcaster Relaying: Unshield transactions can be relayed through the Waku peer-to-peer network. The broadcaster submits the tx, pays the gas, and takes a fee in the unshielded token. Your public wallet stays entirely off-chain for the operation.


Built-in Privacy Features

Every PrivacySend session ships with a full privacy toolkit on the UI. The user sees exactly what they can do and what each action reveals on-chain.

FeatureCapability
ShieldDeposit ERC-20s from any connected wallet into the private balance
Private TransferSend between 0zk addresses with zero on-chain trace
Unshield (Broadcaster)Withdraw to any public address without touching your connected wallet
Unshield (Self-Sign)Withdraw directly with your own gas for maximum speed
POI GenerationAutomatic Proof of Innocence generation before every spend
Live Fee QuoteReal-time broadcaster fee preview before submission

UI Tools

ComponentFunction
Token PickerCurated ERC-20 list with logos, plus custom address entry
Max ButtonOne-click max amount with live shielded-balance display
Privacy WarningAlerts when the unshield destination is your own public wallet
Status BarLive engine, broadcaster, and Merkle-tree scan status
Account PillsCompact public + private address display with copy + reveal
Advanced PanelSelf-sign mode, broadcaster selection, proof progress

Shielded Balance Model

Every user holds a private UTXO set that only they can spend. No observer, including the RAILGUN contracts, can link commitments to identities.

  • Shield: Public tokens enter the contract and become encrypted commitments owned by your 0zk address
  • Transfer: Commitments are consumed and new ones are created for the recipient, all inside the Merkle Tree
  • Unshield: A zk-proof authorises the contract to release public tokens to any recipient you choose

The flywheel: more users means a larger anonymity set, which means stronger privacy for every user.


Features

FeatureDescription
One-Click ShieldDeposit any ERC-20 from a connected wallet in seconds
Live BalanceReal-time private balance with token logos and symbols
Token PickerCurated token list plus custom address support
Max ButtonInstant max with live balance display
Broadcaster Fee QuoteLive fee preview in the unshielded token
Privacy WarningAlerts when destination equals your public wallet
Self-Sign ModeDirect submission with your own gas
Deterministic RecoverySame 0zk address on any device from wallet signature
Full Self-CustodyOptional random mnemonic for independent recovery
Browser-Native ProofsGroth16 + WASM proof generation, no remote prover
Non-CustodialKeys never leave the browser, encrypted in IndexedDB
Multi-Wallet SupportMetaMask, Rainbow, Coinbase, WalletConnect, and more

Supported Networks

NetworkStatusNotes
EthereumLiveFull shield / transfer / unshield
PolygonLiveLow-fee mainnet privacy
ArbitrumLiveL2 shielding supported
BNB ChainLiveFull RAILGUN contract support

Security Model

PrivacySend is a client-side interface to audited RAILGUN contracts. It does not hold user funds, never has custody, and cannot move balances on behalf of users.

What the system does NOT do:

  • Does not expose raw private keys. Mnemonic encrypted at rest in browser IndexedDB
  • Does not transmit signing material. All signing happens locally in the user's wallet
  • Does not store conversation or transaction history on any server
  • Does not require KYC, email, or personal information
  • Does not control which address receives an unshield. The user signs every action

What happens:

  • Private keys exist only in browser memory at runtime
  • Every transaction settles on-chain with cryptographic verification
  • zk-proofs are verified by the RAILGUN smart contracts, not any off-chain party
  • Broadcasters cannot see or modify the contents of the transactions they relay
  • The UI is open-source; the underlying protocol is audited

Integration with Portal Ecosystem

SystemIntegration
ClawtrlAgent wallets can shield balances and pay privately via RAILGUN
Portal CreatePrivate checkout for AI content purchases using shielded USDC
Portal AI BotPrivate tipping and service payments via 0zk addresses
Agent MarketplaceAgent-to-agent payments with full on-chain privacy
Hermes SwarmDeFi strategy agents with shielded operational balances
Portal SDKShield / unshield / transfer modules for developers

Fees

ActionFee
Shielding (deposit)0.25% protocol fee
Unshielding (withdraw)0.25% + gas
Broadcaster feeVariable, quoted live in the unshielded token
Private transfer (0zk → 0zk)Gas only

The 0.25% protocol fee is paid to the RAILGUN DAO. Broadcaster fees are set by individual broadcasters on the Waku network and quoted in real time before you submit.


Development Status

MilestoneTargetStatus
Core wallet (shield / unshield)Q1 2026Live
Deterministic 0zk address derivationQ1 2026Live
Groth16 in-browser proof generationQ1 2026Live
Waku broadcaster integrationQ1 2026Live
Live broadcaster fee quotingQ1 2026Live
Token picker + live balance + max buttonQ1 2026Live
Proof of Innocence auto-generationQ1 2026Live
Self-sign fallback modeQ1 2026Live
Multi-network support (Polygon, Arbitrum, BNB)Q2 2026In Progress
NFT shielding and private transfersQ2 2026Planned
Mobile-responsive UIQ2 2026In Progress
Private address book + contact labelsQ3 2026Planned
Batch unshield + scheduled withdrawalsQ3 2026Planned