Developers

The same rails our own interface runs on

Read endpoints are public and unauthenticated at 60 requests per minute. Trading endpoints need a key you create in the dashboard.

Endpoints

MethodPathAuthReturns
GET/v1/vaultsNoneAll vaults with TVL, APY, share price
GET/v1/vaults/:id/navNoneNAV series since inception
GET/v1/portfolio/:addressNonePositions for one address
POST/v1/depositsAPI keyBuilds an unsigned deposit transaction
WS/v1/streamNoneLive NAV and price channels

Quick example

curl https://api.loaf.com/v1/vaults \
  -H "Accept: application/json"

{
  "vaults": [
    { "id": "core-yield", "chain": "base", "asset": "USDC",
      "tvl": 318000, "apy30d": 0.094, "sharePrice": "1.0472" }
  ]
}

Rate limits & conventions

60 req / minPublic read endpoints, per IP
600 req / minAuthenticated, per API key
ISO 8601 + UTCEvery timestamp, no exceptions
Amounts are returned as strings in base units to avoid float rounding. Errors use standard HTTP status codes with a machine-readable code field.

Read the full reference