Api Endpoint

vaults.fyi

Recommend the single best vault for a wallet address based on current holdings and yield opportunities. Requires header x-402-auth: true to receive x402 payment challenge.

Open interactive test console

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-vault/%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.004 USDC
Atomic price: 4000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.004 USDC
Atomic price: 4000 · Network: eip155:8453 · Asset: USDC · Scheme: batch-settlement
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "4000",
    "payTo": "0x108BCd8a07C3fdfca3Aa500784A8573123a1029F"
  },
  {
    "scheme": "batch-settlement",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "4000",
    "payTo": "0x108BCd8a07C3fdfca3Aa500784A8573123a1029F"
  }
]

Observed health

Status
Reachable
Latest latency
192 ms
Average latency
626 ms
HTTP status
400
Last checked
Reachability
100% over 14 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."
      },
      "onlyTransactional": {
        "type": "boolean",
        "description": "Include only vaults that are supported in the transactional interface."
      },
      "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"
  ],
  "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
    },
    "vault": {
      "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
    },
    "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
    },
    "requestedAddress": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Address of the user requesting the data"
    }
  },
  "additionalProperties": false
}