Approval & Gas

Approval & Gas

There is exactly one transaction that requires FLR gas: the initial ERC20 approval. After that, every interaction through Zedkr is completely gasless, forever.

One-time approval

typescript
import { ethers } from "ethers";

const USDT   = "0xC1A5B41512496B80903D1f32d6dEa3a73212E71F";
const ROUTER = (await client.getConfig()).routerAddress;

const usdt = new ethers.Contract(USDT, ["function approve(address,uint256)"], signer);
await usdt.approve(ROUTER, ethers.MaxUint256); // one-time, per token
Tip
Tokens with EIP-2612 permit support (like some USDT versions) skip this entirely, the SDK handles permit signing automatically. No FLR ever needed.

Approval rules

One approval per fee token (USDT, FXRP, or WC2FLR)
Approve the Zedkr router address, not any other contract
MaxUint256 means you never need to re-approve
The fee cap in the router limits the maximum the router can pull per transaction