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
- receipt
sha256:598d5e19ec2bace6…re-derived over the recorded answer; the header agrees - on Base, block 52435886: a
Transferof 5000 units of0x833589fC…to0x2c493862…(the quoted payee, the quoted amount); status0x1 - today’s keyless quote of the same URL still names payee
0x2c493862…, asset0x833589fC…, networkeip155:8453; price $0.005 (then: 5000 units) - the 2026-10-10 edition of the proceedings counts 4 paid
readcalls; the operator’s own settlements are counted as the operator’s (charter §6)
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.