Every claim about what Bitcoin can and cannot do resolves to a script, a signature, and a fee — learn to check them yourself.
Most Bitcoin explanations stop at the metaphor: a chain of blocks, a shared ledger, a clever hash puzzle. That leaves you unable to answer the questions that matter once you write software against it — why a transaction sits unconfirmed for six hours, why a wallet shows a balance that no single record contains, why one spend costs three times another for the same amount. This course works at the level where those answers live. You start with the unspent transaction output (UTXO) model and reconstruct a balance by hand, then read Bitcoin Script as the small stack machine it actually is, build pay-to-script-hash and Segregated Witness (SegWit) outputs, and move on to Taproot and Schnorr signatures. From there: hierarchical deterministic wallets, Miniscript, and Partially Signed Bitcoin Transactions (PSBT) for air-gapped signing; Lightning channels, hash time-locked contracts, and routing; Ordinals and Runes; sidechains and Stacks; covenant proposals and BitVM; and node operations with a real indexer. Every module ships runnable code in rust-bitcoin, bitcoinjs-lib, python-bitcoinlib, LDK, and Clarity. Five capstones, pick one, ship it.
Built by Lakshya Kumar
Paste this into any AI chat. Fill in the bracketed parts with your context — you'll get back a straight answer on whether this belongs on your plate.
We grant free access case-by-case — students, career-switchers, builders on a tight budget. Sign in to send us a note.
Sign in to applyFinished the tasks? Take the prompt to your AI and get tested on it. We copy the prompt and open the app — just paste it in.
Every coin is locked by a few dozen bytes of stack code — read them and you can tell a safe spend from a broken one.
Schnorr signatures let many keys sign as one, so a five-party vault can settle on-chain looking like an ordinary payment.
Trace the path from seed phrase to derived keys to an air-gapped signature, instead of trusting an app to get it right.
A channel is two signed transactions kept off-chain — see exactly what stops either side from publishing an old one.
A brand-new user has no channels and no inbound capacity; this is how real apps hide that with just-in-time channels.
Bitcoin was never designed to carry images or tokens, yet it does — see the witness trick that allows it and what it costs.
Every sidechain buys throughput with a different trust assumption — learn to name that assumption before you build on one.
Restricting where a coin may go next would unlock real vaults; find out why it is still not shipped and what works today.
Every wallet you trust is querying somebody else’s server — stand up your own node and indexer and stop taking their word.
Complete all modules, then submit the required number of capstone projects. Each must earn a passing rating from an admin reviewer.
Build a 2-of-3 multisig P2WSH wallet end-to-end on regtest: generate keys, derive the address, fund it, build a spend tx, sign with 2 keys, broadcast. Include explicit handling for the CHECKMULTISIG off-by-one bug and document why the OP_0 dummy is required. Demonstrate the full flow with a working PSBT pipeline and a test spend back to a single-sig address.
I am learning Bitcoin at depth — UTXO model, Script, Segwit, Taproot/Schnorr, Miniscript, HD wallets, PSBT, hardware-wallet integration, Lightning (channels, HTLCs, routing, BOLT 12), Ordinals/Runes, Bitcoin L2s (Liquid, Stacks, Rootstock, RGB), covenant proposals (CTV, APO, BitVM), and node operations. Help me understand the actual mechanics with reference to real BIPs, real protocol code (rust-bitcoin, LDK, ord), and real production patterns.
Build a Taproot vault: cooperative key-path spend via MuSig2 aggregation of N keys (instant), plus a script-path recovery requiring 1 key after a 6-month CSV delay. Deploy to signet; demonstrate both paths. The cooperative spend should produce a 64-byte witness indistinguishable from a single-sig output; the recovery path should reveal exactly one script leaf + control block.
Build a single-user HD wallet from scratch (rust-bitcoin or python-bitcoinlib): BIP-39 seed -> BIP-32 derivation -> BIP-84 P2WPKH addresses -> coin selection (BnB with SRD fallback) -> PSBT building -> hardware-signing-compatible -> broadcast. Run on testnet. Export an output descriptor and confirm interoperability by reimporting into Sparrow Wallet.
Build a non-custodial Lightning mobile wallet using LDK or Breez SDK. Integrate with an LSP for JIT inbound liquidity. Demonstrate end-to-end receive and send: cold-start to first-pay UX under 5 seconds, JIT channel open on first receive, BIP-39 backup and restore. Run on signet or mainnet with small amounts. Code must be non-custodial: keys never leave the device.
Deploy a production-grade Bitcoin stack: bitcoind (archival, txindex=1) + ElectRS or Fulcrum + LND (or CLN) + monitoring via Prometheus + Grafana. Document operational runbooks and disaster recovery. Test the recovery: kill primary node; recover from backup in under 4 hours. Includes hot/cold key separation, hourly LN channel backups, and a tested DR drill.
Source of truth for all Bitcoin protocol changes. Used throughout.