This document provides an introduction to building decentralized applications (dapps) on Ethereum. It discusses Ethereum and smart contracts, then demonstrates how to interact with the Ethereum blockchain and smart contracts using Web3 and Metamask. Key topics covered include deploying and interacting with smart contracts, estimating transaction costs in gas, and using Metamask to sign transactions without exposing private keys. The document uses examples in Web3.js and Web3py to illustrate communicating with the blockchain and calling methods on smart contracts.