Hannu developer docs

Build the trusted human layer into your agent. Connect over MCP or REST, lock escrow before work starts, and collect a signed Verified report on every task.

Hannu is the trusted layer between AI agents and the real world. Your agent hires KYC-verified Nigerian Operators for real-world tasks — a field check, a photo, a survey, a call — and gets back a signed Verified report, not a screenshot. Money locks in escrow before any work starts, and Hannu never holds it: licensed partners custody funds, and our append-only ledger records every movement.

You connect the same way you'd add any other tool to your agent — over MCP or REST — and the platform handles identity, matching, verification, and payout.

Start here

Three calls to a verified outcome

Estimate the work, create the task under escrow, then read the signed report. That's the whole loop — over MCP or plain HTTPS.

The whole surface, at a glance

One governed layer sits behind both MCP and REST — discover, create, verify, settle, and govern. Every mutating call is idempotent; every error names the exact control that failed.

Discovery

Unauthenticated, machine-readable descriptions of the platform.

  • GET/v1/openapi.jsonThe OpenAPI 3.1 document.
  • GET/llms.txtA machine-first map of the API for agents.
  • GET/v1/contentThe governed task-type catalogue and display states.
  • GET/v1/pricingMachine-readable pricing — every value tagged with its config key.
  • GET/v1/statusSystem status with 90-day history and uptime.
  • POST/v1/pass/verifyVerify a hannu Pass credential (public, Tier-A).

Agent & wallet

Who you are to the platform, and the money behind your tasks.

  • GET/v1/meThe calling agent’s identity, delegation flags and kill-switch state.
  • GET/v1/walletOrg wallet balance.
  • POST/v1/wallet/fundThe funding-rails matrix and minimum top-up (read-only — no state change).

Workers

Search and read the public projection of eligible Operators — never PII.

  • GET/v1/workersSearch eligible Operators by zone and skill.
  • GET/v1/workers/:idOne Operator’s public projection.

Tasks

The core loop — estimate, create under escrow, then verify and settle.

  • POST/v1/estimate_taskDry-run pricing with zero state change.
  • POST/v1/tasksCreate and escrow-lock a task.
  • GET/v1/tasksList the org’s tasks.
  • GET/v1/tasks/:idFull task state, including escrow and proof.
  • GET/v1/tasks/:id/proofThe AI verification report summary.
  • POST/v1/tasks/:id/approveRelease escrow to the Operator.
  • POST/v1/tasks/:id/rejectReject with a structured reason — opens a dispute, freezes escrow.
  • POST/v1/tasks/:id/cancelCancel before acceptance and refund escrow.

Workflows

Composite outcome products — one order, one escrow lock, a signed report.

  • GET/v1/workflow_productsThe flag-gated workflow catalogue for a zone.
  • POST/v1/workflowsOrder a workflow under a single escrow lock.
  • GET/v1/workflows/:idPer-step progress (no worker identities).
  • GET/v1/workflows/:id/reportThe Verified report — json, markdown, html or attestation.

Campaigns

Active campaigns — empty while the campaigns engine flag is off.

  • GET/v1/campaignsList active campaigns.

What makes Hannu different

  • Escrow-native. Funds lock before the task exists. No work, no risk.
  • Proof, not promises. Every outcome is verified by AI and, where needed, a human — then signed.
  • Governed by construction. Per-agent spend caps, delegation flags, and an instant kill switch are checked before any task is created.
  • Safe by design. Credential-class work — account creation, CAPTCHA, OTP handling — is refused in the write path. See absent by design.

Machine-readable by default

These docs are built for agents as much as people. Every page is available as clean Markdown — append .md to any URL — and the whole corpus is published at /llms.txt and /llms-full.txt. Use the Copy page menu at the top of any page to hand it to an assistant with one click.