# Projects to Build Reading builds a map; building tests it — and the gaps you find are always in interesting places. Each project below pairs with the modules it makes tangible, and the order matches the [[Learning path]]. ## Project 1 — Toy blockchain *Reinforces: [[01 Replicated State Machines]], [[02 Cryptographic Primitives]], [[03 Blocks, Hashes, and History]], [[04 Consensus]]* Implement, in any language you like: - Blocks with hash pointers - Transactions with signatures - A mempool - Naive proof-of-work - The longest-chain fork-choice rule Then run two nodes concurrently and let one reorg the other. Watching a transaction vanish from history in code you wrote teaches [[Reorgs]] in a way no paragraph can. You're building the skeleton, not a product — a few hundred lines is plenty. ## Project 2 — Token indexer *Reinforces: [[08 Nodes, RPCs, and Indexers]], [[05 Execution and Smart Contracts]]* The single most job-relevant project on this list. ```text RPC logs -> decoder -> Postgres -> API -> UI ``` Pick one ERC-20. Stream its Transfer events. Serve balance-by-address from your own database. Then do the parts that make it real: - Backfill from the contract's deployment block - Idempotency (re-run ingestion; nothing duplicates) - Confirmation depth before marking events canonical - A reorg drill: drop the last N blocks and replay - RPC retries and rate limits - A schema migration after data exists If you have data-engineering instincts, this is where they compound. The upstream is eventually consistent and occasionally retracts — design for it, and enjoy how familiar the problem starts to feel. ## Project 3 — Wallet transaction simulator *Reinforces: [[07 Wallets and Account Abstraction]], [[06 Transaction Lifecycle and MEV]], [[12 Security and Incentive Design]]* A UI that: - Connects a wallet - Constructs a transaction - Simulates the result before signing - Shows the effect in human language ("This grants X unlimited access to your USDC") - Warns loudly on approvals The engineering is modest. The product problem — making a signature's consequences legible in one screen — is the hard part, and the valuable one. ## Project 4 — Account abstraction demo *Reinforces: [[07 Wallets and Account Abstraction]]* Using ERC-4337 tooling on a testnet: - Deploy a smart account - Sponsor its gas through a paymaster - Issue a session key with a scope and expiry - Enforce a spending limit - Exercise a recovery path This maps one-to-one onto embedded-wallet product work — see [[Wallet Infrastructure Roles (Privy)]]. ## Project 5 — Toy rollup *Reinforces: [[09 Scaling - Rollups and Data Availability]], [[10 Bridges and Interoperability]]* Not a production rollup — a mental model made executable: ```text L2 transactions -> state root -> proof/fraud-window mock -> L1 settlement contract ``` A testnet contract accepts state roots; an off-chain script batches toy transactions and posts them; a mock challenge flow disputes one bad root. Settlement, [[Data Availability]], and challenge windows stop being vocabulary and become moving parts you've handled. ## The capstone portfolio piece If one artifact should carry interview weight, combine projects 2, 3, and 4 into a single polished demo — an embedded-wallet playground with an indexer behind it and an architecture doc beside it. The full spec lives in [[Wallet Infrastructure Roles (Privy)]]. --- Back to [[Blockchain Home]] · The ordered journey: [[Learning path]]