vaults.fyi
Return ranked deposit options for a wallet across all eligible vaults, accounting for risk tolerance and asset allocation. Requires header x-402-auth: true to receive x402 payment challenge.
Offering
- Provider
- vaults.fyi
- Method
- GET
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Financial Analysis
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://api.vaults.fyi/v2/portfolio/best-deposit-options/%7Baddress%7D- MIME type
- application/json
- First seen
- 2026-10-16T01:50:03.310Z
- Last seen
- Tags
- X402, DeFi, yield, vaults, Portfolio, on-chain
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.202 USDC
Atomic price: 202000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 0.202 USDC
Atomic price: 202000 · Network: eip155:8453 · Asset: USDC · Scheme: batch-settlement
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "202000",
"payTo": "0x108BCd8a07C3fdfca3Aa500784A8573123a1029F"
},
{
"scheme": "batch-settlement",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "202000",
"payTo": "0x108BCd8a07C3fdfca3Aa500784A8573123a1029F"
}
]Observed health
- Status
- Reachable
- Latest latency
- 100 ms
- Average latency
- 213 ms
- HTTP status
- 400
- Last checked
- Reachability
- 100% over 13 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"type": "http",
"method": "GET",
"pathParams": {
"type": "object",
"required": [
"userAddress"
],
"properties": {
"userAddress": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "User address to be used for best vault calculation"
}
}
},
"queryParams": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Tags to be included."
},
"maxApy": {
"type": "number",
"description": "Maximum APY (in decimal) of the vaults to be included"
},
"maxTvl": {
"type": "integer",
"description": "Maximum TVL in USD of the vaults to be included"
},
"minApy": {
"type": "number",
"minimum": 0,
"description": "Minimum APY of the vault to be included"
},
"minTvl": {
"type": "integer",
"default": 100000,
"minimum": 0,
"description": "Minimum TVL in USD of the vaults to be included"
},
"curators": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Curators to be included."
},
"apyInterval": {
"enum": [
"1day",
"7day",
"30day"
],
"type": "string",
"default": "7day",
"description": "Interval for APY data. Possible values: 1day, 7day, 30day"
},
"allowedAssets": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Assets to be included by symbol(ticker)."
},
"minVaultScore": {
"type": "number",
"minimum": 0,
"description": "Minimum vault score required for a vault to be included"
},
"allowCorrupted": {
"type": "boolean",
"default": false,
"description": "Allow inclusion of corrupted vaults."
},
"allowedNetworks": {
"type": "array",
"items": {
"enum": [
"mainnet",
"optimism",
"arbitrum",
"polygon",
"gnosis",
"base",
"unichain",
"swellchain",
"celo",
"worldchain",
"berachain",
"ink",
"bsc",
"hyperliquid",
"plasma",
"avalanche",
"katana",
"linea",
"mega-eth",
"monad",
"etherlink",
"robinhood",
"eip155:1",
"eip155:10",
"eip155:42161",
"eip155:137",
"eip155:100",
"eip155:8453",
"eip155:130",
"eip155:1923",
"eip155:42220",
"eip155:480",
"eip155:80094",
"eip155:57073",
"eip155:56",
"eip155:999",
"eip155:9745",
"eip155:43114",
"eip155:747474",
"eip155:59144",
"eip155:4326",
"eip155:143",
"eip155:42793",
"eip155:4663"
],
"type": "string",
"description": "Include only vaults with provided network(name or CAIP)"
},
"default": [
"base",
"mainnet",
"arbitrum",
"optimism"
],
"description": "Networks to be included (name or CAIP)."
},
"onlyAppFeatured": {
"type": "boolean",
"default": "true",
"description": "Include only vaults that are featured in app.vaults.fyi"
},
"allowedProtocols": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Protocols to be included by protocol ID or name."
},
"disallowedAssets": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Assets to be excluded by symbol(ticker). The parameter is ignored if \"allowedAssets\" is specified."
},
"maxVaultsPerAsset": {
"type": "integer",
"default": 3,
"minimum": 0,
"description": "Maximum number of vaults to be included per asset.",
"exclusiveMinimum": true
},
"onlyTransactional": {
"type": "boolean",
"description": "Include only vaults that are supported in the transactional interface."
},
"alwaysReturnAssets": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Assets to always be included in the response."
},
"disallowedNetworks": {
"type": "array",
"items": {
"enum": [
"mainnet",
"optimism",
"arbitrum",
"polygon",
"gnosis",
"base",
"unichain",
"swellchain",
"celo",
"worldchain",
"berachain",
"ink",
"bsc",
"hyperliquid",
"plasma",
"avalanche",
"katana",
"linea",
"mega-eth",
"monad",
"etherlink",
"robinhood",
"eip155:1",
"eip155:10",
"eip155:42161",
"eip155:137",
"eip155:100",
"eip155:8453",
"eip155:130",
"eip155:1923",
"eip155:42220",
"eip155:480",
"eip155:80094",
"eip155:57073",
"eip155:56",
"eip155:999",
"eip155:9745",
"eip155:43114",
"eip155:747474",
"eip155:59144",
"eip155:4326",
"eip155:143",
"eip155:42793",
"eip155:4663"
],
"type": "string",
"description": "Include only vaults with provided network(name or CAIP)"
},
"description": "Networks to be excluded (name or CAIP). The parameter is ignored if \"allowedNetworks\" is specified."
},
"disallowedProtocols": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Protocols to be excluded by protocol ID or name. The parameter is ignored if \"allowedProtocols\" is specified."
},
"allowVaultsWithWarnings": {
"type": "boolean",
"default": "false",
"description": "Whether to include vaults with warnings. Defaults to false."
},
"minUsdAssetValueThreshold": {
"type": "number",
"default": 1,
"minimum": 0,
"description": "Minimum USD value of the vault to be included"
}
}
}
}Output schema
{
"type": "object",
"required": [
"requestedAddress",
"userBalances"
],
"properties": {
"errors": {
"type": "object",
"required": [
"unsupportedNetworks",
"unsupportedAssets",
"unsupportedProtocols"
],
"properties": {
"unsupportedAssets": {
"type": "array",
"items": {
"type": "string"
}
},
"unsupportedNetworks": {
"type": "array",
"items": {
"type": "string"
}
},
"unsupportedProtocols": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"userBalances": {
"type": "array",
"items": {
"type": "object",
"required": [
"depositOptions"
],
"properties": {
"asset": {
"type": "object",
"required": [
"address",
"assetCaip",
"name",
"symbol",
"decimals",
"assetGroup",
"balanceNative"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the asset"
},
"symbol": {
"type": "string",
"description": "Symbol of the asset"
},
"address": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "Address of the asset"
},
"decimals": {
"type": "integer",
"description": "Number of decimals of the asset"
},
"assetCaip": {
"type": "string",
"pattern": "^eip155:\\d+\\/(erc20:0x[0-9a-fA-F]{40}|slip44:\\d+)$",
"description": "CAIP-2 of the asset"
},
"assetLogo": {
"type": "string",
"format": "uri",
"description": "URL of the asset logo"
},
"assetGroup": {
"type": "string",
"description": "Group of the asset, e.g., ETH, USD, EURO, BTC, OTHER"
},
"balanceUsd": {
"type": "string",
"description": "USD value of the asset"
},
"balanceNative": {
"type": "string",
"description": "Balance of the asset"
},
"assetPriceInUsd": {
"type": "string",
"description": "Price of the asset in USD"
}
},
"description": "Requested asset details",
"additionalProperties": false
},
"depositOptions": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"vaultId",
"address",
"network",
"isTransactional",
"isAppFeatured",
"protocol",
"tvl",
"apy",
"projectedUsdAnnualEarnings"
],
"properties": {
"apy": {
"type": "object",
"required": [
"base",
"reward",
"total"
],
"properties": {
"base": {
"type": "number",
"description": "Base APY"
},
"total": {
"type": "number",
"description": "Total APY"
},
"reward": {
"type": "number",
"description": "Reward APY"
}
},
"description": "Annual Percentage Yield (APY) breakdown",
"additionalProperties": false
},
"tvl": {
"type": "object",
"required": [
"usd",
"native"
],
"properties": {
"usd": {
"type": "string",
"description": "TVL in USD"
},
"native": {
"type": "string",
"description": "Native TVL"
}
},
"description": "Total Value Locked (TVL) in the vault",
"additionalProperties": false
},
"name": {
"type": "string",
"description": "Name of the vault"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the vault"
},
"address": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "Address of the vault"
},
"lendUrl": {
"type": "string",
"description": "URL to lend the asset in the vault"
},
"network": {
"type": "object",
"required": [
"name",
"chainId",
"networkCaip"
],
"properties": {
"name": {
"enum": [
"mainnet",
"optimism",
"arbitrum",
"polygon",
"gnosis",
"base",
"unichain",
"swellchain",
"celo",
"worldchain",
"berachain",
"ink",
"bsc",
"hyperliquid",
"plasma",
"avalanche",
"katana",
"linea",
"mega-eth",
"monad",
"etherlink",
"robinhood"
],
"type": "string",
"description": "Name of the network"
},
"chainId": {
"type": "integer",
"description": "Chain ID of the network"
},
"networkCaip": {
"type": "string",
"pattern": "^eip155:\\d+$",
"description": "CAIP-2 of the network"
}
},
"description": "Network details of the vault",
"additionalProperties": false
},
"vaultId": {
"type": "string",
"description": "Stable vault identity for API lookups and links"
},
"protocol": {
"type": "object",
"required": [
"protocolId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the protocol"
},
"product": {
"type": "string",
"description": "Product of the protocol"
},
"version": {
"type": "string",
"description": "Version of the protocol"
},
"protocolId": {
"type": "string",
"description": "Lowercase protocol ID constructed from its name, product, and version"
},
"description": {
"type": "string",
"description": "Description of the protocol"
},
"displayName": {
"type": "string",
"description": "Display name of the protocol"
},
"protocolUrl": {
"type": "string",
"description": "URL of the protocol"
},
"protocolLogo": {
"type": "string",
"description": "URL of the protocol logo"
}
},
"description": "Protocol details of the vault",
"additionalProperties": false
},
"isAppFeatured": {
"type": "boolean",
"description": "Indicates if the vault is featured in app.vaults.fyi"
},
"isTransactional": {
"type": "boolean",
"description": "Indicates if the vault supports transactional endpoints"
},
"protocolVaultUrl": {
"type": "string",
"description": "URL to the vault in the protocol"
},
"projectedUsdAnnualEarnings": {
"type": "string",
"description": "Projected annual earnings in USD"
}
},
"description": "Best vault details for the requested asset",
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": "Array of user balances with asset and vault details"
},
"requestedAddress": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "Address of the user requesting the data"
}
},
"additionalProperties": false
}