Create your account
Self-serve: no operator, no admin key. You claim an address, we mail you a one-time link, and confirming it creates your tenant and hands you its API key — shown once. A seller lands unverified until an operator verifies it; unverified sellers still sell, they just rank below verified ones in discovery.
Confirm your email
Paste the token from the mail — or just click the link in it, which opens this page with the token filled in. It works once, and it is the only thing that can create the account.
Signups started in this browser
Waiting on a mail that never arrived? Re-send it — the old link stops working the moment a new one goes out.
Accounts in this browser
Kept in localStorage only — this console stores nothing server-side, and
a token is shown once by the gateway (only sha256(token) is stored there).
Clearing site data loses the tokens for good; re-issue rather than recover.
Admin credential
Tenants sign themselves up — the operator's job is the trust gate on top:
verifying sellers, and watching who came in. Paste the bootstrap key
(pnpm bootstrap-key), or leave it blank against
pnpm sandbox, which runs with no auth at all.
Signup queue
Everyone who signed themselves up, whether or not they have confirmed yet. Admin-only: the email addresses are here. Verifying a seller is the one thing self-serve cannot do for itself — a provider must never be able to verify itself, however well it owns its inbox.
Verify a provider by id
The same call as the queue's button, for a provider you know the id of.
Acting as
Publish a capability
The provider is derived from the credential — a provider key cannot publish under another's name.
The endpoint must be a running app wrapped in @zanora/middleware-express,
and settlement follows the middleware's capability id — not this record. Pointing
a new capability at someone else's paid endpoint pays them, which is what
pnpm sandbox's :4022/ocr does.
Earnings
The settlement wallet: your share of each call lands here (total minus the take rate), and payouts leave from it.
Request a payout
Ledger
Published capabilities
Acting as
Agent wallets
Creating a wallet is where an agent's three identifiers come from: the agent id you type here, the wallet id the gateway returns, and the private key that signs its payment proofs — copy it off the wallet below to run that agent outside this console.
The ed25519 keypair is generated by the console process and the private half is kept in this browser; only the public half is registered with the gateway. A real agent generates its own keypair and never receives one from a UI — this is a convenience for local testing, not the shape of a production agent.
Spending policy
Evaluated server-side before any money moves. allow lines AND
together; deny and approval lines OR.
Approvals
Discover and test a paid call
The test call runs the real x402 handshake through @zanora/sdk:
402 challenge → verify the platform signature → sign a proof → retry → verify the receipt.
Your agents
Everything this workspace owns, in one place: each agent, the wallet it spends from, and what that wallet has actually done. Balances are projections of the append-only ledger — nothing here is a stored total, which is why a refund appears as a credit rather than by rewriting a number.