1
Pick a vault
Fetch all available SuperVaults on Base:Filter to
availability: "available" and is_supervault_v_2: true. Pick a vault address and note its assets[0].address (the token your user will deposit).Example (NVDA SuperVault):- Vault:
0xc441a2cc3a528b6312740448a70cc4d40f4d7bfc - Underlying token (NVDAc):
0xb20000000000000000000078ee7ce2fe4908108c - Decimals: 8
2
Check user balance
Confirm the user holds enough of the underlying token before calling the Bundler. The Bundler validates balance on-chain and returns a 400 error if insufficient.Or check on-chain directly via
balanceOf(user) on the token contract.3
Build the deposit
Call The response contains
/hooks/suggest/non-smart-account with the user’s wallet, source token, and target vault. Replace 100000000 with the actual token amount (8 decimals = 100000000 for 1 NVDAc).executions[], an ordered list of transactions to broadcast.4
Broadcast
Send each transaction in order. Wait for on-chain confirmation before sending the next.Both carry
type: "DEPOSIT". Use array index, not type, to determine order.After executions[1] confirms, the user holds superNVDA shares and their deposit is live.Next steps
- Redemption — handle the async ERC-7540 request and claim lifecycle
- Rewards — display and claim Merkl rewards
- Client Library — TypeScript and Python clients wrapping all of the above
