# On-chain proof (Base Sepolia, x402 v1 exact)

Each starter answered one real paid call through the public x402.org facilitator. The payment is an EIP-3009 `transferWithAuthorization` of 0.01 test USDC, which the facilitator settled before the app did the work.

| Starter | Settlement transaction | Block | Time (UTC) |
|---|---|---|---|
| TypeScript (`typescript/src/server.ts`, payer `npm run pay`) | https://sepolia.basescan.org/tx/0x352aa808ef460fdaf8de6a9ba8a0e5bac7f2cf7b26c426f6b9440cd0de13cacf | 48472205 | 2026-10-21 20:58:30 |
| Python (`python/app.py` with uvicorn, payer `python pay.py`) | https://sepolia.basescan.org/tx/0xef8fb6cd9f8f6c4d8e0552d21bd7863743392371b13f64efa7762f6dbe93c648 | 48472260 | 2026-10-21 20:58:41 |

- Payer: 0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F. Payee (`PAY_TO`): 0x9B29122f4e77Deb78bBb2580EDb07C08ff22DbA7, a test-only address.
- Both receipts have status 1, and each logs a single USDC `Transfer` of 10000 atomic units from the payer to the payee. Checked with `eth_getTransactionReceipt` on https://sepolia.base.org.
- Acceptance test A5 (`typescript/test/starter.test.ts`, mirrored in `python/tests/test_starter.py`) checks that each README holds its transaction link.
