vaults.fyi

The API for
onchain finance.

Market data, transaction payloads, and portfolio tracking across 1,000+ vaults on 20+ networks, from one consistent API.

quickstart.ts
import { VaultsSdk } from '@vaultsfyi/sdk'

const client = new VaultsSdk({
  apiKey: process.env.VAULTS_FYI_API_KEY
})

// Best USDC vaults for this user, ranked by APY
const options = await client.getDepositOptions({
  path:  { userAddress },
  query: { allowedAssets: ['USDC'] }
})

const top = options[0]
// top.name          → "Gauntlet USD Alpha"
// top.apy['1day']   → { base: 0.0526, total: 0.0526 }
// top.network.name  → "base"
// top.isTransactional → true  (ready for deposit)

Trusted by industry leaders

Everything you need. One API.

Market data

APY, TVL, vault metadata, and historical rates across 80+ protocols. Normalized to a consistent schema. No custom parsers.

GET/v2/detailed-vaults

Transactions

Ready-to-sign deposit and redeem calldata. Transactions go directly to protocol contracts. No intermediary, no custodian.

GET/v2/transactions/deposit

Portfolio

Accurate P&L, position tracking, and deposit/withdrawal history. We handle the accounting. No custom tables required.

GET/v2/portfolio/positions

Real-time metrics

Sub-second share price, total assets, and supply from onchain state. For deposit previews, live dashboards, and liquidation monitoring.

GET/v2/nrt/vault/

Every major protocol.
Every major chain.

Indexed directly from onchain state. No external APIs. No scraped data. Standardized APY methodology across all protocols.

20+

Networks

80+

Protocols

1,000+

Vaults

$100B+

TVL tracked

Protocols supported

Aave Aave
Morpho Morpho
Compound Compound
Lido Lido
Euler Euler
Sky Sky
Yearn Yearn
Fluid Fluid
Pendle Pendle
Spark Spark
Convex Convex
Gauntlet Gauntlet
Mellow Mellow
Kelp Kelp
ether.fi ether.fi
+65 more

Pick your plan.

All plans include full docs access and versioned APIs.
Subscription plans also include priority support with <24h SLA.

Pay as you go

$0.002 /credit

For occasional usage or variable workloads. No commitment.

  • Access to all endpoints
  • No monthly minimum
  • Pay only for credits used
  • 10 requests / second

Analyst

$399 /month

For research and analytics teams needing reliable market data.

  • Market data: APY, TVL, metadata
  • Historical market data
  • Portfolio & positions
  • Transaction payloads
  • 250,000 credits / month
  • 10 requests / second
Get started

Growth

Popular
$599 /month

Full-stack access for teams building yield products and integrations.

  • Everything in Analyst
  • 500,000 credits / month
  • 20 requests / second
  • Prioritized protocol integrations
Get started

Builder

$999 /month

High-volume access with influence over the API roadmap.

  • Everything in Growth
  • 1,000,000 credits / month
  • 50 requests / second
  • Prioritized API feature development
  • Prioritized chain & protocol integrations
Get started

Enterprise

Custom

For teams with custom scale, SLA, or feature requirements.

  • Everything in Builder
  • Custom credit volume
  • Custom rate limits
  • Dedicated support + on-call critical response
  • Custom feature development
Get access

Credits reflect compute usage: lightweight endpoints cost 1 credit per call. Learn more →

Up and running in minutes.

1

Get an API key

Sign up for a plan and receive your key immediately. No sales call required.

Get API key
2

Install the SDK

TypeScript and Python SDKs available. Or use the REST API directly, with a fully documented OpenAPI spec.

npm install @vaultsfyi/sdk
3

Ship

Everything you need is in the docs: API reference, SDK reference, and step-by-step integration guides.

earn_widget.py Full quickstart →
import os
from vaultsfyi import VaultsSdk

client = VaultsSdk(
    api_key=os.getenv("VAULTS_FYI_API_KEY")
)

# Rank USDC yield opportunities for this user
options = client.get_deposit_options(
    user_address,
    allowed_assets=["USDC"]
)

top = options[0]
# top["name"]                    "Gauntlet USD Alpha"
# top["apy"]["1day"]["total"]     0.0526
# top["network"]["name"]          "base"

# Get deposit calldata for the top result
tx = client.get_transaction_context(
    user_address=user_address,
    network=top["network"]["name"],
    vault_address=top["address"]
)

# Sign and send, directly to the protocol
for action in tx["actions"]:
    wallet.send_transaction(action["tx"])

What builders say.

"Using a third-party data source signals to investors that Maple isn't grading its own homework."

Maple Finance

Maple Finance

Maple Yield Performance 2024 report

"By using a third-party institutional-grade analytics provider like vaults.fyi, there's no opportunity to 'play games' with displayed APY data."

Nashpoint

Cormac Daly

Founder, Nashpoint

Ready to build?

Get an API key and make your first call in minutes.