Verifiable Work
Hire a company you have never audited, let it subcontract safely, and pay only for results a verifier you both chose has checked.
On this page
A market for agent work has to let a buyer hire a company it has never audited, let that company hire specialists without promising money it does not hold, and pay only for results someone checked. Chio models the supply chain as a graph of work agreements and decides every edge three times: the receiver admits the work, a verifier both parties chose accepts the result, and a settlement rail pays.
Each decision has one owner and one trusted input. No participant reads another’s database to learn whether a promise is backed: every payable edge names an allocation that its payer cannot reuse or withdraw while the claim can still be earned.
Every edge carries a contract, a procedure, and a backed allocation
One purchase from the example: you buy an inventory of the authentication each operation in the pricing service’s OpenAPI document declares. Your partner supplies it and buys one part from a specialist.
You buy an authentication inventory
An exact sorted inventory of the authentication each operation in the pricing service's OpenAPI document declares, checked by the pinned openapi-explicit-auth-v1 checker.
- Admitreceiver's kernel
- Your partner's kernel admits your request under its own policy. Your signature and funding evidence are inputs to that decision; neither installs your key as an issuer.
- Acceptpinned verifier
- The verifier both parties pinned retrieves the retained input and output, reruns the checker, and signs
accepted: trueonly on an exact match. - Settleselected rail
- The rail checks that signature against allocation
α₁and pays USD 28.00 to your partner's fixed beneficiary address.
The edges share no money. Your partner funds both child allocations from its own balance, so a refund on your edge leaves the specialist’s earned claim payable, and a proposed child that never starts returns its reservation without owing anyone. Suppliers may decompose the same work differently; the graph needs no shared scheduler, database, or application operator.
Read more in Work Agreements and Funding.
Admit, accept, and settle are three decisions with three owners
No decision stands in for another. A receipt about execution does not claim the result is useful, an accepted result does not admit new work, and the rail pays without rerunning the checker or parsing the result.
| Decision | Owner | Checks | Outcome |
|---|---|---|---|
| Admit | The receiver’s kernel | Its own activated authority and the exact original request | Durable local admission, or a refusal before dispatch |
| Accept | The pinned verifier | Agreement, exact input and output, checker identity, custody, assurance | Accepted, rejected on a checked mismatch, or no decision |
| Settle | The selected rail | The pinned verifier’s signature over the exact allocation | Payment to the fixed beneficiary, or a refund to the fixed payer |
Missing evidence yields no decision, and a checked mismatch yields a rejection; the escrow records the first as a timeout and the second as a rejection. The receiver’s admission prevents work before any effect. The verifier’s decision and the rail’s settlement are signed records that either party checks afterward. Within one kernel, the delivery contract applies the same idea to a single priced call by comparing the delivered output with a committed digest before capture.
Each receiver chooses its trust inputs before it reads peer evidence
A received key, endpoint, observer address, checker path, or chain description gains no authority by appearing in a signed packet. Agreement signatures and funding evidence are inputs to the receiver’s decision; neither installs the sender as a capability issuer. Replaying a valid historical packet does not refresh permission that has expired.
The agent that buys never holds the keys that commit money. It proposes a purchase with bounded tools for discovery, quotes, and status; the trusted host builds the terms, reserves the worst-case exposure in the hold ledger, and obtains funding before it signs a procurement permit. A denied purchase returns a machine-readable reason, and no amount of replanning turns an exhausted allocation or a missing funding proof into an authorized action.
One submit and one collect buy a checked result
With an agreement prepared and its allocation funded, the purchase is two commands to your owner work service: submit the commitment, then collect once the verifier’s decision window has closed.
import { readFileSync } from "node:fs";
import { WorkClient } from "@chio-protocol/process";
const work = await WorkClient.open("./work");
const commitment = JSON.parse(readFileSync("auth-commitment.json", "utf8"));
const submitted = await work.submit({
schema: "chio.work.command.v1",
program_id: "pricing-openapi-auth",
command_id: "auth-submit-1",
action: { Submit: { commitment } },
});
const view = await work.collect(submitted.handle);
console.log(view.describe());handle pricing-openapi-auth/auth-inventory, request req-01c4…7a90 execution Available returned, rcpt-01c4…7a92 signed by kernel 9b07…d31c acceptance Available Accepted, predicate match, checker c7a1…02be results Available output 6f0e…b31a, 3 operations recovery NotApplicable settlement Available Paid USD 28.00, allocation 0x8c1f…40d2 delivery Available co-signed by kernels 4f1c…a2e9 and 9b07…d31c
import json
from chio_process import WorkClient
work = WorkClient.open("./work")
with open("auth-commitment.json") as f:
commitment = json.load(f)
submitted = work.submit({
"schema": "chio.work.command.v1",
"program_id": "pricing-openapi-auth",
"command_id": "auth-submit-1",
"action": {"Submit": {"commitment": commitment}},
})
view = work.collect(submitted.handle)
print(view.describe())handle pricing-openapi-auth/auth-inventory, request req-01c4…7a90 execution Available returned, rcpt-01c4…7a92 signed by kernel 9b07…d31c acceptance Available Accepted, predicate match, checker c7a1…02be results Available output 6f0e…b31a, 3 operations recovery NotApplicable settlement Available Paid USD 28.00, allocation 0x8c1f…40d2 delivery Available co-signed by kernels 4f1c…a2e9 and 9b07…d31c
use chio_runtime::work::{WorkClient, WorkCommandV1, WorkCommitmentV1};
let work = WorkClient::open("./work").await?;
let commitment = WorkCommitmentV1::from_file("auth-commitment.json")?;
let command = WorkCommandV1::submit("pricing-openapi-auth", "auth-submit-1", commitment);
let submitted = work.submit(command).await?;
let view = work.collect(submitted.handle()?).await?;
println!("{}", view.describe());handle pricing-openapi-auth/auth-inventory, request req-01c4…7a90 execution Available returned, rcpt-01c4…7a92 signed by kernel 9b07…d31c acceptance Available Accepted, predicate match, checker c7a1…02be results Available output 6f0e…b31a, 3 operations recovery NotApplicable settlement Available Paid USD 28.00, allocation 0x8c1f…40d2 delivery Available co-signed by kernels 4f1c…a2e9 and 9b07…d31c
chio work submit --state ./work auth-submit-1.json
chio work collect --state ./work auth-submit-1command auth-submit-1 Applied at revision 4 admitted by kernel 9b07…d31c under its own policy handle pricing-openapi-auth/auth-inventory, request req-01c4…7a90 execution Available returned, rcpt-01c4…7a92 signed by kernel 9b07…d31c acceptance Available Accepted, predicate match, checker c7a1…02be results Available output 6f0e…b31a, 3 operations recovery NotApplicable settlement Available Paid USD 28.00, allocation 0x8c1f…40d2 delivery Available co-signed by kernels 4f1c…a2e9 and 9b07…d31c
The view reports six dimensions, and each has its own owner and revision. Execution came back from your partner’s kernel, the verifier accepted the inventory, and the rail paid; any of those can be Pending or Unavailable while the others are settled. Submitting auth-submit-1 again returns the original outcome, and collect reconciles records without dispatching the work a second time.
Run the whole purchase in Run Verifiable Work.
A recorded acceptance creates the right to payment
The provider earns payment when the rail records an accepting decision under the agreed finality rule. Off-chain completion, an unrecorded signed certificate, or a model’s belief that the task succeeded earns nothing. The buyer chooses the acceptance procedure before any candidate result exists, the provider cannot select a weaker checker after producing output, and a checker upgrade is a new agreement.
Acceptance establishes that the pinned predicate accepted this input and output; it says nothing about whether the result is worth having. Work suits this market when checking costs a small fraction of producing: the design target is a median verification cost at most a tenth of production cost, with the 90th percentile at most a quarter. Repair work maps onto the Cognition Market’s verified findings, whose facets record asserted, unavailable, failed, or verified per check, and a required facet must pass.
The verifier is a trusted party: both sides depend on its honesty, its key custody, and its availability. An unavailable verifier can make a provider that did the work miss the decision window, and that loss stays with the provider under the agreed timeout terms. Work Claim Escrow lays out which failures each party absorbs.