/projects/jim — n°006 — MARKETS · AGENT ECONOMY — LIVE
JIM
Q:Can an agent sell research that proves itself?
An autonomous analyst that sells cited research over x402 micropayments — and buys its own upstream data the same way. Every number must trace to a source, or the memo doesn't ship.
On the bench since
MAY 2026
Last update
JUL 2026
Status
LIVE
Stage
Bench — raw, still moving
- product
- cited memos — $0.25 fundamentals · $0.50 on-chain · $0.15 macro · $0.10 monitor updates
- engine
- langgraph: gather → memo cache → debate → synthesize → gate → judge
- rails
- x402 v2 · usdc (eip-3009) · base mainnet · bazaar auto-discovery
- state
- phase 7 agent economy · 172 test fns · 87 offline eval cases · nightly gate + evals
One memo sale, both sides of the counter — JIM gets paid and pays the same way:
One memo sale, agent to agent
the memo — draft 1 of max 2
Revenue of $394.3B [C1], flat against a strong dollar.
Gross margin held at 43.3% [C2] on services mix.
The market pays 28.4x [C3] for that stability.
Services keeps compounding toward $85B.
sourcing gaterejected
“The sourcing gate REJECTED the memo. Fix every issue below: — uncited: "$85B" (citations: none)” → fed back to sonnet
a hallucinated number has no fact it matches — it structurally cannot pass
the tests pin this math: $0.25 out, $0.03 data, $0 test model → $0.22 margin · monitors bill $0.10 only when a material, cited update ships — quiet polls are free
open— waiting on the next GETcyan = value in motion — payments, receipts, a memo that proved itself · outline = the model has no say — code decides · ember= a number that couldn't prove itself
The gate is real and running: the tolerance test — max(2 % relative, 0.05 absolute) — executes on this memo in your browser, exactly as coded. Prices, the 402 header flow, the $0.10-per-query buy ceiling and the 2-attempt bound are quoted from the repo; C1 is the repo's own EDGAR example fact. The memo prose, the buyer and the open-phase traffic are representative.
2026.07.06
The gate survived its audit — and the evals grew a memory
Track 0 delivered its verdict: the sourcing gate held. The figure extractor now reads every notation family the fuzz threw at it — scientific notation, unicode minus signs, underscore-grouped integers, 5B-style suffixes, word scales ("five billion"), spelled-out percents, euro and pound amounts — and Hypothesis property tests pin both invariants: no planted lie passes, no truthful memo gets falsely rejected. Alongside the hardening, a run the gate rejects is now never billed, structurally.
Then the agent economy stopped being a roadmap item. Phase 7 landed peer sources — JIM buying research inputs from other agents over the same x402 rails it sells on — with a trust ledger and call-chain safety around them, and a resilience wrapper on the buy path so a degraded peer degrades gracefully instead of taking the memo down with it. Horizon 1 made the selling side public-grade: a proof page, signed receipts, a guarded agent identity, and a mainnet cutover with the facilitator client authenticated by CDP API keys — real settlement failures now surface as themselves instead of hiding behind a bare 402.
The biggest addition is the one that watches all the others (ADR-0009): a persisted eval harness with tiered suites. Offline — 38 gate cases, 40 guard cases, 9 end-to-end scenario cases, 87 in all — runs in about a second and a half with zero keys and zero network, and is the merge gate. Live — held-out tickers through the real pipeline — is rubric-scored and thresholded: a regression verdict fires if gate pass-rate drops more than 5%, rubric more than 2%, cost more than 25%, latency more than 50%. Every run persists to disk; jim-eval ui plots the trends and diffs run against run.
The harness paid for itself immediately. The live suite showed every memo failing the judge — while every offline gate stayed green. The cause wasn't quality: the judge's max_tokens was 900, its JSON verdict was truncating mid-array, and unparseable output read as rejection. Only a persisted, trend-tracked eval could tell "the memos got worse" from "the auditor ran out of paper." It's 4096 now, and the nightly digest runs .claude/gate.sh (lint + the full offline suite, ~15s) and .claude/evals.sh (the offline eval suites vs baseline) against this repo every morning before anyone opens a terminal.
2026.06.07
Track 0 — earn the right
Phases 0 through 5 are implemented and offline-proven: 114+ tests, the 402 challenge shape verified without spending, planted hallucinations blocked by the gate. Which is exactly why the next work is not features. The live legs — a real Sepolia settlement, a real paid memo at 100% coverage — are unproven, and the gate has never been adversarially stressed.
So Track 0: fuzz the sourcing gate with property-based tests. Scientific notation, unicode digits, non-US thousands separators, ranges like "$1.2–1.4B", spelled-out percents. The gate is the entire trust story; if it bends, the product is a rumor with a price tag.
14:02:11GET /research/fundamentals?ticker=AAPL → 402 PAYMENT REQUIRED14:02:12client signs eip-3009 usdc authorization → retry with payment header14:02:13facilitator /verify → ok. engine runs.14:02:14[gather] edgar 10-K facts · cache hit · cost_in $0.0014:02:21[debate] bull ∥ bear → judge verdict feeds synthesis14:02:29[synthesize · sonnet] memo drafted — 14 figures, 14 citations14:02:29[gate] 14/14 figures trace to cited facts — 0 violations14:02:31[judge · haiku] faithfulness 0.91 ≥ 0.8014:02:32/settle → tx receipt · 200 OK — memo + citations + economics14:02:32margin: $0.25 − $0.014 inference − $0.00 data
2026.06.03
The margin engine
JIM is a buyer too. Serving a token request, it pays The Graph ~$0.01 over x402 for Uniswap data — but only after the budget cap approves the spend (the source asks, the cap decides — hard ceiling $0.10 per query). The purchase lands in a cache with a one-day TTL, so the next sale of the same datum carries zero data cost. Buy once, resell many: the margin ledger prices every call as price_out − data − inference, and the dashboard shows which memos were nearly pure margin.
The same mechanism is the road to agent-to-agent composition: a future Source that gathers from a peer agent over x402 routes through the identical request → budget → cache path. And the sourcing gate becomes composition safety — an unverifiable figure from a subcontractor fails exactly like a hallucination would.
2026.05.30
Bull, bear, judge — and the gates that never sleep
The debate phase exists because single-pass analysis flatters whatever the data implies. Bull and bear each argue from the same fact set; a judge scores both; the verdict shapes synthesis. All of it is optional luxury — ENABLE_DEBATE off still produces a memo, because the deterministic spine doesn't need the theater.
Monitors run the same philosophy on a clock: diff against baseline, pure-function trigger crew, a materiality gate (5% price move, 10% metric change, RSI bands, 6-hour cooldown) that decides whether the model gets to speak at all. A quiet poll costs zero inference. When something is material, the update still has to pass the sourcing gate and the impersonal guard — general analysis only, no advice, no second person, no price targets.
2026.05.26
The gate came before the prose
First real component: a sourcing gate that knows nothing about language models. Pass A extracts every dollar amount, percent, and multiple from a memo; Pass B catches bare decimals sitting before a citation. Each figure must match a fact in the snapshot — same segment, tolerance max(2% relative, 0.05 absolute) — and a citation pointing at a fact that doesn't exist is itself a violation. Zero violations or the memo retries; retries exhausted, it's rejected and never billed as ok.
Everything since has been built around that one deterministic promise.
Open questions
- Q-01The settle-then-record window: if settlement lands and the cache write fails, the datum was bought and lost. Idempotency keys + a reconciliation job, or prepaid balances? (Still on the Phase 6/8 roadmap.)
- Q-02Offline evals are the merge gate; the live suite is stochastic, costs real inference, and its regression verdict still needs a human to read the trend. When does a rubric drop become a blocker rather than a morning read?
- Q-03The trust ledger exists — but has it seen a genuinely adversarial peer yet, or only well-behaved test doubles?
- Q-04Answered by Track 0: a regex gate CAN survive adversarial numerics — the extractor grew notation families instead of a tokenizer, and Hypothesis holds both invariants (no bypass, no false reject).
The thinking that runs underneath this bench
The Gate Held