REST API for the multi-vault DeFi yield aggregator.
API_KEY is configured, include Authorization: Bearer <key> on all requests./api/vaults30/minOn-chain data for all vaults on a given chain.
| Param | Type | Required | Description |
|---|---|---|---|
| chainId | 1 | 8453 | Yes | Ethereum (1) or Base (8453) |
Response
{
"0x5c1E...64bc": {
"vaultId": "arbcap-usdt-core",
"totalAssets": "1234567890",
"totalSupply": "1234567890",
"assetAddress": "0x...",
"vaultDecimals": 6
}
}/api/vaults/metadata60/minAPY, utilization, and trend data for vaults.
Cache: 60s
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | No | Filter to a single vault |
Response
[{
"vault_id": "arbcap-usdt-core",
"apy": 4.52,
"apy_trend": "up",
"utilization": 0.85,
"updated_at": "2026-02-25T12:00:00"
}]/api/vaults/allocations30/minPer-strategy/market allocations for a vault with APYs.
MetaMorpho: APYs from Morpho GraphQL with on-chain IRM fallback. Euler: APYs from D1.
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | Yes | Vault identifier |
Response
{
"allocations": [{
"strategy": "0xabc...def",
"name": "WBTC / USDT",
"allocated": "500000000",
"percentage": 45.23,
"cap": "1000000000",
"apy": 4.54
}]
}/api/vaults/snapshots60/minHistorical TVL snapshots for a vault.
Cache: 300s
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | Yes | Vault identifier |
| days | number | No | Lookback period (default 30, 1–365) |
Response
{
"snapshots": [{
"timestamp": "2026-02-20T00:00:00",
"total_assets": "1234567890",
"total_supply": "1234567890"
}]
}/api/vaults/apy-history60/minHistorical APY snapshots for a vault.
Cache: 300s
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | Yes | Vault identifier |
| days | number | No | Lookback period (default 7, 1–90) |
Response
{
"snapshots": [{
"timestamp": "2026-02-20T00:00:00",
"apy": 4.52
}]
}/api/vaults/performance60/minAggregated performance stats over a time window.
Cache: 300s
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | Yes | Vault identifier |
| days | number | No | Lookback period (default 30, 1–365) |
Response
{
"avg_apy": 7.83,
"min_apy": 5.12,
"max_apy": 11.04,
"tvl_start": "1000000000",
"tvl_end": "1125000000",
"tvl_change_pct": 12.5
}/api/vaults/strategy-history60/minHistorical TVL snapshots for a strategy.
Cache: 300s
| Param | Type | Required | Description |
|---|---|---|---|
| strategy | string | Yes | Strategy contract address |
| days | number | No | Lookback period (default 30, 1–365) |
Response
{
"snapshots": [{
"timestamp": "2026-02-20T00:00:00",
"strategy_address": "0xabc...def",
"total_assets": "1234567890",
"total_supply": "1234567890"
}]
}/api/vaults/position30/minOn-chain position data for a user in a vault.
| Param | Type | Required | Description |
|---|---|---|---|
| chainId | 1 | 8453 | Yes | Chain ID |
| vault | address | Yes | Vault contract address |
| asset | address | Yes | Underlying asset address |
| user | address | Yes | User wallet address |
Response
{
"assetBalance": "1000000",
"allowance": "500000",
"shareBalance": "980000",
"maxWithdraw": "990000"
}/api/vaults/preview-withdraw30/minPreview shares required to withdraw a given asset amount.
| Param | Type | Required | Description |
|---|---|---|---|
| chainId | 1 | 8453 | Yes | Chain ID |
| vault | address | Yes | Vault contract address |
| amount | string | Yes | Asset amount (BigInt as string) |
Response
{
"sharesRequired": "980000"
}/api/vaults/position-snapshots60/minHistorical position value snapshots for a user.
| Param | Type | Required | Description |
|---|---|---|---|
| user | string | Yes | User wallet address |
| vault_id | string | Yes | Vault identifier |
| days | number | No | Lookback period (default 30, 1–365) |
Response
{
"snapshots": [{
"timestamp": "2026-02-20T00:00:00",
"asset_value": "1050000"
}]
}/api/portfolio60/minUser portfolio summary across all vaults.
| Param | Type | Required | Description |
|---|---|---|---|
| user | string | Yes | User wallet address |
Response
{
"total_value": "125000000",
"vaults": [{
"vault_id": "arbcap-usdt-core",
"asset_value": "100000000",
"share_balance": "98000000",
"timestamp": "2026-02-25T12:00:00",
"deposit_count": 3,
"withdraw_count": 1
}]
}/api/transactions60/minRecent transactions for a user (max 100, newest first).
| Param | Type | Required | Description |
|---|---|---|---|
| user | string | Yes | User wallet address |
| vault_id | string | No | Filter to a specific vault |
Response
[{
"id": 1,
"user_address": "0xabc...def",
"vault_id": "arbcap-usdt-core",
"chain_id": 1,
"tx_hash": "0x123...789",
"action": "deposit",
"amount": "1000000",
"shares": "980000",
"timestamp": "2026-02-25T10:30:00"
}]/api/transactions/summary60/minAggregated transaction volume stats.
Cache: 120s
| Param | Type | Required | Description |
|---|---|---|---|
| vault_id | string | No | Filter to a specific vault |
| days | number | No | Lookback period (default 30, 1–365) |
Response
{
"deposit_count": 47,
"withdraw_count": 12,
"total_deposited": "1250000000",
"total_withdrawn": "320000000",
"unique_users": 18
}/api/strategies60/minAll strategy APYs, ordered by APY descending.
Cache: 120s
Response
[{
"strategy_address": "0xabc...def",
"name": "WBTC / USDT",
"apy": 4.54,
"updated_at": "2026-02-25T12:00:00"
}]/api/overview60/minProtocol-wide aggregate stats.
Cache: 120s
Response
{
"total_tvl": "5250000000",
"vault_count": 3,
"avg_apy": 7.2,
"total_users": 42
}/api/rpc30/minProxies JSON-RPC requests to Alchemy. Only whitelisted methods allowed.
Auth: Required — Bearer <WORKER_SECRET | API_KEY>
Allowed methods: eth_chainId, eth_call, eth_estimateGas, eth_getTransactionReceipt. Max body: 8KB. No batch requests.
| Param | Type | Required | Description |
|---|---|---|---|
| chainId | "1" | "8453" | No | Chain ID (default "1") |
Response
Upstream Alchemy JSON-RPC response