voidcashdocs

Supported wallets

Which wallets can use voidcash - any wallet that signs deterministically with an ordinary key - how to connect a phone wallet, and how to add Elysium.

voidcash works with wallets that sign with an externally owned account (EOA): an ordinary secp256k1 private key. Your wallet signs:

  • the activation message, once per session, from which the app derives your privacy keys;
  • an EIP-712 Spend message for every private action (a send, an unshield, a payment link, moving payments from your private address). The zero-knowledge circuit checks that signature against the wallet key bound to your owner key;
  • a second message, once per session, the first time you make or open a payment link.

Supported

WalletWhy it works
Browser wallets with an ordinary key, such as MetaMask or RabbyThey sign with an EOA key
Phone wallets through WalletConnectSame, over an encrypted channel to the phone
Hardware wallets that sign EIP-712 typed dataEach Spend is a standard typed-data signature, confirmed on the device
EIP-7702 accountsAn EOA with a delegation still signs with its own key

Your wallet must also sign deterministically, as almost all do. The app checks it the first time you turn on privacy (see below).

Not supported

WalletWhy not
Contract-based multisig walletsThe circuit checks one secp256k1 signature. A contract wallet has no key that can produce it.
Smart-contract accounts (ERC-4337 wallets and similar)Same reason. When you turn on privacy, the app checks that the signature comes from the connected address, and otherwise stops with "The signature does not come from the connected account (a smart-contract wallet cannot sign spends)."

A contract wallet can still pay someone's private address with its public HYPE, which is an ordinary transaction, and it can receive HYPE or a token from an unshield like any address.

Deterministic signatures

Your privacy keys are derived from the activation signature, so the wallet must give the same signature for the same message every time. Wallets that follow RFC 6979, as most do, sign deterministically.

  • The first time, the app asks for the signature twice and compares the two. If they differ, it refuses the wallet: "This wallet does not sign deterministically: your keys could not be recovered later. Use another wallet." Nothing is registered.
  • Once your address is registered, the app checks that the signature gives the key already registered for your address. If it does not, it stops with an error instead of showing a wrong, empty balance: "This signature does not match the privacy key registered for this address. The wallet may not sign deterministically, or the key was registered from another wallet."

There is no other way to derive the keys, such as a passkey or a separate seed phrase.

Your notes depend on your wallet's key. If you move to a new wallet app, import the same key or seed phrase: a different key gives different privacy keys, and your notes stay with the old one. To move funds to a new key, send them privately to an address registered with the new wallet.

Phone wallets with WalletConnect

Press WalletConnect in the app. The app draws the pairing code itself, from the pairing link alone.

  • On a computer, scan the QR code with your phone's wallet, then approve the connection.
  • On a phone, pick MetaMask, Trust Wallet or Rainbow, or Another wallet for any other app that handles WalletConnect links. Copy link copies the pairing link to paste into a wallet; Cancel stops waiting.

Most phone wallets do not know Elysium yet, so the app proposes Elysium and Ethereum mainnet, both as optional networks: a wallet that supports neither could not approve the session at all. Once the wallet approves, the app asks it to add Elysium and switch to it, as with a browser wallet.

On a phone, each request your wallet has to show you (a signature, a transaction, a network switch) also opens the wallet app, so you do not have to switch apps by hand. The session is kept: after a reload the app reconnects to it without pairing again. Ending the session from the phone ends the app's session too.

The only WalletConnect services the page talks to are its relay, an end-to-end encrypted channel to your wallet, and its Verify API, which tells your wallet the request comes from the voidcash domain.

Adding Elysium by hand

The app adds Elysium to your wallet when you connect. To add it yourself, use these values:

FieldValue
Network nameElysium
Chain ID99901
Currency symbolHYPE (18 decimals)
RPC URLhttps://rpc.volta.family
Block explorerhttps://elysium.kinetiq.xyz/explorer

Changing devices

Nothing needs to be backed up or exported. Install your wallet on the new device with the same seed phrase, connect, and sign the activation message. The same key gives the same signature and the same privacy keys, and the app finds your notes on the chain.

On this page