Portfolio

get

Retrieves historical APY and TVL for a specific vault, based on the provided query parameters.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

Pattern: ^0x[a-fA-F0-9]{40}$
Query parameters
allowedAssetsany ofOptional

Assets to be included by symbol(ticker).

string[]Optional
or
string · min: 1Optional
disallowedAssetsany ofOptional

Assets to be excluded by symbol(ticker). The parameter is ignored if "allowedAssets" is specified.

string[]Optional
or
string · min: 1Optional
allowedProtocolsany ofOptional

Protocols to be included by name.

string[]Optional
or
string · min: 1Optional
disallowedProtocolsany ofOptional

Protocols to be excluded by name. The parameter is ignored if "allowedProtocols" is specified.

string[]Optional
or
string · min: 1Optional
minTvlintegerOptional

Minimum TVL in USD of the vaults to be included

Default: 100000
onlyTransactionalbooleanOptional

Include only vaults that are supported in the transactional interface.

onlyAppFeaturedbooleanOptional

Include only vaults that are featured in app.vaults.fyi

allowedNetworksany ofOptional

Networks to be included (name or CAIP).

Default: ["base","mainnet","arbitrum","optimism"]
or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
disallowedNetworksany ofOptional

Networks to be excluded (name or CAIP). The parameter is ignored if "allowedNetworks" is specified.

or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
maxTvlintegerOptional

Maximum TVL in USD of the vaults to be included

maxApynumberOptional

Maximum APY (in decimal) of the vaults to be included

tagsany ofOptional

Tags to be included.

string[]Optional
or
string · min: 1Optional
apyIntervalstring · enumOptional

Interval for APY data. Possible values: 1day, 7day, 30day

Default: 7dayPossible values:
minUsdAssetValueThresholdnumberOptional

Minimum USD value of the vault to be included

Default: 1
Responses
200

Default Response

application/json
get
GET /v2/portfolio/positions/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "address": "text",
      "network": {
        "name": "mainnet",
        "chainId": 1,
        "networkCaip": "text"
      },
      "asset": {
        "address": "text",
        "assetCaip": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "assetLogo": "https://example.com",
        "assetPriceInUsd": "text",
        "balanceNative": "text",
        "balanceUsd": "text",
        "unclaimedNative": "text",
        "unclaimedUsd": "text",
        "positionValueInAsset": "text"
      },
      "isTransactional": true,
      "isAppFeatured": true,
      "name": "text",
      "protocol": {
        "name": "text",
        "product": "text",
        "version": "text",
        "protocolUrl": "text",
        "description": "text",
        "protocolLogo": "text"
      },
      "apy": {
        "base": 1,
        "reward": 1,
        "total": 1
      },
      "additionalAssets": [
        {
          "address": "text",
          "assetCaip": "text",
          "name": "text",
          "symbol": "text",
          "decimals": 1,
          "assetLogo": "https://example.com",
          "assetPriceInUsd": "text",
          "balanceNative": "text",
          "balanceUsd": "text",
          "unclaimedNative": "text",
          "unclaimedUsd": "text",
          "positionValueInAsset": "text"
        }
      ],
      "lpToken": {
        "address": "text",
        "tokenCaip": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "balanceNative": "text",
        "balanceUsd": "text",
        "unclaimedNative": "text",
        "unclaimedUsd": "text",
        "positionValueInAsset": "text",
        "assetPriceInUsd": "text"
      },
      "childrenVaults": [
        {
          "address": "text",
          "asset": {
            "address": "text",
            "assetCaip": "text",
            "name": "text",
            "symbol": "text",
            "decimals": 1,
            "assetLogo": "https://example.com",
            "assetPriceInUsd": "text",
            "balanceNative": "text",
            "balanceUsd": "text",
            "unclaimedNative": "text",
            "unclaimedUsd": "text",
            "positionValueInAsset": "text"
          },
          "lpToken": {
            "address": "text",
            "tokenCaip": "text",
            "name": "text",
            "symbol": "text",
            "decimals": 1,
            "balanceNative": "text",
            "balanceUsd": "text",
            "unclaimedNative": "text",
            "unclaimedUsd": "text",
            "positionValueInAsset": "text",
            "assetPriceInUsd": "text"
          },
          "additionalAssets": [
            {
              "address": "text",
              "assetCaip": "text",
              "name": "text",
              "symbol": "text",
              "decimals": 1,
              "assetLogo": "https://example.com",
              "assetPriceInUsd": "text",
              "balanceNative": "text",
              "balanceUsd": "text",
              "unclaimedNative": "text",
              "unclaimedUsd": "text",
              "positionValueInAsset": "text"
            }
          ]
        }
      ]
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}
get

Retrieves historical APY and TVL for a specific vault, based on the provided query parameters.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

Pattern: ^0x[a-fA-F0-9]{40}$
networkstring · enumRequired

Include only vaults with provided network(name or CAIP)

Possible values:
vaultAddressstringRequired

Address of the vault for which the data will be returned

Pattern: ^0x[a-fA-F0-9]{40}$
Query parameters
apyIntervalstring · enumOptional

Interval for APY data. Possible values: 1day, 7day, 30day

Default: 7dayPossible values:
Responses
200

Default Response

application/json
get
GET /v2/portfolio/positions/{userAddress}/{network}/{vaultAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "address": "text",
  "network": {
    "name": "mainnet",
    "chainId": 1,
    "networkCaip": "text"
  },
  "asset": {
    "address": "text",
    "assetCaip": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1,
    "assetLogo": "https://example.com",
    "assetPriceInUsd": "text",
    "balanceNative": "text",
    "balanceUsd": "text",
    "unclaimedNative": "text",
    "unclaimedUsd": "text",
    "positionValueInAsset": "text"
  },
  "isTransactional": true,
  "isAppFeatured": true,
  "name": "text",
  "protocol": {
    "name": "text",
    "product": "text",
    "version": "text",
    "protocolUrl": "text",
    "description": "text",
    "protocolLogo": "text"
  },
  "apy": {
    "base": 1,
    "reward": 1,
    "total": 1
  },
  "additionalAssets": [
    {
      "address": "text",
      "assetCaip": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "assetLogo": "https://example.com",
      "assetPriceInUsd": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "unclaimedNative": "text",
      "unclaimedUsd": "text",
      "positionValueInAsset": "text"
    }
  ],
  "lpToken": {
    "address": "text",
    "tokenCaip": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1,
    "balanceNative": "text",
    "balanceUsd": "text",
    "unclaimedNative": "text",
    "unclaimedUsd": "text",
    "positionValueInAsset": "text",
    "assetPriceInUsd": "text"
  },
  "childrenVaults": [
    {
      "address": "text",
      "asset": {
        "address": "text",
        "assetCaip": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "assetLogo": "https://example.com",
        "assetPriceInUsd": "text",
        "balanceNative": "text",
        "balanceUsd": "text",
        "unclaimedNative": "text",
        "unclaimedUsd": "text",
        "positionValueInAsset": "text"
      },
      "lpToken": {
        "address": "text",
        "tokenCaip": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "balanceNative": "text",
        "balanceUsd": "text",
        "unclaimedNative": "text",
        "unclaimedUsd": "text",
        "positionValueInAsset": "text",
        "assetPriceInUsd": "text"
      },
      "additionalAssets": [
        {
          "address": "text",
          "assetCaip": "text",
          "name": "text",
          "symbol": "text",
          "decimals": 1,
          "assetLogo": "https://example.com",
          "assetPriceInUsd": "text",
          "balanceNative": "text",
          "balanceUsd": "text",
          "unclaimedNative": "text",
          "unclaimedUsd": "text",
          "positionValueInAsset": "text"
        }
      ]
    }
  ]
}
get

Analyzes a user's existing wallet balances and recommends optimal vault deposit opportunities based on yield performance, risk parameters, and user-defined criteria.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

Pattern: ^0x[a-fA-F0-9]{40}$
Query parameters
allowedAssetsany ofOptional

Assets to be included by symbol(ticker).

string[]Optional
or
string · min: 1Optional
disallowedAssetsany ofOptional

Assets to be excluded by symbol(ticker). The parameter is ignored if "allowedAssets" is specified.

string[]Optional
or
string · min: 1Optional
allowedProtocolsany ofOptional

Protocols to be included by name.

string[]Optional
or
string · min: 1Optional
disallowedProtocolsany ofOptional

Protocols to be excluded by name. The parameter is ignored if "allowedProtocols" is specified.

string[]Optional
or
string · min: 1Optional
minTvlintegerOptional

Minimum TVL in USD of the vaults to be included

Default: 100000
onlyTransactionalbooleanOptional

Include only vaults that are supported in the transactional interface.

onlyAppFeaturedbooleanOptional

Include only vaults that are featured in app.vaults.fyi

allowedNetworksany ofOptional

Networks to be included (name or CAIP).

Default: ["base","mainnet","arbitrum","optimism"]
or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
disallowedNetworksany ofOptional

Networks to be excluded (name or CAIP). The parameter is ignored if "allowedNetworks" is specified.

or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
apyIntervalstring · enumOptional

Interval for APY data. Possible values: 1day, 7day, 30day

Default: 7dayPossible values:
minApynumberOptional

Minimum APY of the vault to be included

minUsdAssetValueThresholdnumberOptional

Minimum USD value of the vault to be included

Default: 1
alwaysReturnAssetsany ofOptional

Assets to always be included in the response.

string[]Optional
or
string · min: 1Optional
maxVaultsPerAssetintegerOptional

Maximum number of vaults to be included per asset.

Default: 3
Responses
200

Default Response

application/json
get
GET /v2/portfolio/best-deposit-options/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "requestedAddress": "text",
  "userBalances": [
    {
      "asset": {
        "address": "text",
        "assetCaip": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "assetLogo": "https://example.com",
        "assetPriceInUsd": "text",
        "balanceNative": "text",
        "balanceUsd": "text"
      },
      "depositOptions": [
        {
          "name": "text",
          "address": "text",
          "network": {
            "name": "mainnet",
            "chainId": 1,
            "networkCaip": "text"
          },
          "isTransactional": true,
          "isAppFeatured": true,
          "protocol": {
            "name": "text",
            "product": "text",
            "version": "text",
            "protocolUrl": "text",
            "description": "text",
            "protocolLogo": "text"
          },
          "tvl": {
            "usd": "text",
            "native": "text"
          },
          "tags": [
            "text"
          ],
          "apy": {
            "base": 1,
            "reward": 1,
            "total": 1
          },
          "projectedUsdAnnualEarnings": "text",
          "lendUrl": "text",
          "protocolVaultUrl": "text"
        }
      ]
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}
get

Retrieves historical APY and TVL for a specific vault, based on the provided query parameters.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

Pattern: ^0x[a-fA-F0-9]{40}$
Query parameters
allowedAssetsany ofOptional

Assets to be included by symbol(ticker).

string[]Optional
or
string · min: 1Optional
disallowedAssetsany ofOptional

Assets to be excluded by symbol(ticker). The parameter is ignored if "allowedAssets" is specified.

string[]Optional
or
string · min: 1Optional
allowedProtocolsany ofOptional

Protocols to be included by name.

string[]Optional
or
string · min: 1Optional
disallowedProtocolsany ofOptional

Protocols to be excluded by name. The parameter is ignored if "allowedProtocols" is specified.

string[]Optional
or
string · min: 1Optional
minTvlintegerOptional

Minimum TVL in USD of the vaults to be included

Default: 100000
onlyTransactionalbooleanOptional

Include only vaults that are supported in the transactional interface.

onlyAppFeaturedbooleanOptional

Include only vaults that are featured in app.vaults.fyi

allowedNetworksany ofOptional

Networks to be included (name or CAIP).

Default: ["base","mainnet","arbitrum","optimism"]
or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
disallowedNetworksany ofOptional

Networks to be excluded (name or CAIP). The parameter is ignored if "allowedNetworks" is specified.

or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
apyIntervalstring · enumOptional

Interval for APY data. Possible values: 1day, 7day, 30day

Default: 7dayPossible values:
minApynumberOptional

Minimum APY of the vault to be included

minUsdAssetValueThresholdnumberOptional

Minimum USD value of the vault to be included

Default: 1
Responses
200

Default Response

application/json
get
GET /v2/portfolio/best-vault/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "requestedAddress": "text",
  "asset": {
    "address": "text",
    "assetCaip": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1,
    "assetLogo": "https://example.com",
    "assetPriceInUsd": "text",
    "balanceNative": "text",
    "balanceUsd": "text"
  },
  "vault": {
    "name": "text",
    "address": "text",
    "network": {
      "name": "mainnet",
      "chainId": 1,
      "networkCaip": "text"
    },
    "isTransactional": true,
    "isAppFeatured": true,
    "protocol": {
      "name": "text",
      "product": "text",
      "version": "text",
      "protocolUrl": "text",
      "description": "text",
      "protocolLogo": "text"
    },
    "tvl": {
      "usd": "text",
      "native": "text"
    },
    "tags": [
      "text"
    ],
    "apy": {
      "base": 1,
      "reward": 1,
      "total": 1
    },
    "projectedUsdAnnualEarnings": "text",
    "lendUrl": "text",
    "protocolVaultUrl": "text"
  },
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}
get

Get balances of idle assets for a specific user address.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

Pattern: ^0x[a-fA-F0-9]{40}$
Query parameters
allowedAssetsany ofOptional

Assets to be included by symbol(ticker).

string[]Optional
or
string · min: 1Optional
disallowedAssetsany ofOptional

Assets to be excluded by symbol(ticker). The parameter is ignored if "allowedAssets" is specified.

string[]Optional
or
string · min: 1Optional
minUsdAssetValueThresholdnumberOptional

Minimum USD value of the asset to be included

Default: 0.5
allowedNetworksany ofOptional

Networks to be included (name or CAIP).

Default: ["base","mainnet","arbitrum","optimism"]
or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
disallowedNetworksany ofOptional

Networks to be excluded (name or CAIP). The parameter is ignored if "allowedNetworks" is specified.

or
string · enumOptional

Include only vaults with provided network(name or CAIP)

Possible values:
Responses
200

Default Response

application/json
get
GET /v2/portfolio/idle-assets/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "address": "text",
      "assetCaip": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "assetLogo": "https://example.com",
      "assetPriceInUsd": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "network": {
        "name": "mainnet",
        "chainId": 1,
        "networkCaip": "text"
      }
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ]
  }
}

Experimental

The following endpoints are still in development. Use with caution in production environments.

Last updated