Chapter 12
Common Patterns
Common patterns exist because smart contracts repeat the same security and product problems. Rather than inventing every permission check or payment flow from scratch, developers reuse structures that the ecosystem already understands well.
Patterns are valuable partly because they make code more predictable to other builders. When someone sees `Ownable`, `Pausable`, or pull payments, they can reason faster about who controls the contract and how money is meant to move.
`Ownable` is simple, but it introduces a trust question: who controls the owner key, and can that role be transferred or renounced? `Pausable` adds a safety brake, but it also means users should understand when an admin can intervene.
Pull payment patterns are especially useful because they reduce surprise during transfers. Instead of forcing value out to another contract immediately, they let recipients claim what they are owed in a separate step.