# Chapter 7: Introducing Bitcoin Scripts To date, we've been interacting with Bitcoin at a relatively high level of abstraction. The `bitcoin-cli` program offers access to a variety of RPC commands that support the creation and control of raw Bitcoin transactions that include funds, data, timelocks, and multisigs. However, Bitcoin offers much more complexity than that. It includes a simple scripting language that can be used to create even more complex redemption conditions. If multisigs and timelocks provided the bases of Smart Contracts, then Bitcoin Script builds high on that foundation. It's the next step in empowering Bitcoin. ## Objectives for This Chapter After working through this chapter, a developer will be able to: * Design a Bitcoin Script * Apply a Bitcoin Script Supporting objectives include the ability to: * Understand the Purpose of Bitcoin Scripts * Understand the P2PKH Script * Understand the Needs for Bitcoin Script Testing ## Table of Contents * [Section One: Understanding the Foundation of Transactions](07_1_Understanding_the_Foundation_of_Transactions.md) * [Section Two: Running a Bitcoin Script](07_2_Running_a_Bitcoin_Script.md) * [Section Three: Scripting a P2PKH](07_3_Scripting_a_P2PKH.md) * [Section Four: Testing a Bitcoin Script](07_4_Testing_a_Bitcoin_Script.md)