Chapter 33 Further Reading

Official Documentation

  • ethers.js v6 Documentation. The authoritative reference for the ethers.js library. Pay particular attention to the Provider, Signer, and Contract sections. The migration guide from v5 to v6 is essential reading if you encounter older tutorials. https://docs.ethers.org/v6/

  • Hardhat Documentation. The complete reference for the Hardhat development environment, including testing, deployment, and plugin configuration. The "Deploying your contracts" tutorial walks through testnet deployment step by step. https://hardhat.org/docs

  • OpenZeppelin Governor Documentation. Explains the modular Governor framework, including GovernorSettings, GovernorCountingSimple, GovernorVotes, and GovernorTimelockControl. Includes deployment guides and security considerations. https://docs.openzeppelin.com/contracts/5.x/governance

  • The Graph Documentation. Covers subgraph creation, deployment, and querying. The "Quick Start" tutorial deploys a subgraph for an ERC-20 token, which is directly applicable to the governance token in this chapter. https://thegraph.com/docs/

  • IPFS Documentation. Explains content addressing, CIDs, pinning, and gateways. The "Concepts" section is particularly valuable for understanding why IPFS works the way it does. https://docs.ipfs.tech/

  • Pinata Documentation. Practical guide to IPFS pinning as a service. Covers the API for uploading files, managing pins, and retrieving content. https://docs.pinata.cloud/

Tutorials and Guides

  • Scaffold-ETH 2. An open-source toolkit for building dApps with Next.js, Hardhat, and ethers.js. It provides a complete project template that demonstrates many of the patterns in this chapter, including wallet connection, contract interaction, and deployment. Studying its codebase is an excellent way to learn full-stack dApp development. https://scaffoldeth.io/

  • Patrick Collins, "Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript" (freeCodeCamp, 2022). A 32-hour video course that covers the full dApp stack. The governance project section (around hours 20-24) builds a system very similar to ours. https://www.youtube.com/watch?v=gyMwXuJrbJQ

  • Nader Dabit, "The Complete Guide to Full Stack Web3 Development" (2022). A written tutorial that walks through building a dApp with Next.js, Hardhat, Ethers, and The Graph. Covers many of the same patterns as this chapter but with a different project (a blog, not a governance system). https://dev.to/edge-and-node/the-complete-guide-to-full-stack-web3-development-4g74

  • Austin Griffith, "Speed Run Ethereum." A gamified series of challenges that teach dApp development by having you build progressively more complex applications. Challenge #4 (DEX) and Challenge #5 (multisig) are particularly relevant. https://speedrunethereum.com/

Security Resources

  • OpenZeppelin Security Audits. OpenZeppelin publishes their audit reports publicly. Reading audit reports for governance systems (Compound, Uniswap, ENS) teaches you what professional auditors look for and how they communicate findings. https://blog.openzeppelin.com/security-audits

  • Trail of Bits, "Building Secure Smart Contracts." A comprehensive guide to smart contract security, including testing strategies, static analysis tools (Slither, Echidna), and common vulnerability patterns. https://secure-contracts.com/

  • Consensys Diligence, "Smart Contract Best Practices." Covers security patterns, known attacks, and defense mechanisms. The governance section discusses timelock attacks, flash loan governance, and quorum manipulation. https://consensys.github.io/smart-contract-best-practices/

  • Slither Static Analysis Tool. The most widely used static analysis tool for Solidity. Run it on your contracts to detect common vulnerabilities, code quality issues, and optimization opportunities. Essential for any CI/CD pipeline. https://github.com/crytic/slither

Governance Design

  • Compound Governance Documentation. Compound pioneered the Governor/Timelock architecture that is now the industry standard (via OpenZeppelin's implementation). Reading their documentation provides context for why the system is designed the way it is. https://compound.finance/docs/governance

  • Vitalik Buterin, "Moving beyond coin voting governance" (2021). A critical analysis of token-weighted voting and its limitations, including plutocracy, low participation, and governance attacks. Essential reading for anyone building governance systems. https://vitalik.eth.limo/general/2021/08/16/voting3.html

  • a16z, "Governance Minimization" (2020). Argues that governance should be minimized — not maximized — to reduce attack surface and increase credibility. Relevant to the design decisions in this chapter about what should be governed and what should be immutable. https://a16zcrypto.com/posts/article/progressive-decentralization-a-playbook-for-building/

Development Tools

  • Tenderly. A development platform that provides transaction simulation, debugging, gas profiling, and monitoring for deployed contracts. The "Simulate Transaction" feature is invaluable for debugging failed testnet transactions. https://tenderly.co/

  • Foundry (Forge). An alternative to Hardhat written in Rust. Significantly faster for compilation and testing. If you find Hardhat's JavaScript toolchain slow, consider migrating to Foundry for contract development while keeping Hardhat for deployment scripts. https://book.getfoundry.sh/

  • Remix IDE. A browser-based Solidity IDE that is useful for quick prototyping and debugging. You can deploy to testnets directly from Remix without setting up a local development environment. https://remix.ethereum.org/

  • Dune Analytics. A platform for querying blockchain data using SQL. After deploying your governance dApp, you can create Dune dashboards to track proposal activity, voter participation, and token distribution. This ties directly into the blockchain analytics covered in Chapter 34. https://dune.com/

Academic and Research Papers

  • Wood, Gavin. "Ethereum: A Secure Decentralised Generalised Transaction Ledger (Yellow Paper)." The formal specification of the Ethereum Virtual Machine. Not light reading, but essential for understanding gas costs, storage layout, and execution semantics at the deepest level. https://ethereum.github.io/yellowpaper/paper.pdf

  • Benet, Juan. "IPFS - Content Addressed, Versioned, P2P File System" (2014). The original IPFS whitepaper. Explains the theoretical foundations of content addressing, Merkle DAGs, and distributed hash tables. https://ipfs.tech/ipfs-whitepaper/

  • Daian, Philip, et al. "Flash Boys 2.0: Frontrunning in Decentralized Exchanges, Miner Extractable Value, and Consensus Instability" (IEEE S&P 2020). While focused on DEXs, the paper's analysis of MEV (Maximal Extractable Value) is relevant to governance dApps, where transaction ordering can affect proposal outcomes.