Permit
EIP-2612 Permit signatures enable gasless token approvals through meta-transactions. Users sign an off-chain message granting approval, which can be submitted by a relayer paying the gas.Overview
EIP-2612 extends ERC-20 tokens with apermit function that accepts EIP-712 signed messages. This enables:
- Gasless approvals: Users don’t need ETH to approve tokens
- Single-transaction flows: Approve + transfer in one transaction
- Meta-transactions: Relayers can pay gas on behalf of users
- Better UX: No separate approval transaction needed
Types
PermitType
PermitDomainType
Methods
createPermitSignature
Creates an EIP-712 signature for a permit message.verifyPermit
Verifies a permit signature matches the permit data and domain.Known Tokens
Pre-configured domain data for popular ERC-2612 tokens:Complete Example
Security Considerations
Deadline
Always set a reasonable deadline. Expired permits can’t be used:Nonce Management
Each permit must use the owner’s current nonce. Replay protection:Domain Verification
Ensure the domain matches the token contract:Amount Limits
Be careful with unlimited approvals:See Also
- Permit (Effect) - Effect.ts integration with Schema validation

