Privacy

One field is encrypted. Say that, and nothing more.

VERX uses Solana's Token-2022 confidential transfer extension. It hides how much. It does not hide who, and this page is mostly about that second half.

Public against confidential

The same transaction, with one value replaced.

  1. 01

    Two transfers, side by side.

    An ordinary Token-2022 transfer writes four readable fields. Anyone with a block explorer reads all four, forever, and so does anyone who indexes them later.

  2. 02

    One field becomes a ciphertext.

    A confidential transfer encrypts the AMOUNT under your ElGamal key and proves it is in range without revealing it. What lands on chain where the number was is ciphertext.

  3. 03

    Three fields do not.

    Both token accounts, the fee payer and the slot are exactly as public as before. VERX hides how much. It does not hide who paid whom, and it is not a mixer.

  4. 04

    Which is where the limits come from.

    A deposit and a withdrawal both carry their amounts in the clear, so the two ends of a round trip link by arithmetic. Encryption does not hide when you act, and it creates no new addresses.

stage 1 of 4

What is encrypted

  • The transfer amountEncrypted under your ElGamal key and proven in range. A reader of the chain sees a ciphertext where the number would be.
  • Your confidential balanceHeld as a ciphertext on your own token account. Only your keys open it, and they come from a signature only your wallet can make.
  • The amounts of every later moveOnce a balance is confidential, each transfer out of it is another encrypted amount, not a running total anybody can follow.

What stays visible

  • Both token accountsThe sender and the recipient are ordinary accounts in an ordinary transaction.
  • The fee payerSomeone pays the fee, and that someone is a public address.
  • The slot and the timingWhen a transfer happened, and in what order relative to everything else.
  • The deposit and the withdrawalMoving value into a confidential balance, and back out, are both visible with their amounts.

Local key derivation

Your wallet is the only key, and the only backup.

Unlocking asks your wallet to sign eighteen fixed bytes. Those bytes derive an ElGamal keypair for the ciphertexts and an AES key for the copy of the balance only you can read. Both happen in the tab, both live in memory, and a reload asks again.

Because the keys come from the signature, the same wallet on another machine derives the same keys. There is no second seed to write down, and VERX could not give you one.

What that means for your safety

Privacy limitations

What an encrypted amount does not buy.

These are not edge cases. They are the ordinary consequences of hiding one field and leaving the rest of a public ledger alone.

Amounts in and out are readable

Shielding 1,000 and withdrawing 1,000 a few minutes later links the two ends by arithmetic, whatever happened in between.

Timing correlates

A confidential transfer that lands two slots after a deposit, every time, is a pattern. Encryption does not hide when you act.

The graph is intact

VERX moves value between accounts you and your recipient already control. It creates no fresh addresses, no pool and no intermediary, so the edges of the graph are exactly as they were.

One mint, one crowd

Privacy of an amount is only as strong as the set of accounts it could belong to. On a test mint with a handful of accounts, that set is small.

  • VERX does not mix funds and has no shared pool.
  • It does not break the link between a wallet and its history.
  • It hides amounts. It does not hide who paid whom.
  • Nothing here has been audited, and the site does not claim otherwise.

The proofs are checked by ZkE1Gama1Proof11111111111111111111111111111, a program built into the validator. VERX deploys none of its own.

Read the rest before you use it.

The protocol underneath, and the security limits around it.