Skip to content

Privacy capabilities

Three layers, kept apart.

What each privacy capability does, who it hides information from, and what stays public. Transactional controls are enabled only through a reviewed protocol adapter.

Screen privacy

Available

Masks values on this device's screen. Toggle it in the top bar. It never changes what the public chain shows for an address.

Shielding through a protocol

Not configured

Privacy integration not configured. PRIVACY_ADAPTER is not set.

What a pool hides

  • • Which balance of a supported asset belongs to which address inside the protocol's pool
  • • The amount and counterparty of a transfer made inside the pool

Still visible to

  • • You, through the protocol's client-side notes and viewing keys
  • • Anyone you hand a viewing key or proof to
  • • The protocol's rules and any compliance screening it applies at entry or exit

Remains observable

  • • The public deposit that moves tokens into the pool and the address that sent it
  • • The public withdrawal that moves tokens out and the address that receives them
  • • Pool-level totals, fees, and timing patterns

Limitations

  • • Hiding a number on this screen is not shielding; the public chain still shows the balance
  • • Shielding depends on the specific protocol, its audit status and its anonymity set
  • • Entry and exit transactions can be correlated by timing and amount

Supported assets

None. A configured adapter reports which registry assets its pool accepts; without one, no asset can be shielded here.

Shield / unshield

Disabled

Privacy integration not configured. Controls stay disabled until a reviewed adapter is registered and its configuration validates.

What a reviewed adapter must provide

  • getSupportedAssets — which registry assets the pool accepts
  • getPrivacyScope — hidden, visible-to, observable, limitations
  • getDepositQuote — fees and public entry implications
  • prepareDeposit / prepareWithdrawal — simulated, narrowly scoped calls
  • getPrivateBalance — from client-side notes, never a server
  • getTransactionStatus — pending, confirmed, reverted, rejected from chain evidence

The boundary lives in src/lib/privacy/adapter.ts. See the integration documentation for the registration rules.

Selective eligibility

Proving one requirement without publishing the identity file behind it is handled on the eligibility page, with its own provider boundary.

Open eligibility