What is EIP-7702?

EIP-7702 allows Externally Owned Accounts (EOAs) to delegate their execution logic to smart contracts. When an EOA signs an authorization, it temporarily gains smart account capabilities without changing its address.

Supported Operations

EIP-7702 accounts work with all OneBalance transaction types:
  • Swaps: Cross-chain token exchanges with automatic bridging
  • Transfers: Send assets across chains to any address
  • Contract Calls: Execute smart contract functions with call data
All operations benefit from gas abstraction and single-transaction UX.

Key Concept: Delegation vs Deployment

EIP-7702 Accounts (Delegation):
  • EOA signs authorization to delegate to smart contract implementation
  • Address remains unchanged - no migration needed
  • Delegation happens when first transaction is needed
ERC-4337 Accounts (Deployment):
  • New smart contract deployed with predicted address
  • Requires address migration from existing EOA
  • Deployment happens when account is created

Integration Flow

OneBalance implements EIP-7702 through a clear process:
1

Prepare Quote

Call prepare-call-quote to analyze your requirements and get delegation objects if needed
2

Sign Delegations

Sign any delegation objects using viem’s signAuthorization method
3

Get Quote

Submit signed delegations to call-quote to get the executable quote
4

Execute

Execute the quote using execute-quote to perform the cross-chain operation
OneBalance handles delegation automatically. If your EOA is already delegated on a chain, no additional signing is required.

How EIP-7702 Works

When you configure an EIP-7702 account with OneBalance:
  1. Account Configuration: Set deploymentType: "EIP7702" and use your EOA address for both signerAddress and accountAddress
  2. Smart Contract Implementation: OneBalance uses Kernel 3.3 as the delegation target
  3. Automatic Delegation: When needed, OneBalance generates authorization objects for you to sign
  4. Execution: Your EOA temporarily gains smart account capabilities during the transaction

Example: Account Configuration

const account = {
  type: "kernel-v3.3-ecdsa",
  deploymentType: "EIP7702",
  signerAddress: "0x5Cb2369421F8a00Ef556d662D6E97C1419B1d37c", // Your EOA
  accountAddress: "0x5Cb2369421F8a00Ef556d662D6E97C1419B1d37c" // Same address
};
When delegation is needed:
  • Source chain: Always required for spending operations (swaps, transfers, contract calls)
  • Destination chain: Only required for contract calls (not for swaps or transfers)

When to Use EIP-7702

Choose EIP-7702 when you want to preserve existing EOA addresses:
  • Existing EOA users: No address migration needed
  • Embedded wallets: Upgrade EOAs to smart account capabilities
  • Address preservation: Keep on-chain history and familiar addresses
Choose ERC-4337 when you need:
  • Resource Locks (requires managed key infrastructure)
  • Custom account implementations beyond Kernel v3.3
EIP-7702 uses the same ERC-4337 infrastructure (bundlers, paymasters, UserOps) but extends it to work with existing EOA addresses. Learn more about Account Types.

Current Limitations

OneBalance’s EIP-7702 implementation works for most scenarios but has one constraint: Multi-Input Limitation: When you have assets on more than 1 source chain different from the destination chain, you’ll need to use a manual delegation workaround.
Example AssetsDestinationResult
USDC on OptimismArbitrum✅ Single transaction
USDC on Optimism + ArbitrumArbitrum✅ Single transaction
USDC on Optimism + BaseArbitrum⚠️ Needs workaround

Next Steps

All existing OneBalance API endpoints work with EIP-7702. Just update your account configuration to use type: "kernel-v3.3-ecdsa" and deploymentType: "EIP7702".