Skip to main content
Use this page when you want the fastest working integration. It skips deep explanation. For full detail, see Vault Data, Deposit, and the Client Library. Time required: ~10 minutes.
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 /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).
The response contains 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