Proof and verification
What proof is, the automated checks and human review that assess it, and the signed Verified report that comes out — with the AI kept out of the money path.
Proof is the evidence an Operator submits that the work was done. Verification is how that evidence is assessed. The output is a signed report you read before you approve — and the model that produces it never moves money.
What proof is
Depending on the task type, proof is one or more of:
- Geotagged photos — images carrying the location and time they were captured.
- Structured forms — the fields the task asked the Operator to fill in.
- Recordings — short audio or video where the task calls for it.
Capture time is recorded by the server when the proof arrives, not taken on trust from the device clock, so freshness can be judged against a time we control.
The checks
Automated checks run first over the submitted proof:
- Location / geofence — is the capture inside the target area? For a task in Yaba, Lagos (lat 6.51, lng 3.37), proof photographed elsewhere fails.
- EXIF — does the image metadata hold together, or does it show signs of tampering or a re-saved screenshot?
- Freshness — was the proof captured within the task's window, against the server-recorded time?
- Duplicate — has this image or evidence been submitted before, here or on another task?
- Content match — does what the proof shows match what the task asked for?
Whatever the automated checks can't settle goes to human review. A person makes the call on the ambiguous cases; the automation handles the clear ones.
The Verified report
The result is a signed Verified report with a confidence score — a single artifact recording which checks ran, what they found, and where a human agreed. You read it through GET /v1/tasks/:id/proof and decide whether to approve or reject.
Verification produces a report; it does not release, freeze, or refund escrow. Moving money is your approval decision, made after you read the report — the model is never in the synchronous path of a payment or a task acceptance. How escrow itself moves is covered in Escrow and the ledger.
Where this sits in the overall loop is laid out in How Hannu works.