Vault deposit
GET/v1/actions/vaults/deposit
The single deposit entry point for every share-token vault. The protocol, interface, and underlying are resolved from the vault (share token), so a deposit needs only vault + amount + operator.
What it routes, all from the share token
- ERC-4626 family — savings, Morpho, Fluid, Euler-Earn, Silo, Gearbox, Lagoon, Yearn. Routes directly to
vault.depositwhen no wrap/swap is needed; otherwise the 1delta Composer (wraps native ETH, handles composition). - LST / liquid-staking mints — stETH, wstETH, weETH, rETH, stCELO, pumpBTC, Solv, Core, native-staked, … Resolved from the calldata-sdk registry by
vaultand built via the protocol's mint path, including protocol-specific prep (e.g. StakedCelo validator-group selection — seevalidatorGroup). - ERC-7540 async and ERC-7575 multi-asset vaults — detected via an ERC-165 probe.
underlying and interface are read on-chain (asset() + ERC-165) when omitted; pass them explicitly to skip the reads. For Fluid margin vaults (NFT-position lending markets), use /v1/actions/lending/deposit instead.
Not handled here: GMX (GM/GLV) and Hypercore vaults are USD-denominated / multi-leg, not
asset()-based share tokens, so they keep dedicated flows — GMX via /v1/actions/vaults/gmx, Hypercore viainterface=hypercorebelow. Passing one to the auto path returnsUNRESOLVED_UNDERLYING.
/v1/actions/vaults/lstand/v1/actions/vaults/savingsremain as back-compatible aliases for their specific flows.
Execution mode (mode query param, ERC-4626 path)
auto(default) — direct whenpayAsset === underlyingand not native, otherwise composer.direct— force direct; returns 400 when not eligible (e.g. nativepayAsset).proxy— force the composer (legacy behavior).
The direct path is smaller (one call to the vault) and sidesteps the EVC indirection that the composer triggers. Approval target also changes: direct → the vault; proxy → the composer.
Native deposits
Native ETH is supported via the composer's wrap-then-deposit path (mode=proxy, or auto falls back automatically), and natively by most LST mints (payAsset=0x0). Fluid fToken vaults expose a payable depositNative that skips wrapping — opt in with provider=fluid.
Async / multi-asset / Hypercore (interface query param)
Auto-detected for ERC-7540/7575; only Hypercore needs an explicit interface:
erc7540— async vaults. Two-phase:action=requestDeposit(default, escrow assets) thenaction=claimDeposit(mint once fulfilled). Passcontrollerwhen it isn'toperator. Track the pending request via /v1/data/vaults/withdrawals.erc7575— multi-asset vaults (share ≠ entry token).isSharesswitches deposit-by-assets vs mint-by-shares.hypercore— HyperLiquid multi-leg deposit route (explicit only).amountis uint64 micro-USD (USDC);sourcepicks the funding origin and the response is a structuredlegs[]array (each with its ownchainId/async) rather thantransactions[].
Request
Responses
- 200
- 400
Transaction calldata + approval(s) for the vault deposit. interface=hypercore returns a structured legs[] route instead of transactions[].
Validation error