Back to Tools & Tutorials
Tools & Tutorials

Token Approvals: Connections, Signatures, and Revocation

Trader Stan·2026.10.27·Reading Time 13 min

A token approval lets a specified spender use an account’s tokens under the token contract’s rules. The familiar ERC-20 operation is called Approve; ERC-20 is a token interface standard. Connecting to a site does not approve spending, and disconnecting does not automatically revoke an allowance. EIP-20 defines allowance queries and spending; EIP-2612 lets a qualifying signature establish an allowance. This guide uses a finite-allowance example to explain confirmation, spending, and revocation, with references checked through October 27, 2026.

When a wallet confirmation appears, the hard part is often understanding what you are agreeing to. A site calls it a login, but the wallet asks you to approve a transaction. You disconnect from the site, yet a spender’s allowance remains on-chain. Judging risk only by whether the wallet is connected can miss the actual permission to spend.

We will separate connections, transactions, and signatures, then follow a finite-allowance plan from start to finish. At every step, the question is which state has actually changed—and what that change still cannot prove safe.

Wallet Connections, Transactions, and Signatures Grant Different Permissions

A connection, an Approve transaction, and a message signature are different actions, not one interchangeable authorization. A typical site connection may reveal an account address you choose to share and let the site make further requests. Being able to request an action is not the same as being able to move arbitrary assets. For how wallets hold keys, start with wallets and account control.

Connecting to a Site Does Not Approve Token Spending

Common ERC-20 tokens store spending allowances in the token contract. An owner grants a spender an allowance; that spender may then call transferFrom under the contract’s rules to move the owner’s tokens to a specified recipient. A spender is the address authorized to spend. It may be a contract or an ordinary account. A name such as router does not establish trustworthiness.

MetaMask’s official Disconnect wallet from a dapp explains that disconnecting does not revoke token approvals. Disconnecting changes the interface connection; revocation changes the on-chain allowance. Hardware signing does not automatically reject malicious spending requests either. Hardware key isolation addresses some key-extraction risks, while users must still understand what they sign.

Approve and Permit Become Effective at Different Times

Approve is generally a transaction sent to the token contract. After confirming it in your wallet, wait for successful on-chain execution before recording the new allowance. Refusing to sign, not yet submitting, pending execution, and failed execution are not completed approvals.

Permit offers another route. EIP-2612 lets an owner sign specified data first, then have the owner or another party submit it on-chain. Gas measures billable on-chain execution work. Signing may incur no on-chain gas fee at that moment while allowing a later submitter to establish an allowance. No network charge now does not mean a signature carries no asset risk. Other protocols may use their own signature and spending mechanisms, so one revocation method does not cover them all.

Identify What You Are Agreeing To. Concept diagram | Interface connection, on-chain allowance, and an unsubmitted signature are distinct. MetaMask warns that disconnecting does not automatically revoke token approvals. Hardware users must still understand signatures.

Fix Four Identifiers Before Reading an Allowance

Before querying an allowance, fix the network, owner, token contract, and spender. Leave one out and you may query another chain, account, or token contract. A zero there could be mistaken for proof that the permission you intended to address has been cleared.

Network, Owner, Token Contract, and Spender

The owner identifies whose tokens can be spent. The token contract identifies which token you are querying. The spender identifies who may invoke spending under the allowance. The recipient may differ from the spender; a final receiving address is not automatically the authorized spender.

EIP-20’s allowance(owner, spender) takes the owner and spender as parameters and is called on a particular token contract. Tokens sharing a name are not the same contract. Familiar-looking addresses do not remove the need to verify the network. Obtain the complete identifiers through trusted official entry points and compare them with the request before signing, so you know exactly which state will change.

Allowance Is Not Balance; Unlimited Is Not Free

Balance is what the account currently holds. Allowance is what a specified spender may use under the contract’s rules. Approving 20 neither adds 20 to the balance nor means 20 has already moved. An allowance exceeding the current balance may also expose tokens received later.

An unlimited or very large allowance primarily changes the permitted spending range, not transaction fees. Tokens may implement maximum allowances, allowance reductions, and updates differently. Our example fixes a finite model in which successful spending reduces the allowance; it does not represent every ERC-20 token. If an operation needs only 12, understand why it requests more instead of skipping the scope check for future convenience.

Use the Same Four Identifiers. Concept diagram | Recipient and spender may differ. Same-name tokens may use different contracts. Zero for one specific allowance describes that state now. It does not prove every permission or signature has expired.

A Finite-Allowance Walkthrough: When 20, 8, and 0 Become True

Record allowance and balance separately to see what each step accomplishes. This is a paper exercise: owner A starts with 100 units of token T, plans to let spender S use 12, then revoke the remainder. A, S, T, and recipient R are labels. There is no real deployment, signature, or transfer, and no token-price or profit assumption.

Step 1: Read the Current Allowance Before Choosing an Action

Fix the example’s network, owner A, token T contract, and spender S. Query the current allowance and find 0. Record the result and query time, then check whether the operation actually requires S to spend on A’s behalf and whether S matches the address shown by a trusted interface. Zero establishes only that this specific on-chain allowance is zero at that moment. It does not prove A has no other approvals or valid signatures.

The plan grants 20, spends 12, then handles the remaining allowance. Twenty is a teaching choice, not a recommended universal limit. If the signing request switches to another S or a token other than T, cancel this attempt and recheck all four identifiers. An earlier check does not authorize a different request.

Step 2: Approve Only 20 and Wait for On-Chain Confirmation

Assume A prepares an Approve transaction setting T’s allowance for S to 20. Check the transaction destination, call data, and network fee too. Here, 20 is in displayed token units. Contracts may store amounts as integers in smaller units, which a trusted interface must convert using the token’s decimals. Do not read a raw integer as the displayed quantity.

After signing but before confirmation, record the status as pending rather than entering an allowance of 20. Only after successful execution and a new query of the same identifiers returns 20 should the status become effective. This step moves no T, so the assumed token balance remains 100. If A pays the network fee, its native-coin balance may decrease separately; that is not T being spent.

Step 3: After Spending 12, Check the Remaining Allowance of 8

Assume S successfully transfers 12 units of A’s T to R under the example’s rules, with no other token movements. A’s T balance becomes 100 − 12 = 88. Under our finite-allowance reduction rule, S’s remaining allowance becomes 20 − 12 = 8. These numbers answer different questions: how much A holds and how much S can still spend.

A check mark on the application page is insufficient. Verify the original transaction succeeded and that the actual token and recipient are correct, then query the current balance and allowance. Another spend or transfer during this period would invalidate the simple 88 and 8 calculation. If execution failed, record actual on-chain state rather than subtracting 12 as planned.

An ordinary ERC-20 allowance follows the permissions granted; it does not necessarily lock the recipient or purpose of every spend. Unless the contract imposes further restrictions, the first transfer to R does not mean the remaining 8 can only ever go to R.

Step 4: Revoke and Confirm Zero, Rather Than Just Submitting

Next, assume A successfully changes the same T allowance for S to 0. While revocation is pending, the existing allowance of 8 does not disappear merely because A clicked a button. The execution order of spending and revocation still affects the outcome. Submitted revocation is not proof that assets are safe.

Record this particular on-chain allowance as zero only after revocation succeeds and a new query returns 0. With no other T movements under our teaching assumptions, A still holds 88. Cancelling permission to spend 8 does not return another 8. It closes the remaining allowance, neither recovering the 12 already transferred nor guaranteeing anything about other permissions.

EIP-20 also warns of transaction-ordering risks when updating an existing nonzero allowance and suggests interfaces first set it to zero before setting a new value. Actual tokens may provide different increase/decrease methods or restrictions. This guidance does not guarantee prevention of every spend before an update. If an attack is suspected, reassess the exposure instead of repeatedly changing the allowance to another number.

20 → 8 → 0: Track Balance and Allowance. Teaching state table | A starts with 100 T; S spends 12. Finite reduction; no other movements. All hypothetical; no deployment or real transaction. Zero allowance neither recovers the spent 12 nor adds another 8 to the balance.
After Revocation, Query Again. Teaching timeline | Continues the finite model: balance 88, remaining allowance 8. Failed or pending is not completed. Check implementation-specific restrictions on changing allowances.

What Risks Remain After Revoking One Allowance?

Revocation addresses a specific permission; it does not automatically eliminate other signatures, other token permissions, or exposed keys. Our completed example establishes only that A’s allowance of T to S on the fixed network is zero. Another spender, chain, or asset requires a separate check.

An Unsubmitted Permit Is Separate from the Current Allowance

Add an independent branch: A previously signed an EIP-2612 Permit that has not been submitted. If its nonce, deadline, and other conditions still meet the contract’s requirements, someone may submit it later to establish the specified allowance. A nonce is a sequence value that prevents reuse of the same permit; the deadline constrains when it can be submitted. A deadline still in the future is not a reason to assume safety.

That is why an Approve allowance of 0 does not establish that every unsubmitted signature is invalid. Check the actual protocol, signed permission, and cancellation method. An ordinary approve(0) does not automatically cancel every signature type. No Permit is involved in the 20 → 8 → 0 walkthrough. This separate branch explains the limits of the zero-allowance conclusion; it does not claim a second spend occurred in the example.

Zero Allowance Does Not Cover Every Signature. Independent branch | No Permit was involved in the earlier 20 / 8 / 0 completed path. A nonce prevents reuse; a deadline limits submission. No fee at signing time does not mean no asset risk.

Revoking Allowances Cannot Replace Exposed Account Control

If someone else has the seed phrase or private key, the problem extends beyond S’s allowance. Anyone with the relevant control material may create new transactions or approvals. Changing the old app’s password does not retrieve another person’s copy. Continue with private keys and seed phrases to identify accounts derived from the same source.

A revoked screenshot alone cannot close such an incident. Conversely, finding a suspicious approval does not prove a private key has leaked. Separate known exposure from what remains uncertain and act on the actual evidence. Suspicious transfers and compromised account control follows that decision process.

Clearing One Permission Does Not Re-Secure Secrets. Concept decision chart | Do not expand one specific result into a claim of complete safety. Use trusted entry points; never give reviewers seed phrases or private keys. Do not blindly top up a suspected sweeper account.

Make Permission Checks a Habit Before Every Signature

Before agreeing, be able to identify the spender, scope, and way the permission becomes effective. A later inventory can reveal unused allowances, but cannot endorse the next unfamiliar signature. Stop if the request is unreadable, the identifiers differ, or a site pressures you to skip verification.

Use Trusted Entry Points, Not Unsolicited Verification Requests

Start from a wallet, official documentation, or allowance-management tool you have independently verified. Do not follow safety-check links in unsolicited messages. Reading public allowances does not require giving support your seed phrase or private key. If a management tool requests a signature or transaction, read that specific request again; a security label does not make it an exception.

MetaMask’s official Spending caps describes viewing and revoking allowances, but a tool’s coverage still limits which permissions it can list. An absent entry does not establish the absence of other chains’ permissions, non-fungible token (NFT) permissions, or protocol-specific signatures. Our ERC-20 walkthrough does not replace their distinct handling rules.

Check Network Fees and Stop Conditions Together

Approve and revocation usually require on-chain transaction fees. A signature-based permission may leave the submission fee to someone else. Who pays is a separate question from whom you allow to spend tokens. See fees for failed transactions for funding requirements versus actual charges.

For routine management, check the fee and budget before acting. If a sweeper bot is suspected, do not simply fund the old account with native coins to complete revocation. A sweeper bot monitors incoming funds and automatically moves assets out quickly. Include stop conditions alongside the allowance so that addressing one permission does not expose more assets.

This article explains mechanisms through hypothetical scenarios. No real approval or revocation was performed, and it is not advice for disposing of a particular person’s assets. Token and protocol implementations vary. For a suspected compromise, assess the actual evidence and use trusted official support.

FAQ

Q1. Does disconnecting from a site remove token approvals?

Not automatically. The connection and on-chain allowance are separate states. Fix the network, owner, token contract, and spender, then confirm the corresponding revocation succeeds and query the allowance again.

Q2. Does approving 20 immediately transfer 20?

Not in this model. Approve changes what the specified spender may use. A later successful spend changes the token balance; confirm the steps separately.

Q3. After spending 12, why is the balance 88 but the allowance 8?

The example starts with a balance of 100 and a finite allowance of 20. Spending 12 leaves 100 − 12 = 88 in the account and 20 − 12 = 8 of allowance. Not every token handles maximum-allowance reduction identically.

Q4. Should I still check an earlier Permit after the allowance reaches zero?

Yes, assess it separately. An unsubmitted permission that still meets EIP-2612 or other applicable requirements may later establish an allowance. An ordinary approve(0) does not automatically cancel every kind of signature.

Q5. Can hardware-wallet users skip checking approvals?

No. Hardware reduces some key-extraction risks; it does not establish that the spender, token, and amount are appropriate. Stop signing requests you cannot understand.

Q6. Is revocation enough if the private key has leaked?

It cannot replace exposed account control. Check accounts derived from related sources and other exposure. Changing a password or clearing one allowance does not make disclosed control material secret again.

Token ApprovalsApprovePermitERC-20Revoke ApprovalsWallet Security