This document summarizes elements of the Bitcoin protocol for developers. It describes the blockchain network protocol, how transactions are structured with inputs and outputs, and how Bitcoin scripting works to lock and unlock transactions based on signatures and public keys. Bitcoin scripting uses a stack-based approach to evaluate transactions in a non-Turing complete manner. Examples are provided of common script patterns and a more complex script for an odd/even betting contract.