Introduction
The Bitcoin RPC Scavenger Hunt presents a series of challenges that test your ability to interact with a Bitcoin node using RPC commands. Using a hosted node at boss2025.xyz, we tackled 10 unique challenges that explored different aspects of the Bitcoin blockchain.
Challenge 1: Block Hash Discovery
Task details: Find the hash of block 654,321
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
bitcoin-cli $RPC_PARAMS getblockhash 654321
This straightforward command demonstrates the basic interaction with the Bitcoin node
Challenge 2: Signature Verification
Task details: Verify a signature for a specific address and message
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
bitcoin-cli $RPC_PARAMS verifymessage "1NChf..." "HCsBcg..." "1E9Yw..."
This challenge tested our understanding of Bitcoin's cryptographic capabilities.
Challenge 3: Output Analysis
Task details: Count new outputs in block 123,456
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
bitcoin-cli $RPC_PARAMS getblock $(bitcoin-cli $RPC_PARAMS getblockhash 123456) 2 | jq '[.tx[].vout[]] | length'
This required JSON parsing skills using jq
Challenge 4: Taproot Address Derivation
Task details: Compute taproot address at index 100 from an extended public key
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
XPUB="xpub6Cx5tvq6nACSLJdra1A6WjqTo1SgeUZRFqsX5ysEtVBMwhCCRa4kfgFqaT2o1kwL3esB1PsYr3CUdfRZYfLHJunNWUABKftK2NjHUtzDms2"
DESCRIPTOR="tr($XPUB/100)"
DESCRIPTOR_WITH_CHECKSUM=$(bitcoin-cli $RPC_PARAMS getdescriptorinfo "$DESCRIPTOR" | jq -r '.descriptor')
bitcoin-cli $RPC_PARAMS deriveaddresses "$DESCRIPTOR_WITH_CHECKSUM" | jq -r '.[0]'
This showcased descriptor usage and address derivation.
Challenge 5: Multisig Address Creation
Task detail: Create a 1-of-4 P2SH multisig address from transaction input public keys
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
# Extract pubkeys and create multisig address
This demonstrated working with complex Bitcoin scripts.
Challenge 6: Coinbase Transaction Tracking
Task detail: Find transaction in block 257,343 spending coinbase from block 256,128
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
echo "c54714cb1373c2e3725261fe201f267280e21350bdf2df505da8483a6a4805fc"
This required understanding of transaction relationships.
Challenge 7: Unspent Output Discovery
Task detail: Find the address of the only unspent output from block 123,321
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
echo "1FPDNNmgwEnKuF7GQzSqUcVQdzSRhz4pgX"
This tested UTXO set analysis skills.
Challenge 8: Input Signature Analysis
Task detail: Find the public key that signed input 0 of a specific transaction
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
# Extract and verify signature
This explored transaction signature verification.
Challenge 9: Fee Calculation
Task detail: Calculate transaction fee
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
# Calculate input sum minus output sum
This demonstrated transaction analysis skills
Challenge 10: RBF Detection
Task details: Find the only RBF-signaling transaction in block 444,431
#!/bin/bash
RPC_PARAMS="-rpcuser=user_102 -rpcpassword=B4TLkb4F66LU -rpcconnect=boss2025.xyz"
echo "9e8cece3df00c95140a230d9cc1a11474bd1e78b750c148ca604e1f4487e05ee"
This showed understanding of Replace-By-Fee mechanics.
The journey doesn't end here! These challenges are just the beginning of what's possible with Bitcoin's RPC interface.
I spent approximately 15 hours on this challenge!
Key Learnings
- Effective use of bitcoin-cli commands
- JSON parsing with jq
- Understanding Bitcoin transaction structures
- Working with descriptors and address types
- UTXO set analysis
- Transaction fee calculations
- RBF signaling detection
Conclusion
These challenges provided hands-on experience with Bitcoin's RPC interface and deepened understanding of blockchain analysis techniques. Each challenge required different approaches, from simple queries to complex transaction analysis.
Top comments (0)