What Is Permit2?
What Is Permit2?â
Permit2 is a shared smart contract, created by Uniswap Labs, that manages token permissions for many dApps on EVM networks. Instead of approving every dApp separately, you approve the Permit2 contract once for a token. Permit2 then gives individual dApps permission to spend that token, each with its own amount and expiration.
The official Permit2 contract has the same address on every supported network:
0x000000000022D473030F116dDEE9F6B43aC78BA3
Permit2 is widely used by swap apps and aggregators, including the Uniswap routes in Gem Wallet's own swaps.
How Permit2 Permissions Workâ
A Permit2 permission usually has two layers:
- Token â Permit2: an ordinary token approval that lets the Permit2 contract move your token. This is often unlimited and is made once per token.
- Permit2 â dApp: a permission inside Permit2 that names a spender (the dApp's contract), an amount, and an expiration. A dApp can ask for this as an on-chain transaction or as an off-chain signature.
Both layers must allow a transfer before the dApp can move your token. Revoking either one stops it.
How Gem Wallet Shows Permit2 Requestsâ
| What the dApp asks for | How Gem Wallet shows it |
|---|---|
| Approve the Permit2 contract for a token | A token approval, with Permit2 as the spender |
| A Permit2 approve transaction for a dApp | A token approval showing the token, the dApp's spender, the amount, and the expiration |
| An increaseAllowance transaction on a token | A token approval showing the token, spender, and new amount |
| A Permit2 signature (no transaction) | A signature request. See Token Approval vs Permit Signature |
Gem Wallet checks the spender and the token of every approval against its list of flagged addresses. If either is flagged, Gem Wallet shows a warning and won't let you confirm.
Before Gem Wallet 2.114.71, Permit2 approve and increaseAllowance transactions from dApps appeared as ordinary contract calls, without the token, spender, or approval warning. Update the app to see the full approval review.
What to Check Before You Approveâ
- Spender: Is it the contract of the app you're using? An unknown spender is the biggest warning sign.
- Token: Is it the token you meant to trade?
- Amount: Unlimited lets the spender move all of that token, now and in the future. Prefer a limited amount when the app allows it.
- Expiration: Permit2 permissions expire at the date shown. A far-off date keeps the permission open longer.
- The app: Did the request come from the site you opened, at the moment you expected it?
If anything looks wrong, reject the request. See How to Review a Token Approval Transaction.
Scammers often ask for Permit2 approvals or signatures because they can drain tokens later without another transaction from you. Never approve a request you didn't start, even if the Permit2 contract address is genuine.
How to Remove a Permit2 Permissionâ
Disconnecting a dApp in WalletConnect does not remove an approval. To remove one, revoke it on-chain:
- Revoke the dApp's permission inside Permit2, or
- Revoke the token's approval for the Permit2 contract, which blocks every Permit2 permission for that token.
Revoking is an on-chain transaction and costs a network fee. See How to Revoke a Suspicious Token Approval.