Decentralised commercial inference
A coding agent ran for 28 minutes on a TensorCash miner through the AskTilly API. Every turn was metered, and every turn came back with a proof.
AskTilly · 17 October 2026
What happened
OpenAI's Codex CLI (version 0.163.0) was pointed at the AskTilly API with the model Qwen/Qwen3.8-27B and a 250k-token context. The model was served by a single TensorCash miner: a GPU worker that mines the TensorCash chain and serves API traffic from the same process, so every answer it produces is also a piece of proof-of-work. Codex got one prompt:
Study two things: the generative token visual on paradigm.xyz, and the brand and idea of tensorcash.org, where proof of inference is the proof of work. Then build one self-contained HTML animation that merges them: Paradigm's visual language, TensorCash's colours, words and numbers, driven by the real inference receipt in receipt.json. Research both sites with curl first and keep notes. The exact deliverables are in BRIEF.md. Do not stop until all of them exist; then end your final message with the word COMPLETE repeated three times.
It fetched both sites, wrote notes, wrote a build script, generated the animation above and documented it: 42 tool calls in 28 minutes, four files, no human input after the prompt. The time-lapse is the whole session.
Files the session produced: notes.md, build_animation.py, animation.html, README.md. What it was given: prompt.txt, BRIEF.md, receipt.json.
What it cost
| Requests | 42 |
|---|---|
| Input tokens | 1,207,526, of which 1,153,264 were served from the prefix cache |
| Output tokens | 37,063 |
| Rates | $0.20 per million input tokens, $0.05 per million cached input tokens, $2.50 per million output tokens |
| Uncached input | 54,262 × $0.20 / 1M = $0.011 |
| Cached input | 1,153,264 × $0.05 / 1M = $0.058 |
| Output | 37,063 × $2.50 / 1M = $0.093 |
| Total at these rates | $0.16 |
The miner that served the session was paid in $TSC: 0.046 $TSC to tc1q64zl8t7kx2xqk6c2t4cn640nu053ylrr4wnf9g, transaction e408dbf05c353eb3….
The proof
Each of the 42 requests returned a receipt. A receipt contains the input and output hashes, the token counts, and a proof v4 attestation: the 256 chosen tokens of the window, their probabilities, the uniform draws the sampler used, the softmax normalisers, the VDF tick, and the hash of the mainnet block the window was bound to. Sampling is fixed by the protocol (temperature 1.0, top_p 1.0, top_k 50, bf16), so a verifier can replay the window teacher-forced, with the same weights, and compare. A RED verdict counts for zero work.
The model is the one registered on the TensorCash mainnet, Qwen/Qwen3.8-27B@1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0. The 42 receipts bind to blocks 31,627 to 31,632; four of those blocks were themselves mined on that model.
Check it yourself
B=https://www.asktilly.ai/blog/decentralised-commercial-inference/proof/data
curl -sO $B/receipt_resp_a82d038d0dc3371a.json
python3 -c 'import json,base64,hashlib;r=json.load(open("receipt_resp_a82d038d0dc3371a.json"));b=base64.b64decode(r["worker_attestation_b64"]);print(len(b),hashlib.sha256(b).hexdigest()==r["worker_attestation_sha256"])'
# 196448 True
python3 -c 'import json;r=json.load(open("receipt_resp_a82d038d0dc3371a.json"));h=r["pow"]["proof"]["block_hash_hex"];print(bytes.fromhex(h)[::-1].hex())'
# b967cbf20fb2a3a85e3fd6eb06ae12360e58054e1b1874811b332cf8a5566446
curl -s https://api.tensorcash.org/esplora/api/block-height/31536
# b967cbf20fb2a3a85e3fd6eb06ae12360e58054e1b1874811b332cf8a5566446
A full replay needs the registered weights and the TensorCash verifier code; both are public. If you have an AskTilly account, every answer in the chat app has a "Verify receipt" action that runs the same check.