> For the complete documentation index, see [llms.txt](https://cs4998.cornellblockchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cs4998.cornellblockchain.org/introduction.md).

# Introduction

- [Blockchain Theory](https://cs4998.cornellblockchain.org/introduction/blockchain-theory.md): Understanding What You're Writing On
- [Bitcoin and the UTXO Model](https://cs4998.cornellblockchain.org/introduction/blockchain-theory/bitcoin-and-the-utxo-model.md): The Original Blockchain
- [Ethereum and the State-Based Model](https://cs4998.cornellblockchain.org/introduction/blockchain-theory/ethereum-and-the-state-based-model.md): An Alternative to Bitcoin
- [Remix - A First Glance](https://cs4998.cornellblockchain.org/introduction/remix-a-first-glance.md): Getting Started with Solidity
- [Hello World!](https://cs4998.cornellblockchain.org/introduction/hello-world.md): Writing a Smart Contract That Compiles
- [Solidity File Structure](https://cs4998.cornellblockchain.org/introduction/hello-world/solidity-file-structure.md): What is a Solidity File?
- [Primitive Values & Types](https://cs4998.cornellblockchain.org/introduction/hello-world/primitive-values-and-types.md): What are we working with?
- [Contract Structure](https://cs4998.cornellblockchain.org/introduction/hello-world/contract-structure.md): What is a Contract?
- [Functions](https://cs4998.cornellblockchain.org/introduction/hello-world/functions.md): The Behavior of Smart Contracts
- [Data Structures](https://cs4998.cornellblockchain.org/introduction/hello-world/data-structures.md): Helping Us Store Data
- [Summary & Exercises](https://cs4998.cornellblockchain.org/introduction/hello-world/summary-and-exercises.md)
- [Hello World! Pt. 2](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2.md): Smarter Smart Contracts
- [Control Flow](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/control-flow.md): Logic is no longer sequential!
- [Interfaces and Inheritance](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/interfaces-and-inheritance.md): B is A
- [Constructors](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/constructors.md): Defining Initial Values
- [Contract Interactions](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/contract-interactions.md): Our Contracts Are No Longer Sandboxed!
- [Modifiers](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/modifiers.md): A New Type of Function
- [Dynamic Arrays and Strings](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/dynamic-arrays-and-strings.md): Advanced Data Structures
- [Dynamic Arrays](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/dynamic-arrays-and-strings/dynamic-arrays.md): The Cooler Version of Static Arrays
- [Strings](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/dynamic-arrays-and-strings/strings.md): Everyone's Favorite Type
- [Errors](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/errors.md): Maintaining Invariants
- [Events](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/events.md): A Special Kind of On-Chain Data
- [Units and Global Variables](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/units-and-global-variables.md): Working with numbers, made easy!
- [Default Functions](https://cs4998.cornellblockchain.org/introduction/hello-world-pt.-2/default-functions.md): Calling Contracts w/o Calling Any Functions
