Feedback
Sign in./start

Site navigation

Theme

Learn

  • Roadmaps

Build

  • Projects
  • Developer Tools

Contribute

  • Open Source Projects
  • Issues
  • Reviews
  • First Contribution
  • BountiesSoon
  • Feedback

Prove

  • Builders

Ecosystem

  • Partners
  • Get Funded↗
  • HackathonsSoon
Sign in./start-building

Become an Open Source Builder. Learn. Build. Contribute. Prove.

Feedback welcome — open a GitHub issue.

Learn

RoadmapsStart Building

Build

ProjectsDeveloper Tools

Contribute

Open Source ProjectsIssuesReviewsFirst ContributionSupportFeedback

Prove

Builders Directory

Account

Sign in

Legal

PrivacyTermsCredits

© 2026 Pull // code MIT · curriculum CC BY-SA 4.0

PrivacyTermsCredits

lesson // bitcoin

Mini Wallet Project

Build a CLI wallet that generates addresses, receives, and sends on regtest.

intermediate2 weeksproject // mini-wallet

Public lesson — sign in to track progress on this roadmap.

./sign-in

On this page

Learning objectives

  • Generate receive addresses from a descriptor or HD wallet
  • Track UTXOs and build a funded transaction on regtest
  • Sign and broadcast with tests covering change and fees

study // plan

Lessons are primers. Start with Step 1 (required reading) when present, then follow the numbered steps in the article. Depth comes from primary sources, labs, reflection, and evidence.

Research on Bitcoin Search
HD walletBitcoin walletBDK walletdescriptor wallet

Step 1 // Required reading

Complete these before the numbered steps in the lesson body. Links are listed here once — not repeated below.

  • docsProject Spec: Mini Wallet

    Pull project page — acceptance criteria and submit flow.

  • bookMastering Bitcoin

    Ch. 5: Wallets

Reflection prompts

  1. Explain Mini Wallet Project to a teammate without jargon - what problem does it solve?
  2. What would break in production if you misunderstood Mini Wallet Project?
  3. Which BIP, book chapter, or Core doc is authoritative here, and what did you verify?

Lab // Project milestone evidence

Complete Steps 2–4. Ship the Mini Wallet happy path on regtest and capture demo evidence before marking the lesson complete. Submit via the project page when ready for review.

evidence required

  • ·Link to public repo or branch
  • ·Commands or screenshots proving receive + send on regtest
  • ·Short note of one failure case you tested (fee, change, or sync)
  1. 01

    Worked mental model

    Re-read the diagrams in this lesson once out loud in plain language. If you cannot explain the flow to a friend without jargon, pause and revisit the Mastering Bitcoin / Mastering Lightning chapters linked in Resources. Chapter references are intentional, not decorative.

  2. 02

    Hands-on habit

    Every protocol idea should be paired with one local experiment. That habit turns reading into builder instinct.

    1. Reproduce the happy path on regtest (or Polar for Lightning)
    2. Break it on purpose (wrong fee, expired invoice, offline peer)
    3. Write down what error you saw and which layer produced it (wallet, node, mempool, peer)
  3. 03

    Glossary check

    Pick three terms from this lesson and define them in one sentence each without opening notes. Weak definitions mean the lesson is not finished yet.

  4. 04

    Resource order

    Use Resources in order: narrative book chapter first, then BIP/BOLT for precision, then implementation docs for commands. Jumping straight to RPC flags without the mental model creates brittle knowledge.

This project turns protocol lessons into a working tool: a command-line wallet on regtest that can receive and send bitcoin.

Complete Step 1 // Required reading in the study plan above (project spec + wallets chapter), then continue here. This opens Projects.

Step 2 — Goal

Ship a CLI that can:

  1. Create or load a wallet (seed/descriptor)
  2. Show a receive address and balance
  3. Send to an address with an explicit fee rate
  4. Mine/confirm via Bitcoin Core RPC in tests

Loading diagram…

CLI drives wallet logic against a local regtest node.

Done when: You can describe the happy path in four bullets without opening the code.

Step 3 — Milestones

PhaseShip
Milestone AAddress generation + sync/balance on regtest
Milestone BCoin selection, change, broadcast, fee unit tests
Milestone CAcceptance test: mine → send half → assert balances after one block

Acceptance tests first

Write a test that mines funds to your wallet, sends half to a second wallet, and asserts balances after one block.

Done when: Milestone A works end-to-end before you start fee edge cases.

Step 4 — Build & evidence (lab)

Implement against /projects/mini-wallet. Capture repo link, happy-path proof, and one failure case you tested.

Common mistakes

  • Hard-coding mainnet network objects in tests
  • Forgetting change and overpaying the fee
  • Demo without a reproducible test command

Done when: Lab evidence is filed (and optionally submitted for review).

Next lesson

Block Explorer UI — visualize blocks, txs, and mempool for your private chain.

further reading

  • docsBDK

review // club

Review club

Practice on real Bitcoin OSS changes tied to this chapter. Read the diff, use the checklist, and optionally paste your review comment URL in your lab notes.

  • BDK documentation pull requests

    Review a BDK docs PR and note whether examples would help a mini-wallet builder.

    pr review
    examplesAPI clarity
    35 min·beginneropen on GitHub
review checklist
  1. Does the change solve the stated problem?
  2. Are edge cases and rollout behavior covered?
  3. Are tests or test vectors included?
  4. Is the diff minimal and clearly explained?

More repos and GFIs on /discover and /issues.

build // challenge

project // mini-wallet

./open-spec./submit

Apply what you learned in a focused build session. Ship something small, test it on regtest, and document your approach before moving on.

progress // sign in

Reading is public. Sign in to mark lessons complete, sync across devices, and unlock your roadmap.

./sign-in-to-track

discussion

Discussion

prevPSBT WorkflowsnextBlock Explorer UI

On this page

Press Shift + ? for keyboard shortcuts.

Press R to research on Bitcoin Search.

No questions yet — be the first to ask.