Table of contents : Table of Contents About the Author About the Technical Reviewer Acknowledgments Preface Chapter 1: Introduction Products, Protocols, and Platforms Protocol Engineering Product Engineering Platform Engineering Crypto Businesses Crypto Engineering Is Trust Engineering Products and Users The Psychology of the User Trust Engineering Professional Arbitrage What’s Next Summary Chapter 2: Requests, Networks, and Accounts The Lifecycle of an Ethereum Request The Basic Story Where Requests Originate How Requests Are Confirmed Once a Block Is Finalized Accounts and Wallets Accounts Don’t Hold Things Accounts Aren’t Limited Accounts Aren’t Physical Items Accounts Are Identity Network and Account Switching Layers 1 and 2 Switching Between Networks Provide a Mechanism to Switch Networks Inside Your UI Handle the Case Where Your User’s Wallet Software and Your UI Are Set to Different Networks Handle the Case Where Either Your App or the User’s Wallet Doesn’t Support the Other Network State Management Switching Between Accounts Summary Chapter 3: Transactions What Does a Transaction Look Like? Transaction Signing Gas Fees Nonces and Replay Attacks Transaction Receipts Transaction UX Clarification The User’s Model Dynamic Systems Transaction Intent Control Progressive Expansion Transaction Sequencing Reversibility and Validation Confirmation Transaction Status Updating State Some Final Thoughts on UX Summary Chapter 4: Contracts Smart Contracts What Does a Smart Contract Look Like? Contracts Are APIs Application Binary Interfaces Function and Argument Selectors Sleuthing with Calldata ABI Schemas The Origins of ABIs Contract State Several Types of State Accessing State State and Product Ethereum’s Event Model Contract Logs Events Log Filters Events and Product ABIs Contain Events, Too Listening to Events Indexing A Simple DIY Index Decentralized Indexing: The Graph Centralized Indexing Services Final Considerations Summary Chapter 5: Infrastructure Testing Unit and Integration Testing End-to-End Testing Test Networks Account Impersonation Setting State Directly Test Scenarios Hosting Decentralized Hosting on IPFS The Malkovich Deployment Competitive Frontends Centralized Hosting Final Considerations Fragility and Antifragility Sources of Disorder and Fragility Robust Systems Antifragile Systems Summary Chapter 6: Decentralization Decentralization Is a Fetish Decentralization Is Multidimensional Dimensions of Decentralization Decentralization As a Backstop Standards What Are Standards? Some Etymology Who Sets the Standards? Standard Capture and Path Dependence The Case for Greater Standardization Error Messages Security and Verification Authorization Some Lessons Summary Chapter 7: Conclusion Crypto Futurism (Without the Hyperbole) Value Creation Value Accrual Final Thoughts Capture.PNG