Skip to content
Alle optiegidsen
Beveiliging van cryptowallets12 min.

Tokenmachtigingen en allowances: ERC-20 controleren en intrekken

Lees wat een ERC-20-goedkeuring een contract toestaat, hoe onbeperkte allowances en permit-handtekeningen werken en wat intrekken wel en niet verandert.

In deze gidsEen wallet koppelen en een token goedkeuren zijn verschillende rechten

Korte samenvatting

Een ERC-20-`approve` verstuurt normaal gesproken niet direct tokens. De transactie legt vast hoeveel een specifieke spender later via `transferFrom` mag opvragen. De wallet loskoppelen van een site verwijdert de on-chain allowance niet automatisch; op nul zetten draait een afgeronde overdracht niet terug.

Een wallet koppelen en een token goedkeuren zijn verschillende rechten

Een siteverbinding laat een app meestal een openbaar adres zien en handtekeningen aanvragen. Dat geeft de app op zichzelf geen recht om alle ERC-20-tokens te verplaatsen. De allowance staat apart in het tokencontract. MetaMask maakt ook onderscheid tussen een dapp loskoppelen en tokenmachtigingen intrekken.

Een ERC-20-allowance hoort bij een tokencontract, blockchain, eigenaaradres en spenderadres. Een goedkeuring op Ethereum geldt niet ook voor hetzelfde symbool op Polygon of voor een ander token. Alleen onthouden dat je “deze site hebt goedgekeurd” kan verhullen welk token en netwerk nog een actieve machtiging hebben.

Deze gids gaat over ERC-20 approve, allowance en transferFrom op Ethereum en compatibele netwerken. Native ETH-overdrachten, NFT-setApprovalForAll, andere tokenstandaarden en wallet-aanmeldverbindingen werken anders. Voor sleutelback-up en herstel zie de gids over seed phrases en wallet-herstel.

`approve` legt een bestedingslimiet vast, geen tokenoverdracht

De eigenaar kan approve(spender, amount) op het tokencontract aanroepen om een specifieke spender tot een hoeveelheid tokens toegang te geven. transferFrom laat die spender namens de eigenaar tokens verplaatsen. approve verandert het saldo daarom normaal niet meteen, maar een latere contractaanroep kan de allowance gebruiken. Zo werkt de ERC-20-standaard.

Voorbeeld: een wallet heeft 300 tokens en geeft een router een allowance van 80. Bij een gewone ERC-20 is de effectieve limiet het laagste van de resterende allowance en het saldo. De machtiging kan meer dan één transactie omvatten; een contract kan transferFrom meerdere keren aanroepen. Misbruik van het goedgekeurde contract of het bedoelde aanroeppad kan tokens onverwacht verplaatsen. Ook afwijkend tokengedrag is relevant.

Een goedkeuring is meestal een on-chain transactie naar het tokencontract en kan netwerkkosten hebben. Sommige apps splitsen goedkeuring en swap; andere combineren een handtekeningmachtiging met een latere transactie. Controleer wat de wallet werkelijk laat ondertekenen en op welk netwerk, niet alleen de knop “Approve”.

Een onbeperkte allowance is geen onmiddellijke opname

“Unlimited” staat vaak voor een allowance dicht bij de maximale integerwaarde van het token. Er ontstaan geen oneindige tokens en het saldo wordt niet direct bij de goedkeuring overgemaakt. De spender kan de resterende machtiging later wel gebruiken voor tokens van hetzelfde type die op dezelfde chain in dezelfde wallet terechtkomen. Sommige implementaties verlagen een maximale allowance niet na gebruik; controleer het tokengedrag.

Een app kan een ruime limiet vragen om herhaalde goedkeuringen te voorkomen, maar gemak en blootstelling horen samen te worden beoordeeld. Een kwetsbaarheid of misbruik van controle over het spendercontract kan een oude goedkeuring later relevant maken. De intrekkingsgids van Ethereum.org legt uit waarom een ruime allowance ook telt nadat je bezittingen naar je wallet terugzet.

Een kleinere limiet neemt niet alle risico weg. Een nep-token of verkeerde spender kan ook bij een klein bedrag schade veroorzaken; elke keer opnieuw goedkeuren brengt bovendien kosten en extra foutkansen mee. Weeg de geplande hoeveelheid, gebruiksfrequentie, het vertrouwen in het contract en de mogelijkheid om de machtiging later te controleren.

Tekstloze illustratie van een wallet, een gouden token en klepopeningen voor verschillende goedkeuringslimieten.
Een allowance laat een specifiek contract later tokens gebruiken; controleer het adres en bedrag vóór ondertekening.

Controleer netwerk, token, spender en bedrag vóór ondertekening

Controleer vóór ondertekening vier punten: komt het geselecteerde netwerk overeen met de app; klopt het tokencontractadres en niet alleen de ticker; komt het spenderadres overeen met officiële documentatie of verifieerbare contractgegevens; en past de limiet bij de geplande actie of blijft er langdurig een brede machtiging over?

Koppel geen wallet via links uit privéberichten, QR-codes, supportchats of niet-geverifieerde advertenties. Een phishingpagina kan een echte app nabootsen. Begin bij een opgeslagen officieel adres of de projectdocumentatie. Een herkenbare contractnaam bewijst niet dat het adres klopt; een verificatievinkje in een block explorer garandeert evenmin veiligheid.

Een hardware signer kan de privésleutel van een gewone browser scheiden, maar bepaalt niet of de spender of het bedrag veilig is. Als het apparaat de aanvraag niet begrijpelijk toont, stop dan en raadpleeg de officiële uitleg van de walletaanbieder. Minder zichtbare details betekenen ook minder controle.

`permit` verandert de goedkeuringsroute, maar geeft ook toestemming

Sommige ERC-20-tokens ondersteunen ERC-2612 permit. In plaats van een gewone approve-transactie te versturen, ondertekent de eigenaar typed data; een andere partij kan die handtekening indienen om de allowance in te stellen. De standaardboodschap bevat eigenaar, spender, waarde, nonce en deadline, met een domein dat de handtekening aan chain en contract koppelt.

De ERC-2612-deadline is het laatste moment waarop de ondertekende permit kan worden ingediend. Een allowance die al succesvol is ingesteld, verloopt daardoor niet automatisch op dat tijdstip. De machtiging kan blijven bestaan totdat ze wordt gebruikt, aangepast of ingetrokken. Sommige tokens gebruiken andere permit-ontwerpen of extra vervalregels; ga er niet van uit dat elk verzoek met de naam “permit” ERC-2612 volgt.

Een handtekening kan een andere account de netwerkkosten laten betalen, maar is daarom geen onschuldige loginbevestiging. Als de wallet token, spender, waarde en tijdsvoorwaarden niet duidelijk toont of niet overeenkomen met de uitleg van de app, weiger dan en raadpleeg officiële documentatie. Een nog niet ingediende handtekening kan vóór de deadline door iemand anders worden ingediend.

Een site loskoppelen trekt geen on-chain allowance in

Uitloggen of de wallet loskoppelen verandert de browsersessie of verbindingsmachtiging. Een ERC-20-allowance die al in het tokencontract staat, kan blijven bestaan. Omgekeerd wist intrekken niet het openbare adres dat een site al kent of de transactiegeschiedenis. De MetaMask-gids voor loskoppelen legt het verschil uit.

Intrekken vereist meestal een on-chain transactie die de allowance voor dat token en die spender op nul zet. Daarvoor betaal je netwerkkosten; de oude machtiging kan actief blijven totdat de transactie is bevestigd. Vernieuw daarna de lijst of lees het tokencontract opnieuw uit om nul te bevestigen voor dezelfde wallet, chain, token en spender. MetaMask en Ethereum.org beschrijven controles per netwerk; controleer het officiële domein en geselecteerde netwerk.

Elke chain bewaart een eigen toestand. Een allowance op Ethereum op nul zetten verandert niet automatisch de toestemming voor hetzelfde token op een andere chain. Controleer elk relevant account, tokencontract, spender en netwerk en verifieer het resultaat na bevestiging. Een intrekkingstool heeft je seed phrase of privésleutel niet nodig.

Intrekken stopt toekomstig gebruik, niet een afgeronde overdracht

Na bevestiging van een allowance van nul kan die machtiging geen nieuwe transferFrom ondersteunen. Intrekken maakt afgeronde overdrachten niet ongedaan, haalt tokens niet terug bij de ontvanger en verwijdert geen machtigingen van andere contracten. Als een verdachte spender tokens al heeft verplaatst, garandeert intrekken geen herstel.

Als de privésleutel van de wallet is blootgesteld, kan een aanvaller nog op andere manieren transacties ondertekenen. Goedkeuringen voor andere spenders of tokens, NFT-operatorrechten, permit-handtekeningen en contractspecifieke machtigingen kunnen ook blijven bestaan. Beoordeel het resultaat alleen voor de wallet en chain die je hebt gecontroleerd.

Na intrekken kan een volgende swap, storting of opname een nieuwe goedkeuring vereisen. Controleer eerst of een openstaande transactie of actieve positie de machtiging gebruikt en raadpleeg zo nodig de officiële hulp van het protocol. Weet wat er bij de volgende stap verandert.

Een allowance wijzigen kan een ERC-20-raceconditie geven

De ERC-20-standaard adviseert interfaces een niet-nul allowance eerst op nul te zetten voordat ze die door een andere niet-nulwaarde vervangen. Als een transactie van de spender tussen de oude en nieuwe goedkeuring wordt verwerkt, kan die meer gebruiken dan verwacht. Bij een wijziging van 100 naar 25 kan de spender bijvoorbeeld eerst de oude 100 gebruiken en daarna ook de nieuwe 25.

Eerst nul instellen en bevestigen verkleint de kans dat oude en nieuwe waarden tegelijk bruikbaar zijn, maar maakt gebruik van de oude allowance vóór bevestiging niet ongedaan. Beide stappen kunnen kosten hebben en tokens kunnen verschillend werken. Volg de veilige update-instructies van wallet of token en wacht op bevestiging.

Als je de huidige allowance niet kent, lees dan het tokencontract op het geselecteerde netwerk uit voordat je de waarde vervangt. Bij een leeg of onverwacht resultaat controleer je of je niet een ander netwerk of adres bekijkt. Zowel het eigenaaradres als het tokencontract moet overeenkomen.

Gebruik een korte routine om wallet- en tokenmachtigingen te controleren

  1. Bevestig het officiële projectdomein en het geselecteerde netwerk.
  2. Controleer de adressen van tokencontract en spender en vergelijk de limiet met de benodigde hoeveelheid.
  3. Lees de echte transactie of typed data die de wallet toont. Onderteken geen verzoek dat je niet begrijpt.
  4. Controleer ongebruikte of niet langer vertrouwde spenders op het juiste netwerk; zet zo nodig allowance op nul en bevestig het resultaat.
  5. Vergelijk wallets ook op hoe duidelijk ze goedkeuringen tonen en hoe begrijpelijk hun update- en herstelinformatie is.

Een hardwarewallet is een optie voor sleutelopslag en handtekeningcontrole, geen garantie voor contractveiligheid en geen blokkade tegen het goedkeuren van een ruime limiet. Controleer spender, token, netwerk en bedrag zelf. Begrijpen dat allowances los van siteverbindingen kunnen blijven bestaan, helpt ook bij het vergelijken van walletbeveiliging en de echte grenzen ervan.

Veelgestelde vragen

Q1Verwijdert het loskoppelen van mijn wallet een bestaande tokenmachtiging?

Nee. Een siteverbinding is een sessie; een ERC-20-allowance is on-chain status in het tokencontract. Controleer de spender voor de juiste chain en token apart en trek de machtiging zo nodig in.

Q2Kan ik tokens terughalen die al zijn overgemaakt als ik allowance op nul zet?

Nee. Na bevestiging voorkomt nul toekomstig gebruik, maar draait het een afgeronde overdracht niet terug. Controleer andere goedkeuringen en mogelijke sleutelblootstelling apart.

Q3Gebruiken alle cryptotokens en NFT’s ERC-20-allowances?

Nee. Deze gids gaat over ERC-20 approve en transferFrom. NFT-operatorrechten, native assets, andere standaarden en netwerkspecifieke machtigingen volgen andere regels.

Bronnen en verder lezen

Probleem melden

We bereiden een e-mail met de link naar dit artikel voor. Mark ontvangt je melding pas nadat je die verstuurt

Snelle check

De gids gelezen? Test jezelf met 3 vragen

Vraag 1 / 3

Vraag 01

Wat doet ERC-20 `approve(spender, amount)` vooral?

Kies een antwoord om de uitleg te zien

Optiewoordenlijst