The v1 payload generation endpoints prepare transaction details and calldata for interactions with smart contracts across leading DeFi protocols, including Aave, Morpho, Euler, Compound, Maker/Sky, and Lido. The API is entirely non-custodial — it constructs payloads for you to submit, without ever holding or controlling user funds.
These are legacy v1 endpoints. They are fully supported and maintained. For new integrations, consider using the v2 endpoints.
Get supported vaults
GET https://api.vaults.fyi/v1/transactions/vaults
Returns the list of vaults that support transactional endpoints on a given network. Each entry includes the vault name, protocol, contract address, LP token address, and supported assets.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier. Possible values: mainnet, arbitrum, optimism, polygon, base, gnosis, unichain.
Example request
GET /v1/transactions/vaults?network=mainnet HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Example response
[
{
"name": "USDC Lending",
"protocol": "Aave",
"address": "0xdef...456",
"lpTokenAddress": "0xghi...789",
"network": "mainnet",
"assets": [
{
"address": "0xa0b...789",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"network": "mainnet"
}
]
}
]
Get supported assets
GET https://api.vaults.fyi/v1/transactions/assets
Returns all assets that can be used with transactional endpoints on a given network.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier. Possible values: mainnet, arbitrum, optimism, polygon, base, gnosis, unichain.
Example request
GET /v1/transactions/assets?network=mainnet HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Example response
[
{
"address": "0xa0b...789",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"network": "mainnet"
}
]
Get contract interaction details
GET https://api.vaults.fyi/v1/transactions/vaults/actions/details
Returns the available smart contract interactions for a specific vault and user, including the current deposit and redeem steps, LP token balance, idle assets, locked value, unclaimed assets, and any claimable rewards. Use this endpoint to determine which actions are available before preparing calldata.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
User wallet address. Pattern: ^0x[a-fA-F0-9]{40}$.
Vault contract address. Pattern: ^0x[a-fA-F0-9]{40}$.
Example request
GET /v1/transactions/vaults/actions/details?network=mainnet&userAddress=0xabc...123&vaultAddress=0xdef...456 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Example response
{
"currentDepositStep": "deposit",
"depositSteps": [
{
"actions": ["approve", "deposit"],
"actionsUrl": "https://example.com/actions",
"name": "deposit"
}
],
"currentRedeemStep": "redeem",
"redeemSteps": [
{
"actions": ["redeem"],
"actionsUrl": "https://example.com/actions",
"name": "redeem"
}
],
"lpTokenBalance": "1045.123456",
"idleAssets": { "USDC": "500.000000" },
"lockedValueInAssets": { "USDC": "1050.000000" },
"unclaimedAssets": { "USDC": "2.500000" },
"rewards": {
"claimable": [
{
"amount": "10.000000",
"token": {
"address": "0xjkl...012",
"name": "Aave Token",
"symbol": "AAVE",
"decimals": 18,
"network": "mainnet"
}
}
],
"currentStep": "claim",
"steps": [
{
"actions": ["claim"],
"actionsUrl": "https://example.com/actions",
"name": "claim"
}
]
}
}
Prepare supply / deposit calldata
GET https://api.vaults.fyi/v1/transactions/vaults/deposit
Returns the transaction payload and calldata needed to deposit assets into a vault. You can optionally request a simulation of the transaction before submitting it.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
Depositing wallet address. Pattern: ^0x[a-fA-F0-9]{40}$.
Token contract address to deposit. Pattern: ^0x[a-fA-F0-9]{40}$.
Target vault address. Pattern: ^0x[a-fA-F0-9]{40}$.
Amount to deposit, in the token’s smallest unit (e.g. wei for 18-decimal tokens).
Set to true to include a transaction simulation in the response.
Example request
GET /v1/transactions/vaults/deposit?network=mainnet&sender=0xabc...123&assetAddress=0xa0b...789&vaultAddress=0xdef...456&amount=1000000000 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Example response
{
"currentActionIndex": 1,
"actions": [
{
"name": "deposit",
"tx": {
"to": "0xdef...456",
"chainId": 1,
"data": "0x...",
"value": "0"
},
"simulation": {
"url": "https://example.com/sim/abc",
"status": "success",
"tokensReceived": { "aUSDC": "1000000000" },
"tokensSpent": { "USDC": "1000000000" }
}
}
]
}
Prepare withdraw / redeem calldata
GET https://api.vaults.fyi/v1/transactions/vaults/redeem
Returns the transaction payload and calldata needed to withdraw assets from a vault.
For vaults with redemption queues or waiting periods (e.g. Lido stETH), use the Request Redeem and Claim Redeem endpoints below instead.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
Withdrawing wallet address. Pattern: ^0x[a-fA-F0-9]{40}$.
Token contract address to receive. Pattern: ^0x[a-fA-F0-9]{40}$.
Vault address to redeem from. Pattern: ^0x[a-fA-F0-9]{40}$.
Amount to redeem, in the token’s smallest unit.
Set to true to redeem the full position.
Set to true to include a transaction simulation in the response.
Example request
GET /v1/transactions/vaults/redeem?network=mainnet&sender=0xabc...123&assetAddress=0xa0b...789&vaultAddress=0xdef...456&amount=1000000000 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Prepare request-redeem calldata
GET https://api.vaults.fyi/v1/transactions/vaults/request-redeem
Initiates a redemption request for vaults that have a waiting period before assets can be claimed (e.g. Lido stETH). Submit this transaction first, then use the claim-redeem endpoint once the redemption is ready.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
Wallet address submitting the request. Pattern: ^0x[a-fA-F0-9]{40}$.
Token contract address. Pattern: ^0x[a-fA-F0-9]{40}$.
Vault address. Pattern: ^0x[a-fA-F0-9]{40}$.
Amount to request, in the token’s smallest unit.
Set to true to include a transaction simulation in the response.
Example request
GET /v1/transactions/vaults/request-redeem?network=mainnet&sender=0xabc...123&assetAddress=0xa0b...789&vaultAddress=0xdef...456&amount=1000000000000000000 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Prepare claim-redeem calldata
GET https://api.vaults.fyi/v1/transactions/vaults/claim-redeem
Claims assets after a redemption request has been fulfilled. Use this after calling request-redeem and waiting for the vault’s redemption period to complete.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
Wallet address claiming the assets. Pattern: ^0x[a-fA-F0-9]{40}$.
Token contract address. Pattern: ^0x[a-fA-F0-9]{40}$.
Vault address. Pattern: ^0x[a-fA-F0-9]{40}$.
Set to true to include a transaction simulation in the response.
Example request
GET /v1/transactions/vaults/claim-redeem?network=mainnet&sender=0xabc...123&assetAddress=0xa0b...789&vaultAddress=0xdef...456 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Prepare claim-rewards calldata
GET https://api.vaults.fyi/v1/transactions/vaults/claim-rewards
Returns the transaction payload and calldata needed to claim accrued rewards for a user’s position in a specific vault.
Authentication: x-api-key header required.
Query parameters
Network name or CAIP identifier.
Wallet address claiming rewards. Pattern: ^0x[a-fA-F0-9]{40}$.
Token contract address. Pattern: ^0x[a-fA-F0-9]{40}$.
Vault address. Pattern: ^0x[a-fA-F0-9]{40}$.
Set to true to include a transaction simulation in the response.
Example request
GET /v1/transactions/vaults/claim-rewards?network=mainnet&sender=0xabc...123&assetAddress=0xa0b...789&vaultAddress=0xdef...456 HTTP/1.1
Host: api.vaults.fyi
x-api-key: YOUR_API_KEY
Accept: */*
Example response (all calldata endpoints)
{
"currentActionIndex": 1,
"actions": [
{
"name": "claim-rewards",
"tx": {
"to": "0xdef...456",
"chainId": 1,
"data": "0x...",
"value": "0"
},
"simulation": {
"url": "https://example.com/sim/xyz",
"status": "success",
"tokensReceived": { "AAVE": "10000000000000000000" },
"tokensSpent": {}
}
}
]
}