Ever wondered what the bitcoin address of the code’s 2008 pre-release Genesis Block was? I did. And I’ve calculated it to be: 1K8SfPfTkvjF8YHGG134uQvjcdNDHM6UfB
Here’s what I did. To find out the address of the November 2008 pre-release Genesis Block’s address, we must first examine the source code for the pre-release and the final release Genesis Blocks and then walk through how the final release Genesis Block’s address of 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa was derived. I did that in the following way and I invite anyone to double check my work:
Genesis Block Final – Jan 3, 2009
GetHash() = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b txNew.vin[0].scriptSig = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854 txNew.vout[0].nValue = 5000000000 txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG block.nVersion = 1 block.nTime = 1231006505 block.nBits = 0x1d00ffff block.nNonce = 2083236893 CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1) |
Genesis Block Pre-Release 2008
GetHash() = 0x000006b15d1327d67e971d1de9116bd60a3a01556c91b6ebaa416ebc0cfaa646 hashPrevBlock = 0x0000000000000000000000000000000000000000000000000000000000000000 hashMerkleRoot = 0x769a5e93fac273fd825da42d39ead975b5d712b2d50953f35a4fdebdec8083e3 txNew.vin[0].scriptSig = 247422313 txNew.vout[0].nValue = 10000 txNew.vout[0].scriptPubKey = OP_CODESEPARATOR 0x31D18A083F381B4BDE37B649AACF8CD0AFD88C53A3587ECDB7FAF23D449C800AF1CE516199390BFE42991F10E7F5340F2A63449F0B639A7115C667E5D7B051D404 OP_CHECKSIG nTime = 1221069728 nBits = 20 nNonce = 141755 CBlock(hashPrevBlock=000000, hashMerkleRoot=769a5e, nTime=1221069728, nBits=20, nNonce=141755, vtx=1) CTransaction(vin.size=1, vout.size=1, nLockTime=0) CTxIn(COutPoint(000000, -1), coinbase 04695dbf0e) CTxOut(nValue=10000, nSequence=4294967295, scriptPubKey=51b0, posNext=null) vMerkleTree: 769a5e |
The Genesis block’s scriptPubKey is 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 which if you remove 0x at the beginning and read the hex right to left so that it starts with 04678A etc, you will get the public key of 04678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5F
1. Take the SHA-256 hash of that public key:
261C1EB21FC4708C6ACBE1CFC6D4565652E9E768B620782898936B93000A6C02
2. Take the RIPEMD-160 hash of that:
261C1EB21FC4708C6ACBE1CFC6D4565652E9E768B620782898936B93000A6C02
3. Prepend two zeroes to it:
0062E907B15CBF27D5425399EBF6F0FB50EBB88F18
4. Take the SHA-256 hash of that:
9B90F16DE7F0E580C07735DAC15FFE23E2F8F8E103914E509AA91913FFDB9FB6
5. Take the SHA-256 hash of that:
C29B7D937E3049E279391E62FDF00C12DEF7444013DDF6215808D10E9F2D5996
6. Add the first four bytes from #5 to line in #3:
0062E907B15CBF27D5425399EBF6F0FB50EBB88F18C29B7D93
7. Base58Check encode that:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (Genesis Block Address)
Ok now from the pre-release Genesis Block the scriptPubKey is 0x31D18A083F381B4BDE37B649AACF8CD0AFD88C53A3587ECDB7FAF23D449C800AF1CE516199390BFE42991F10E7F5340F2A63449F0B639A7115C667E5D7B051D404 so we remove the 0x and read the hex from right to left to get the public key of 04D451B0D7E567C615719A630B9F44632A0F34F5E7101F9942FE0B39996151CEF10A809C443DF2FAB7CD7E58A3538CD8AFD08CCFAA49B637DE4B1B383F088AD131.
1. Take the SHA-256 hash of that public key:
B2759160E42070D6C516A24AA583A34895F132D4841EB78D9E0582CB4E548131
2. Take the RIPEMD-160 hash of that:
C6DA98EA3485AEDC2D2D396E4ECF76A9D6D9F5A2
3. Prepend two zeroes to it:
00C6DA98EA3485AEDC2D2D396E4ECF76A9D6D9F5A2
4. Take the SHA-256 hash of that:
51C9C1D6938574F0685550F7EF79C7083CD7D1CBD06F3368BE4D7F0E54A71592
5. Take the SHA-256 hash of that:
672D26FA7DD6D3B8D7D7208E6C0C91FE9B903B9C394678B2227BEC8DA16A07C4
6. Add the first four bytes from #5 to line in #3:
00C6DA98EA3485AEDC2D2D396E4ECF76A9D6D9F5A2672D26FA
7. Base58Check encode that:
1K8SfPfTkvjF8YHGG134uQvjcdNDHM6UfB (Pre-release Genesis Block Address)
So 1K8SfPfTkvjF8YHGG134uQvjcdNDHM6UfB appears to be the pre-release genesis block’s bitcoin address. I didn’t use AI for this process, which between ChatGPT and Grok continued to give incorrect answers. Instead I went through the steps manually and then checked my work using this tool. If I have done this incorrectly, please contact me at @financeguy74 on X.