# 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]]