Skip to main content
Gasless Fuse uses EIP-712 signatures instead of on-chain transactions. The user signs an intent off-chain; a solver pays the gas to settle.

When it works

Gasless requires:
  • The source token supports Permit2 or EIP-2612 permit (most major tokens do).
  • The user has a balance ≥ intent amount (no transfer happens until settlement).
  • The intent’s deadline hasn’t passed.
If the token has neither permit method, fall back to standard zap() (user pays gas).

SDK flow

Three intent types

The SDK picks the right EIP-712 type set for you (DzapUserIntentSwapTypes, DzapUserIntentBridgeTypes, DzapUserIntentSwapBridgeTypes).

Why executorFeesHash and swapDataHash?

Both are committed at signature time. The solver can’t:
  • Inflate fees after you sign (the fee struct is hashed in).
  • Substitute a worse swap path (the calldata is hashed in).
If the solver tries either, the on-chain verifier reverts.

When gasless isn’t right

  • High-value swaps — solvers may demand a wider spread for big intents; check the quote’s effective rate.
  • Tokens without permit support — falls back to a standard approval; not gasless.
  • You want immediate finality — gasless intents settle when a solver picks them up. Usually fast, but not synchronous.
For the non-gasless flow, see Bundle.
Last modified on May 4, 2026