Smart Recipes
Cross-chain DeFi deposits in one call. Your user holds USDC on Base. Your app deposits it into a vault on Arbitrum. One quote, one signature. You write no bridge, swap, vault, or relayer code.
const quote = await sr.morpho.deposit({
owner: user,
amount: "100",
token: TOKENS.USDC,
srcChainId: 8453, // funds on Base
into: vault, // vault on Arbitrum
});
// user signs one transfer → funds arrive in the vaultThe problem it removes
A cross-chain deposit normally requires all of this:
- a bridge integration, with its failure modes
- a swap integration on one or both chains
- deposit calldata and ABIs for each protocol
- a relayer to execute on the destination chain
- status tracking across two chains
- a recovery path for failed steps
Smart Recipes replaces all of it with one SDK call. The server quotes the route. The latest Smart Routing Address (SRA v1) executes it. Your user signs a single transfer.
Why teams choose it
One signature for the user. The user sends one transfer to a deposit address. The bridge, the swap, and the vault deposit happen behind it. No chain switching. No multi-step approval flows.
Zero protocol maintenance. Vault lists, routes, calldata, and fees live on the server. A new vault or protocol needs no SDK update and no redeploy.
Non-custodial by construction. Funds move through permissionless smart contracts. ZeroDev never holds them. Failed funds rest in the user's own routing address. Only the owner can recover them.
Fails fast, not expensively. The server verifies each deposit target on-chain before it quotes. A wrong vault address returns a typed error in milliseconds. You do not learn about it from a failed bridge.
Works with any wallet stack. Each quote carries a plain transaction batch and an ERC-4337 user operation. The SDK has no signer and no runtime dependencies.
Gas sponsorship built in. Your project's gas policy applies to each deposit automatically. Sponsor your users' fees from the dashboard. No code change is necessary.
What you can build
- Earn features. Show vaults with live APY and TVL. Deposit from the chain the user's funds are on.
- Cross-chain onboarding. Accept deposits from any chain, or from a CEX.
- Chain-abstracted swaps. Bridge and swap to a target token in one signature.
Supported protocols
| Facade | Notes |
|---|---|
sr.aave.deposit | The token and chain identify the pool. No vault is necessary. |
sr.morpho.deposit | A vault is required. |
sr.fluid.deposit | A vault is required. |
sr.yearn.deposit | A vault is required. |
sr.erc4626.deposit | Any ERC-4626 vault, by address. Your own vaults included. |
New protocols land server-side. Your integration does not change.
Try it
- Quickstart: a first deposit in about 20 lines
- Live demo: vault picker, quote, execute, track
- How it works: the flow, the custody model, failure behavior