Fixed income,
executed by agents.
Bloomberg built the terminal that runs traditional fixed income. Nobody built the one that runs on-chain fixed income. The Agentic EMS reads standardized subgraph data across chains, reasons over yield, duration and vega with quant math tools, and routes capital through Uniswap v4 and 1inch — with risk gates in the loop.
- Subgraphs live
- 5
- gateway-verified
- Chains (lending)
- 3
- aave v3 standardized
- Quant tools
- 7
- vega · lvr · η · var
agentic-ems · boot log
tty0
$ agentic-ems --init
✓ 5 subgraph endpoints healthy (gateway.thegraph.com)
✓ standardized lending schema: aave-v3 × eth/arb/opt
✓ uniswap v4: 131,148 pools · $654B cumulative volume
✓ quant function table: vega · lvr · η · var loaded
→ agent awaiting mandate _
NET APY
12.1%
VEGA/VOL-PT
−0.38
DURATION
4.2
VAR95
$212K
metrics from live gateway queries · snapshot 2026-09-07 · block 25,925,399
01 — Thesis
Fixed income runs on terminals. DeFi is running on vibes.
Traditional fixed income has forty years of execution infrastructure: risk models, pre-trade gates, smart order routing, audit trails. On-chain fixed income has APY screenshots. The pieces all exist — standardized data, real quant math, programmable execution — but nothing connects them. That connection is the Agentic EMS.
Credit desk
Trad · Merton structural default — asset value vs. debt barrier
Ours · Protocol TVL vs. borrowed capital, per reserve, per chain — live from standardized reserves entities
Rates desk
Trad · DV01 / duration — sensitivity of a book to a basis-point move
Ours · Lending APY term structure per asset and per chain, with utilization curves from reserve snapshots
Volatility desk
Trad · Vega — P&L sensitivity to implied vol
Ours · LVR rebalancing cost for LP books: L²σ²/8, and LP vega: k − L²σ/4, computed from hourly closes
Liquidity desk
Trad · LQA — liquidity-adjusted valuation before execution
Ours · Volume-to-TVL ratios, fee APYs, depth and dynamic-fee hooks — scored before capital moves
Same discipline as the traditional desks — different data plumbing, and the analyst is an agent with a math function table.
02 — Architecture
Data → agent → risk → execution. Nothing skipped.
Every box left of the agent is already running in this repo — five healthy subgraph endpoints, a protocol registry that maps any protocol×network to its standardized schema, and a typed transport with health gates and cursor pagination. The agent layer wraps it; the math table keeps the LLM away from arithmetic; the execution edge is where 1inch and Uniswap v4 come in.
drag / zoom the canvas — every node names a real module in packages/the-graph and packages/langchain.
03 — Live data
Not a mock. These endpoints answered today.
Five gateway-verified deployments feed the system right now — consumed live from The Graph's decentralized network with API-key auth, block-height checks and indexing-error gates. Snapshot below taken 2026-09-07; block heights are the health-check values recorded in the run log.
id Cd2gED…LNRcL87g · block 25,925,399
reserves · liquidityRate · variableBorrowRate · utilization
USDC 6.8% supply · 1INCH $1.67M TVL
id DLuE98…bAEqMfy3B · block 502,674,124
same standardized schema, second chain
FRAX $128K · WBTC · ezETH
id DSfLz8…LSXAfvb · block 156,592,194
same query, zero changes — that is the point
USDC 3.5% borrow · LINK · wstETH
id DiYPVd…2rkLb3G · block 25,925,399
pools · hooks · feeTier · volumeUSD · hour series
131,148 pools · $654B volume · 37.7M tx
id Bx1W4S…2DiBp · block 93,385,421
conditions · fixedProductMarketMakers · redemptions
$29.4M single redemption payout
One query pattern, many protocols
ProtocolRegistry resolves protocol×network → standardized schema. The same reserves query runs on Aave V3 Ethereum, Arbitrum and Optimism without a single changed field.
The LLM never does arithmetic
Seven golden-tested math tools (calc_realized_vol, calc_lvr, calc_vega, calc_net_apy, calc_efficiency_ratio, calc_allocation…) form a function table. The model supplies arguments; TypeScript computes.
Agents that show their work
deepagents + LangGraph wrap the tools with a system contract: every number in the report must trace to a tool result. LangSmith (EU) records the full call tree.
Risk gates before execution
vega budget, efficiency ratio η = netAPY/LVR, concentration caps and σ×1.5 stress runs gate every allocation before an order is expressed.
04 — Prize tracks
We are not entering everything. We are entering where the build already points.
Two Graph tracks cover what shipped this week — standardized subgraph composition and an AI agent doing real work over live data. The 1inch Aqua and Uniswap v4 tracks cover the execution edge, where the agent's allocations become positions. Requirements below are quoted from the official track listings and mapped to what exists.
1st $2,500
1st $2,500 · 2nd $1,500 · 3rd $1,000
Build on a standardized schema (Messari) or compose 2+ Graph products
One ProtocolRegistry maps aave-v3 × {eth, arb, opt} to the same reserves query; Subgraph MCP composes discovery on top
Consume live data from a Graph provider — no mocked datasets
5 gateway endpoints health-checked 2026-09-07; block heights 25,925,399 / 502,674,124 / 156,592,194 recorded
Make the standards leverage clear
Adding Optimism took one config line, zero query changes — the leverage demo is literal
Public repository + 2–4 minute demo video
This open-source repo; demo section below
1st $2,500
1st $2,500 · 2nd $1,500 · 3rd $1,000
AI agent uses The Graph as its load-bearing data source
DeepGraphAgent (deepagents + LangGraph) — every risk verdict is computed over live subgraph rows
Meaningful work: reasoning, decisions, automation — not printing rows
Yield routing across chains, vega-budgeted allocation weights, stress verdicts; natural-language mandate in, allocation out
Open-source with README / SKILL.md so judges can run it
packages/langchain + packages/the-graph, CLI one-liners documented, Level A/B probe scripts
Reusable infrastructure, not a single end-user app
The math function table + ProtocolRegistry are agent-agnostic; any LangChain app can mount them
1st $2,500
1st $2,500 · 2nd $1,500 · 3rd $1,000
Custom Aqua app implementing a sophisticated DeFi position
Plan: agent-computed fixed-income allocations (weights ∝ η = netAPY/LVR) expressed as Aqua shared-liquidity positions
SwapVM usage scores higher — strategies as data
The agent's vega-budgeted strategy compiles to a SwapVM program: concentration L, rebalance trigger σ, exit rule — one program, no per-strategy contract
Official Aqua/SwapVM contracts, onchain execution demoed (local forks ok)
Execution leg wired through official contracts; fork demo planned in the final build
Proper git commit history
Full session history in this repository — no single-commit entries
Up to 3 teams
Up to 3 teams · $1,000 each
Build on any part of the Uniswap stack — v4, hooks, tooling
Live v4 subgraph analysis: volume-ranked venues, hook leaderboard, dynamic-fee (8388608) detection, hourly σ — shipping as reusable tools
FEEDBACK.md + developer feedback form
Feedback file drafted with the TVL-accounting quirk (negative TVL on flash-heavy pools) and hook-discovery gaps we hit
README points to relevant contracts and lines of code
PHASE1_TEST_RESULTS.md records pool IDs, hook addresses and block heights used in verification
Honesty policy: green = shipped and verifiable in this repo today. Dashed = planned work scoped for the remaining build window. Judges can re-run every claim: probe scripts print the same numbers shown here.
05 — Uniswap v4
Uniswap Foundation · $3,0001inch Aqua · $5,000Dynamic fixed income on v4: fees plus lending yield, minus the vol you carry.
Uniswap v4's hooks turn an LP position into a bond-like instrument: idle capital earns a lending leg while active capital earns fees, and the hook — not a vault contract — manages both. The agent prices these books honestly: it subtracts the rebalancing cost (LVR) before calling anything "yield", and it tracks vega so the book's short-vol exposure is a managed number, not a surprise.
fixedIncomeMath.ts — golden-tested
23/23 assertions
(1−w)·feeAPY + w·r − L²σ²/8 − gas
netAPY
trading fees on active capital + lending yield on the hook-swept idle leg − rebalancing cost
𝒱 = k − L²σ/4
vega
yield sensitivity to vol; with fee slope k = feeAPY/σ. Per vol point: 𝒱/100 × notional
L²σ²/8
LVR
Loss-Versus-Rebalancing — the credit spread an LP book is paid to bear (Milionis–Moallemi–Roughgarden)
wᵢ ∝ ηᵢ = netAPYᵢ / LVRᵢ
weights
allocation proportional to the Fixed-Income Efficiency Ratio, filtered by APR target and vega budget
Active capital earns the pool fee tier. For the top USDC/WETH hooked book that tier is dynamic — feeTier 8388608 means the hook sets it at runtime.
A DualPool-style hook sweeps unused tokens into a lending vault (Spark-style). The accounting is a virtual balance — the protocol holds nothing.
When a swap needs the swept capital, the hook restores it in the same transaction. Yield continues between fills.
The agent watches realized vol from hourly closes. Past a trigger it cuts range leverage L — because the bleed is L²σ²/8, L is the only knob that beats quadratic cost.
1inch Aqua is the same idea from the execution side: virtual balances are accounting entries, tokens move only when a swap fills — which is why the agent's strategy can compile to a SwapVM program instead of a per-strategy contract.
06 — Stack
Every layer is a package you can read, run, or fork.
@ethonline2026/graph-fno-indexer
SubgraphClient (health gate, id_gt cursors, _change_block deltas) · ProtocolRegistry · FnoDataExtractor
Messari standardized subgraphs
one reserves/rates schema across Aave V3 on Ethereum, Arbitrum, Optimism — the Track 1.1 leverage
Subgraph MCP
agent-time discovery: schema introspection, top deployments, cross-protocol search
@ethonline2026/langchain-agent
DeepGraphAgent on deepagents + LangGraph: 40+ typed tools, Markdown report contract, invoke-level transient retry
Math function table
calc_realized_vol · calc_fee_apy · calc_lvr · calc_net_apy · calc_vega · calc_efficiency_ratio · calc_allocation — golden-tested, LLM supplies arguments only
Google Vertex AI (gemini-2.5-flash-lite)
strategic reasoning and report writing; ADC auth, EU LangSmith observability on the full call tree
1inch Aqua + SwapVM
self-custodial shared liquidity; agent allocations compile to SwapVM programs — strategies as data (Track 5.1)
Uniswap v4 hooks
dual-hook LP books: idle capital to a lending leg, dynamic fee tiers, σ-triggered de-levering (Track 7.1)
Uniswap v4 subgraph
venue discovery by volume, hook leaderboard, hourly realized-vol series feeding the vega math
Next.js 15 + React 19
single-page app, server components by default, client islands only where interaction demands it
shadcn/ui primitives + Tailwind v4
button/card/badge/separator re-themed to Terminal Noir — squared corners, hairline edges
React Flow (@xyflow/react)
the architecture canvas above — every node names a real module in this monorepo
07 — Demo
The two-minute pitch.
The recorded walkthrough of the system — the data layer answering live, the agent reasoning over standardized rows, and the fixed income report produced at the end. This clip itself was composed in our own FastH3 video studio — chained continuous scenes, generated by the same agent stack.
demo-pitch.mp4
compose new pitch episodes — chained scenes, one continuous cut