PRIVACY RINGS / AUTHORIZE
← Explorer
AGENT AUTHORIZATION · DEVICE GRANT

Solana, privately. Solana, privately — with our tech on top.

This is the base layer: a public chain where anyone can read every sender, recipient and amount. An agent asking for access starts a device grant — you approve it here, with your own wallet, and the grant is scoped and expiring. Flip to dark to see what the Rings stack adds on top.

Same chain — with the stack on top: Privacy Rings shield the contents, a WaaS embedded wallet holds the keys, and x402 lets an authorized agent pay. An agent asks, you approve with a wallet signature, and it receives a scoped, expiring token — never your keys.

THE STACK

Without the stack, only the base layer exists. Everything above it is a ghost — nothing hides a transfer, nothing scopes an agent.

Four layers, each doing one job. Read bottom-up: the chain settles, Rings shield, the wallet signs, x402 pays.

x402 agent paymentsL4 · PAYS
Scoped agent tokens call a facilitator that verifies + settles payments. Caps enforced server-side: max $5.00 USDC per payment, $25.00 per day, devnet first proof.
AUTHORIZED AGENTS ONLY
WaaS embedded walletL3 · SIGNS
Passkey / email sign-in (Helius WaaS, Turnkey enclaves). The wallet signs the grant approval — key material never leaves the enclave, and never reaches this page's server.
HELIUS WaaS · MAINNET-BETA
SPR Privacy RingsL2 · SHIELDS
Shielded UTXOs in a shared ring: amounts and counterparties are ciphertext, spends are proven by nullifiers. Structure is public; contents are not.
ring1GaL…zXANW · STATE TREE 0
SolanaL1 · SETTLES
The base ledger. Fast, cheap, final — and fully public: every transfer readable by anyone, forever.
MAINNET-BETA
// light mode: L2–L4 not present — a bare chain, fully transparent.
// dark mode: the full stack, live on this domain — sign-in above, rings on the explorer, grants below.

ONE PAYMENT, TWO WAYS OF SEEING IT

A normal Solana transfer, exactly as any block explorer shows it. Nothing here is hidden — that is the point of the base layer.

The same payment routed through the Rings stack. The structure (a spend happened, a proof verified) stays public; the contents become ciphertext.

FROM7xKZ…9dF (wallet)
TO4mQe…2bH (wallet)
AMOUNT2.500000 SOL
MEMO"invoice #1042"
HISTORYfull graph, public forever
SPENDnullifier nf_9c…41 (no link to source)
TOview tag 5Vt1…H55M (owner-only)
AMOUNT▓▓▓▓ encrypted output
PROOFZK-verified in the ring
HISTORYstructure public · contents sealed
⚠ PUBLIC — ANYONE CAN READ THIS ◐ SHIELDED — CONTENTS ARE CIPHERTEXT

Deposits and withdrawals at the ring boundary are public Solana events; what happens inside the ring is not. Decryption needs the owner's viewing key, which stays on the owner's device.

GRANT REQUEST

An agent creates a request and gives you its code. Review it, sign in with your embedded wallet, and approve or deny. Approval is proven by your wallet's signature over the code — the server verifies it before binding the grant to your address.

Loading wallet… if this stays, open the explorer — sign-in lives there too.

How it works: POST /api/agent/request → code + poll token · approve here (ed25519 signature verified server-side) · the agent polls POST /api/agent/poll and receives its token exactly once · tokens are stored as hashes, expire in 24h, and are capped for x402 devnet payments ($5.00 / payment, $25.00 / day). No mainnet value moves through this service.