Real-time, risk-weighted yield signals for autonomous agents: ETH liquid staking APY across Lido, Rocket Pool, Coinbase Wrapped Staked ETH, Frax Ether and Binance Staked ETH on Ethereum mainnet, plus USDC/WETH lending APY across Aave, Compound, Morpho, Moonwell, Euler and Fluid on Base — sold per-call via x402, REST + MCP, no API key. Seven products: the raw signal; a buyer-side MOVE/HOLD decision with expected net gain and break-even in days; a durability report splitting each APY into base vs incentive and reporting the post-incentive floor; an exit-capacity report giving per-protocol utilization and withdrawable liquidity from the protocol's own books; a rate-sensitivity report giving each market's distance to the kink where borrow rates explode, read from the protocol's own interest rate curve; and a shared-exposure report that takes declared positions and shows how much capital sits behind the same collateral, oracle or curator across venues; and a leadership-persistence report — the one no competing feed can produce — measuring, from this service's own hourly on-chain attestations, how long its calls actually held: median lead duration, survival at 6/24/72h, the round-trip share of leader rotation, and the measured finding that the size of a lead does NOT predict its durability. Every response signed (EIP-712 typed data) by the payment-receiving address; periodic on-chain attestations (EAS, Base mainnet) provide a public, permanent track record independent of this server's uptime, per-asset verified accuracy is free at /accuracy.json, and the aggregate leadership-durability history — including the measured finding that a wider yield lead is NOT more durable — is free and reproducible at /persistence.json.
The seven checks, with their evidence
7 recordedRegistered?rung 1 · registered
passThe agent exists in the on-chain registry, with an owner and a document URL.
passed
- block_number
- 52281733
- chain_id
- 8453
- token_id
- 59272
checked at 2026-10-07T15:58:01.206922Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- elapsed_ms
- 535
- http_status
- 200
- scheme
- https
checked at 2026-10-07T15:58:01.206922Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 2402
- body_sha256
- fbad63f7da2bc3a6b90c3d2762614d212f20659c1d08ce85bfb3d83423a902a3
- content_type
- application/json; charset=utf-8
checked at 2026-10-07T15:58:01.206922Z
Follows the spec?rung 4 · conformant
passThe document meets what ERC-8004 requires of it.
passed
- both_fields_present
- false
- legacy_endpoints_field
- false
- may_gaps
- (empty)
- must_violations
- (empty)
- registrations_checked
- 1
- services_field_source
- services
- services_status
- present
- should_gaps
- image, services[].version
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-10-07T15:58:01.206922Z
Claims its identity?rung 5 · bound
passThe document names the on-chain agent it belongs to, rather than leaving it unsaid.
passed
- declared_agent_id
- 59272
- declared_chain
- 8453
- declared_registry
- eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
- match
- true
- registrations_seen
- 1
checked at 2026-10-07T15:58:01.206922Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://yieldsignal.vercel.app/","elapsed_ms":1743,"final_url":"https://yieldsignal.vercel.app/","http_stat… (502 chars — expand)
{"declared":"https://yieldsignal.vercel.app/","elapsed_ms":1743,"final_url":"https://yieldsignal.vercel.app/","http_status":200,"index":0,"kind":"https","name":"web","outcome":"live","probed":true,"probed_url":"https://yieldsignal.vercel.app/"}, {"declared":"https://yieldsignal.vercel.app/mcp","elapsed_ms":561,"final_url":"https://yieldsignal.vercel.app/mcp","http_status":404,"index":1,"kind":"https","name":"MCP","outcome":"not_live","probed":true,"probed_url":"https://yieldsignal.vercel.app/mcp"}- endpoints_answered_not_live
- 1
- endpoints_declared
- 2
- endpoints_live
- 1
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 2
- endpoints_probed
- 2
- endpoints_refused
- 0
checked at 2026-10-07T19:37:51.488079Z
Has feedback?rung 7 · attested
failAt least one on-chain feedback entry names this agent.
did not pass
- distinct_authors
- 0
- feedback_count
- 0
- reason
- no_feedback
checked at 2026-10-07T15:58:01.206922Z
Check it again, now
outside the censusOn-chain snapshot
base- token id
- 59272
- owner
- 0x561143bfe9e2d975d92e915b8effeaa54119472a
- block
- 52,281,733
- observed
- 2026-10-07T15:58:01.210035Z
What the fetch saw
https- scheme
- https
- http status
- 200
- content type
- application/json; charset=utf-8
- size
- 2,402 bytes
- sha256
- fbad63f7da2bc3a6b90c3d2762614d212f20659c1d08ce85bfb3d83423a902a3
- elapsed
- 535 ms
This run
reproducible- run
- c67de707-a82d-4589-8936-acd5a584c720
- chain
- base
- pinned block
- 52,281,733
- agents
- 98,319
- started
- 2026-10-07T06:00:13.662398Z
- finished
- 2026-10-07T19:18:37.899751Z
- checker
- 0.7.0 · 10238dd9af44dfa032e6578390569a413a6bb393
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- base # at block 52281733