Smart Contracts 101: Plain-English Guide With Real-World Examples
Smart contracts are code that automatically executes when conditions are met. Think of them as vending machines for digital agreements. You put in the right inputs, and you get the promised outcome.
TLDR
- Smart contracts are self-executing code on blockchains that run automatically when conditions are met
- They eliminate the need for intermediaries like banks or escrow services
- Common uses: DEX trades, DeFi lending, NFT transfers, automated payments
- Once deployed, they're hard to change. Code errors can be costly
- Always verify contract addresses and read smart contracts before interacting
By William S. · Published March 15, 2024
What Is a Smart Contract?
A smart contract is a program stored on a blockchain that runs automatically when predetermined conditions are met. Think of it like a digital "if-then" statement:
If Alice sends 1 ETH, then transfer ownership of the NFT to Alice and send payment to Bob.
The code executes automatically. No bank, lawyer, or middleman needed. Once deployed to the blockchain, anyone can verify the code and see what it does.
How Smart Contracts Work: A Simple Example
Imagine you're buying a concert ticket NFT. Here's what happens:
- You send 0.1 ETH to the smart contract address (the ticket price)
- The contract checks: "Did I receive exactly 0.1 ETH?" (if yes, continue)
- The contract transfers the NFT ticket to your wallet address
- The contract sends 0.1 ETH to the seller's wallet address
- Transaction is recorded on the blockchain. Permanent and unchangeable
This all happens in seconds, automatically, with no human intervention. The contract enforces the rules, and the blockchain ensures transparency.
Real-World Examples
1. Decentralized Exchange (DEX) Trade
When you swap ETH for USDC on Uniswap or another DEX, a smart contract handles it:
- You approve the contract to access your ETH (you're allowing it to take your tokens)
- You specify: "I want to swap 1 ETH for at least 2,500 USDC" (a slippage limit)
- The contract calculates the exchange rate using a formula (automated market maker)
- If the rate is acceptable, it takes your ETH and sends you USDC
- If the rate isn't good enough, it rejects the transaction and returns your ETH
The contract doesn't care if you're in New York or Tokyo. It just executes based on the code. No KYC, no account setup, just the swap.
2. DeFi Lending Protocol
On platforms like Aave or Compound, smart contracts handle lending:
You deposit 10 ETH as collateral. The contract locks it and gives you borrowing power (say, 7 ETH worth). You borrow 5,000 USDC. The contract tracks:
- Your collateral value (if ETH price drops, your collateral value decreases)
- Your loan-to-value ratio (if it exceeds 80%, the contract can liquidate your collateral)
- Interest accrual (you owe more USDC over time until you repay)
If your collateral falls below a threshold, the contract automatically sells it to pay your loan. No bank calls, no grace period. It's all in the code.
3. NFT Sale with Royalties
When you buy an NFT, the smart contract handles:
- Payment transfer (your ETH → seller's wallet)
- NFT ownership transfer (NFT → your wallet)
- Royalty payment (e.g., 5% → original artist's wallet)
- Platform fee (e.g., 2.5% → marketplace wallet)
Every future sale of that NFT automatically sends royalties to the original creator. It's programmed into the contract and can't be removed.
Key Characteristics
Immutable (Mostly)
Once deployed, smart contract code can't be changed easily. This is both a feature and a risk:
- Benefit: You can trust the code. It won't change on you
- Risk: If there's a bug, it can't be fixed easily (though some contracts have "admin" keys or upgrade mechanisms)
That's why audits and testing are critical before deploying contracts that handle money.
Transparent and Verifiable
All smart contract code is public on the blockchain. You can read it on Etherscan or similar explorers. Before interacting with a contract, you can:
- View the source code
- Check who deployed it and when
- See all transactions it has processed
- Verify if it's been audited (look for audit reports)
Automated Execution
Smart contracts execute based on logic, not human judgment. This removes:
- Delays (no waiting for human approval)
- Bias (the code treats everyone the same)
- Fraud (you can't convince code to break its rules)
Common Use Cases
- Token Swaps: Automated trading on DEXs like Uniswap, PancakeSwap
- Lending/Borrowing: DeFi protocols like Aave, Compound
- NFTs: Minting, trading, royalty distribution
- Staking: Locking tokens to earn rewards
- Governance: Voting on protocol changes using DAO structures
- Escrow: Holding funds until conditions are met
- Lotteries/Raffles: Random selection with verifiable fairness
Risks and Limitations
Smart contracts aren't perfect. Common issues:
Code Bugs
If there's a mistake in the code, it can't be fixed easily. In 2021, a bug in a DeFi protocol called Compound led to accidental distribution of $90 million in rewards. The code did exactly what it was told, which was wrong.
No Human Discretion
Contracts can't handle "exceptional circumstances." If you send money to the wrong address, you can't call customer service to reverse it.
Gas Costs
Every contract interaction costs gas fees. Complex contracts can be expensive to use. Simple transfers might cost $1–5 in gas; complex DeFi interactions can cost $50–200+ during network congestion.
How to Interact Safely
Before using any smart contract:
- Verify the contract address: Check it matches the official project website. Phishing sites use fake addresses
- Read the contract code: Use Etherscan to view source code (if verified)
- Check audits: Look for audit reports from firms like CertiK, OpenZeppelin, Trail of Bits
- Start small: Test with a small amount before larger transactions
- Check permissions: Before approving, see what permissions you're granting (use tools like Revoke.cash)
For more on reading contracts before interactions, see our guide on how to read smart contracts.
Technical Deep Dive (Optional)
If you're curious how they work under the hood:
Smart contracts are compiled to bytecode (machine-readable code) and stored on the blockchain. When you call a function (like "transfer" or "swap"), your transaction includes:
- The contract address (where the code lives)
- The function name and parameters (what you want it to do)
- Gas limit (how much you're willing to pay for execution)
Network nodes (miners/validators) execute the code and verify the result. If valid, it's recorded on the blockchain.
Further Reading
- Learn about Layer 2 solutions that make smart contracts cheaper to use
- Understand how to read smart contracts before you interact
- Explore DeFi protocols built on smart contracts
Frequently Asked Questions
Can smart contracts be changed?
Most smart contracts are immutable once deployed. Some have upgrade mechanisms or admin keys that allow changes, but these reduce trustlessness. Always check if a contract has been upgraded.
What programming languages are used?
Solidity is most common on Ethereum. Other languages include Vyper (Python-like), Rust (for Solana), and Move (for Aptos). Solidity compiles to EVM bytecode that runs on Ethereum.
Are smart contracts legally binding?
It depends on jurisdiction. Some countries recognize smart contracts as legally binding; others don't. In practice, they enforce execution through code, not law. If there's a dispute, you'd still need legal recourse.
What happens if a contract has a bug?
Bugs can't be fixed easily. If funds are locked or stolen due to a bug, they're often lost unless the contract has an upgrade mechanism. That's why audits and bug bounties are critical before deploying contracts handling significant funds.
Do I need to know programming to use smart contracts?
No. Most users interact through web interfaces (like Uniswap's website) that hide the complexity. However, understanding how they work helps you use them safely and avoid scams.
Can smart contracts call other smart contracts?
Yes. Contracts can interact with each other. For example, a DeFi protocol might call a DEX contract to swap tokens. This composability is what makes DeFi powerful but also creates complex interdependencies.