What each record proves

What a claim, a check, a decision and a payment receipt each prove on IXO, who has authority at every step, and what can still fail after each one.

IXO records each step of a piece of work separately: the ask, the claim and its evidence, the decision, and the payment. Each record proves one narrow thing. Read this page before you rely on any of them for a decision of your own, because the gaps between them are where money and trust get lost.

Four things to keep apart

  1. A signed claim is an assertion. It shows who said what, and when. It does not show that what they said is true.
  2. A passed check is a match against rules. It shows the evidence met the rules as written. It does not show the result is correct.
  3. A decision is not permission to pay. It says what the rules concluded. Payment needs someone with authority over the money to have allowed it.
  4. A payment receipt is not money received. It shows a payment was sent on some rail. Whether the recipient has it is a separate fact.

On asks.world a claim is called a completion, and a decision oracle is called a verifier. This page uses the protocol's names, because that is what the records themselves say.

Step by step

StepRecordMade byIt provesIt does not prove
AskThe posted termsThe posterThese terms were published by this accountThat the terms are clear, fair or achievable
ActionA claim, signed and stored by its content hashThe person who did the work, or their agent acting as themThis account submitted exactly this contentThat the content is true, or that the work was done
EvidenceFiles and form answers attached to the claimThe person who did the workWhich content the check read, identified by its hashThat a photo is genuine, or that the evidence is complete
CheckA set of named facts, frozen before the decisionThe decision oracleThese facts were produced for this claim, and nothing changed them afterwardsThat each fact is right. An AI check can be wrong
DecisionA receipt signed by the decision engine, and a record on chainThe decision engine, then the oracleThese rules, applied to these facts, gave this resultThat the result is correct in the world, or that anyone will pay
Payment sentA settlement or payout receiptThe payer's facilitatorThe payer's service sent this amount on this railThat the recipient has the money
Payment receivedThe recipient's own accountThe recipient's bank, wallet or mobile money providerThe recipient has the moneyNothing further

Two details make the middle rows stronger than they look.

The decision engine checks that the content an oracle sends is the claim's own content. An oracle that was hired to check a claim cannot swap in different answers. If the content does not match, the engine refuses and the claim fails.

After the facts are frozen, nothing downstream reads the network, the clock or a model. The same facts always give the same decision, which is what lets someone else replay it.

Who has authority

A record says what happened. Authority says who was allowed to make it happen. On IXO, authority is given in writing, to a named party, for a named action, and it can end.

ActionWho may do itHow they get the authorityHow it ends
Post an askThe account that signs itTheir own sign-in and tap
Record a decision on chainA decision oracleA grant on chain from the collection's owner, naming the oracleThe owner revokes the grant, or it runs out
Pay what a collection promised on chainThe chain, when an approval or a rejection is recordedPayment terms the collection's owner set in advance, capped by the oracle's grantThe collection's account runs short, or the grant ends
Review a claim held for a personA reviewer the collection's controllers have authorisedA grant issued by a current controllerThe grant is revoked, or its issuer stops being a controller
Give the final OK on a completionWhoever the poster chose: by default the posterTheir own tap on asks.world
Charge for a decisionThe facilitator, on the payer's behalfA payment delegation the payer signs once. It names the facilitator, a spending cap and the oracles it may payIt expires, its cap is used up, or its signer no longer owns the organisation
Pay a company's payeesThe company's own payouts facilitatorRules the company sets: which oracles it trusts, the most one payout can be, and the amount above which a person approvesA team member pauses payouts, or the rules change
Approve a company payout above the thresholdA person on the company's payout teamA role given by the controllers of the company's domain, who are always adminsThe role is removed

An AI agent never holds more than the person it acts for. On asks.world it cannot tap, approve or confirm for them.

What can fail, and what happens then

These are the cases the system names today. Each one stops short of the happy path at a different point.

CaseWhat it meansWhat happens
Could not establishAn oracle could not produce a fact: a photo has no location, a file is unreadable, a source refusedThe fact is recorded as an error, never as "false". The rubric says where an error goes, usually to a person
Held for a personThe rules could not decide, and the decision names tasks for a reviewerNothing is decided until a reviewer answers exactly those tasks. A payment reservation can be held for up to 30 days meanwhile. On a company's ask, a completion nobody reviews within 48 hours is turned down
UnusableThe engine could not match the rubric to the claim formNo result for the claim, and nothing to record on chain. The decision fee is still charged, because a decision was delivered. Fix the rubric before sending more claims
Content mismatchThe content an oracle sent is not the claim's ownThe engine refuses, the claim fails, and the oracle's operator is alerted
No decision arrivesThe oracle never returns a receiptThe payment reservation lapses 24 hours after it was made. Nothing is paid
The collection cannot cover its paymentsThe collection's account does not hold what recording the decision would draw: the decision fee, plus the payment for an approval or a rejectionThe decision is made and kept back from the chain. It is recorded when the account is funded again
Expired or used upA payment delegation has run out or reached its capNobody can pay. The oracle pauses that organisation's collections until someone signs a new delegation
RevokedA grant was withdrawn, or the person who issued it lost their roleA reviewer's answer is refused and nothing is sent. Decisions cannot be recorded without a live grant
No payee, or an unusable amountThe claim does not say who to pay, or the amount cannot be readThe claim is still decided, and nothing is paid. With no payee, the receipt carries no payment instruction. With an unusable amount, it carries one that is declined, with a reason code
Untrusted oracleA decision came from an oracle the payer has not chosen to trustThe payer's facilitator does not pay on it
Payout failedThe rail refused or lost the paymentOn a cash-out, the person can retry or ask for the amount back
Disputed claimSomeone challenges the party who submitted a claim, or the party who evaluated itAnyone with a registered DID can file a dispute on chain by locking the collection's dispute deposit. An adjudicator the collection has approved decides it. See How claim disputes work on chain

What the chain records about a claim

The IXO Protocol gives every claim an evaluation status. The values come from the Claims module.

StatusMeaning
pendingSubmitted, and not yet evaluated
approvedEvaluated and approved. Payment terms set on the collection for an approval apply
rejectedEvaluated and rejected. Payment terms for a rejection apply, if the collection set any
flaggedThe evaluator declined to make a final call. No payment fires. An authorised evaluator can later move the claim to approved, rejected or invalidated
invalidatedFinal, with no payment
disputedNo longer given to new evaluations. Older claims keep it as history

A dispute is a separate record. It has its own status (OPEN, AWARDED or DISMISSED), and it does not change the claim's evaluation or reverse a payment. What changes hands is the disputer's stake and the losing agent's performance deposit. How claim disputes work on chain explains who can file, who decides and who is paid.

Two payments that are not the same

A piece of work can involve two separate payments. Mixing them up is the commonest mistake in reading a record.

Fee for the decisionPayment for the work
Who is paidThe oracle that checked the claim, with a share to IXO or the networkThe person who did the work
Who paysWhoever commissioned the checkThe poster, or the company's own payouts facilitator
When it is dueWhen a decision is delivered, whatever the decision isOnly when the claim is approved
Documented inHow payment works and Charge for decisionsPost your first ask and Host your own payouts facilitator

A rejection is still a delivered decision. The decision fee is due, and the worker is paid nothing.

Payment sent is not payment received

The payment records report sending. They report it in stages, so read the stage.

  • A settlement answers settlement_pending until the money has moved, then success with a transaction. Before that, nothing has been paid.
  • USDC on Base counts as paid once Base marks the block safe.
  • A card payment is a hold first, and a capture after the decision. A hold with no decision is cancelled.
  • A company payout over Stripe is a transfer to the payee's Stripe account, and then a payout to their bank. Those are two steps.

Check a record yourself

  • A decision. The receipt is public at the decision engine's /v1/receipts/:cid. The record on chain carries the same receipt identifier as its proof.
  • A settlement. Send the identical settle request again, or read GET /settlements/:id on the facilitator, to see whether it is still pending.
  • A payouts facilitator. Run its trust-check command. It performs the same check from public data that an app runs before sending it payouts.

The commands and fields are in Charge for decisions, Host your own payouts facilitator and the decision oracle API reference.