vaults.fyi
  • General
    • 🏦Overview
    • 💡Use Cases
      • For Wallets and Apps
      • For Analysts
      • For Protocols & Product Teams
    • 🔎Methodology
      • vaults.fyi USD benchmark rate
      • vaults.fyi ETH benchmark rate
    • ❓FAQ
      • Vault requirements for inclusion on vaults.fyi
    • 🤖AI
  • API
    • vaults.fyi API Overview
      • Insights API
      • Earn API
        • Product demo
        • Flow diagrams
      • Plans
        • Credits
    • Endpoints
      • Market data
        • Get historical data
          • Get historical APY and TVL data on single vault over timestamp range
          • Get historical APY on single vault over timestamp range
          • Get historical TVL on single vault at single timestamp
          • Get historical APY on single vault at single timestamp
        • Get data for multiple vaults
        • Get data on single vault
          • Get APY on single vault
        • Get benchmark rates
        • Get supported vaults, networks & tokens
          • /vaults
          • /networks
          • /tokens
          • /tags
      • Contextual insights
        • Top vault options for address
        • Get single top option for address
        • [Etherscan cards] Get top USD, top ETH vault for address
      • Generate payloads (Earn API)
        • Prepare calldata
          • Supply/Deposit
          • Withdraw/Redeem
            • Request redeem
            • Claim redeem
          • Claim rewards
        • Get contract interaction details
        • Get supported assets
        • Get supported vaults
      • Position tracking (Portfolio API)
        • Get user balances
        • Get user positions
        • Get list of past vault txns by user address
        • Get estimated returns for user's vault position
  • Case Studies
    • Kraken Wallet
    • Etherscan Cards
  • Links
    • vaults.fyi
    • X
    • Farcaster
    • Wallfacer Labs
Powered by GitBook
On this page
  1. API
  2. vaults.fyi API Overview
  3. Earn API

Earn API endpoints

Last updated 2 months ago

vaults.fyi Earn API endpoints help prepare transaction payloads for interactions with vaults across leading DeFi protocols, including Aave, Sky, Morpho, Euler, Compound, and more.


Endpoints

get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
Responses
200
Default Response
application/json
get
GET //v1/transactions/assets HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

[
  {
    "address": "text",
    "name": "text",
    "symbol": "text",
    "decimals": 1,
    "network": "mainnet"
  }
]
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

[
  {
    "name": "text",
    "protocol": "text",
    "address": "text",
    "lpTokenAddress": "text",
    "network": "mainnet",
    "assets": [
      {
        "address": "text",
        "name": "text",
        "symbol": "text",
        "decimals": 1,
        "network": "mainnet"
      }
    ]
  }
]
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
userAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/actions/details HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentDepositStep": "text",
  "depositSteps": [
    {
      "actions": [
        "text"
      ],
      "actionsUrl": "text",
      "name": "deposit"
    }
  ],
  "currentRedeemStep": "text",
  "redeemSteps": [
    {
      "actions": [
        "text"
      ],
      "actionsUrl": "text",
      "name": "redeem"
    }
  ],
  "lpTokenBalance": "text",
  "idleAssets": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "lockedValueInAssets": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "childrenLpTokenBalances": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "childrenLockedValueInAssets": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  },
  "unclaimedAssets": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "vaultSpecificData": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "rewards": {
    "claimable": [
      {
        "amount": "text",
        "token": {
          "address": "text",
          "name": "text",
          "symbol": "text",
          "decimals": 1,
          "network": "mainnet"
        }
      }
    ],
    "currentStep": "text",
    "steps": [
      {
        "actions": [
          "text"
        ],
        "actionsUrl": "text",
        "name": "claim"
      }
    ]
  }
}
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
senderstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
simulateany ofOptionalDefault: false
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
assetAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
amountstringRequired
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/deposit HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentActionIndex": 1,
  "actions": [
    {
      "name": "text",
      "tx": {
        "to": "text",
        "chainId": 1,
        "data": "text",
        "value": "text"
      },
      "simulation": {
        "url": "text",
        "status": "success",
        "tokensReceived": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "tokensSpent": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ]
}
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
senderstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
simulateany ofOptionalDefault: false
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
assetAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
amountstringRequired
allany ofOptional
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/redeem HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentActionIndex": 1,
  "actions": [
    {
      "name": "text",
      "tx": {
        "to": "text",
        "chainId": 1,
        "data": "text",
        "value": "text"
      },
      "simulation": {
        "url": "text",
        "status": "success",
        "tokensReceived": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "tokensSpent": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ]
}
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
senderstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
simulateany ofOptionalDefault: false
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
assetAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
amountstringRequired
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/request-redeem HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentActionIndex": 1,
  "actions": [
    {
      "name": "text",
      "tx": {
        "to": "text",
        "chainId": 1,
        "data": "text",
        "value": "text"
      },
      "simulation": {
        "url": "text",
        "status": "success",
        "tokensReceived": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "tokensSpent": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ]
}
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
senderstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
simulateany ofOptionalDefault: false
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
assetAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/claim-redeem HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentActionIndex": 1,
  "actions": [
    {
      "name": "text",
      "tx": {
        "to": "text",
        "chainId": 1,
        "data": "text",
        "value": "text"
      },
      "simulation": {
        "url": "text",
        "status": "success",
        "tokensReceived": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "tokensSpent": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ]
}
get
Authorizations
Query parameters
networkstring · enumRequiredPossible values:
senderstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
simulateany ofOptionalDefault: false
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
assetAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
vaultAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Responses
200
Default Response
application/json
get
GET //v1/transactions/vaults/claim-rewards HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "currentActionIndex": 1,
  "actions": [
    {
      "name": "text",
      "tx": {
        "to": "text",
        "chainId": 1,
        "data": "text",
        "value": "text"
      },
      "simulation": {
        "url": "text",
        "status": "success",
        "tokensReceived": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "tokensSpent": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ]
}
get
Authorizations
Query parameters
accountstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Responses
200
Default Response
application/json
get
GET //v1/portfolio/wallet-balances HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
200

Default Response

{
  "mainnet": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "optimism": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "arbitrum": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "polygon": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "gnosis": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "base": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "unichain": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "swellchain": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "celo": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ],
  "worldchain": [
    {
      "address": "text",
      "name": "text",
      "symbol": "text",
      "decimals": 1,
      "network": "mainnet",
      "balance": "text",
      "balanceNative": "text",
      "balanceUsd": "text",
      "type": "asset"
    }
  ]
}
get
Authorizations
Path parameters
userAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Query parameters
apyIntervalstring · enumOptionalDefault: 7dayPossible values:
Responses
200
Default Response
application/json
301
Default Response
application/json
get
GET //v1/portfolio/positions/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
{
  "mainnet": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "optimism": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "arbitrum": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "polygon": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "gnosis": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "base": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "unichain": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "swellchain": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "celo": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ],
  "worldchain": [
    {
      "vaultAddress": "text",
      "protocolName": "text",
      "protocolLogo": "https://example.com",
      "vaultName": "text",
      "balanceUsd": "text",
      "balanceNative": "text",
      "balanceLp": "text",
      "unclaimedUsd": "text",
      "unclaimedNative": "text",
      "apy": {
        "base": 1,
        "rewards": 1,
        "total": 1
      },
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1
      },
      "children": [
        {
          "vaultAddress": "text",
          "protocolName": "text",
          "protocolLogo": "https://example.com",
          "vaultName": "text",
          "balanceUsd": "text",
          "balanceNative": "text",
          "balanceLp": "text",
          "unclaimedUsd": "text",
          "unclaimedNative": "text",
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "asset": {
            "name": "text",
            "assetAddress": "text",
            "assetCaip": "text",
            "symbol": "text",
            "decimals": 1
          }
        }
      ]
    }
  ]
}
  • Endpoints
  • GET/v1/transactions/assets
  • GET/v1/transactions/vaults
  • GET/v1/transactions/vaults/actions/details
  • GET/v1/transactions/vaults/deposit
  • GET/v1/transactions/vaults/redeem
  • GET/v1/transactions/vaults/request-redeem
  • GET/v1/transactions/vaults/claim-redeem
  • GET/v1/transactions/vaults/claim-rewards
  • POST/v1/portfolio/best-deposit-options/{userAddress}
  • POST/v1/portfolio/best-vault/{userAddress}
  • GET/v1/portfolio/wallet-balances
  • GET/v1/portfolio/positions/{userAddress}
post
Authorizations
Path parameters
userAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Body
apyIntervalstring · enumOptional

Resolution of the APY data

Default: 7dayPossible values:
allowedAssetsstring[]Optional

Assets to be included (by symbol/ticker)

disallowedAssetsstring[]Optional

Assets to be excluded (by symbol/ticker)

allowedProtocolsstring[]Optional

Protocols to be included (by name)

disallowedProtocolsstring[]Optional

Protocols to be excluded (by name)

minimumBalanceThresholdnumberOptional

Minimum balance in USD of the assets to be included

Default: 1
minimumVaultTvlnumberOptional

Minimum TVL in USD of the vaults to be included

Default: 100000
transactionalOnlybooleanOptional

Boolean indicating if only transactional vaults should be included

transactionalFeaturedOnlybooleanOptional

Boolean indicating if only transactional vaults featured in app.vaults.fyi should be included

maxVaultsPerAssetinteger · min: 1 · max: 5Optional

Maximum number of vaults per asset

Default: 3
minApyintegerOptional

Minimum APY(in BPS) of the vaults to be included

alwaysReturnAssetsstring[]Optional

Symbols/tickers of assets to always return, regardless of balance

Default: []
distinctProtocolsbooleanOptional

Return only one vault per protocol for each asset

Responses
200
Default Response
application/json
post
POST //v1/portfolio/best-deposit-options/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 391

{
  "apyInterval": "1day",
  "allowedNetworks": [
    "mainnet"
  ],
  "disallowedNetworks": [
    "mainnet"
  ],
  "allowedAssets": [
    "text"
  ],
  "disallowedAssets": [
    "text"
  ],
  "allowedProtocols": [
    "text"
  ],
  "disallowedProtocols": [
    "text"
  ],
  "minimumBalanceThreshold": 1,
  "minimumVaultTvl": 1,
  "transactionalOnly": true,
  "transactionalFeaturedOnly": true,
  "maxVaultsPerAsset": 1,
  "minApy": 1,
  "alwaysReturnAssets": [
    "text"
  ],
  "distinctProtocols": true
}
200

Default Response

{
  "requestedAddress": "text",
  "userBalances": [
    {
      "asset": {
        "name": "text",
        "assetAddress": "text",
        "assetCaip": "text",
        "symbol": "text",
        "decimals": 1,
        "networkName": "mainnet",
        "networkCaip": "text",
        "balanceNative": "text",
        "balanceUsd": 1
      },
      "depositOptions": [
        {
          "name": "text",
          "protocol": {
            "name": "text",
            "product": "text",
            "version": "text",
            "protocolLogo": "https://example.com",
            "protocolUrl": "https://example.com",
            "description": "text"
          },
          "vaultAddress": "text",
          "vaultUrl": "https://example.com",
          "networkName": "mainnet",
          "networkCaip": "text",
          "tvlInUsd": 1,
          "apy": {
            "base": 1,
            "rewards": 1,
            "total": 1
          },
          "projectedAnnualEarnings": 1,
          "tags": [
            "text"
          ],
          "isTransactional": true
        }
      ]
    }
  ],
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}
post
Authorizations
Path parameters
userAddressstringRequiredPattern: ^0x[a-fA-F0-9]{40}$
Body
apyIntervalstring · enumOptional

Resolution of the APY data

Default: 7dayPossible values:
allowedAssetsstring[]Optional

Assets to be included (by symbol/ticker)

disallowedAssetsstring[]Optional

Assets to be excluded (by symbol/ticker)

allowedProtocolsstring[]Optional

Protocols to be included (by name)

disallowedProtocolsstring[]Optional

Protocols to be excluded (by name)

minimumBalanceThresholdnumberOptional

Minimum balance in USD of the assets to be included

Default: 1
minimumVaultTvlnumberOptional

Minimum TVL in USD of the vaults to be included

Default: 100000
transactionalOnlybooleanOptional

Boolean indicating if only transactional vaults should be included

transactionalFeaturedOnlybooleanOptional

Boolean indicating if only transactional vaults featured in app.vaults.fyi should be included

Responses
200
Default Response
application/json
post
POST //v1/portfolio/best-vault/{userAddress} HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 303

{
  "apyInterval": "1day",
  "allowedNetworks": [
    "mainnet"
  ],
  "disallowedNetworks": [
    "mainnet"
  ],
  "allowedAssets": [
    "text"
  ],
  "disallowedAssets": [
    "text"
  ],
  "allowedProtocols": [
    "text"
  ],
  "disallowedProtocols": [
    "text"
  ],
  "minimumBalanceThreshold": 1,
  "minimumVaultTvl": 1,
  "transactionalOnly": true,
  "transactionalFeaturedOnly": true
}
200

Default Response

{
  "requestedAddress": "text",
  "asset": {
    "name": "text",
    "assetAddress": "text",
    "assetCaip": "text",
    "symbol": "text",
    "decimals": 1,
    "networkName": "mainnet",
    "networkCaip": "text",
    "balanceNative": "text",
    "balanceUsd": 1
  },
  "vault": {
    "name": "text",
    "protocol": {
      "name": "text",
      "product": "text",
      "version": "text",
      "protocolLogo": "https://example.com",
      "protocolUrl": "https://example.com",
      "description": "text"
    },
    "vaultAddress": "text",
    "vaultUrl": "https://example.com",
    "networkName": "mainnet",
    "networkCaip": "text",
    "tvlInUsd": 1,
    "apy": {
      "base": 1,
      "rewards": 1,
      "total": 1
    },
    "projectedAnnualEarnings": 1,
    "tags": [
      "text"
    ],
    "isTransactional": true
  },
  "errors": {
    "unsupportedNetworks": [
      "text"
    ],
    "unsupportedAssets": [
      "text"
    ],
    "unsupportedProtocols": [
      "text"
    ]
  }
}