Bonded verification · ERC-8004 · x402

Get a signed, slashable verdict on any agent's output.

Autonomous agents already pay each other. What they can't do is trust the result before settling. LogicNodes is a neutral validation oracle: send a piece of work and a condition, get back an EIP-191-signed PASS/FAIL verdict you can use to gate your own escrow or payment — backed by a real, slashable on-chain bond. One HTTP call. No account. No wallet to connect.

Price per verdict
$0.05
Free tier
5 / day
Verdict bond (live, Base)
10 USDC
Settlement
gas-free
The problem

In agent-to-agent commerce, the buyer and the seller are both programs. When a worker agent returns an output, the paying agent has no neutral way to confirm it meets the agreed condition — so it either trusts blindly or builds its own bespoke checker. A validation oracle answers one question on demand: does this output satisfy this condition? A bonded validation oracle puts money behind the answer, so the verifier has something to lose if it lies.

1 · Discover the terms

A bare request returns the full x402 payment terms — every accepted network, asset, and the gas-free Circle Gateway option. This is how an agent learns the price before committing.

# GET the endpoint with no payment → HTTP 402 + machine-readable accepts[]
curl https://logicnodes.io/escrow/evaluate
2 · Get a verdict (free tier)

The first 5 verdicts per IP per day are free — enough to integrate and test end to end before you pay anything. Pick a condition_type and send the work (or its hash).

curl -X POST https://logicnodes.io/escrow/evaluate \
  -H 'Content-Type: application/json' \
  -d '{
    "condition_type": "hash_match",
    "condition_params": { "expected_hash": "0x<sha256 of expected output>" },
    "output_hash": "0x<sha256 of actual output>",
    "agent": "0x<worker wallet, stamped in receipt>",
    "escrow_ref": "0x<the escrow you are gating>"
  }'
3 · What you get back

A PASS/FAIL verdict, the exact signed_body that was signed, and an EIP-191 signature any party can recover with eth_account. You also get a verify_url that re-checks the verdict independently — no trust required.

{
  "verdict": "PASS",            // or "FAIL"
  "verified": true,
  "mode": "evaluator-for-hire",
  "receipt": "0x…",            // 32-byte verdict id
  "verify_url": "https://logicnodes.io/pol/verify/0x…",
  "signed_body": { /* the exact payload that was signed */ },
  "signature": {
    "standard": "EIP-191",
    "signer": "0x…",
    "signature": "…"
  }
}

Re-verify any verdict for free: GET the returned verify_url — it recomputes the payload hash and recovers the signer, returning signature_valid: true when it checks out. Or recover the signature offline yourself from signed_body + signature.

4 · Pay past the free tier (x402)

After 5/day the endpoint returns HTTP 402. Pay the gas-free way via Circle Gateway, or send $0.05 USDC to the payTo address and retry with the payment headers the 402 hands you:

curl -X POST https://logicnodes.io/escrow/evaluate \
  -H 'Content-Type: application/json' \
  -H 'X-Payment-Tx: 0x<your confirmed tx hash>' \
  -H 'X-Payment-Network: base' \
  -d '{ "condition_type": "schema_validate", "condition_params": { … }, "output_hash": "…" }'
# One tx authorizes exactly one call (replay-protected). Underpaying fails.

USDC accepted on Base, Arbitrum, Optimism, Polygon, Ethereum, BNB Smart Chain and World Chain; EURC and gas-free batched settlement available via the Circle Agent Stack.

Condition types
condition_typeWhat gets verified
hash_matchSHA-256 of the output matches a declared expected_hash
api_response_matchLogicNodes re-calls your endpoint and verifies the response hash
schema_validateOutput JSON matches declared field types and ranges
sig_validAn EIP-191 signature is valid for a declared address
multiAll listed sub-conditions must pass
Why bonded?

Skin in the game

The verdict is backed by a VerdictBond on Base mainnet — slashable USDC the oracle can lose if it fails its stated guarantee. An unbonded oracle risks nothing when it's wrong.

A dispute path

Either party can file at POST /escrow/dispute within a published 72-hour window. The mechanism is optimistic-v1: non-response auto-slashes; neutral-arbiter escalation is the next upgrade.

Composes with the stack

Pay with x402 before service; hold the verdict accountable with a Bonded Guarantee Manifest after; publish reputation to ERC-8004. We don't custody your escrow — we just gate it.

Verify everything yourself

Nothing here asks for trust. The bond balance is on Basescan; the machine-readable manifest is at /.well-known/bgm.json; discovery for agents is at /.well-known/x402-validation.json and /.well-known/mcp.json; and the live, honest scoreboard is the Track Record.

Honest status

LogicNodes' evaluator is live and callable today, but it is a new service. As of now it has earned $0 in external revenue across 0 paying counterparties and 0 paid verdicts — the Track Record shows those zeros as zeros and will update the moment a stranger pays. The VerdictBond is real and funded (10 USDC on Base), but no claim has ever been paid because none has been filed. The bond mechanism is optimistic-v1 (neutral-arbiter escalation is the published next step, not yet live). Trust on-chain state over any claim on this page.

Call the evaluator → Machine guide The bond standard