Settle with USDC

Pay per call shows the quote and then pays with a key. This page pays the quote itself: one GET, signed with a wallet, settled on Base by Coinbase’s facilitator, the answer delivered with its receipt. The settlement was made once, on 2026-10-10 19:38 UTC, from the operator’s test wallet (charter rule 6: a rail test, counted as the operator’s); every publish re-derives it rather than spending again: the receipt over the recorded answer, the transaction on the chain, today’s quote, the signed proceedings.

Settled 2026-10-10 19:38 UTC · re-derived 2026-10-11 05:26 UTC · the paid answer took 1631 ms · 5000 USDC units ($0.005) · every check on this page re-derived by tools/x402_settlement.py

1. The quote

curl -s -X GET 'https://api.s2ar.dev/x402/v1/sym/read?repo=BurntSushi%2Fripgrep&ref=14.1.1&file=crates%2Fcore%2Fflags%2Fdefs.rs&symbol=Glob+as+Flag' -H 'X-Assay-Quote: 1'

→ HTTP 402 · PAYMENT-REQUIRED (x402 v2) · accepts[0]:

{
  "scheme": "exact",
  "network": "eip155:8453",
  "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "payTo": "0x2c4938626788e8e4fd803bfd1353eca64c1b5452",
  "amount": "5000",
  "maxTimeoutSeconds": 60,
  "extra": {
    "name": "USD Coin",
    "version": "2"
  }
}

2. The payment

The wallet signs an EIP-3009 transferWithAuthorization for the quoted amount to the quoted payee, under the token’s EIP-712 domain from extra, and resends the same GET with the signature in PAYMENT-SIGNATURE. Nothing moves until the answer exists; the facilitator settles after the server has it.

curl -s -X GET 'https://api.s2ar.dev/x402/v1/sym/read?repo=BurntSushi%2Fripgrep&ref=14.1.1&file=crates%2Fcore%2Fflags%2Fdefs.rs&symbol=Glob+as+Flag' \
  -H 'PAYMENT-SIGNATURE: <base64 of the signed payload>'

The signed payload’s authorization (public once settled):

{
  "from": "0xAeeDAFe789793A29C513360C21b5CEeA69296d0B",
  "to": "0x2c4938626788e8e4fd803bfd1353eca64c1b5452",
  "value": "5000",
  "validAfter": "1791660515",
  "validBefore": "1791661175",
  "nonce": "0xca08a1b1312065c8dce872c56ad8f6cf5a9093e38c0163291d7faf095248143d"
}

3. The answer, and the settlement

→ HTTP 200 · 1631 ms · PAYMENT-RESPONSE:

{
  "success": true,
  "network": "eip155:8453",
  "transaction": "0x8674f3e59e114120fee556fd35b5178a7bd583ebe8df0f14ec5c1cc4bc89a799",
  "payer": "0xAeeDAFe789793A29C513360C21b5CEeA69296d0B"
}
{
  "ok": true,
  "repo": "https://github.com/BurntSushi/ripgrep",
  "ref": "14.1.1",
  "tokens_est": 565,
  "charged_usd": 0.005,
  "receipt.evidence_hash": "sha256:598d5e19ec2bace68778add369e74f054ca7dc43c2583e0e1e0c4cbefa58a832"
}
impl Glob as Flag (crates/core/flags/defs.rs, lines 2459-2512)
 2459	impl Flag for Glob {
 2460	    fn is_switch(&self) -> bool {
 2461	        false
 2462	    }
 2463	    fn name_short(&self) -> Option<u8> {
 2464	        Some(b'g')
 2465	    }
… 47 more lines

4. The checks

The transaction: 0x8674f3e59e114120fee556fd35b5178a7bd583ebe8df0f14ec5c1cc4bc89a799 on eip155:8453, from 0xAeeDAFe789793A29C513360C21b5CEeA69296d0B. The payer is the operator’s test wallet; the proceedings keep a salted count of payers and nothing else. Failed calls are never charged. The rules: the charter.