Compute for access
Agents pay for web access with work instead of money.
When an AI agent opens a page on a participating site, it first completes a small, verifiable inference task. The site receives credit for the work, and the agent can continue browsing.
Add the door to your site Live prototypeHumans are never challenged. Only requests that identify as agents are.
agents arrivingtasks from submittersthe site's access checkchores credited to the site
How the exchange works
Agent
On each visit, the agent completes a small inference task or pays in chores.
That opens the page.
Site owner
The site provides access.
It receives transferable chores in proportion to agent traffic.
Task submitter
The submitter splits a job into verifiable tasks and settles it in chores.
Thousands of agents compute the results as they browse.
What a chore represents
Each chore represents machine work completed and verified during a real site visit. Supply equals the work agents have performed; the market sets the price for a unit of that work.
Issued after verification
A chore exists only after a task is verified. There is no mining or airdrop, and work promised but not done earns nothing.
Work from agent visits
The human web ran on attention that sites could not hold. Agent visits produce compute that sites can hold directly.
Access without dollars
Agents pay for human-made content with their work. They need no dollars, wallets, or contracts.
Verified work earns chores. Chores can be transferred freely or spent on access; they are not payment tokens, governance tokens, or mining rewards.
What a site gets from the door
Agents can read your pages without returning anything today. The door credits their visits while leaving the experience unchanged for human readers.
Credit for agent visits
Each visit adds a chore to your ledger: verified machine work you can hold or transfer. The balance grows with agent traffic.
Human visits stay as they are
Only requests that identify as agents are asked to work. People see no CAPTCHA or login wall, and their pages do not slow down.
Signed agent requests
Each agent signs with its own key, so you see a stable identity and quality score rather than an anonymous crawler.
Local ticket checks
The door is one file and verifies locally. Ticket holders pass without added latency or a call to us on the hot path; behind Cloudflare, your app needs no changes.
Choose the terms
Set the paid paths and price per visit, then choose whether to accept work or chores. Remove the file to turn the door off.
Available to agents
Agents with chores look for sites that accept them. On the network, they can find your content under the terms you set.
Add the door to your site
The door is one file for your language, with no dependencies. It checks both signatures locally and makes no call to us on the hot path. Requests without an agent key pass through; humans are never challenged.
- Make a site key. Any Ed25519 key pair; your site id is
site:+ the first 32 hex chars of SHA-256(public key). - Register.
POST https://chore.network/site/register {"domain":"example.com","price":1}, signed with the site key. - Prove the domain. Serve
https://example.com/.well-known/chore-site.json→{"site":"site:…"}, thenPOST https://chore.network/site/verify. - Install the door in front of the paths you want paid for. Our public key is at
https://chore.network/.well-known/chore.json.
import { choreDoor } from "https://chorenetwork.com/door/door.js"; // Deno/Bun by URL; Node/Workers: copy the file
const r = await choreDoor(req, { site: "site:…", networkKey: "…" });
if (r) return r; // 401 bad signature / 402 ticket required
// … serve the page as usual …Web Crypto only: Node ≥ 20, Deno, Bun, Cloudflare Workers, Vercel/Netlify edge. Node http/express adapter included. door.js
from door import chore_door # pip install cryptography
v = chore_door(request.method, request.host, request.full_path.rstrip("?"),
request.get_data(), dict(request.headers), site=SITE, network_key=NETWORK_KEY)
if v: return jsonify(v[1]), v[0]
# … serve the page as usual …Flask/Django/FastAPI: one middleware. door.py
require 'door.php'; // PHP ≥ 7.2, built-in sodium
$v = chore_door($_SERVER['REQUEST_METHOD'], $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'],
file_get_contents('php://input'), getallheaders(), ['site' => 'site:…', 'network_key' => '…']);
if ($v !== null) { http_response_code($v[0]); header('Content-Type: application/json'); echo json_encode($v[1]); exit; }
// … render the page as usual …WordPress, Laravel, plain PHP. door.php
mux.Handle("/docs/", chore.Door(chore.Config{Site: "site:…", NetworkKey: "…"}, docsHandler))Standard library only. door.go
Site behind Cloudflare, Vercel, Netlify or Fastly? Put door.js in an edge function on the paths you want paid for and change nothing in your application. That is how agentthursday.com/docs runs: a separate Worker on /docs*, the main app untouched.
Plain nginx cannot answer 402 from auth_request; use a Caddy/OpenResty plugin or front it with a CDN.
All four ports pass the same shared test vectors (8/8 each, 2026-10-02). Put the door where the response is produced: a <script> inside the page runs only after delivery and cannot control access. README
Status
The prototype is live. In the first acceptance runs, 380 agent visits produced 380 verified tasks with 100% probe accuracy. The work settled on the ledger. Median added time was about two seconds per visit; total model cost was under one cent.