In code, Fuse features are still named
Zap* — getZapQuote, signGaslessDzapUserIntent, /v1/bundle. Public docs use Fuse.What it solves
Without Fuse, putting USDC on Arbitrum into a USDC/ETH LP on Base looks like this:- User signs approval for USDC
- User signs swap (USDC → bridged USDC)
- User signs bridge (Arbitrum → Base)
- …waits for bridge settlement…
- User signs swap (USDC → 50/50 USDC/WETH)
- User signs LP deposit
When to use Fuse
How it works
1
Quote the intent
getZapQuote() → bundle of steps + estimated output.2
Build the bundle
buildZapTxn() → transaction calldata for the entire bundle.3
Sign once
Either: standard transaction (user pays gas) —
zap().
Or: gasless EIP-712 intent — signGaslessDzapUserIntent().4
Solver settles
Steps execute atomically where possible, with cross-chain hops settled by the relayer.
5
Track
getZapTxnStatus() returns step-level status.Next steps
Intents
Intent format, EIP-712 types, lifecycle.
Execution flow
User → solver → settlement.
Bundle
Composing multi-step intents.
Gasless
signGaslessDzapUserIntent flow.