Tip: Ontvang het belangrijkste cryptonieuws als eerste via de gratis Crypto Insiders app.
In het kort:
- Een mislukte transactie kan toch netwerkkosten met zich meebrengen.
- Je betaalt voor het rekenwerk dat al is uitgevoerd.
- De ingestelde gaslimiet bepaalt het maximale verbruik, niet automatisch de uiteindelijke kosten.
Je betaalt voor het werk
Elke transactie op Ethereum vraagt werk van het netwerk. Hoeveel werk nodig is, wordt gemeten in ‘gas’. De kosten daarvan betaal je met ETH.
Een gewone betaling vraagt meestal minder werk dan een ruil via een smart contract. Zo’n contract is een programma op de blockchain dat een opdracht uitvoert en controleert of aan de voorwaarden is voldaan.
Gaat er tijdens die uitvoering iets mis? Dan draait het netwerk de wijzigingen terug. Je tokens worden bij een mislukte ruil dus niet omgewisseld. Maar het werk dat al is gedaan, blijft betaald.
Volgens Ethereum.org voorkomt dit ook misbruik. Zonder die kosten zouden aanvallers het netwerk gratis kunnen belasten met opdrachten die steeds mislukken.
Je betaalt niet altijd het maximale bedrag
Voor een transactie stel je een gaslimiet in. Dat is het maximale aantal gaseenheden dat de opdracht mag gebruiken.
Stel dat je maximaal 100.000 eenheden toestaat. Het contract ontdekt na 46.000 eenheden een probleem en stopt. Bij zo’n fout betaal je voor de gebruikte 46.000 eenheden. De rest wordt niet in rekening gebracht.
Ook de maximale prijs die je per gaseenheid instelt, is een bovengrens. Valt de werkelijke prijs lager uit, dan betaal je die lagere prijs. Een hoog maximum betekent dus niet dat je automatisch alles kwijt bent.
Meer gas lost niet iedere fout op
Een transactie kan om verschillende redenen mislukken. De prijs kan tijdens een ruil te veel veranderen, een deadline kan verlopen of het contract heeft onvoldoende toestemming om je tokens te gebruiken.
In zulke gevallen helpt een hogere gaslimiet niet. Raakt de opdracht juist door het beschikbare gas heen, dan kan de volledige limiet worden verbruikt. Meer gas toestaan kan dan wel nodig zijn.
Wordt je opdracht al geweigerd voordat die in een blok is opgenomen? Dan betaal je daarvoor geen gas op de blockchain. Controleer daarom de foutmelding voordat je het opnieuw probeert. Zo voorkom je dat je opnieuw betaalt voor dezelfde mislukte opdracht.

