Cool data embedded in the Bitcoin blockchain Updated +Created
This is a collection of cool data found in the Bitcoin blockchain using techniques mentioned at: Section "How to extract data from the Bitcoin blockchain". Notably, Ciro Santilli developed his own set of scripts at github.com/cirosantilli/bitcoin-inscription-indexer to find some of this data. This article is based on data analyzed up to around block 831k (February 2024).
Drop some Bitcoins at 3KRk7f2JgekF6x7QBqPHdZ3pPDuMdY3eWR if you are loaded and like this article in order to support some much needed higher educational reform: Section "Sponsor Ciro Santilli's work on OurBigBook.com".
When this kind of non-financial data is embedded into a blockchain some people called an "inscription". The study or "early" inscriptions had been called a form of "archaeology"[ref][ref]. Since this is a collection of archeological artifacts, we call it a "museum"!
One really cool thing about inscriptions is that because blockchains are huge Merkle trees, it is impossible to censor any one inscription without censoring the entire blockchain. It is also really cool to see people treating the Bitcoin blockchain basically like a global social media feed!
Starting on December 2022, ordinal ruleset inscriptions took the bitcoin blockchain by storm, and dwarfed in volume all other previous inscriptions. This museum focuses mostly on non-ordinals, though certain specific ordinal topics that especially interest he curators may be covered, e.g. Ordinal ruleset inscription porn and ordinal ASCII art inscription.
Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014) is a mandatory precursor to this article and contains the most interesting examples of the time. But much happened since Ken's article which we try to cover. This analysis is also a bit more data oriented through our usage of scripting.
Artifacts can be organized in various ways:
In this article we've done a mixture of:
  • themes: if multiple items fall in a theme, we tend to put it there first
  • then by media type if they don't fit any specific theme
  • then by encoding
  • and finally chronologically within each section
Who said it was easy to be a museum curator!
AtomSea & EMBII Updated +Created
An upload system for various media types includeing text, images, HTML pages and audio.
bitfossil.org is an indexer website created by EMBII for it.
Each AtomSea payload has a toplevel transaction which links to other transactions. All the linked transactions together make up the payload. The most common payload type is a text plus image, as is the case of Nelson-Mandela.jpg, which can be seen at bitfossil.com/78f0e6de0ce007f4dd4a09085e649d7e354f70bc7da06d697b167f353f115b8e/ where 78f0e6de0ce007f4dd4a09085e649d7e354f70bc7da06d697b167f353f115b8e is the toplevel transaction ID: www.blockchain.com/btc/tx/78f0e6de0ce007f4dd4a09085e649d7e354f70bc7da06d697b167f353f115b8e
See Section "Nelson-Mandela.jpg" for a detailed reverse engineering of the format, and Section "AtomSea & EMBII data format" for a summary of it.
Holy crap, they actually support:
apertus.io/ is the system to upload/index locally, and therefore likely part of the backend of bitfossil: github.com/HugPuddle/Apertus
The system shows the messages and the images on a single page: bitfossil.org/4cbb32cd27b5b5edc12d3559bdffc1355ac2a210463d5cfaadc7ce9b06675b2b/index.htm It is basically a blockchain-based Twitter.
Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014) suggests that AtomSea & EMBII are the creator's aliases. The following online profiles of the creators feel authentic:Tried saying hi to them at: twitter.com/cirosantilli/status/1382080760774033415 and they replied: twitter.com/AllenVandever/status/1563964396656812034
Somewhat related projects:
At twitter.com/EMBII4U/status/1762501350997233976 (2024) EMBII mentions that he was inspired by the Satoshi uploader.
Custom encoded images of unknown source Updated +Created
Figure 1.
bitcoin.jpg
. Source.
A bitcoin logo on block 123573 (2011-05-13).
This is the very first ASCII string to show up at github.com/cirosantilli/bitcoin-inscription-indexer after only the Genesis block message.
This version of the image was just ripped from Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014).
Reconstructing it should likely be a simple matter of copy pasting the ASCII yEnc encoding present in the two transactions from tx ceb1a7fb57ef8b75ac59b56dd859d5cb3ab5c31168aa55eb3819cd5ddbd3d806 into a text file and decoding the yEnc, but after searching for 20 minutes Ciro couldn't find a working yEnc decoder on Ubuntu 21.10. How can a format be so dead, even after considerable extensive use in the Usenet??? It makes you think about life.
As mentioned by Ken, the logo is split across two transactions: ceb1a7fb57ef8b75ac59b56dd859d5cb3ab5c31168aa55eb3819cd5ddbd3d806 and 9173744691ac25f3cd94f35d4fc0e0a2b9d1ab17b4fe562acc07660552f95518.
There appears to be nothing strictly linking the two transactions, besides that they are very close by and the only ASCII strings around back in those pre-infinite-spam days, as can be seen at: github.com/cirosantilli/bitcoin-inscription-indexer/blob/master/data/out/0123.txt#L11, so you could just see both of them by eye.
Also the first one starts with:
=ybegin line=128 size=8776 name=bitcoin.jpg
and the second one ends in:
=yend size=8776 crc32=a7ac8449
so this is likely clearly part of the yEnc format for someone who knows it, and the filename bitcoin.jpg gives the file format.
They are not even in the same block:both from 2011-05-13. Also note that they ended up being committed reverse order, since you don't have a strict order control over the final blockchain.
Figure 2.
v27sSra.jpg
.
An image of a dozen people siting at a dinner table, with each person identified by a Twitter handle that was edited in.
This image is present tx 4be3a833ee83b4ca7d157d60fbf7411f7528314ce90df8a844f855118bc6ca11 from block 357239 (2015-05-20), an input transaction.
It contains a base 64 encoded image:
v27sSra.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDACgcHiMeGSgjISMtKygwPGRBPDc3PHtYXUlkkYCZlo+A
...
TAkBaMxbbhuYXGDMyXw/MIV84IqrE//Z
...
By manually copy pasting that into a file v27sSra.base64 we can obtain the image with:
base64 -d <v27sSra.base64 >v27sSra.jpg
The exact same content appears to be present on the next input transaction 56d23a230042c094bc54bb72fc4c10a3f26750030b9927994e741d3689f5c09e on the same block.
Google reverse image search leads to freedom-to-tinker.com/2015/05/21/the-story-behind-the-picture-of-nick-szabo-with-other-bitcoin-researchers-and-developers/ The story behind the picture of Nick Szabo with other Bitcoin researchers and developers by Arvind Narayanan (2015), in which Arvind (@random_walker) who attended the meeting clearly lists all names and handles, and talks about the background of gathering of Bitcoin devs that happened in March 2014. The article also contains a higher resolution version of the image uploaded to the blockchain.
It also links to a popular Reddit thread that contains the image from May 2015: www.reddit.com/r/Bitcoin/comments/36hfu4/pic_coredevs_having_dinner_with_nick_szabo/
Googling v27sSra.jpg leads to bitcointalk.org/index.php?topic=1061926.220;wap "New York Times identifies Nick Szabo as Satoshi Nakamoto" which links to i.imgur.com/v27sSra.jpg so this is a Satoshi Nakamoto-real-identity thing.
Illegal content of block 229k Updated +Created
These can be viewed at bitcoinstrings.com/blk00052.txt and are mostly commented on the "Wikileaks cablegate data" section of Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014).
Soon after block 229991 uploaded the Satoshi uploader, several interesting files were added to the blockchain using the uploader, and notably some containing content that might be illegal in certain countries, as a test to see if this type of content would make the Bitcoin blockchain illegal or not:
So basically, this was the first obviously illegal block attempt.
None of this content is particularly eye-popping for Ciro Santilli's slightly crazy freedom of speech standards, and as of 2021, the Bitcoin blockchain likely hasn't become illegal anywhere yet due to freedom of speech concerns.
Furthermore, it is likely much easier to find much worse illegal content by browsing any uncensored Onion service search engine for 2 minutes.
Ciro Santilli estimates that perhaps the uploader didn't upload child pornography, which is basically the apex of illegality of this era, because they were afraid that their identities would one day be found.
Bibliography:
Rickrolling Updated +Created
Rickrolling lyrics were mined several times into the blockchain.
The first currently known instance is as a link right during the prayer wars on block 142573 (2011-08-25) as the miner message:
Militant atheists, bit.ly/naNhG2 -- happy now?"
which redirects to www.youtube.com/watch?v=mGDuExhS6Nw&blockchain
Around block block 246k (e.g. 27b7c526489dac8245747fa1c425a2e3eb07dea57b294eb4ae583fec9b859fcf, 2013-10-17) we note several transactions starting with a XML format <CG SZ="1156"><MG>... the first one being 0b4efe49ea1454020c4d51a163a93f726a20cd75ad50bb9ed0f4623c141a8008 As mentioned not very clearly at www.righto.com/2014/02/ascii-bernanke-wikileaks-photographs.html#ref12 the content of the first <MG><payload></MG> is a Base64 encoded string
Catagory: Poetry
Title: Never Gonna Give You Up
Performer: Rick Astley
Writer: Mike Stock, Matt Aitken, Pete Waterman
Label: RCA Records
followed by lyrics also base64 encoded as part of the XML metadata. Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014) was not able to identify the exact format either. At twitter.com/EMBII4U/status/1655831533750562816 EMBII mentions that this was part of an upload test.
tx 15b11e8d4e5b9425f024b381ba0cb7a54a35e52389bb4855f505772ce685b39c (2014-06-24): starting from this transaction, the lyrics were inscribed several times via input scripts. Then again:
  • 8bb9db70e24202fdfd0e48b57a11a407e6c8c0e76d879634b801b4345b8810b2
  • b881afa519804a3c93a3c99481517ca8ae070b84c04e8e7a2bfb808e043f9771
  • 70c8405bd0ec10bea49b78a819dfbf46c1082e7e620588f9da65a90b71e52bbd
  • fc4e382793757858bec4b87527caa4bf2e6f71bb2f5a77bb41a45ddb9ed9d409
  • f011e71b711aa54a0c824244fff83fb8b1e1921804624fa0523a6e61612b7f6f
  • a8691cdbca5b82e4e48812e48b7a09e4757801fd3909a09975de957d1bfb52dc
  • d8946aa464be464674bba6d15729d75572ec75dda49fe7ff0ede1a25ca054941
  • d02864cd57c9d041dbd9d6f24327f347b92697a8bc3c86cdf8b738063c6ad002
  • 9b78962d840f1ff681e5042264e4d0359cda98ce49d97569df14ce956622b966
  • 7bdc22fb35f0a8eb6241782a306a8904fb6f793126ff106a04a96f9f223cb8e1
  • e24a4085c54a6362e615f8eab758c12d80e488b73757e6d2b8ab6bfc8be7007e
  • 4257f4980955d8376ee1c6bccb4396da726e4ae13d758e47dc4e0775019723f5
  • a09b49e9374d43386a6a986944e3dcf515c7e1c38324836df5333b8adbe57797
  • 03096688dbb874f7c571691e4241a298284bf4184be339b148f1b48f383a1d7c
  • 62f8b228b6126354736d36d9f3b91882bb81eca7702b74fba6471abc7db96a03 (2015-09-30)
They were mega obnoxious!!! Who does this kind of crap for more than one year!!!
Text Updated +Created
Here are some exceptionally interesting text inscriptions that are not mentioned in other sections:
1759ed3f0f5829711157c1fc3662f4bf01f3bee3a430242bc729898bb77c2a4a
TODO:
  • 55a5d0c09ad5535711d649fdab394add3bb6e50cc2c49920cf0cb758ff0b69e8 via cryptograffiti.info contains what seems to be a ASCII table tracking train movements? Maybe from a train lover? But also curiously, it is GPG signed:
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    time    direction    # covered    #uncovered    notes
    11/11/2013 6:31pm    E    4    1    csx 6243
    11/19/2013 4:46pm    E    3    0    csx 6215
    11/19/2013 5:44pm    W    4    0    Amtrak
    11/21/2013 4:05pm    E    0    0    csx 6206
    Interesting.
    86c1b7bd8bbdd8903355a8f6a408616621fd2ea4321b9aced778f388afe0b244 has something similar.
  • cc38d740dc1999a803dbba0c48a82af994861e0767f6bcd7d6ceebe4e66b4678 via cryptograffiti.info contains a pipe dream technical proposal idea entitled:
    Attack-resistant decentralized time and location services via Nakamoto chain consensus.
  • 5d9ef37e6beea5342ce1cb2681a7b465a542394aeda2b1e1fed00fab44b17833 via cryptograffiti.info contains a test of every character from 0 to 255, e.g. some of the readable characters are:
    65:              A
    66:              B
    67:              C
    68:              D
    69:              E
    70:              F
    71:              G
    72:              H
    73:              I
    74:              J
    75:              K
    76:              L
    77:              M
    d5f6614b4e3bdc611c8ad15f158163e48e1a1298ea5f5f9832ada8db6e2dd4b2 has something similar.
  • 0f96b2f6e3c4f4b6319efbafd2e7148d507b260b4d7914766e79aec7d9ac9574 via cryptograffiti.info has a long-ish message that looks like a software release note, not sure what it is about:
    Truecrypt 7.1a
    ==============
    
    2015-07-19
    
    I am setting the filesizes and checksums of the last Truecrypt version (7.1a) in stone.
  • 206a0edb11ba0677248709d9bc5210b35e8a03710d9bb19c6f1e4e254bf21f5e via cryptograffiti.info has a letter to AGI:
    Dear Artificial Intelligence,
    While cute, the author clearly underestimates the magnitude of singularity!
  • cdbeb50c11b788fa4e67e00fb2e2607b129492a4a38bed0a9e31443a42e272a4 via cryptograffiti.info contains a semi-philosophical text that starts with:
    When in the course of cosmic evolution,
  • b55c3312ceeeb4ab422b658f5f4d5884775a498ddde6a527fca7b67752e1b044 via cryptograffiti.info contains some wedding vows starting with and GPG-signed:
    Zachary Thomas Smith,
    I give myself - Jenna Marie Vaziri - to you, to be your wife, your best friend, and your home - just as you are to me.
  • 3620da027df2e2e34ac9abe0123dcd7217fc5b8dec9921cbae258c640c7a6591 via cryptograffiti.info contains a neatly formatted UTF-8 ad with a link to: bitcointalk.org/index.php?topic=1033773.0
    ╭───────────────────────────────────────────────────────────────────────────╮
    │    B&C EXCHANGE:  A decentralized cryptocurrency exchange for everyone    │
    ┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┥
    │             https://bitcointalk.org/index.php?topic=1033773.0             │
    │                                                                           │
    │ B&C Exchange will be an open-source decentralized exchange that completes │
    │ cryptocurrency  trades between  users by utilizing multisig signers  that │
    │ compete for blockchain  rewards based on their effectiveness and honesty. │
    ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
    ┆          ▷▶▷▶    There are 10 days  left in the auction!    ◀◁◀◁          ┆
    ╰───────────────────────────────────────────────────────────────────────────
    The thread links to bcexchange.org/ which is dead as of 2024.
    f93e128c59b357ca2d1b256eb1c4d991c488da460527ca0898dc789210073bd2 has another one:
    ┏━━ UTF-8 is coming to CryptoGraffiti.info!!! ━━┓
    ┠╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┨
    ┃ I love you.                          Σ΄αγαπώ. ┃
    ┃               Ma armastan sind.               ┃
    ┃ Aš tave myliu.               Mä rakastan sua. ┃
    ┃                 Я люблю тебя.                 ┃
    ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  • 140562ceb42fc8943fa52ccc0ddbb11ca2d88dae9b5240d7a4b46864538c515a
    Reddit on the Bitcoin blockchain Test
    TODO understand this part:
    The "Address" you see above is more than a bitcoin address? For example, the web address to this 
    
    reddit thread is: https://www.reddit.com/r/Bitcoin/comments/3cdxep/reddit_on_the_blockchain_test/
    
    Which converts to the bitcoin address of:
    12uPLj6PSz6ULnZi1jXo7Ch1Je1SuqxRcE
    
    How? Because any text, like a web address, can be converted into a bitcoin address.
    
    www.reddit.com = 1MZCEUCtyJCDkNSLYbPVvAgf9V3CsEw3t
    www.google.com = 1JEZLaFciACHDEMVd3RXZzPmGcsWEwYQLr
    www.voat.com = 1JvCp9X5Bvvt2kz3EqP5ppkzX62sKgKbqr
    www.paystamper.com = 14wgeaWz2rKax8iVSWNFSrSsAYNeGyNdkt
    Duriel@paystamper.com = 1HcuhfTAiQCt6KdMG2rZLXsTcKYj9nLDhS
  • 940f41f5cc96182c1392c239d7570f94bd524e141ca0a88fdb154bd817049f83.bin via cryptograffiti.info contains some links to profiles controlled by a "Daniel Michael Abraham" www.linkedin.com/in/daniel-abraham-9432a798/. Other messages by him:
    • 3d39024fa0cddfc529d4a41501df7a076f5bcf9a7a43f88f54a717e6df7f4770
    • 088ebf7ffdef96b8fcac7eafa2ff6d04f295ea24f159e1ce4b7d47ed7b91b1f9
Satoshi uploader Updated +Created
By "Satoshi uploader" we mean the data upload script present in tx 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17 of the Bitcoin blockchain.
The uploader, and its accompanying downloader, are Python programs stored in the blockchain itself. They are made to upload and download arbitrary data into the blockchain via RPC.
These scripts were notably used for: illegal content of block 229k. The script did not maintain its popularity much after this initial surge up loads, likely all done by the same user: there are very very few uploads done after block 229k with the Satoshi uploader.
Our choice of name as "Satoshi uploader" is copied from A Quantitative Analysis of the Impact of Arbitrary Blockchain Content on Bitcoin by Matzutt et al. (2018) because the scripts are Copyrighted Satoshi Nakamoto on the header comment, although as mentioned at Hidden surprises in the Bitcoin blockchain by Ken Shirriff (2014) this feels very unlikely to be true.
A more convenient version of those scripts that can download directly from blockchain.info without the need for a full local node can be found at: github.com/cirosantilli/bitcoin-inscription-indexer/blob/master/download_tx_consts.py by using the --satoshi option. E.g. with it you can download the uploader script with:
./download_tx_consts.py --satoshi 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17
mv 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17.bin uploader.py
The scripts can be found in the blockchain at:
The uploader script uses its own cumbersome data encoding format, which we call the "Satoshi uploader format". The is as follows:
  • ignore all script operands and constants less than 20 bytes (40 hex characters). And there are a lot of small operands, e.g. the uploader itself uses format www.blockchain.com/btc/tx/4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17 has a OP_1, data, OP_3, OP_CHECKMULTISIG pattern on every output script, so the OP_1 and OP_3 are ignored. I.e., it is P2FMS.
  • ignore the last output, which contains a real change transaction instead of arbitrary data. TODO why not just do what with the length instead?
  • the first 4 bytes are the payload length, the next 4 bytes a CRC-32 signature. The payload length is in particular useful because of possible granularity of transactions. But it is hard to understand why a CRC-32 is needed in the middle of the largest hash tree ever created by human kind!!! It does however have the adavantage that it allows us to more uniquely identify which transactions use the format or not.
This means that if we want to index certain file types encoded in this format, a good heuristic is to skip the first 9 bytes (4 size, 4 CRC, 1 OP_1) and look for file signatures.
Let's try out the downloader to download itself. First you have to be running a Bitcoin Core server locally. Then, supposing .bitcon/bitoin.conf containing:
rpcuser=asdf
rpcpassword=qwer
server=1
txindex=1
we run:
git clone git://github.com/jgarzik/python-bitcoinrpc.git
git -C python-bitcoinrpc checkout cdf43b41f982b4f811cd4ebfbc787ab2abf5c94a
wget https://gist.githubusercontent.com/shirriff/64f48fa09a61b56ffcf9/raw/ad1d2e041edc0fb7ef23402e64eeb92c045b5ef7/bitcoin-file-downloader.py
pip install python-bitcoinrpc==1.0
BTCRPCURL=http://asdf:qwer@127.0.0.1:8332 \
  PYTHONPATH="$(pwd)/python-bitcoinrpc:$PYTHONPATH" \
  python3 bitcoin-file-downloader.py \
  6c53cd987119ef797d5adccd76241247988a0a5ef783572a9972e7371c5fb0cc
worked! The source of the downloader script is visible! Note that we had to wait for the sync of the entire blockchain to be fully finished for some reason for that to work.
Other known uploads in Satoshi format except from the first few:
  • tx 89248ecadd51ada613cf8bdf46c174c57842e51de4f99f4bbd8b8b34d3cb7792 block 344068 see ASCII art
  • tx 1ff17021495e4afb27f2f55cc1ef487c48e33bd5a472a4a68c56a84fc38871ec contains the ASCII text e5a6f30ff7d43f96f61af05efaf96f869aa072b5a071f32a24b03702d1dcd2a6. This number however is not a known transaction ID in the blockchain, and has no Google hits.