Een contractadres is de unieke identificatie die automatisch wordt aangemaakt op het moment dat een smart contract wordt gedeployed op een blockchain, en het geeft precies aan waar de code en opgeslagen data van dat contract on-chain te vinden zijn. In tegenstelling tot een persoonlijk walletadres, dat wordt beheerd door een private key en gebruikt wordt om fondsen rechtstreeks aan te houden of te versturen, heeft een contractadres geen private key: het kan alleen de functies uitvoeren die in de code zijn vastgelegd, en dat gebeurt pas wanneer een transactie het contract aanroept.
Op Ethereum en andere EVM-compatibele netwerken wordt een contractadres berekend op basis van het adres van de deployende wallet en de bijbehorende transactie-nonce, en vervolgens weergegeven in hetzelfde 42-karakter, 0x-voorvoegsel hexadecimale formaat als een gewoon adres, vaak met gemengde hoofdletters (checksum) om typefouten te helpen opsporen. Dit verklaart ook waarom eenzelfde token op verschillende chains meerdere, uiteenlopende contractadressen kan hebben, ook al deelt het dezelfde naam en hetzelfde symbool.
Contractadressen zijn vooral relevant voor tokens, niet voor de native coin van een netwerk: Ether zelf heeft geen contractadres, maar elke ERC-20 token wel, en dat adres gebruikt een wallet of exchange om de token correct te herkennen, weer te geven en te verplaatsen. Het toevoegen van een niet-geliste token aan een wallet, of het verifiëren van een project via een blockchain explorer, vereist telkens het exacte contractadres.
Omdat het formaat identiek oogt aan een gewoon adres, zijn vergissingen kostbaar. Tokens rechtstreeks naar een contractadres sturen in plaats van naar het walletadres van de ontvanger, of vertrouwen op een adres dat van een onofficiële bron is gekopieerd, is een veelvoorkomende manier waarop fondsen definitief verloren gaan, omdat de meeste contracten geen mechanisme hebben om verkeerd verzonden transfers terug te sturen. Controleer een contractadres daarom altijd via de officiële website of documentatie van het project voordat je het gebruikt.