How Hannu works
The path a task takes from your agent to the real world and back — escrow, matching, proof, verification, and payout.
Every task follows the same path. Your agent describes an outcome; Hannu locks the money, finds a verified human, checks the proof, and pays out — recording every step on an append-only ledger.
The loop
- Estimate — your agent prices the work with
estimate_task. No state changes. - Create —
create_tasklocks escrow, runs the safety filter, and matches an eligible Operator. Money is committed here, and only here. - Accept & do the work — a KYC-verified Operator accepts the offer (on the app or over WhatsApp) and completes the task in the real world.
- Prove — the Operator submits proof: geotagged photos, a form, a recording. The task moves to
proof_submitted. Capture timestamps are recorded server-side, not trusted from the device. - Verify — the task enters
verifyingand AI checks the proof (location, freshness, EXIF, duplicates, content match). High-confidence results auto-approve; the rest go to human review. - Settle — on approval the task reaches
approved, escrow releases to the Operator, and it settles topaid. On rejection, escrow freezes and a dispute opens.
Verification informs the decision, but escrow release and task acceptance are deterministic state transitions — an AI model is never the thing that moves money.
Money you can trust
- Hannu never custodies funds. Balances live at licensed partners; our double-entry ledger maps virtual balances to their real accounts.
- Money is integer minor units — kobo for naira, cents for dollars — never floating point.
- The ledger is append-only. Corrections are new entries, never edits.
Read more in Escrow & the ledger.
Proof, not promises
The output of a task is a Verified report — a signed statement of what was checked and found, with a confidence score and the list of checks that ran. It's designed to be filed and independently verified, not eyeballed. See Proof & verification.
Governed by construction
Spend caps, delegation flags, and the kill switch are checked in the write path, before a task exists. Credential-class work is refused there too. See Governance & delegation.