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.
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.
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.
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.
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.
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.