EIP-7702: delegeringen du glemte å tilbakekalle
Over 61 millioner adresser bærer en aktiv EIP-7702-delegering, og de fleste blir stående til noen aktivt nullstiller dem. Slik sjekker, leser og tilbakekaller du din, kjede for kjede.
Hver gang du signerer en EIP-7702-autorisasjon, legger du igjen noe på kjeden som blir stående etter at du har gått videre. Ikke en økt, ikke en engangsgodkjenning, men en pekepinn som forteller Ethereum at adressen din skal kjøre en bestemt kontrakts kode. De aller fleste som har prøvd en smartkonto-funksjon det siste året, har minst én slik pekepinn liggende et sted, og de færreste husker hvor eller hva den peker på. Denne saken handler om delegeringen du glemte å tilbakekalle: hvorfor den er en risiko og ikke bare rot, hvordan du finner den, hvordan du leser hva den peker på, og hvordan du rydder den bort, kjede for kjede.
Kort fortalt: en delegering er tilstand, ikke en økt
EIP-7702 har vært aktiv siden Pectra-oppgraderingen i mai 2025, og lesere av HOGE Wire kjenner mekanikken. Den korte versjonen: en vanlig Ethereum-konto (en EOA, altså en adresse styrt av én privat nøkkel) kan signere en autorisasjon som skriver en pekepinn inn i kontoens kodefelt. Pekepinnen, som spesifikasjonen kaller en delegation designator, består av prefikset 0xef0100 fulgt av en 20-byte kontraktsadresse. Fra det øyeblikket kjører adressen din koden til den kontrakten når noen kaller den: batch-transaksjoner der flere steg skjer i ett, gassbetaling i en token i stedet for ETH, session keys for spill, sosial gjenoppretting. Alt dette er beskrevet i selve EIP-7702-spesifikasjonen.
Det avgjørende, og temaet for hele denne artikkelen, er hva slags ting en slik autorisasjon faktisk er. Den er ikke en innlogging som utløper når du lukker fanen. Den er ikke en godkjenning som gjelder for én transaksjon og så forsvinner. Den er tilstand som blir liggende på kjeden: adressen din peker på den kontrakten helt til du, eller noen andre med nøkkelen din, signerer en ny autorisasjon som endrer eller fjerner pekepinnen. En delegering du satte opp for å teste en dApp i fjor høst, er fortsatt aktiv i dag hvis du aldri gjorde noe mer med den. Den ligger der, tålmodig, og venter på neste kall. Det er den innsikten hele hygienebegrepet hviler på, og den er lett å overse fordi ingenting i grensesnittet minner deg om at pekepinnen fortsatt står.
Gapet mellom autorisasjoner og aktive delegeringer
Tallene forteller historien best. Ifølge BundleBears oversikt over EIP-7702 er det signert over 257 millioner autorisasjoner siden Pectra, mens rundt 61,5 millioner adresser akkurat nå bærer en aktiv delegering. De to tallene er ikke det samme, og forskjellen skyldes ikke bare folk som har ryddet opp. Det kumulative tallet er kraftig blåst opp av automatiserte skript som re-signerer autorisasjoner om og om igjen på kompromitterte kontoer (mer om dem lenger ned), så det bør leses kvalitativt og ikke som «257 millioner brukere». Tallet som betyr noe for deg, er de rundt 61,5 millioner aktive delegeringene: adresser som i dette øyeblikk peker på en kontrakt, og som fortsetter å gjøre det til noen aktivt nullstiller dem. Det er titalls millioner stående pekepinner, og en god andel av dem tilhører brukere som for lengst har glemt at de finnes.
En adresse under EIP-7702 kan befinne seg i én av fire tilstander. Poenget med tabellen under er at to av dem, «forlatt» og «nullstilt», ser nesten like ut for et utrent øye, men betyr helt forskjellige ting for sikkerheten din. En forlatt delegering er fullt operativ; en nullstilt er avskrudd, men som vi skal se, ikke nødvendigvis helt ryddet.
| Tilstand | Hva kodefeltet viser | Hva det betyr |
|---|---|---|
| Aldri delegert | Tomt (ingen kode) | Vanlig EOA, ren privat nøkkel, ingenting å rydde |
| Aktiv delegering | 0xef0100 + adresse (23 byte) | Adressen kjører kontraktens kode ved kall |
| Nullstilt | Tomt igjen (men lagringen kan henge igjen) | Pekepinnen fjernet; se fellen lenger ned |
| Forlatt eller glemt | 0xef0100 + adresse (23 byte) | Fullt aktiv, men eieren har glemt at den finnes |
Hvorfor en glemt delegering er en risiko, ikke bare rot
Det er fristende å tenke at en ubrukt delegering er harmløs, på samme måte som et gammelt bokmerke i nettleseren. Det stemmer ikke. Så lenge pekepinnen står, ruter adressen din kall gjennom den kontrakten. Hvis kontrakten har en feil, hvis den var oppgraderbar og har blitt endret siden du satte den opp, eller hvis du rett og slett ikke lenger stoler på den som skrev den, er den risikoen levende akkurat nå, ikke bare den dagen du bruker kontoen aktivt. En delegering er en avhengighet som løper i bakgrunnen, ikke en funksjon du slår på ved behov.
En delegering du satte opp for en engangskampanje kan dessuten ha eksponert evner du for lengst har glemt: brukstillatelser, session keys som kan signere på vegne av deg innenfor visse rammer, eller en modul som lar en tredjepart utføre bestemte handlinger. Poenget er ikke at alle delegeringer er farlige, de aller fleste peker på solid, revidert kode, men at en pekepinn du ikke lenger overvåker er en pekepinn du ikke lenger kontrollerer i praksis. Den bør revideres med jevne mellomrom, akkurat som du med jevne mellomrom bør gå gjennom token-godkjenningene dine og trekke tilbake dem du ikke bruker.
Slik sjekker du om adressen din har en delegering
Det gode er at en delegering er offentlig og lett å se; den ligger i klartekst på kjeden. Den dårlige nyheten er at ingen varsler deg om at den finnes. Du må se etter selv, og det er tre praktiske måter å gjøre det på.
- En block explorer som Etherscan: lim inn adressen. Er den delegert, viser Etherscan en «delegated to»-merking, og kodefeltet inneholder de 23 bytene som begynner med 0xef0100. En konto der EXTCODESIZE returnerer 23, er nesten alltid en 7702-delegert EOA og ikke en vanlig kontrakt.
- Revoke.cash: tjenesten har en egen delegations-fane som lister opp 7702-delegeringene dine. Merk deg at den bare kan inspisere dem; ifølge Revoke.cash sin egen dokumentasjon kan du ikke tilbakekalle en delegering fra en ekstern dApp, det må gjøres inne i lommeboken.
- Lommeboken selv: MetaMask viser under kontodetaljer om kontoen er en smartkonto, og lar deg slå funksjonen av igjen på det aktuelle nettverket.
Gjør dette per kjede. En delegering gjelder én kjede av gangen, så en adresse kan være ren på Ethereum og fortsatt delegert på Base eller Arbitrum. Vi kommer tilbake til hvorfor det gjør ryddejobben større enn folk tror.
Slik leser du hva delegeringen peker på
Å vite at du har en delegering er halve jobben. Den andre halvparten er å lese hva den peker på, for det er delegatkontrakten som avgjør hva som kan skje med kontoen din. Designatoren er bygget opp av tre deler, og det lønner seg å kjenne dem igjen.
| Del | Lengde | Innhold |
|---|---|---|
| Prefiks (magisk verdi) | 3 byte | 0xef0100, som forteller klienten at dette er en delegering |
| Kontraktsadresse | 20 byte | Adressen koden hentes fra ved hvert kall |
| Totalt | 23 byte | Nøyaktig det EXTCODESIZE returnerer for en delegert konto |
Ta de 20 bytene med adressen og slå den opp i en block explorer. Er kontrakten verifisert og merket (for eksempel MetaMask sin DeleGator, Ambire, Uniswaps Calibur eller referanseimplementasjonen Simple7702Account), vet du hva du har med å gjøre. Er den umerket, uverifisert eller en du ikke kjenner igjen, er det et rødt flagg som fortjener nærmere ettersyn før du sender verdier til adressen. Spørsmålet om hvem sin kode du egentlig stoler på når du delegerer, har vi gått grundig gjennom i saken om hvem sin kode som kjører lommeboken din, og den vurderingen er nettopp det du gjentar når du reviderer en gammel delegering.
Slik tilbakekaller du en delegering
Mekanismen er den samme uansett verktøy, og den er beskrevet både i spesifikasjonen og i OpenZeppelins dokumentasjon om EOA-delegering: du signerer en ny autorisasjon som peker på null-adressen (0x0000…0000) og sender den som en set-code-transaksjon (type 0x04) med et høyere nonce. Det fjerner koden og setter kode-hashen tilbake til den tomme hashen. I praksis gjør du det på én av disse måtene.
- I MetaMask: under kontodetaljer kan du slå av smartkonto-funksjonen. MetaMask sin støtteside presiserer at dette gjøres per nettverk, du må altså skru det av på hver kjede du har aktivert det på.
- Via et kommandolinjeverktøy: codeesura sin eip7702-clean-delegation automatiserer nullstillingen. Verktøyet har en egen sponset modus der en annen konto betaler gassen i stedet for deg, noe som er avgjørende hvis kontoen er tom for ETH, for eksempel etter et tyveri.
- Manuelt: en hvilken som helst klient som lar deg bygge en 0x04-transaksjon med en null-adresse-autorisasjon, gjør jobben. Dette er tryggenettet når verken lommeboken eller et ferdig verktøy dekker akkurat din situasjon.
| Verktøy | Kan inspisere | Kan tilbakekalle | Per kjede |
|---|---|---|---|
| Etherscan / block explorer | Ja | Nei | Én kjede per explorer |
| Revoke.cash (delegations-fane) | Ja | Nei (kun inspeksjon) | Ja |
| MetaMask (kontodetaljer) | Ja | Ja | Ja, må skrus av per nettverk |
| codeesura CLI | Nei | Ja (også sponset) | Ja, tar en kjede-ID |
Fellen: å nullstille koden rydder ikke lagringen
Her er detaljen de fleste hopper over, og den er viktig nok til å fortjene sitt eget avsnitt. Når du nullstiller en delegering ved å peke på null-adressen, fjernes koden og kode-hashen, men lagringen forsvinner ikke. OpenZeppelin sier det rett ut: nullstillingen vil ikke automatisk rydde EOA-ens lagring. Alt en tidligere delegatkontrakt måtte ha skrevet til lagringsplassene dine, ligger fortsatt der etter at pekepinnen er borte.
Det er ikke et kosmetisk problem. Hvis du senere delegerer den samme adressen til en annen kontrakt, kan den nye kontraktens lagringsoppsett kollidere med de gamle verdiene, og resultatet er uforutsigbar oppførsel. OpenZeppelin advarer eksplisitt om at det å endre designatoren kan gjøre EOA-en din ubrukelig på grunn av mulige lagringskollisjoner, og anbefaler at du behandler en delegert EOA som en oppgraderbar smartkontrakt, med navnerom-basert lagring etter ERC-7201 for å unngå kollisjoner. Med andre ord: en «ren» nullstilling er ikke fullt så ren som den ser ut. Å gjenbruke en adresse på tvers av vidt forskjellige delegatkontrakter er en fallgruve, ikke en snarvei, og den beste hygienen er ofte å la en ryddet adresse ligge i fred fremfor å bygge nytt oppå gammel lagring.
Én delegering per kjede: ryddejobben multipliseres
En delegering bor ikke i nøkkelen din; den bor på et bestemt sted, nemlig kombinasjonen av adresse og kjede. En designator du satte på Ethereum mainnet, finnes ikke på Arbitrum, Base eller Optimism med mindre du autoriserte den der også. Det er selve poenget i saken om at EIP-7702 stopper ved kjedegrensen, og baksiden av den medaljen er at ryddejobben heller ikke følger med: du må sjekke og tilbakekalle på hver enkelt kjede for seg. Har du brukt den samme adressen på fem kjeder, er det fem separate ettersyn, ikke ett.
Det finnes ett unntak som er verdt å kjenne til, og det er en fallgruve i seg selv. Spesifikasjonen tillater at du signerer en autorisasjon med kjede-ID satt til 0, noe som gjør den gyldig på alle kjeder samtidig. Det kan virke praktisk, men da peker den samme designatoren overalt, og adressen som ligger på det stedet kan holde en helt annen kontrakt på en annen kjede. En autorisasjon som var trygg på mainnet, kan dermed peke på noe uventet et annet sted. For hygienens skyld: hvis du noen gang har brukt kjede-ID 0, må du tenke gjennom hva den adressen peker på overalt, ikke bare der du trodde du brukte den.
Når lommeboken ikke lar deg fjerne en delegering du ikke satte selv
Lommebøker er gode til å angre en delegering de selv har satt opp. De er langt mer ujevne når det gjelder å tilbakekalle en vilkårlig delegering, altså en som ble satt via en annen lommebok, eller verre, en som en angriper lurte deg til å signere. Signerte du en gang en autorisasjon du trodde var noe annet, og den satte en designator du ikke gjenkjenner, er det ikke sikkert lommebokens vanlige grensesnitt tilbyr en ett-klikks-knapp for akkurat den. Grensesnittet er bygget for delegeringene lommeboken kjenner, ikke for alle tenkelige.
Det er nettopp her et lavnivåverktøy eller en manuell set-code-transaksjon kommer til nytte: du kan peke på null-adressen uansett hva som satte den nåværende designatoren, så lenge du fortsatt kontrollerer nøkkelen. Og det er den kritiske forutsetningen, for hvis nøkkelen ikke lenger er din alene, er tilbakekalling en helt annen og mer alvorlig historie, som vi kommer til om litt.
Kirkegården av forlatte delegeringer
En stor del av de hundrevis av millioner autorisasjonene i statistikken er ikke folk som utforsker smartkontoer; det er tyveri satt i system. Analyseselskapet Wintermute fant kort etter Pectra at over 97 prosent av de tidlige 7702-delegeringene pekte på kontrakter med nøyaktig samme kode, en sweeper-familie som fikk kallenavnet CrimeEnjoyor. Disse ble satt opp etter at en nøkkel allerede var lekket, for å tømme adressen automatisk i det øyeblikk det kom midler inn. Det er ikke en feil i protokollen (angriperne tjente knapt noe på selve oppsettet), men det er en påminnelse om hvor mange forlatte, fiendtlige delegeringer som ligger og venter på kjeden.
Lærdommen for hygienen er direkte: en adresse med en aktiv delegering til en ukjent kontrakt, som ellers ligger ubrukt, er akkurat den typen konto som blir tømt i samme sekund som det lander verdier på den. En glemt delegering er ikke bare rot i en oversikt; på en kompromittert adresse er den en felle som allerede er stilt og ferdig ladet. Derfor er det å kartlegge og rydde egne delegeringer ikke pedanteri, men et konkret sikkerhetstiltak.
Å tilbakekalle redder ikke en lekket nøkkel
Dette er det viktigste forbeholdet i hele saken. Å nullstille en delegering hjelper mot en pekepinn du ikke lenger vil ha. Det hjelper ikke det spor mot en nøkkel som er på avveie. Taylor Monahan, som jobber med sikkerhet i MetaMask, har vært tydelig på at draineringene vi ser ikke egentlig er et 7702-problem, men det samme problemet krypto har slitt med hele veien: brukere som ikke klarer å holde den private nøkkelen hemmelig. Ifølge MetaMask sin sikkerhetsrapport fra juni 2025 gir 7702 bare angriperen en mer effektiv måte å utnytte en allerede kompromittert nøkkel på, ikke en ny vei inn.
Konsekvensen er nøktern: hvis nøkkelen din kan være lekket, gjør det ingen varig nytte å tilbakekalle delegeringen, for angriperen har nøkkelen og kan bare delegere på nytt. Den sponsede tilbakekallingen, der noen andre betaler gassen for en tom konto, kan kjøpe deg et øyeblikk, men den reelle løsningen er å flytte eiendelene til en fersk nøkkel du kontrollerer alene. Nøkkelhygiene og delegeringshygiene henger sammen, og lag-på-lag-tenkningen rundt nøkler som vi beskrev i saken om multisig og beste praksis, er den egentlige forsikringen mot at en enkelt lekkasje tømmer alt.
Ethereum-utvikler Marius van der Wijden har fra starten sagt at 7702 lar eksisterende lommebøker etterligne funksjonene til account abstraction-lommebøker, men at det fortsatt er «rough edges» å jobbe gjennom, slik han formulerte det overfor DL News. Delegeringer som blir stående lenge etter at hensikten er borte, er en av nettopp de kantene, og hygiene er brukerens del av jobben med å runde dem av.
Børser leser de 23 bytene
Delegeringen din er ikke bare et anliggende mellom deg og kjeden; børser leser den også. Når en børs behandler et innskudd, kan den sjekke om innskuddsadressen bærer en 0xef0100-designator, for en delegert EOA kan kjøre vilkårlig kode når den mottar midler. Noen innskuddsflyter flagger eller behandler slike adresser annerledes, og noen forvaringsløsninger sjekker delegatkontrakten mot en liste over godkjente implementasjoner før de slipper midler gjennom.
Det praktiske rådet: hvis du flytter midler fra en delegert adresse til en børs og noe oppfører seg uventet, kan designatoren være årsaken. Å rydde opp (tilbakekalle en delegering du ikke lenger bruker) kan gjøre innskudd smidigere og fjerne tvil om hva adressen din faktisk kan gjøre. Og det leder oss til det norske hjørnet av dette bildet, for børsen du setter inn på, hvis den betjener norske kunder, er ikke et fritt element; den er en regulert aktør med egne plikter.
Norge: skatt og tilsyn når du rydder opp
Et spørsmål mange stiller: utløser det skatt å tilbakekalle en delegering? Svaret er nei. Å nullstille en pekepinn flytter ikke eierskap til en eiendel, og er derfor ikke en realisasjon. Selve oppryddingen er skattefri, akkurat som det å flytte egne midler mellom egne lommebøker ikke i seg selv utløser skatt.
Det som derimot utløser skatt, er handlene en smartkonto gjør mulig. Hvert bytte og hver konvertering en batch-transaksjon utfører, er en realisasjon; gevinst beskattes som kapitalinntekt med 22 prosent, mens tap gir fradrag. Skatteetaten understreker at du selv må føre dette opp; krypto er ikke forhåndsutfylt i skattemeldingen, og det du eier ved årsskiftet inngår i formuesskatten. For inntektsåret 2024 oppga over 73.000 personer at de eide krypto, en økning på 30 prosent, men etaten har anslått at bare mellom 13 og 15 prosent rapporterte det de skulle for 2023. At hvert bytte blir en skattehendelse er en mekanisme vi har brutt ned i saken om skattemaskinen i DeGods, og logikken er den samme uansett hvilken smartkonto som utfører byttet.
På tilsynssiden er det verdt å være presis. En selvforvaltet 7702-delegering ligger utenfor MiCA, og dermed utenfor det Finanstilsynet fører tilsyn med. Regulatoren fører tilsyn med tilbyderne av kryptoeiendelstjenester (CASP-ene), altså børsene og forvarerne som Firi og Týr Markets, ikke med din personlige delegeringshygiene. Lov om kryptoeiendeler, som gjennomfører MiCA i norsk rett fra 1. juli 2025, retter seg mot dem som tilbyr tjenester, ikke mot enkeltpersoner som styrer sin egen nøkkel. Ansvaret for å rydde i egne delegeringer er derfor helt og holdent ditt.
Glamsterdam 6. oktober: mer fart, samme hygiene
Mens du leser dette, teller Ethereum ned til neste store oppgradering. Ethereum Foundation har bekreftet at Glamsterdam aktiveres på testnettet Sepolia 6. oktober 2026 klokken 13:53:36 UTC. Hovedpunktene er ePBS (EIP-7732), som skriver skillet mellom den som foreslår en blokk og den som bygger den inn i selve protokollen, og block-level access lists (EIP-7928), som legger til rette for parallell utføring. Klienter som Lodestar, Prysm og Besu støtter aktiveringen, mens mainnet-datoen fortsatt bare er anslått til fjerde kvartal 2026. Utviklere har pekt på en risiko knyttet til bygger-auksjonen, der en aktør kan vinne auksjonen og så holde tilbake dataene.
Her er poenget for vår del: Glamsterdam handler om gjennomstrømning, ikke om account abstraction og ikke om delegeringshygiene. Oppgraderingen rydder ikke delegeringen din, endrer ikke hvordan du tilbakekaller, og innfører ikke native kontoer (det er et eget spor, EIP-8141 mot Hegotá og Base sin EIP-8130). Ikke bland kalenderne. Det bredere bildet av hvordan account abstraction har vunnet på brukersiden mens protokollsiden er splittet, har vi tegnet opp i saken om den stille seieren og splittelsen. Rutinen under er den samme før og etter 6. oktober, og den blir ikke mindre viktig av at kjeden går fortere.
En hygienerutine du kan følge
Alt over koker ned til en håndterbar rutine. Du trenger ikke gjøre den ofte, men du bør gjøre den bevisst, og du bør gjøre den ferdig for hver kjede før du regner adressen som ren.
- Sjekk hver adresse du bruker, på hver kjede du har brukt den, i en block explorer eller i Revoke.cash sin delegations-fane. Se etter 0xef0100.
- Les hva designatoren peker på. Kjenner du kontrakten? Er den verifisert og merket?
- Nullstill delegeringer du ikke lenger bruker, med en null-adresse-autorisasjon, enten i lommeboken eller via et CLI-verktøy.
- Husk at nullstilling ikke rydder lagringen; ikke gjenbruk en adresse på tvers av vidt forskjellige delegatkontrakter uten å forstå risikoen for kollisjoner.
- Gjenta per kjede. En ren adresse på Ethereum kan være delegert på Base eller Arbitrum.
- Hvis nøkkelen kan være lekket: flytt eiendelene til en fersk nøkkel, ikke nøy deg med å tilbakekalle.
- Sett en fast rutine, for eksempel hvert kvartal eller hver gang du bytter lommebokleverandør.
Bekvemmeligheten i EIP-7702 er reell, og det er derfor titalls millioner adresser bærer en delegering. Til referanse handlet ETH rundt 2.670 dollar i slutten av september 2026 ifølge Fortune, i overkant av 25.000 kroner med en dollarkurs på vel 9,50, så det står reelle verdier på mange av disse kontoene. Men nettopp fordi en delegering er varig tilstand og ikke en økt, er hygiene nå en del av selvforvaring. Delegeringen du glemte å tilbakekalle, er den det er verdt å finne i dag, en uke før Glamsterdam gir kjeden mer fart, men ingen ny hukommelse for det du mente å rydde.
Ofte stilte spørsmål
Hva er en EIP-7702-delegering, og hvor lenge varer den?
Det er en autorisasjon som skriver en 23-byte pekepinn (0xef0100 pluss en kontraktsadresse) inn i EOA-ens kodefelt, slik at adressen kjører kontraktens kode ved kall. Den er varig tilstand, ikke en økt: den blir stående til du signerer en ny autorisasjon som endrer eller nullstiller den.
Hvordan sjekker jeg om adressen min har en aktiv delegering?
Slå opp adressen i en block explorer som Etherscan; en delegert konto viser 23 byte kode som begynner med 0xef0100. Alternativt kan du bruke delegations-fanen på Revoke.cash, som inspiserer delegeringene dine. Gjør det per kjede, siden en delegering gjelder én kjede av gangen.
Hvordan tilbakekaller jeg en EIP-7702-delegering?
Du signerer en ny autorisasjon som peker på null-adressen, og sender den som en set-code-transaksjon med høyere nonce. I MetaMask gjør du det under kontodetaljer, per nettverk. Verktøy som codeesura sin CLI kan også gjøre det, og har en sponset modus der en annen betaler gassen hvis kontoen er tom.
Fjerner det å nullstille delegeringen alt sammen?
Nei. Nullstilling fjerner koden og setter kode-hashen tilbake til tom, men rydder ikke automatisk kontoens lagring. OpenZeppelin anbefaler å behandle en delegert EOA som en oppgraderbar kontrakt for å unngå lagringskollisjoner. Og hvis nøkkelen er lekket, må du flytte eiendelene, ikke bare tilbakekalle.
Er det en skattepliktig hendelse i Norge å tilbakekalle en delegering?
Nei. Å tilbakekalle en delegering flytter ikke eierskap og er ikke en realisasjon. Men handlene en smartkonto utfører (bytter og konverteringer) er realisasjon, og gevinst beskattes som kapitalinntekt med 22 prosent. Du må selv føre det opp i skattemeldingen, siden krypto ikke er forhåndsutfylt.
Skrevet av Yuki Tanaka, seniorredaktør i HOGE Wire.