How to revoke smart contract allowances/token approvals
Does this article need to be translated?
Note: smart contract allowances are different from simply connecting your wallet to a dapp. For information on disconnecting your wallet from dapps, see here.
Smart contract/token allowances, also referred to as approvals, involve you allowing dapps to access and move tokens in your wallet on your behalf. When you use a DEX (decentralized exchange), for example, you'll need to sign an approval that allows its smart contract to take tokens to complete your requested trades. Whilst this sounds inherently risky, bear in mind that giving dapps at least some allowance is always necessary. If you want to use Web3, you won't be able to avoid them.
Revoking approvals vs. disconnecting apps: what's the difference?
It's easy to confuse these two processes, but they are fundamentally different:
- Disconnecting your wallet from a dapp involves cancelling permission for it to see your public address and your token balances, and, depending on what you originally consented to, stopping it from initiating transactions (although not executing them) and viewing past activity. See our article for more info.
- Revoking an approval/allowance means a dapp can no longer access the contents of your wallet and move them around.
See also: our Twitter thread covering the distinction between these two actions, and our article on token approvals.
How do I revoke approvals?
Revoke your token allowances in MetaMask Portfolio
We've added a feature to MetaMask Portfolio that allows you to view allowances and submit revocation transactions directly within the dapp. It's available on Ethereum mainnet, Polygon, and BNB Chain.
To learn more, see our separate article here.
The good news is there are several ways to keep track of your existing approvals and easily revoke them:
-
Head to the 'approval checker' section of the block explorer for the network you're using. For example, Etherscan, BscScan and Polygonscan all have a token approval checker function.
-
Use a platform such as:
- Revoke (Many networks)
- Unrekt (multiple networks)
- approved.zone (Ethereum mainnet)
- Cointool (multiple networks)
- beefy.finance (BSC/BNB Smart Chain)
- EverRevoke (multiple networks).
-
Use MetaMask to overwrite existing token approvals by sending a new approval transaction with the same token details and nonce as the previous approval. See our article for more information on how to do this.