Minimum to integrate deposits:
GET /supervaults?chain_id=8453→ filter toavailability: "available"andis_supervault_v_2: true- Confirm the user holds
assets[0].addresswith sufficient balance POST /hooks/suggest/non-smart-accountwithtype: "DEPOSIT", source token, vault address,vault_type: "SUPERVAULT"- Broadcast
executions[]in order — index 0 isapprove, index 1 isdeposit
type: "REDEEM" → broadcast → poll maxWithdraw(account) onchain → when > 0, POST type: "REDEEM_CLAIM" → broadcast.Prerequisites
Vault Discovery
List vaults
Example
Single vault
id format: {chain_id}_{vault_address}. Same response shape as the list.
Historical APY and TVL
ids: comma-separated vault IDs. granularity: hour or day.
User positions
Deposit
0x095ea7b3) is ERC20.approve. Index 1 (0x6e553f65) is ERC4626.deposit. Both carry type: "DEPOSIT" — use array position, not type, to determine order.
Token decimals. Express
amount in the token’s smallest unit:Use
amount_fiat instead of amount if you only know the USD value.
The bundler validates on-chain balance before building. Check the user’s balance first (GET /balances/{address}) to avoid an unnecessary API round-trip.
Redemption
SuperVaults use ERC-7540 async redemptions. Request -> keeper fulfills (~1 hour) -> claim.Rewards
SuperVault rewards are distributed via Merkl. Rewards accrue automatically while users hold vault shares — no staking required.Check if a vault has rewards
has_rewards: true on the vault response means an active Merkl campaign exists. stats_basic.reward_rate is the current reward APR.
Check claimable rewards for a user
Example response
Claim rewards
Reward claiming requires a smart account (ERC-4337). It is not available on the non-smart-account endpoint.outputs[].amount=provider_claim_amountfrom the claimable responsetargets[].extra_data=rewards[].extra_data(Merkl proof)targets[].tags: ["merkl"]is required- Max 7 reward tokens per claim call
Error Reference
All errors return{"code": <http_status>, "message": "<reason>"}.
Bundler errors are deterministic. An identical retry returns the same error — fix the request first.
Vault Addresses (Base, chain ID 8453)
All addresses verified fromGET /supervaults?chain_id=8453.
Key Concepts
Price per share (PPS).stats_basic.pps is the share-to-asset exchange rate. PPS only increases. User asset value: shares * pps.
Total APY. apy_snapshot_week + reward_rate — both fields are in percentage points (e.g. 3.77 = 3.77%). For SuperStocks vaults, reward_rate is the primary yield source today; apy_snapshot_week grows as vault strategies deploy. Filter out -1000000 sentinel values (means no data) before summing.
Which deposit endpoint. /hooks/suggest/non-smart-account for EOA, Safe, Fireblocks, and custodians — returns raw EVM transactions. /hooks/suggest -> /executor/build -> /executor/execute for ERC-4337 smart accounts. The CLAIM action type (reward claiming) requires the smart account path.
Slippage. Basis points. 50 = 0.5% for bStock vaults. 10 = 0.1% for stablecoin vaults.