Skip to main content

What is AlgoVoi Pay

AlgoVoi Pay is a tenant-free payment rail: a metered service that charges a small amount of USDC per call and returns an offline-verifiable Ed25519 receipt on every response. There is no account, no API key, and no tenant record. Payment is the only credential. It speaks the open agent-payment standards, so an autonomous agent can discover it, pay it, and cryptographically verify what it paid for, with no prior relationship.
Two doors, on purpose. api.algovoi.co.uk is trust through governance (tenants, keys, KYB). pay.algovoi.co.uk is trust through proof: an anonymous request, a payment, and a receipt anyone can verify offline. This page is the second door.

Surfaces

x402 REST

/pay/v1/… — HTTP 402 challenge, pay, signed receipt. See x402.

A2A (JSON-RPC)

/a2a — A2A message/send + tasks/get, with the a2a-x402 payment-required task state. See A2A.

Discovery

/.well-known/agent-card.json, /.well-known/x402, /discovery/resources, /pay/v1/index, /openapi.json.

Identity

/.well-known/did.json (did:web:pay.algovoi.co.uk) and /.well-known/jwks.json — the receipt-signing key, for offline verification.

Supported lanes

Each lane settles in native USDC and binds the on-chain payment to the exact server-issued challenge (see The request-weld).
The authoritative, current price for each service is always the maxAmountRequired in that service’s live 402 challenge. For example, receipt verification is $0.01 USDC per call.

How a paid call works

1

Ask, and receive a 402

Call the endpoint with no payment. You get an HTTP 402 whose body is a strict x402 v2 accepts[] — one entry per supported lane — each carrying payTo, the price, and a challenge token (extra.payment_reference) with a short TTL.
2

Pay on-chain, welded to the challenge

Send the USDC payment on your chosen lane, binding it to that exact challenge token using the lane’s mechanism above. This weld is mandatory and fail-closed: a payment not welded to a live challenge is not redeemable.
3

Present the payment

Re-call the endpoint with an X-PAYMENT header (base64 JSON). For the mined-tx lanes (Algorand, Solana): {tx_id, payment_reference}. For Base: {authorization, signature, challenge_token}.
4

Get a signed receipt

The rail verifies the payment on-chain, runs the service, and returns 200 with an Ed25519 payable receipt (JWS) binding the request hash, the response hash, and the settled payment reference.
5

Verify offline, later, by anyone

Verify the receipt against the rail’s published key — resolved via did:web:pay.algovoi.co.uk or /.well-known/jwks.json — with no callback to the rail. See Agentic Payment Receipts and the open receipt verifier.

The request-weld

The property that makes an anonymous, metered rail safe is that every payment is cryptographically bound to the specific request it pays for:
  • Algorand — the challenge token is the transaction note.
  • Base — the EIP-3009 nonce equals keccak256(challenge_token).
  • Solana — a server-derived reference pubkey must appear in the transfer’s accounts.
Because the weld is mandatory and fail-closed on every lane, a captured X-PAYMENT cannot be replayed against a different request, and a stray inbound transfer cannot be redeemed as a free call.
A consequence: stock x402 clients can discover the rail (the 402 and the discovery documents are spec-conformant) but cannot pay it, because they do not produce the mandatory weld. Paying requires a client that welds the payment to the challenge (the AlgoVoi SDK does this for you).

Services

Receipt verify

Verify a signed receipt / JWS and get a countersigned payable receipt.

RFC 9421 verify

Verify an HTTP Message Signature (RFC 9421) with a receipt.

Compliance receipt

A categorical ALLOW / REFER / DENY compliance receipt.

Discovery

Point any x402- or A2A-aware agent at the origin and it self-configures:
  • Agent cardGET /.well-known/agent-card.json (preferredTransport: JSONRPC, endpoint /a2a).
  • x402 catalogGET /.well-known/x402 and GET /discovery/resources.
  • OpenAPIGET /openapi.json (carries x-payment-info and a 402 per paid operation).
  • IndexGET /pay/v1/index.
  • IdentityGET /.well-known/did.json and GET /.well-known/jwks.json.