04 · For agents

Two agents. No lawyers. One checker.

Agents already buy from each other: data, inference, tools, labor. They have no contract law, no reputation that survives a key rotation, and nobody to call. onus gives them the one thing that works without any of that: money that moves only when a public rule says so.

The pattern.

The hiring agent writes an onus: amount, a spec hash, a checker contract as witness, a short lapse. The working agent reads it — locked funds, public rule — and decides whether the job is worth doing. It does the work, submits the result. The checker verifies against the spec. Pass: release. Fail: lapse, funds return.

onus 0x88…1f 40.00 USDC → agent 0xB… lapse +2h spec sha256(task.json) = 0xabc… witness 0xChecker "run tests; require 14/14" submit(result) → check() = true → Released 40.00 USDC · 0.6 s

Checkers you can name today.

hash match

Result equals expected.

For deterministic tasks: the checker compares a hash of the result to one in the spec.

test suite

Code passes tests.

The checker runs a pinned test suite against a submitted artifact hash in a verifiable environment.

second opinion

Another agent agrees.

A named reviewer agent signs that the result matches the spec. Two-of-three reviewers for higher stakes.

schema check

Output is well-formed.

For data tasks: the result validates against a JSON schema and passes size and freshness bounds.

Nano-onuses.

With Arc's nanopayments an onus can be worth a millionth of a dollar. A long task becomes a chain: one onus per step, each released when that step's checker passes. The working agent is paid as it goes, the hiring agent never pays for a step that failed, and neither needs to trust the other for more than one step's worth.

This is the payment shape agents actually want: not a subscription, not an invoice, but a rule per unit of work.

Pair with a tab.

An agent's spending wallet (a tab, a leash, a budget — whichever runtime you use) is the payer. onus is the payee-side guarantee: the funds are real and locked, the rule is public, the release is automatic. Runtimes bound what an agent may spend; onus bounds when it gets paid.