An Agent-First Protocol API
Agent-First Protocol API
All of F* Protocol's public data, exposed as an anonymous, read-only, OpenAPI 3.1-described HTTP API — built for AI agents and LLM tool use. No keys, no SDK, no Solidity required: one GET returns structured JSON.
An agent shouldn't have to parse an ABI, run an RPC node and align 18 decimals just to read a NAV.
We package on-chain truth (NAV, dividends, reserve, allocations, contract addresses, indexed events) into stable resource endpoints with an RFC 7807 error model and ETag caching. Any LLM can self-describe from /openapi.json or /llms.txt and issue correct calls. Write operations (subscribe, redeem, claim) are still signed by the user's own wallet — the API never holds keys.
Three kinds of agent
The three callers we designed the endpoints around
Fund-discovery agent
FUND DISCOVERY
Enumerate /v1/funds, compare NAV trajectories, policies, reserve levels and strategy ratings, and shortlist funds that match a user's risk profile.
Portfolio-strategy agent
PORTFOLIO STRATEGY
Pull /v1/strategies and /v1/funds/{slug}/nav/history, combine Sharpe / Sortino / max-drawdown ratings, and build and backtest multi-fund allocations.
Audit & monitoring agent
AUDIT & MONITORING
Watch /v1/events and /v1/health for NAV publications, dividend rounds, paused modules and indexer lag, and alert on anomalies in real time.
Why it's built this way
Every decision keeps agents out of a ditch
- Anonymous & read-only: zero auth friction, instantly usable; writes go through wallet signatures, so there are no server-side keys to leak.
- OpenAPI 3.1 as the single source of truth: /openapi.json describes every endpoint's params, responses and examples, so an LLM can auto-generate a tool schema.
- RFC 7807 error model: application/problem+json — agents parse failures from uniform fields (type/title/status/detail).
- Resource-style REST: all GET, noun paths, no verbs; fund / strategy / nav / dividend match on-chain terms with no re-translation.
- ETag + Cache-Control: send If-None-Match for cheap 304s; tiered caching (NAV 30s, history 5min, protocol meta 1h).
- Stable versioning: /v1/ path prefix; breaking changes go to /v2/; deprecated endpoints return 410 Gone + a Link header for at least 90 days.
Five entry files — /openapi.json, /llms.txt, /llms-full.txt, /.well-known/ai-plugin.json, /.well-known/agents.json — let OpenAI, Anthropic and LangChain agent runtimes discover and connect to the protocol automatically.
Endpoint cheat sheet
All GET · anonymous · JSON
16 read-only endpoints across four layers — protocol, funds, strategies and events. Full params and response examples in the API reference.
| ENDPOINT | PURPOSE |
|---|---|
| GET /v1/protocol | Protocol metadata: version, chain, contract count, funds, policies |
| GET /v1/contracts | On-chain contract registry (address + role + explorer link) |
| GET /v1/policies | Settlement policy plugins (ThreePoolPolicy / KellyPolicy) with params |
| GET /v1/health | Service & indexer health, latest NAV epoch, paused modules |
| GET /v1/funds | Fund list + policy + latest NAV summary |
| GET /v1/funds/{slug} | Fund detail (contract addresses, portal links) |
| GET /v1/funds/{slug}/nav | Latest published NAV |
| GET /v1/funds/{slug}/nav/history | NAV time series (default last 90 epochs) |
| GET /v1/funds/{slug}/allocations | Current strategy capital allocation |
| GET /v1/funds/{slug}/reserve | Dream Reserve level and target band |
| GET /v1/funds/{slug}/dividends | Dividend rounds (cursor paging) |
| GET /v1/funds/{slug}/dividends/{epoch} | Single dividend round (Merkle root, total) |
| GET /v1/funds/{slug}/dividends/{epoch}/proof | Merkle proof an address needs to claim |
| GET /v1/strategies | Strategy catalogue + quantitative & human ratings |
| GET /v1/strategies/{slug} | Single strategy detail |
| GET /v1/events | Indexed on-chain event stream (cursor paging) |
Data currently reflects Arbitrum Sepolia testnet (chainId 421614). Rate limit 60 req/min/IP (burst 20).
Five discovery files
Zero-config onboarding for agent runtimes
Connect your agent now
Feed /openapi.json to Claude tool use or OpenAI function calling, or read the 4-step quickstart first.
Anonymous & read-only · no key required · MIT-licensed