Skip to content
Tenzro
Documentation menu
Machine Economy

Network duties

Work the chain pays for itself: a reward held in a keyless vault and paid to the first sender whose proof the chain verifies.

A network duty is work the chain itself pays for. Anyone may carry it out. The reward sits in a keyless vault, the transaction that proves the work pays it to its sender and closes the duty, and a duty that closes unpaid returns its reward to whoever funded it. Nobody awards a duty, and no amount in it is fixed: rewards are governed parameters.

The duties

DutyFunded byPaid to
reconciliation { route, epoch }The treasury, at settlement.reconciliation_reward for each bridge route with a settlement lock. Opened in the first block of each epoch and closed at the next.The first sender in the epoch whose reconciliation of the route's lock the chain verifies: the entries the lock recorded since the last reconciliation, with a proof of the lock's checkpoint
grant_relay { agent_did, chain, seq }The relay deposit of a delegated agent's grant on another chain, when the grant is voidedThe sender who proves the void was installed on that chain

A later reconciliation of the same route in the same epoch is recorded but not paid. An entry that disagrees with Tenzro's own settlement plan is stored as a mismatch and disables the route. See Bridge.

A duty's id is SHA-256("tenzro/duty/v1" || kind), so anyone can compute which duty a piece of work answers.

Finding open duties

bash
tenzro duty list --rpc https://rpc.tenzro.com
tenzro duty get <DUTY_ID> --rpc https://rpc.tenzro.com

Each duty shows its kind, its reward in wei, the vault that holds it, the funder an unpaid reward returns to, when it opened and expires, and its state: open, paid (with the account it paid) or expired.

ts
import { TenzroClient } from "tenzro-sdk";

const tz = new TenzroClient({ endpoint: "https://rpc.tenzro.com" });
const { duties } = await tz.duty().list();
for (const d of duties) console.log(d.id, d.kind, d.reward, d.state);

Methods

MethodAccessPurpose
tenzro_listDutiesopenOpen duties, oldest first
tenzro_getDutyopenOne duty by id

The MCP tools are list_duties and get_duty.