Naast het basisidee van zelf uitvoerende code werkt een smart contract volgens een simpele "als dit, dan dat"-logica: zodra de voorwaarden die erin geschreven staan zijn vervuld, voert het contract de afgesproken actie zelf uit, zonder dat een bank, escrow-agent of platformbeheerder daar tussenkomst voor moet goedkeuren. De code wordt geplaatst op een blockchain op een vast adres, en elke node in het netwerk houdt er een kopie van, zodat de voorwaarden achteraf niet stiekem kunnen worden aangepast en de uitkomst hetzelfde is, ongeacht wie het contract activeert.
In de praktijk reageert een smart contract alleen op gegevens die het on-chain bereiken, zoals een binnenkomende betaling of een aanroep van een ander contract. Wanneer het externe informatie nodig heeft, zoals de prijs van een asset of een sportuitslag, vertrouwt het meestal op een oracle-dienst om die gegevens aan te leveren, omdat de blockchain zelf die niet kan ophalen. Het uitvoeren van de code kost ook een netwerkvergoeding, op Ethereum-achtige chains bekend als gas, die meeschaalt met hoeveel rekenwerk het contract verricht.
Veelvoorkomende toepassingen zijn het uitgeven en overdragen van tokens, het automatiseren van lenen, handelen en yield-strategieën binnen decentralized finance, het beheren van NFT-eigendom, en het aansturen van decentrale applicaties in het algemeen. Omdat de logica publiek en onveranderlijk is zodra ze live staat, kunnen fouten of omissies in de code net zo bindend zijn als bedoelde functies. Zwakke toegangscontroles, reentrancy-fouten en logicafouten hebben herhaaldelijk tot grote verliezen geleid, zelfs bij contracten die eerder een audit hadden doorstaan, en daarom blijven onafhankelijke beveiligingsreview en een voorzichtige, gefaseerde uitrol standaardpraktijk voordat er echte waarde op het spel wordt gezet.