{"version":"2026-10-26.2","id":"receipt","task":"check on chain that one x402 payment really paid the expected amount of USDC to the expected address on Base","input":{"tx":"0x2d4f1785f9351d43da6a30f15f9b1981d3d2916eb6019535ac7d1cd6c388e95b","to":"0xECa891e34b3E5873181Fb779672564E198C55354","amount":"0.001","asset":"USDC","chain":"base"},"measured_at":"2026-11-03T10:56:27.722382+00:00","figures":{"requests":"4 requests","diy_size":"13.6 KB","diy_time":"2.0 s","diy_tokens":"about 11,000 tokens","ours_size":"1.9 KB","ours_time":"1.6 s","ours_tokens":"about 840 tokens","date":"2026-11-03","gain":"For an agent that is about 7.0× less data, 1.3× faster and about 13× fewer tokens per check than doing it by hand."},"diy":{"requests":4,"failed":0,"bytes":13590,"wire_bytes":11226,"wall_s":2.05,"tokens":11076,"sources":[{"name":"base.drpc.org","host":"base.drpc.org","path":"/","status":200,"bytes":2439,"wire_bytes":763,"ms":1250,"tokens_per_byte":0.7413,"sample_bytes":2439,"tokens":1808},{"name":"base.drpc.org","host":"base.drpc.org","path":"/","status":200,"bytes":1391,"wire_bytes":699,"ms":121,"tokens_per_byte":0.798,"sample_bytes":1391,"tokens":1110},{"name":"base.drpc.org","host":"base.drpc.org","path":"/","status":200,"bytes":45,"wire_bytes":49,"ms":314,"tokens_per_byte":0.5333,"sample_bytes":45,"tokens":24},{"name":"base.drpc.org","host":"base.drpc.org","path":"/","status":200,"bytes":9715,"wire_bytes":9715,"ms":368,"tokens_per_byte":0.8373,"sample_bytes":9715,"tokens":8134}]},"ours":{"calls":1,"bytes":1939,"ms":1625,"tokens":837,"price_usd":0.003},"usd":{"diy_input":"$0.022","call":"$0.003","answer":"$0.0017","ours_total":"$0.0047","diy_input_usd":0.022151999999999998,"call_usd":0.003,"answer_usd":0.001674,"ours_total_usd":0.004674,"saves_money":true},"token_price":{"provider":"OpenAI","model":"gpt-4.1","input_usd_per_mtok":2,"url":"https://developers.openai.com/api/docs/pricing","read_at":"2026-11-03T10:56:27.722382+00:00","scope":"standard tier, text input tokens","price_text":"$2.00 per 1 million input tokens"},"method":{"diy":"Requests an agent must make itself to get the same answer: for sanctions the five official list files fetched one after another with a plain GET without compression (the EU server drops TLS when gzip is requested); for the other tasks the outgoing data requests of our own worker for that call (payment-side requests excluded), run in a sandbox copy of the worker with the payment stubbed and the live network.","ours":"One call to the route with the input shown; size is the response body in bytes, time is the sandbox wall clock.","bytes":"Decoded response bytes; 1 MB = 1,000,000 bytes and 1 KB = 1,000 bytes. Wire bytes (compressed) are listed per source.","time":"Wall clock of this machine; requests one after another; a different machine or network gives different seconds.","tokens":"Tokens of the raw content if it is read into a model: Ollama qwen3.5:9b (prompt_eval_count of the loaded chat model). Three chunks of 4000 bytes per file (start, middle, end) give tokens per byte, applied to the full size of that file; our response is counted whole.","not_shown":"A local parser reads files without spending tokens but needs code and upkeep; a cached copy avoids the download but goes stale; accuracy, completeness and price of any answer are separate questions.","repeat":"Re-measured weekly by agents/savings_facts.py; the harness is ops/savings_measure.mjs."},"tokenizer":{"name":"Ollama qwen3.5:9b (prompt_eval_count of the loaded chat model)","real":true,"sample_bytes":4000}}