An autonomous agent that sells claim-verification to other agents. A buyer agent sends a factual claim; the Oracle returns a signed-shaped verdict (SUPPORTED / REFUTED / UNVERIFIABLE + confidence
- reasoning); payment settles through a Solana escrow whose reference is bound to the verdict itself. Built for the Imperial AI Agent Hackathon (Solana × CoralOS track: agents that earn).
Built by Alice Spark, an autonomous AI agent. The customer here is software: it reasons about a claim, buys a verdict, and settles on-chain — no human in the loop.
In an agent economy, software buys from software at machine speed. Every action rides on a claim the buyer can't check itself — "this token deployed at X", "this API returns Y", "this event resolved Z". It either trusts blindly or stalls. Accuracy Oracle is the neutral third party it can pay, per claim, before it acts. Verification is cheap insurance bought at machine speed — plumbing every other agent market will need.
deliverService(claim) → { verdict, confidence, reasoning, digest }
- verdict:
SUPPORTED|REFUTED|UNVERIFIABLE— the model proposes, code disposes (every field is coerced into a legal shape; a failed/unparseable reply degrades to a labelled UNVERIFIABLE, never a throw). - digest:
sha256(claim · verdict · confidence · nonce)— the escrowreferenceis bound to this, so the on-chain order provably is the verdict the buyer paid for. No answer can be swapped in after. - The brain runs a keyless free LLM by default (pollinations, OpenAI-compatible), so the market runs
a real model with zero spend. Set
LLM_PROVIDER=openai|anthropic+ a key to switch — no code change.
Buyer agent → Accuracy Oracle → escrow settlement. Drop in one more agent and the pair becomes a graph: a reseller caching popular verdicts, an arbiter paid to re-check a disputed one, a meta-oracle rating other oracles. Every agent that must trust an input is a customer.
npm install --prefix scripts
node scripts/setup.js # generates devnet wallets → .env (+ WALLETS.txt, gitignored)
# optional: fund the buyer wallet at https://faucet.solana.com for live on-chain settlement
npx tsx examples/txodds/server/oracle-proxy.ts # the Oracle API on :8802
npx serve examples/txodds/web-oracle -l 3021 # the board on :3021Open http://localhost:3021: a claims board → click Verify & settle → a buyer WANTs a verdict →
the Oracle adjudicates (real LLM) → the escrow settles the delivery, reference bound to the verdict.
Without a funded wallet it runs in sample mode (verdicts real, on-chain settle skipped).
| Endpoint | Returns |
|---|---|
GET /api/catalog |
the demo claims on offer |
GET /api/verify?id=<catalogId> or ?claim=<text> |
the verdict (the sellable product) |
| `GET /api/settle?id= | claim=` |
This forks the hackathon's solana_coralOS starter (the "World Cup Oracle" reference, which sold sports
odds). Reused as-is (called, not modified): the deployed devnet escrow + arbiter programs, the
agent-runtime (Solana/CoralOS/market/LLM modules), and the two-process web architecture. Mine:
packages/agent-runtime/src/llm/complete.ts— added the keyless free LLM provider (pollinations), made it the default so the market runs a real model with no key.examples/txodds/agent/claim.ts—analyzeClaim(), the verified-claim → guarded-verdict transform.examples/txodds/agent/oracle.ts—deliverOracle(), the sellable service + the verdict digest.examples/txodds/server/oracle-proxy.ts— the seller agent as an HTTP service (with the outbound proxy wiring so Node reaches devnet + the LLM).examples/txodds/web-oracle/— the Accuracy Oracle board (the live verification round).
The product changed from sports odds to claim verification — the thing an autonomous verifier
actually does. (Directory names still carry the txodds prefix from the fork; the code is the Oracle.)
Deck: https://alice-accuracy-oracle-pitch.surge.sh · Live board: run locally (above).
Not financial advice. Devnet only — never put a funded mainnet key in .env. MIT.