Veilify Network is a virtual EVM network. Your wallet adds it like any other chain, with a name, RPC URL and chain ID. No blocks are produced on it. Every write becomes a private operation on the pool on Robinhood Chain.

Two chain IDs

Veilify always works with two distinct chain IDs. Mixing them up breaks signatures.
The settlement chain ID must never silently replace the virtual chain ID. A transaction signed for the wrong one produces a proof that the verifier rejects.
Every Veilify deployment gets its own virtual chain ID, so signatures can never be replayed across deployments.

What the proxy does

eth_sendTransaction and eth_sendRawTransaction are intercepted. The proxy decodes the transfer:
  • native ETH: { chainId, to, value }
  • ERC-20: { chainId, to: token, data: transfer(recipient, amount) }
It then builds the matching private transfer or withdrawal, proves it and hands it to the relayer. Nothing is broadcast on Veilify Network itself.

Where the proxy runs

  • Hosted: the Veilify Network endpoint. Simplest. The operator can see your private history, because it holds your viewing key.
  • On-device (planned): browser extension or mobile app. Your viewing key never leaves the device.
In both cases the proxy cannot spend. Spending requires a fresh ECDSA signature from your wallet over the exact transaction, and the circuit checks it.

Adding Veilify Network to a wallet

The app requests the network with wallet_addEthereumChain, using the values from veilify_getChains:
The chain ID and RPC URL are published at launch on Deployment Addresses.