03 · Privacy leaks
What a secret passkey wallet reveals on Solana.
Your private key stays in your device. Most other data doesn't: the public key, the vault, the fee payer, and the RPC traffic. 15 leaks, 8 of them high impact, grouped by who can see them.
On-chain · 8
Public forever. Anyone with an RPC endpoint or a block explorer can read it.
Infrastructure · 3
Seen by the services your wallet talks to: RPC nodes, relayers, fee payers.
Wallet design · 4
Choices a secret passkey wallet program makes that decide how much the first two categories reveal.
On-chain
One secret passkey links every transaction
The secp256r1 instruction publishes the same 33-byte public key every time you sign.
high · seen by: Anyone reading the chain
Your public key gives away your vault address
Vault PDAs are derived from public seeds, so anyone with the key can compute the address.
high · seen by: Anyone who has seen your public key
clientDataJSON puts the website on-chain
Verifying the challenge on-chain means publishing the origin you signed on.
high · seen by: Anyone reading the chain
authenticatorData fingerprints your device
rpIdHash, backup flags, and signCount are signed, so they go on-chain too.
medium · seen by: Anyone reading the chain
Your token holdings are one RPC call away
Associated token accounts are derived from the vault address and are public.
high · seen by: Anyone who knows your vault address
Funding the vault reveals where the money came from
Creating a vault and its token accounts needs rent-exempt SOL from somewhere.
high · seen by: Anyone reading the chain
Memos and instruction data are plaintext
Anything a dApp writes into a memo or instruction is public forever.
medium · seen by: Anyone reading the chain
Signatures reveal the public key
One signature plus its message is enough to recover the secret passkey's public key.
medium · seen by: Anyone with a signature and its message
Infrastructure
The fee payer sees, and links, your activity
Someone else's ed25519 key signs and pays for every secret passkey transaction.
high · seen by: Relayer, plus anyone reading the chain
Your RPC provider maps your IP to your vault
Balance polls, subscriptions, and sendTransaction requests all carry your IP address.
high · seen by: RPC provider
Transaction shape reveals the wallet software
Compute budget values, instruction order, and lookup tables fingerprint who built the transaction.
low · seen by: Anyone reading the chain
Wallet design
Durable nonce accounts link pre-signed transactions
A reused nonce account ties every transaction that uses it together.
low · seen by: Anyone reading the chain
Session keys are identities too
Temporary ed25519 keys that avoid repeated prompts are registered on-chain.
medium · seen by: Anyone reading the chain
If the domain disappears, the vault is stuck
A secret passkey only signs for the domain that created it, but your SOL stays on-chain.
high · seen by: n/a (availability risk)
High-S signatures fail, and still leak
The precompile only accepts low-S, 64-byte r||s signatures.
note · seen by: n/a (correctness)