> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useselo.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Selo is CI for x402. It pays your endpoint before your users do.

Selo is a release gate for paid x402 APIs on Algorand. Before you ship, Selo becomes your customer: it pays your endpoint for real on Algorand Mainnet, checks what comes back against the contract you declare, and lets the release out only on a proven, signed **PASS**.

## Why a paid endpoint needs its own gate

A paid endpoint can pass every health check and still break for the people who pay for it. The payment settles, the server answers `200`, and the response is missing a field every buyer depends on. Uptime checks, unit tests and integration tests never pay, so they never see what a paying customer sees.

Selo tests the one path they skip: the paid request itself.

## What a release test does

**1. You authorize your endpoint**

You prove you own the route by serving a one-line token from your own domain. Selo never tests a route that is not authorized.

**2. You pay Selo over x402**

One command pays Selo 1.00 USDC through a standard x402 payment. Nothing else happens until that payment has settled on chain.

**3. Selo pays your endpoint as a real client**

Selo reads your `402`, pays your price from its own wallet, and replays the identical signed payment to test retry safety. Spend is capped per job.

**4. Five checks, one verdict**

Selo runs five release checks and reduces them to a deterministic **PASS**, **FAIL** or **INCONCLUSIVE**. Unknown is never PASS.

**5. The gate decides**

The `selo` CLI exits `0` only on a fully evidenced PASS. Your terminal or GitHub Actions blocks the release on anything else. Every verdict is Ed25519-signed, so anyone can verify it offline.

## Proven on Algorand Mainnet

On 26 October 2026 a demo merchant at `https://demo.useselo.xyz/v1/orders` went through the gate twice:

| Release | What happened | Verdict | Gate |
| - | - | - | - |
| `broken-v1` | Health `200`, payment settled, response `200`, receipt missing `receiptId` | **FAIL** on `response_contract` | Blocked, exit `1` |
| `fixed-v2` | Same URL, paid again | **PASS** on all five checks | Allowed, exit `0` |

Both runs carry both payment legs on chain and a signed attestation. See [Proof on Algorand Mainnet](https://docs.useselo.xyz/resources/mainnet-proof.md) for every transaction.

## Start here

> **[Quickstart](https://docs.useselo.xyz/quickstart.md)**
>
> Authorize an endpoint and run your first release test.

> **[How Selo works](https://docs.useselo.xyz/how-it-works.md)**
>
> The two payment legs, the five checks and the verdict.

> **[Gate deploys in GitHub Actions](https://docs.useselo.xyz/guides/github-actions.md)**
>
> Block a release unless Selo returns a signed PASS.

> **[Use Selo from a coding agent](https://docs.useselo.xyz/agents.md)**
>
> One instruction for your agent; you keep the wallet and the approval.

> **[CLI reference](https://docs.useselo.xyz/cli/overview.md)**
>
> Every command, flag, file and exit code.

> **[API reference](https://docs.useselo.xyz/api-reference/introduction.md)**
>
> Call the Selo API directly from any x402 client.

## Supported today

| | |
| - | - |
| Network and asset | Algorand Mainnet, USDC (ASA `31566704`) |
| Methods | `GET` and `POST` with a JSON body |
| Profile | `quick`: one paid request and one replay of the identical signed payment |
| Selo's price | 1.00 USDC per release test, paid over x402 |
| Your endpoint's price | Up to 0.50 USDC per job, paid by Selo from its own wallet |

> [!NOTE]
>
> The verdict is computed by deterministic code from recorded evidence. The same evidence always produces the same verdict.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.