The release gate
Selo’s verdict can now stop a deploy. Built on 25 and 26 October and proven on Mainnet on 26 October.New
- The
seloCLI.selo auth create | verify | status,selo preflight,selo testandselo verify, with a strict exit contract:0PASS,1FAIL,2INCONCLUSIVE or unconfirmed,3refused before paying. The CLI recomputes the verdict from the report’s own checks, pays once per run, never retries a payment on its own, and recovers an interrupted run with--resume. See CLI overview. - Signed attestations. Every release test answer carries an Ed25519 attestation (
selo.release.v1) of the verdict, the checks, both payment legs, the contract and402hashes, and an evidence manifest. Keys are published at/.well-known/selo-attestation-keys.json, andselo verifychecks an attestation offline. See Signed attestations. - Release id. The paid request accepts an optional
deploymentId, stored on the job and attested asasserted_by_client. The CLI sends--releaseas this id. - GitHub Action. A composite action with
preflight,testandverifymodes, and an example workflow that promotes only a verified signed PASS for the exact commit. See Gate deploys in GitHub Actions. - Demo merchant. An x402 merchant at
https://demo.useselo.xyz/v1/orderswith abroken-v1release that is healthy and settles but breaks its receipt schema, and afixed-v2release that passes. See Try it with the demo merchant. - Reconciliation command.
pnpm --filter @selo/api reconcileresolves held downstream payments from Algorand indexer evidence: it settles a confirmed matching transfer, releases one that provably expired, and holds everything else. Each signed downstream payment now records its last valid round. See Held payments and reconciliation.
- Discovery against the grown Bazaar catalog. The discovery check now looks a target up among its own payee’s Bazaar listings instead of reading the whole catalog.
broken-v1: FAIL onresponse_contract(SCHEMA_MISMATCH), CLI exit 1. Selo was paidSVGTX3U6…, then paid the merchantRZR6XUIA….fixed-v2: PASS on all five checks, CLI exit 0. Selo was paidEPBEZR22…, then paid the merchantQEUF5D33….- The
Release gate demoworkflow blockedbroken-v1and promotedfixed-v2after verifying the signed verdicts. - The reconciliation command ran on the production ledger and found nothing unresolved.
Retry check compares replayed bodies
Changed
- Retry safety compares replayed bodies. When a replay of the identical signed payment returns a body byte-identical to the original paid response with no new settlement, the check now credits it as a safe retry (
PASS_SAFE_RETRY). The earlier version could not tell a stored result from a second delivery.
- ORA Gate retest: PASS on all five checks, including discovery (
DISCOVERY_CONSISTENT) and retry safety (PASS_SAFE_RETRY). Selo was paidM7UBNUG4…in round 65538170, then paid ORA GateS2NOVVRD….
- Repository. The first commits to github.com/Enoch208/selo, with the claims ledger and the evidence for every proven claim.
- The site at useselo.xyz: the test flow and the report page.
- Machine-readable metadata for agents and the Bazaar:
/llms.txtand/.well-known/agent-card.json. See Use Selo from a coding agent.
Live on Algorand Mainnet
New
- The paid route.
POST https://api.useselo.xyz/v1/release-test, 1.00 USDC over x402 on Algorand Mainnet (USDC ASA31566704) through the GoPlausible facilitator. It verifies, claims the job, settles and records Selo’s own payment before any downstream call. The route is listed in the Bazaar catalog and taggedx402-global-challenge. - Five release checks.
handshake,paid_delivery,response_contract,discovery_contractandretry_safety, reduced to a deterministic PASS, FAIL or INCONCLUSIVE verdict. See The five release checks. - Payment identifier support for targets that require the
payment-identifierextension.
- First Orchestrator round trip. Selo was paid
JXU2INAT…in round 65454635, then paid ORA Gate, an authorized third-party x402 endpoint,ATF5HLYB…in round 65454637. See Proof on Algorand Mainnet.