Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix: Quick Reference

A. BIP Standards Summary

BIPNamePurpose
BIP 32HD WalletsDeterministic key derivation from seed
BIP 39MnemonicHuman-readable seed words
BIP 44Multi-AccountStandard derivation paths
BIP 84Native SegWitDerivation for P2WPKH
BIP 86Taproot Single KeyDerivation for P2TR key-path
BIP 340Schnorr SignaturesSignature algorithm for Taproot
BIP 341TaprootOutput and spending rules
BIP 342TapscriptScript rules for Taproot
BIP 174PSBTPartially Signed Bitcoin Transactions format

B. Common Derivation Paths

PathNetworkType
m/44'/0'/0'MainnetLegacy P2PKH
m/49'/0'/0'MainnetWrapped SegWit P2SH-P2WPKH
m/84'/0'/0'MainnetNative SegWit P2WPKH
m/86'/0'/0'MainnetTaproot P2TR
m/86'/1'/0'Testnet/SignetTaproot P2TR

C. Script Opcodes Reference

OpcodeHexDescription
OP_00x00Push empty byte array
OP_1-OP_160x51-0x60Push numbers 1-16
OP_RETURN0x6aMarks output as unspendable
OP_DUP0x76Duplicate top stack item
OP_EQUAL0x87Compare top two items
OP_EQUALVERIFY0x88Equal then verify (fails if not equal)
OP_CHECKSIG0xacVerify signature
OP_CHECKSIGADD0xbaVerify and add to counter (Tapscript)
OP_CHECKLOCKTIMEVERIFY0xb1Absolute Time/Block lock (CLTV)
OP_CHECKSEQUENCEVERIFY0xb2Relative Time/Block lock (CSV)

D. Size Reference

ComponentSize
Private key32 bytes
Public key (compressed)33 bytes
Public key (x-only)32 bytes
Schnorr signature64 bytes
ECDSA signature~71-72 bytes (DER encoded)
P2TR output script34 bytes (OP_1 + push32 + key)
Outpoint36 bytes (txid 32B + vout 4B)
Value (Amount)8 bytes (int64)
Block Header80 bytes

E. Essential RPC Commands

CommandCategoryDescription
getblockchaininfoNetworkStatus of chain, sync progress, and active soft forks.
getnewaddressWalletGenerates a new address (type depends on wallet config).
listunspentWalletReturns array of UTXOs owned by the wallet.
createrawtransactionRawCreates an unsigned TX hex from inputs and outputs.
signrawtransactionwithwalletWalletSigns inputs using keys found in the wallet.
sendrawtransactionNetworkBroadcasts a signed TX hex to the P2P network.
testmempoolacceptDebugValidation check (dry-run) for a transaction without broadcasting.
scantxoutsetBlockchainScans UTXO set for specific descriptors (useful for recovering funds).
TXID32 bytes

E. Tagged Hash Tags ✅

TagUsage
“TapLeaf”Hash of a script in the Taproot tree
“TapBranch”Combine two child hashes
“TapTweak”Compute the tweak value
“TapSighash”The signature message
“BIP0340/challenge”Schnorr signature challenge
“BIP0340/aux”Auxiliary randomness
“BIP0340/nonce”Nonce generation

F. Glossary (Validated Against bitcoincore.academy) ✅

TermDefinition
UTXOAn unspent transaction output that can be spent as an input in a new transaction with a valid ScriptSig
MempoolCollection of valid transactions learned from P2P network but not yet confirmed in a block
ConfirmationOnce a transaction is included in a block, it has one confirmation. Six or more is considered sufficient proof that a transaction cannot be reversed
ConsensusWhen several nodes have the same blocks in their locally-validated best block chain
Consensus RulesThe block validation rules that full nodes follow to stay in consensus
ScriptBitcoin uses a scripting system that is Forth-like, simple, stack-based, and processed left to right. Purposefully not Turing-complete
ScriptPubKeyScript included in outputs which sets conditions for spending those satoshis
ScriptSigData generated by a spender to satisfy a pubkey script
HD ProtocolHierarchical Deterministic key creation and transfer protocol (BIP-32)
CKDChild key derivation functions - compute child extended key from parent and index
PSBTPartially Signed Bitcoin Transaction format (BIP 174, BIP 370)
CPFPChild-Pays-For-Parent - pay high fee to incentivize confirming parent transaction
RBFReplace-by-fee - replacements must pay for their own cost plus the fee of replaced transactions
DustAn output so small that spending it costs more in fees than it’s worth

G. Wallet Component Structure ⚠️

Per bitcoincore.academy/components-overview.html:

graph TD
    subgraph WalletStructure["Wallet Structure"]
        CW["CWallet"]
        WDB["WalletDatabase"]
        SPKM["ScriptPubKeyMan (base)"]
        DSPKM["DescriptorScriptPubKeyMan"]
        LSPKM["LegacyScriptPubKeyMan"]
        SP["SigningProvider"]
        IC["Interfaces::Chain"]
        LOCK["cs_wallet (lock)"]
    end
    
    CW --> WDB
    CW --> SPKM
    SPKM --> DSPKM
    SPKM --> LSPKM
    DSPKM --> SP
    LSPKM --> SP
    CW --> IC
    CW --> LOCK
ComponentPurpose
WalletDatabaseRepresents a single wallet, handles reads/writes to disk
ScriptPubKeyManBase class for SPKM implementations
DescriptorScriptPubKeyManSPKM for descriptor-based wallets
LegacyScriptPubKeyManSPKM for legacy wallets
SigningProviderInterface for a KeyStore to sign transactions from
Interfaces::ChainAccess to chain state, fee rates, notifications, tx submission
cs_walletPrimary wallet lock for atomic operations

This curated guide was validated against bitcoincore.academy on January 30, 2026. For the most current information, always consult the official Bitcoin Core documentation and source code.