Skip to Content

Fee Authorization

This section covers how EIP-712 fee signing works in each package and when it is required before a transaction can be submitted.


Overview

Some Lombard transactions require an EIP-712 typed-data signature before the on-chain transaction can be submitted. This is the protocol’s fee authorization step: a one-time off-chain signature that authorizes the protocol to deduct a Bitcoin-denominated fee from the user’s deposit when it lands.

Where required (currently Ethereum and Sepolia; Base and Base Sepolia are exempt by design), the user signs a structured EIP-712 message, never a plain eth_sign. The signature is reusable across the user’s deposits until it expires or is rotated.

Fee authorization pipeline
Check statusUser signs EIP-712AuthorizedSubmit tx

Where it applies

Required (signs EIP-712)

Ethereum mainnet (chain ID 1) and Sepolia (chain ID 11155111).

Calling a deposit-address generator or stake on these chains triggers a fee authorization check. The user wallet signs the typed-data message before the on-chain transaction is built.

Exempt (no EIP-712)

Base (chain ID 8453) and Base Sepolia (chain ID 84532).

The protocol does not require a separate fee authorization signature on these chains.


How each package handles it

sdk-agent

The agent calls check_fee_authorization before generating a deposit address or staking. If fee authorization is required, the response tells the model what the user needs to sign next.

The user wallet signs the EIP-712 message, then the agent proceeds with the prepared transaction.

check_fee_authorization → wallet signs EIP-712 → prepare_btc_to_lbtc_deposit (or stake)

sdk-agentkit

Automatic. The provider checks fee authorization before each write action and triggers the signature flow through the AgentKit WalletProvider.

Your agent code never needs to handle it explicitly.


Full protocol details

For the protocol-level mechanics behind fee authorization, see Fee Authorization in the SDK concepts.

Last updated on