CenturionDEX
Launch App

Overview

Last modified:

Permit2 is a universal token approval contract that consolidates two distinct permission models into one system:

Why Permit2 exists

The standard ERC-20 approvetransferFrom flow requires a separate on-chain transaction for every new spender. Permit2 replaces this pattern: users grant a single max-approval to the Permit2 contract, and then use off-chain signatures to authorize individual spenders — eliminating repeated approval transactions and giving users fine-grained, revocable control over who can spend what, for how long.

Approving Permit2

Before any integrating contract can request tokens through Permit2, the user must approve the Permit2 contract on the underlying token:

USDC.approve(permit2Address, type(uint256).max);

A max-approval is recommended to capture the full benefit — individual spending limits are then enforced at the Permit2 layer, not the token layer.

Resources