Portfolio

get

Provides all vault positions for the user, with optional filters.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

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

Assets to be included by symbol(ticker).

disallowedAssetsstring[]Optional

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

allowedProtocolsstring[]Optional

Protocols to be included by name.

disallowedProtocolsstring[]Optional

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

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

maxTvlintegerOptional

Maximum TVL in USD of the vaults to be included

maxApynumberOptional

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

tagsstring[]Optional

Tags to be included.

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",
        "assetGroup": "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",
          "assetGroup": "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",
            "assetGroup": "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",
              "assetGroup": "text",
              "balanceNative": "text",
              "balanceUsd": "text",
              "unclaimedNative": "text",
              "unclaimedUsd": "text",
              "positionValueInAsset": "text"
            }
          ]
        }
      ]
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}
get

Gives a detailed view of one specific vault position on a given network.

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",
    "assetGroup": "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",
      "assetGroup": "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",
        "assetGroup": "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",
          "assetGroup": "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
allowedAssetsstring[]Optional

Assets to be included by symbol(ticker).

disallowedAssetsstring[]Optional

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

allowedProtocolsstring[]Optional

Protocols to be included by name.

disallowedProtocolsstring[]Optional

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

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

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
alwaysReturnAssetsstring[]Optional

Assets to always be included in the response.

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",
        "assetGroup": "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

Returns the single best vault opportunity for the user, based on balance and yield analysis.

Authorizations
Path parameters
userAddressstringRequired

User address to be used for best vault calculation

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

Assets to be included by symbol(ticker).

disallowedAssetsstring[]Optional

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

allowedProtocolsstring[]Optional

Protocols to be included by name.

disallowedProtocolsstring[]Optional

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

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

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",
    "assetGroup": "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
allowedAssetsstring[]Optional

Assets to be included by symbol(ticker).

disallowedAssetsstring[]Optional

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

minUsdAssetValueThresholdnumberOptional

Minimum USD value of the asset to be included

Default: 0.5
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",
      "assetGroup": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "network": {
        "name": "mainnet",
        "chainId": 1,
        "networkCaip": "text"
      }
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ]
  }
}
get

Retrieves the total returns for a user's position in a specific vault, including asset details and native returns amount.

Authorizations
Path parameters
userAddressstringRequired

User address to get returns for

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

Network to get returns for

Possible values:
vaultAddressstringRequired

Vault address to get returns for

Pattern: ^0x[a-fA-F0-9]{40}$
Responses
200

Default Response

application/json
get
GET /v2/portfolio/total-returns/{userAddress}/{network}/{vaultAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "address": "text",
  "assetCaip": "text",
  "name": "text",
  "symbol": "text",
  "decimals": 1,
  "assetLogo": "https://example.com",
  "assetPriceInUsd": "text",
  "assetGroup": "text",
  "returnsNative": "text"
}
get

Retrieves all transactions (deposits and withdrawals) for a user's position in a specific vault, including transaction details and metadata.

Authorizations
Path parameters
userAddressstringRequired

User address to get returns for

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

Network to get returns for

Possible values:
vaultAddressstringRequired

Vault address to get returns for

Pattern: ^0x[a-fA-F0-9]{40}$
Responses
200

Default Response

application/json
get
GET /v2/portfolio/events/{userAddress}/{network}/{vaultAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "asset": {
    "address": "text",
    "assetCaip": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1,
    "assetLogo": "https://example.com",
    "assetPriceInUsd": "text",
    "assetGroup": "text"
  },
  "lpToken": {
    "address": "text",
    "tokenCaip": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1
  },
  "data": [
    {
      "timestamp": 1,
      "blockNumber": "text",
      "eventType": "deposit",
      "assetAmountNative": "text",
      "sharePrice": 1,
      "lpTokenAmount": "text",
      "transactionHash": "text",
      "logIndex": 1
    }
  ],
  "items": 1
}

Last updated