Skip to Content
Integration Guide3. Token Approval

Step 3: Token Approval (ERC-20 Standard)

Regulatory Context: Token approvals comply with ERC-20 standard and are required per Ethereum protocol specifications. This step ensures proper authorization before token transfers.

Verification of Existing Allowance

const tokenContract = new ethers.Contract( sellToken, ["function allowance(address owner, address spender) view returns (uint256)"], provider ); const currentAllowance = await tokenContract.allowance( userAddress, data.dexRoute.target // ⚠️ Use target from quote! ); if (currentAllowance < sellAmount) { // Approval transaction required console.log("APPROVAL_REQUIRED: Insufficient allowance"); } else { // Sufficient allowance exists console.log("APPROVAL_VALID: Proceeding to transaction execution"); }

Approval Transaction Request

const tokenWithSigner = new ethers.Contract( sellToken, ["function approve(address spender, uint256 amount) returns (bool)"], signer // Connected wallet ); // Option 1: Maximum allowance (reduces future approval transactions) const approveTx = await tokenWithSigner.approve( data.dexRoute.target, ethers.MaxUint256 // Maximum uint256 value ); // Option 2: Exact amount approval (enhanced security, requires approval per transaction) // const approveTx = await tokenWithSigner.approve(data.dexRoute.target, sellAmount); console.log("APPROVAL_PENDING: Awaiting blockchain confirmation"); await approveTx.wait(); // CRITICAL: Must wait for transaction confirmation console.log("APPROVAL_CONFIRMED: Transaction mined successfully");

Critical Implementation Requirements

Critical Requirements - Do Not Skip:

  • Router Address: Must use dexRoute.target from quote response (varies by execution venue)
  • Transaction Confirmation: Must await approveTx.wait() before proceeding to swap execution
  • Gas Costs: Approval transactions typically consume 46,000-65,000 gas units
  • Security Consideration: Maximum allowance reduces transaction overhead but increases smart contract risk exposure

Approval Strategy Comparison

ApproachSecurityUX ImpactGas Efficiency
Maximum allowance (MaxUint256)LowerBetterHigh (one-time cost)
Exact amountHigherRequires approval per swapLower (recurring cost)

User Communication Template

[Status Update] Phase: Token Authorization Action: Approving WETH spending rights Expected Duration: 15-45 seconds (network dependent) Transaction Type: ERC-20 Approval [Next Steps] Upon confirmation: Proceed to swap execution Estimated Total Time: 1-2 minutes

Previous: Step 2: Quote Request Next: Step 4: Sign & Submit

Last updated on