Ethereum smart contracts are programs that run on the Ethereum blockchain and execute predefined instructions when specified conditions are met. They allow developers to build applications that can transfer digital assets, issue tokens, automate financial transactions, and manage digital ownership without relying on a central operator to process every action.
This capability helped expand blockchain beyond peer-to-peer payments. Instead of using a blockchain only to record who owns an asset, developers can use Ethereum to create applications whose rules and operations are encoded in software. This is the idea behind programmable money: digital value that can be managed or transferred according to predefined conditions.
What Are Ethereum Smart Contracts?
A smart contract is a program deployed to the Ethereum blockchain. It contains functions and data that define how it behaves, what actions it permits, and how its state changes when a valid transaction triggers its code.
Unlike a traditional agreement, a smart contract does not need a person to interpret and carry out every programmed instruction. Once deployed, it executes according to its code when the required conditions are satisfied and the network processes the relevant transaction.
For example, imagine a digital ticketing service. A smart contract could issue a ticket as a token after receiving payment, record its owner, and enforce predefined transfer rules. The application would not need an employee to manually update ownership each time a ticket changes hands.
The term smart contract predates Ethereum. Computer scientist Nick Szabo explored the concept in the 1990s. Ethereum helped put programmable contracts into practice on a public blockchain that developers could use to build a wide range of applications.
For a more technical explanation of the underlying concept, see the Ethereum smart contracts documentation.
How Smart Contracts Differ From Traditional Transactions
A basic cryptocurrency transfer moves value from one address to another. A smart contract can introduce additional rules and actions.
For example, a standard transfer sends a specified amount of ETH to a recipient. A smart contract could instead distribute funds only after a specified condition is satisfied, issue a token in exchange for payment, or calculate how much collateral is required for a loan.
Feature | Basic cryptocurrency transfer | Smart contract interaction |
Main function | Transfer digital assets | Execute programmed rules and operations |
Conditions | Primarily determined by transaction validity and account authorization | Can include application-specific conditions encoded in the contract |
Typical use | Sending ETH to another address | Token issuance, asset swaps, lending, and automated payments |
Complexity | Generally simpler | Depends on the contract's code and functionality |
Smart contracts do not automatically make an agreement legally enforceable or guarantee that every real-world obligation will be fulfilled. They execute code within the blockchain environment, while legal rights and offchain events may require additional arrangements.
How Programmable Money Works in Practice

Smart contracts execute predefined rules and record the resulting state changes on the Ethereum blockchain.
Programmable money combines digital assets with rules that govern how those assets can be used.
Consider a simplified escrow arrangement. A buyer deposits funds into a smart contract, and the contract releases them when an agreed condition is met. The payment logic can be executed onchain without an intermediary manually processing the release.
More complex applications can combine multiple contracts. A decentralized finance application, for example, might check collateral, calculate a loan, and update balances through interactions among several contracts.
These examples illustrate the principle, not a guarantee of outcomes. A contract can only evaluate information available to it, and its behavior depends on how its developers implement and test the rules.
How Ethereum Made Blockchain Programmable
Ethereum launched in July 2015 with a design that supports general-purpose smart contracts. Rather than limiting developers to a narrow set of payment functions, it provides an environment in which applications can maintain state, process transactions, and interact with other contracts.
This programmability made it possible to build interconnected applications on a shared blockchain. A token created by one contract, for example, can be used by a decentralized exchange or lending protocol if those applications support the token's standards and behavior.
From Sending ETH to Executing Code
Ethereum uses accounts and transactions to update its blockchain state. Smart contracts are accounts containing code and data, and users can call their functions through transactions.
A typical interaction follows this sequence:
A user initiates an action. The user connects a wallet to an application and requests an operation, such as swapping tokens.
The wallet prepares a transaction. The user reviews and signs the transaction, authorizing the requested action.
Ethereum processes the transaction. The network validates and includes it in a block.
The contract executes its code. The requested function runs according to the contract's rules, potentially updating balances or interacting with other contracts.
The blockchain records the result. The resulting state change becomes part of Ethereum's shared record.
State-changing transactions generally require gas, which is paid in ETH on Ethereum mainnet. The fee depends on the computational work required and prevailing network conditions. Reading publicly available contract data without changing blockchain state generally does not require an onchain transaction or gas payment.
The Role of the Ethereum Virtual Machine (EVM)

The Ethereum Virtual Machine provides the execution environment for Ethereum smart contracts.
The Ethereum Virtual Machine is the execution environment for Ethereum smart contracts. It defines how contract instructions are processed and how they affect the blockchain's state.
Developers commonly write contracts in languages such as Solidity, then compile the code into bytecode that the EVM can execute. The network's execution rules allow participating nodes to verify state changes consistently.
The EVM also helps developers build applications that interact with existing contracts rather than starting from scratch. This composability is a major reason Ethereum supports interconnected financial products and digital asset services.
For a deeper technical explanation, read the Ethereum Virtual Machine (EVM) guide.
What Can Ethereum Smart Contracts Do?

Ethereum smart contracts support a wide range of applications, from digital tokens and DeFi to NFTs and automated payments.
Ethereum smart contracts support a range of applications. Their common feature is that they encode rules for managing digital assets, processing transactions, or coordinating activity between participants.
Create Tokens and Support Stablecoins
Smart contracts can define tokens, including their supply rules, balances, and transfer behavior. Ethereum's ERC-20 standard provides a common interface for fungible tokens, helping wallets, exchanges, and decentralized applications interact with compatible assets.
Stablecoins are one important use case. An issuer can use a smart contract to manage token transfers and balances, while the broader stablecoin system may also depend on reserves, redemption processes, custodians, and other offchain arrangements.
As a result, a token's onchain functionality does not by itself guarantee that it maintains a stable price or can always be redeemed at its intended value.
Power Decentralized Finance (DeFi)
DeFi applications use smart contracts to provide financial functions such as token swaps, lending, borrowing, and liquidity provision.
For example, a decentralized exchange can use contracts to calculate swap rates and exchange supported tokens according to its trading mechanism. A lending protocol can track collateral and outstanding loans, then apply predefined liquidation rules when conditions are met.
These applications can interact with one another, allowing developers to build more complex financial services. However, composability can also create interconnected risks: a failure in one protocol may affect other applications that rely on it.
Represent Digital Ownership Through NFTs
Smart contracts can issue non-fungible tokens (NFTs) that represent distinct digital items or records of ownership. These tokens can be used for digital collectibles, game items, membership access, tickets, and other applications.
An NFT contract can record which address holds a token and define how it can be transferred. Additional contracts can enforce rules for marketplaces or applications that support the asset.
Owning an NFT does not automatically grant copyright, intellectual property rights, or ownership of an associated physical item. Those rights depend on the relevant terms and applicable law.
Automate Payments, Rules, and Governance
Smart contracts can also automate recurring or conditional operations. Examples include releasing escrowed funds, distributing rewards according to predefined rules, and managing collective decisions through decentralized autonomous organizations (DAOs).
A governance contract might record token-holder votes and apply the results to a proposal, provided the proposal satisfies the contract's requirements. A payment contract could distribute funds according to a schedule or specified conditions.
Automation can reduce manual processing, but it does not remove every intermediary or guarantee fair outcomes. Governance may still depend on participation, administrative permissions, offchain coordination, or the ability to respond to unexpected events.
For a broader view of the network's history and development, see the story of Ethereum.
What Are the Limitations of Smart Contracts?

Smart contract risks include code vulnerabilities, unreliable external data, transaction costs, and irreversible transactions.
Smart contracts make applications programmable, but their reliability depends on code quality, network conditions, external information, and the assumptions built into each system.
Code Bugs and Exploits
A smart contract executes according to its implemented logic, including unintended behavior caused by programming errors. Vulnerabilities involving access controls, arithmetic, transaction ordering, or interactions with other contracts can expose funds or disrupt an application.
Code audits, testing, formal verification, and established development libraries can help reduce risk, but none guarantees that a contract is free of vulnerabilities.
External Data and Oracle Dependencies
Ethereum smart contracts cannot independently retrieve arbitrary information from external websites or real-world systems. Applications that depend on prices, weather, delivery status, or other offchain events may need an oracle to provide that data.
If an oracle supplies inaccurate, delayed, or manipulated information, the contract may execute a transaction based on incorrect inputs. The reliability of an application therefore depends not only on its code but also on the systems and data sources it uses.
Gas Costs and Network Constraints
Executing a smart contract consumes computational resources. On Ethereum mainnet, state-changing transactions require gas, and fees can rise when demand for block space increases. Complex operations and contract deployment may cost more than simple transfers.
Layer 2 networks can offer lower fees and additional capacity, but they have their own operating assumptions and security considerations. Users should understand which network an application uses and whether the relevant assets and contracts are supported there.
Immutability and Irreversible Transactions
Smart contracts are generally not editable in the same way as ordinary applications. Some are designed with upgrade mechanisms or administrative controls, while others cannot be changed after deployment without deploying a new contract or using a predefined migration process.
Blockchain transactions that have been confirmed are also generally difficult or impossible to reverse through the network itself. A mistaken transfer or interaction with a malicious contract can therefore lead to permanent loss.
Before approving a transaction, users should verify the application, the destination network, the contract address, and the permissions being requested. In particular, token approvals may grant a contract permission to spend tokens on the user's behalf, sometimes beyond a single transaction.
Are Ethereum Smart Contracts the Same as Smart Contracts on Other Blockchains?
The underlying concept is similar: a smart contract is software that executes according to a blockchain's rules. Ethereum is notable for its general-purpose execution environment and the ecosystem of applications built around it, but it is not the only blockchain that supports smart contracts.
Other networks use different execution environments, programming languages, transaction models, and fee structures. Some are compatible with the EVM, while others use different architectures. These differences affect how developers deploy applications and how users interact with them.
Choosing a network for a particular application depends on factors such as security assumptions, liquidity, performance, fees, developer tooling, and ecosystem support. There is no single blockchain that is automatically best for every smart contract use case.
Ethereum's central contribution is its role in making programmable contracts a widely used foundation for an open application ecosystem. The result is a network where digital assets and software can interact through shared, verifiable rules, while still requiring careful attention to security, governance, and user risk.