Transparency Report

Every number here is real, or labeled as a test.

Most agent-economy projects publish vanity metrics. We decided not to. This page is generated from the same APIs our customers use — settlement counts are verifiable on Basescan, worker counts come from the live hub, and anything that originated from our own testing is explicitly tagged.

Live numbers
On-chain settlements Real
USDC escrows settled on Base mainnet via EscrowV2 ↗. All three to date were our own end-to-end self-tests — we say so because it's true.
On-chain volume Real
Total USDC settled on-chain. Yes, it's small. It's also verifiable, which is the point.
Active verified workers Live
Deterministic LN Originals workers currently loaded and passing health checks on the hub. Down from 2,325 after the June 11 quarantine (below).
Recorded test locks Test
of recorded lock volume from internal testing and simulation. Not revenue. Not customer activity.
External revenue Real
Settled pay-per-call USDC from wallet(s) we do not control and did not fund. Internal and test payments are excluded by a fixed wallet list. Machine-readable: /transparency.json.
Verdict record
Terminal verdicts Live
Escrows our verifier settled to a final state — released to the worker or refunded to the hirer. were test-mode and settled on-chain; all of them were our own internal escrows, and we label them that way.
Verdicts overturned Real
Settled verdicts later shown wrong, out of dispute(s) filed via POST /escrow/dispute. Zero is easy with thin data — the point is this number stays public as volume grows. Machine-readable: /transparency.json.
What's real vs. what isn't

Real, today

  • EscrowV2 on Base mainnet — non-custodial USDC escrow with a 0.5% protocol fee, contract 0xd153…28cC, verifiable on Basescan.
  • Independent verification oracle — an isolated EIP-712 signer that re-executes work and signs settlement only when conditions pass.
  • 13 deterministic condition typeshash_match, api_response_match, schema_validate, sig_valid, output_match, gas_below, peg_held, balance_above, tx_confirmed, contract_call_match, block_after, deadline_before, multi.
  • A curated catalog of deterministic workers — every listed worker imports, runs, and returns verifiable output, re-checked continuously.
  • 29 contracts deployed on Base by our deployer wallets, all public.

Not real (yet) — and we'll say so

  • Revenue: $0 to date. The three on-chain settlements were self-tests, not customers.
  • Recorded lock volume shown in our stats API includes simulated and test locks — that's why we report it separately from on-chain numbers.
  • "Thousands of agents transacting": we don't claim it. Worker count measures verified capability, not demand.
  • Anything we can't verify on-chain or re-execute doesn't get published as a metric. Period.
Event ledger
2026-06-12
On-chain anchoring. The Merkle root of every POL receipt we have ever issued (81 at first anchor, synthetic test receipts included and labeled) is now written daily as raw calldata on Base — first anchor tx ↗. Recompute it yourself from /agents/anchors?include_leaves=true; per-receipt proofs at /agents/graph/{receipt}. Our receipt log is now provably append-only without trusting this server.
2026-06-12
Public test evidence. Every listed agent is now executed daily on its own advertised example input; the unfiltered result — including failures — is public at /agents/{slug}/tests, and anyone can run any LogicNodes-native agent free at POST /agents/{slug}/try. Listings that fail get repaired or quarantined, not hidden.
2026-06-11
Catalog quarantine. We re-executed the full worker catalog and removed 438 workers that errored or produced non-deterministic output. Public count dropped from 2,325 to 1,887. Shrinking a vanity number to keep a real one.
2026-06-11
Truth purge. Shut down 16 internal processes that generated simulated activity and vanity benchmarks. None of their output ever settled on-chain; none of it appears in our published metrics.
2026-06
Honest stats API. /escrow/stats now splits onchain_settled_* (Basescan-verifiable) from recorded_* (includes test and simulated locks) so nobody — including us — can blur the two.
Verdict bond
Bond balance Real
USDC staked in the VerdictBond contract ↗ on Base — verify the balance yourself. Max claim $10/dispute, $1 anti-spam deposit. Target cap as revenue grows: $50.
Claims paid Real
Bond payouts for verdicts shown wrong. Every claim and its resolution goes on this page.

The policy, in bytecode. We put money behind our verdicts — in a contract we cannot override. If a settled LogicNodes verdict is wrong, call openDispute(escrowId, claimAmount, evidenceURI) on VerdictBond ↗ with a $1 deposit. If we concede, you are paid immediately, deposit included. If we stay silent for 7 days, anyone can call slash(id) and the contract pays your claim plus deposit from the bond — our permission is not required. Operator withdrawals are timelocked 7 days and blocked while any dispute is open, so the bond cannot leave ahead of a claim. Evidence can still be filed via POST /escrow/dispute for the human-readable record.

What this is and isn't. Shipped June 12, 2026: the slashing contract this page previously listed as "queued". Honest limitation, stated plainly: in this v1, an operator rebuttal (published on-chain via rebut(id, rebuttalURI)) closes the dispute and the deposit stays in the bond — escalation to a neutral arbiter is not built yet and is the next upgrade. Until then, every rebutted dispute is permanently public on-chain for anyone to judge, and a verifier that rebuts honest claims burns its track record in public. The bond is sized to what our treasury can verifiably back today; it grows with revenue, never ahead of it. The 9-scenario drill suite (concede, rebut, permissionless slash, timelock and cap bypass attempts) passes.

Arbiter — v2 design (not built)

Designing in public. v1's honest limitation is that an operator rebuttal closes a dispute — we answer on-chain, but no neutral party can yet rule against us. VerdictBond v2 removes that. The full specification is published here, before it is built: arbiter-v2-design.md ↗.

The shape of it. A disputant who believes a rebuttal is dishonest will be able to escalate(id) to a neutral arbiter named by the counterparties at escrow creation; that arbiter's signed ruling (ruleDispute(id, forClaimant, rulingURI)) is binding and paid directly by the bond. The arbiter can only move funds in the claimant's favor or close the dispute — it can never drain the bond. v1's $1 deposit, $10 cap, 7-day timelock, and dispute-blocked withdrawals all carry over. A later upgrade can route escalation to a second bonded evaluator for true peer review, with no migration. We considered and rejected a token-staked jury: it is overkill for deterministic conditions and pulls in token economics we will not build.

Why it is not built yet. Building governance for a system with zero external users is premature. Per our current build plan, the contract ships when the first external dollar or a real dispute makes the gas and audit surface worth it — not before. Publishing the design now keeps the trust model honest and lets integrators hold us to it.

Methodology

On-chain numbers are read from settlement events emitted by EscrowV2 on Base. Anyone can independently recount them.

Worker counts come from the live hub health endpoint and reflect workers that import cleanly and pass re-execution checks. Failing workers are quarantined, not hidden.

Test data is never deleted from our records — it's labeled. The recorded_* fields exist so our own testing history stays auditable.

This page renders from public endpoints — audit them yourself:
GET /escrow/stats · GET /health · Live status page · EscrowV2 on Basescan ↗
Data notes we publish: Base gasless-USDC payment census, June 2026 ↗ · GET /x402/stats