Skip to main content
A coding agent can do almost all of a release test for you: clone the CLI, authorize your route, serve the verification file, run the preflight and write the release contract. The two things it must not do on its own are touch the payer wallet and approve the Mainnet payment. The selo CLI is built so that both stay with you.

Give your agent this instruction

Copy the block below into Claude Code, Cursor or any agent that can run shell commands in your project. Replace the three values in angle brackets first.
Agent instruction
The pilot guide is plain Markdown, so the agent can read it with any HTTP fetch. It holds the same commands as the Quickstart.

Who does what

What the CLI enforces

The CLI does not rely on your agent behaving. These rules hold for any caller:
  • No Mainnet payment without approval flags. --network mainnet without both --approve-mainnet and --pay-to exits 3 before anything is signed. Treat --approve-mainnet as your signature: tell your agent it may only add it after you say yes.
  • No wallet, no payment. If SELO_PAYER_MNEMONIC is unset, selo test exits 3. The mnemonic is read only from that variable and is never printed or written to disk. Signed payments are never printed either.
  • A budget per run. --max-usdc caps what one run may pay Selo. A higher price is refused before signing.
  • The right payee and network. The CLI refuses a 402 on another network than --network, or with a payee other than --pay-to.
  • One payment, never retried on its own. If an outcome is unconfirmed, the CLI records it in .selo/runs/<release>.json and refuses to pay again for that release until someone reruns the same command with --resume.
  • Private links stay private. The report link is redacted in terminal output and in summaries. The full link is kept only in the local run state file, written with mode 600.
See selo test for every flag and Recover an interrupted run for --resume.
Give your agent a dedicated payer wallet that holds only what a few release tests cost, never your main wallet. One release test costs 1.00 USDC.

Machine-readable discovery

Agents that find Selo on their own can read two free files from the API. Both are served without payment.
Terminal
llms.txt
The last line is the report route GET /v1/reports/{token}, with the braces URL-encoded.

Paying Selo with any x402 client

The paid route POST /v1/release-test answers an unpaid request with a standard x402 v2 402 challenge. Any x402 client that can pay USDC on Algorand can pay it; the CLI is not required. This is the accepts entry from Selo’s live 402, captured on Mainnet:
Selo 402 requirement
The challenge also carries Bazaar discovery metadata with an example request body and response. Selo returns this 402 only for a request with a valid body that names an eligible, unexpired preflight, so run the free authorization and preflight first. What the CLI adds on top of a plain x402 client: a fresh preflight, the price and payee checks before signing, a stable Idempotency-Key, safe recovery with --resume, attestation saving and exit codes for CI. See Pay with any x402 client for the raw request and the API overview for every route.