Bitcoin Forum
June 14, 2025, 03:43:59 AM *
News: Latest Bitcoin Core release: 29.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Creating a Bitcoin Cold Wallet by Hand: My Experiment (External Feedback Welcom  (Read 87 times)
Userjznefbazjefo (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
June 07, 2025, 04:54:21 PM
 #1

 Creating a Bitcoin Cold Wallet by Hand: My Experiment (External Feedback Welcome!)

Hello everyone!

I've embarked on a fascinating experiment: creating a Bitcoin "cold wallet" from A to Z, without ever connecting to the internet. My goal is to secure my monthly DCA (Dollar Cost Averaging) in Bitcoin, maintaining full control over my funds and storing them for the very long term.
 IMPORTANT WARNING: THIS IS AN EXPERIMENT!

This is NOT a professional tutorial or security advice. It's a personal test I'm sharing to get feedback and be challenged by the community. I'm eagerly awaiting external input to refine or even invalidate this process (especially regarding Step 3) before potentially applying it to my own funds.

If you attempt to replicate these steps, you do so at your OWN RISK. I cannot be held responsible for any loss of funds or data resulting from the application of this method.

    This approach is absolutely not suitable for regular transactions, as it involves delicate manipulations and the temporary exposure of private keys.
    If you plan to make frequent transactions, a hardware wallet is by far the safest and most practical solution for most people.
    My objective here is solely to "stack" (accumulate) my satoshis for the long term, minimizing internet interactions.

What is an HD Wallet and Why This Method?

I've chosen to explore the creation of a Hierarchical Deterministic (HD) wallet. Simply put, an HD wallet is generated from a series of words (your "seed" or "recovery phrase"). From this seed, you can derive a master public key, which in turn can generate an infinite number of public addresses.

The huge advantage? No one can assess the value of your Bitcoin holdings if they don't have access to your master public key (or your seed). This is a robust method for storing your funds with full confidentiality and autonomy, without relying on a platform.
Step 1: Generating the Entropy for Your Private Key (The 24 Words)

A Bitcoin key is a random sequence of 256 bits (0s and 1s) plus an 8-bit "checksum". The checksum helps verify the integrity of your key.

To generate this random sequence as disconnected as possible, the idea is to use a "physical" method:

    Take a die and roll it 256 times.
    Note the result: if the roll is even, it's a "1"; if it's odd, it's a "0".
    You will thus obtain a 256-bit sequence.

I recommend structuring this neatly on a piece of paper. There are guides explaining how to organize these rolls and note them efficiently.
Next, to convert these bits into words, you'll use the BIP39 standard. Focus on converting the first 23 words. The 24th word, which corresponds to the checksum, will be automatically generated in the next step. Here's a link explaining the process: (https://bitcoinmagazine.com/culture/diy-bitcoin-private-key-project)

Manually transforming these bits into words isn't strictly necessary since the tool we'll use later will do it automatically. However, doing it manually for the first 23 words can be reassuring and helps you better understand the process of translating bits into words according to the BIP39 standard.
Step 2: Transforming Your "Seed" into Bitcoin Addresses (Offline!)

Well done if you've made it this far! Now, we're going to use a tool to transform your (almost complete) "seed" into your master public key and your addresses.

The security principle here is crucial: Find an old computer, phone, or tablet that you are willing to never connect to the internet again once you've used it for this process. It will become your dedicated "Bitcoin calculator."

    Secure Tool Transfer: From a connected computer, download the file for Yann Colman's tool (or another reputable and verified open-source tool for offline Bitcoin key generation). Carefully verify the checksum (hash) of the downloaded file to ensure it hasn't been corrupted or tampered with. Then, transfer it to your "offline" device (e.g., via a USB stick, without ever connecting the device to the internet).
    Entropy Input: Launch the tool on your disconnected device. Input your 256 bits of entropy that you generated in Step 1.
    24-Word and Checksum Generation: The tool should automatically display your 24 BIP39 words. The 24th word will be the automatically calculated checksum. If your bit conversion is correct, you will find your first 23 words and the missing word corresponding to the checksum. You now have your complete 24-word recovery phrase (seed)!
    Master Public Key and First Address Retrieval: In Yann Colman's tool (or similar), look for the BIP84 section (for more efficient Native SegWit addresses, starting with "bc1q"). Carefully note down the master public key (it will start with zpub) and a corresponding first public address (as well as the private key for that address, solely for the tests in Step 3).

Step 3: Testing Your Wallet

This is the most delicate step, where we'll verify that everything works, but with extreme precautions.

    "Watch-Only" Import: On a hot wallet software (like Electrum on a connected computer), import your master public key in "watch-only" mode. This means you'll be able to see transactions and balances for all addresses derived from this key, but without ever being able to spend the funds.

    Address Verification: Ensure that Electrum generates the same addresses as Yann Colman's tool for the first few addresses.

    Fund Transfer for Test: Send a small amount of Bitcoin (truly tiny!) to the very first address you noted with Yann Colman's tool.

    Importing the Test Private Key (with caution): This option is simpler but introduces a security risk, even if the address is not intended for future use.
        Note down the private key corresponding to the first test address from your offline device.
        On a "hot" wallet software (like BlueWallet on your phone or Electrum on your connected PC), temporarily import this single private key.
        Use this wallet to create and sign the transaction sending the funds from the test address to another address.
        Once the transaction is confirmed, immediately delete this private key from the hot wallet.


If the funds are successfully transferred and the transaction is confirmed on the blockchain, this is irrefutable proof that your HD wallet is functioning correctly. You've validated key generation, address derivation, and the ability to sign transactions!

Step 4: Securing and Future Use

    The Seed is Sacred: Your 24-word phrase is your seed. It is the cornerstone of your wallet. Write it down on a durable medium (metal, laminated paper) in multiple copies and store them in secure, distinct locations.
    Offline Device Cleanup: Close Yann Colman's application on your dedicated device. If possible, perform a factory reset of the device. In any case, make sure it never connects to the internet again. It can remain your "Bitcoin calculator" tool if you need to generate new addresses in the future, but always offline.
    Never Use the Test Address Again: Since its private key was handled (even if only for a test), it is imperative to never send funds to this first address again. Always use new addresses generated by your Electrum wallet (in watch-only mode) to receive your future DCA.

Spending Your Bitcoins in the Future

The day you wish to spend your funds, I believe it would be wise to acquire a hardware wallet. You can import your 24-word seed into the hardware wallet. It will sign your transactions securely, without ever exposing your seed to a connected computer. This is the safest way to spend funds from cold storage.

That's my process. I'm genuinely eager for your feedback, opinions, and constructive criticism on its feasibility, security, and potential improvements. My goal is to be challenged on this method!
hosemary
Legendary
*
Offline Offline

Activity: 2800
Merit: 6238



View Profile
June 07, 2025, 07:32:38 PM
Merited by ABCbits (2)
 #2

Step 1: Generating the Entropy for Your Private Key (The 24 Words)
The series of 24 words you are talking about is called seed phrase, not private key.
And it may worth mentioning that a seed phrase doesn't necessarily include 24 words.


A Bitcoin key is a random sequence of 256 bits (0s and 1s) plus an 8-bit "checksum". The checksum helps verify the integrity of your key.
A bitcoin key?
Do you mean a seed phrase?


Next, to convert these bits into words, you'll use the BIP39 standard. Focus on converting the first 23 words. The 24th word, which corresponds to the checksum, will be automatically generated in the next step.
This is not true.
Each word represents 11 bits and that means that not all bits of the 24th word are checksum.

If you have the first 23 words of a 24 word seed phrase, there would be 8 possibilities for the last word.


   Secure Tool Transfer: From a connected computer, download the file for Yann Colman's tool (or another reputable and verified open-source tool for offline Bitcoin key generation).
Do you mean iancoleman.io?


The day you wish to spend your funds, I believe it would be wise to acquire a hardware wallet. You can import your 24-word seed into the hardware wallet. It will sign your transactions securely, without ever exposing your seed to a connected computer. This is the safest way to spend funds from cold storage.
You don't have to import your seed phrase into a hardware wallet, if you want to make a transaction from your cold wallet without your private keys connecting to the internet.
You can create an unsinged transaction on your online device and then sign it on your offline device (preferably to be air-gapped).

▄███████████████████▄
████████████████████████

██████████▀▀▀▀██████████
███████████████▀▀███████
█████████▄▄███▄▄█████
████████▀▀████▀███████
█████████▄▄██▀██████████
████████████▄███████████
██████████████▄█████████
██████████▀▀███▀▀███████
███████████████████████
█████████▄▄████▄▄████████
▀███████████████████▀
.
 BC.GAME 
███████████████
███████████████
███████████████
███████████████
██████▀░▀██████
████▀░░░░░▀████
███░░░░░░░░░███
███▄░░▄░▄░░▄███
█████▀░░░▀█████

███████████████

███████████████

███████████████

███████████████
███████████████
███████████████
███████████████
███████████████
███░░▀░░░▀░░███
███░░▄▄▄░░▄████
███▄▄█▀░░▄█████
█████▀░░▐██████
█████░░░░██████

███████████████

███████████████

███████████████

███████████████
███████████████
███████████████
███████████████
███████████████
██████▀▀░▀▄░███
████▀░░▄░▄░▀███
███▀░░▀▄▀▄░▄███
███▄░░▀░▀░▄████
███░▀▄░▄▄██████

███████████████

███████████████

███████████████

███████████████

DEPOSIT BONUS
.1000%.
GET FREE
...5 BTC...

REFER & EARN
..$1000 + 15%..
COMMISSION


 Play Now 
nc50lc
Legendary
*
Offline Offline

Activity: 2814
Merit: 7285


Self-proclaimed Genius


View Profile
June 08, 2025, 08:02:57 AM
Merited by ABCbits (2)
 #3

   Secure Tool Transfer: From a connected computer, download the file for Yann Colman's tool (or another reputable and verified open-source tool for offline Bitcoin key generation).
Do you mean iancoleman.io?
At first, I though it's caused by translation issue since the OP looks like translated,
So I checked his post history and it's indeed an English translation of this (his own topic): https://bitcointalk.org/index.php?topic=5546060.0
But to my surprise, it's also "Yann Colman" in the original.

Perhaps speech-to-text tool?

That's my process. I'm genuinely eager for your feedback, opinions, and constructive criticism on its feasibility, security, and potential improvements. My goal is to be challenged on this method!
Aside from misused terms and a few wrong facts in your experiment's article,
Its security is pretty solid for being generated from physical entropy (dice) and the calculations and derivations done on an Air-Gap system with verified open-source tool.

For starters, you'd want to call:
  • Random Sequence (from your dice) = "Entropy", not the Seed.
  • Your 24 words = "Seed Phrase" or "Mnemonic Seed", not the Seed.
  • PBKDF2 function result from the Seed Phrase = "Seed", which will be used to generate the Master Private Key.

Cricktor
Legendary
*
Offline Offline

Activity: 1162
Merit: 2452



View Profile
June 08, 2025, 12:08:37 PM
Last edit: June 08, 2025, 12:41:44 PM by Cricktor
Merited by nc50lc (1)
 #4

Your dice needs to be reasonably fair. You can also derive your initial entropy (128 or 256 bits) from every individual number of your dice rolls 1...6. Every single roll of a fair dice contributes log2(6)≈2.585 bits, thus you need 50 rolls for 128 bits and 100 rolls for 256 bits of entropy.

You can also throw a coin and use the following procedure which would also be secure if the coin or it's throws were somewhat biased: you throw a coin at least twice for every bit of entropy; head-head or tails-tails is always discarded; head-tails is 1 and tails-head is 0 or vice-versa but you stick to one scheme and don't switch in between!
(See also https://en.wikipedia.org/wiki/Fair_coin where the counting of coin tosses is decribed slightly different, but the end result is the same as how I described it.)


   Importing the Test Private Key (with caution): This option is simpler but introduces a security risk, even if the address is not intended for future use.
        Note down the private key corresponding to the first test address from your offline device.
        On a "hot" wallet software (like BlueWallet on your phone or Electrum on your connected PC), temporarily import this single private key.
        Use this wallet to create and sign the transaction sending the funds from the test address to another address.
        Once the transaction is confirmed, immediately delete this private key from the hot wallet.
I see this as a completely flawed attempt and it makes your cold wallet be not cold anymore because you expose a private key to an online "hot" wallet which is completely unnecessary. You can't really make your now not-cold-anymore wallet cold again by deleting private keys from the hot wallet (you can't be sure if your online hot wallet environment is truely and absolutely secure).

If you insist in a test transaction, you can create an unsigned transaction in your hot watch-only wallet, transfer it safely (not by network!) to your cold offline wallet and sign it there. You wouldn't be able to sign it if something doesn't match with your public keys and your private keys. Once signed you transfer your transaction securely from your cold wallet to your online hot wallet to broadcast it.

For your secure cold wallet to remain cold, you never ever expose the private keys to an online environment.

hd49728
Legendary
*
Offline Offline

Activity: 2492
Merit: 1199



View Profile
June 08, 2025, 12:22:10 PM
 #5

You can create your wallet manually without any software but why do you need this method while  you can easily have access to open source, non custodial wallet softwares that have been proven in both quality and security.

You can do this for learning and like practicing what you learn about Bitcoin and math behinds it.
How can I generate a Bitcoin address using a pen and a paper?

After trying, you can test on how to recover that wallet with available softwares and tools like icoleman, but do this offline.
The FinderOuter, a bitcoin recovery tool.

▄▄███████████████████▄▄
▄███████████████████████▄
████████▀░░░░░░░▀████████
███████░░░░░░░░░░░███████
███████░░░░░░░░░░░███████
██████▀░░░░░░░░░░░▀██████
██████▄░░░░░▄███▄░▄██████
██████████▀▀█████████████
████▀▄██▀░░░░▀▀▀░▀██▄▀███
███░░▀░░░░░░░░░░░░░▀░░███
████▄▄░░░░▄███▄░░░░▄▄████
▀███████████████████████▀
▀▀███████████████████▀▀
 
 CHIPS.GG 
▄▄███████▄▄
▄████▀▀▀▀▀▀▀████▄
███▀░▄░▀▀▀▀▀░▄░▀███
▄███
░▄▀░░░░░░░░░▀▄░███▄
▄███░▄░░░▄█████▄░░░▄░███▄
███░▄▀░░░███████░░░▀▄░███
███░█░░░▀▀▀▀▀░░░▀░░░█░███
███░▀▄░▄▀░▄██▄▄░▀▄░▄▀░██
▀███
░▀░▀▄██▀░▀██▄▀░▀░██▀
▀███
░▀▄░░░░░░░░░▄▀░██▀
▀███▄
░▀░▄▄▄▄▄░▀░▄███▀
▀█
███▄▄▄▄▄▄▄████▀
█████████████████████████
▄▄███████▄▄
███
████████████▄
▄█▀▀▀▄
█████████▄▀▀▀█▄
▄██████▀▄▄▄▄▄▀██████▄
▄█████████████▄████████▄
████████▄███████▄████████
█████▄█████████▄██████
██▄▄▀▀▀▀█████▀▀▀▀▄▄██
▀█████████▀▀███████████▀
▀███████████████████▀
██████████████████
▀████▄███▄▄
████▀
████████████████████████
3000+
UNIQUE
GAMES
|
12+
CURRENCIES
ACCEPTED
|
VIP
REWARD
PROGRAM
 
 
  Play Now  
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!