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

Developer Environment

Set up your toolchain, package manager, and local testing stack for Bitcoin development.

beginner3 days

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

./sign-in

On this page

Learning objectives

  • Install and verify Git, Node.js or Rust, and optional Docker
  • Understand the recommended Pull project layout
  • Confirm your local toolchain before moving to protocol lessons

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
Bitcoin development environmenttoolchain setupGit Node.js Rust

Step 1 // Required reading

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

  • docsGit Documentation
  • docsNode.js Downloads

    Skip if Rust is your primary stack — still keep Git required.

  • docsRust Toolchain

    Skip if Node is your primary stack — still keep Git required.

Reflection prompts

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

Lab // Toolchain verify

Complete Steps 2–4. Paste version outputs proving Git plus Node or Rust are installed, and note how you will run Bitcoin Core later (Docker, native, or Polar).

evidence required

  • ·Paste `git --version` and `node -v` or `rustc --version`
  • ·Confirm Docker or bitcoind availability (or note you will use Polar later)
  • ·One sentence on your chosen primary language for Bitcoin tooling
  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.

Every Bitcoin builder needs a reliable local environment before touching protocol code. Think of this lesson as preparing a workshop: if your tools are missing or half-configured, every later lesson becomes frustrating noise.

Complete Step 1 // Required reading in the study plan above, then continue here.

Step 2 — Key terms and required tools

Goal: Know what you are installing and why.

TermWhat it meansWhere you use it
GitVersion control for your code and for open source PRsEvery lesson and every contribution
Node.js / RustLanguage runtimes for wallets, CLIs, and scriptsApp code and ecosystem tooling
DockerContainers so Bitcoin Core installs the same way on every OSOptional now; strongly recommended for bitcoind
RegtestA private local Bitcoin chain you controlNext lesson and later labs — not mainnet
Bitcoin CoreReference node software (bitcoind / bitcoin-cli)Mining blocks and RPC in regtest lessons

Most Pull lessons assume a modern JavaScript or Rust toolchain. Pick one primary language for app code, but keep both runtimes available when you can.

Start on regtest

Use regtest for day-to-day development. Mainnet and testnet are useful later, but regtest keeps feedback loops fast and free.

Done when: You can explain each row in the table in one sentence.

Step 3 — Setup and verification

Goal: Install the base toolchain and prove it works.

  1. Install Git from the docs you opened in Step 1 (or your OS package manager).
  2. Install Node.js 20+ or Rust stable from those same docs. Ideally both.
  3. Optionally install Docker Desktop (or Docker Engine) so Bitcoin Core can run in a container later.
  4. Use a code editor with TypeScript / MDX support.

Prefer a version manager for Node (nvm, fnm, or asdf) so you do not end up with two conflicting installs.

git --version
node --version   # or: rustc --version
docker --version # optional

Expected results

CommandYou should see
git --versionSomething like git version 2.x…
node --versionv20… or newer (if Node is your primary stack)
rustc --versionrustc 1.… (if Rust is your primary stack)
docker --versionA Docker version string, or skip and note Polar for later
type ToolchainCheck = {
  name: string;
  command: string;
  required: boolean;
};
 
const checks: ToolchainCheck[] = [
  { name: "Git", command: "git --version", required: true },
  { name: "Node", command: "node --version", required: true },
  { name: "Rust", command: "rustc --version", required: false },
  { name: "Docker", command: "docker --version", required: false },
];

Organize a disposable lab folder:

my-bitcoin-lab/
  docs/
  scripts/
  src/
  tests/

Loading diagram…

Local toolchain feeds apps that talk to a private regtest node.

Common mistakes

  • Installing Node via random package managers and ending up with two conflicting versions — use a version manager.
  • Skipping Docker and fighting OS-specific Bitcoin Core builds early — start with a container if native installs fail.
  • Mixing mainnet credentials into learning projects — keep regtest configs isolated.

Done when: Required version commands print successfully and you have a lab folder ready.

Step 4 — Hands-on check (lab)

Goal: Capture proof that your workshop is ready.

Complete the Toolchain verify lab in the study plan:

  1. Paste git --version and node -v or rustc --version.
  2. Confirm Docker / bitcoind availability, or write that you will use Polar when you hit node labs.
  3. One sentence: which primary language you will use for Bitcoin tooling.

Done when: Lab evidence is filled in and you would trust this machine for the next lesson.

Next lesson

Once your environment is verified, move on to Regtest Development — stand up a private chain before the protocol lessons that use it.

further reading

  • toolBitcoin Core releases

    Optional now — you will use this in Regtest Development.

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

nextRegtest Development

On this page

Press Shift + ? for keyboard shortcuts.

Press R to research on Bitcoin Search.

No questions yet — be the first to ask.