This document provides an introduction to smart contracts, which are programs that execute autonomously and securely based on the terms of an agreement. It explains that smart contracts operate on blockchains in a decentralized, immutable, trustless, and transparent manner. Examples are given of how smart contracts can send and receive money or interact with other contracts. While Bitcoin was the first to support basic smart contracts by validating transactions if certain conditions are met, Ethereum allows for more programmable and extensible smart contracts through its Ethereum Virtual Machine. Further examples are given of how smart contracts can be used for multi-signature accounts, managing insurance agreements, providing utilities to other contracts, and storing application information.