Unfortunately, physicists and mathematicians keep using Greek letters in their formulas, so we just have to learn them.
A helpful way to remember is to learn a bit of their history/pronunciation: Section "Historical correspondence between Latin and Greek".
To learn the greek letters if you have a base latin alphabet, you must learn the sound of each letter, and which Latin letters they correspond to.
Symbols that look like Greek letters but are not Greek letters:
Is Ciro Santilli crazy (he is, but for this point specifically), or do many/most Greek letters represent the mouth position used in the pronunciation of the letter?
Implementations:
- Python: github.com/alecalve/python-bitcoin-blockchain-parser/blob/c06f420995b345c9a193c8be6e0916eb70335863/blockchain_parser/utils.py#L41. Sample usage to extract 3 values from a
bytesobject:file, off = decode_varint(value) blk_off, off = decode_varint(value[off:]) tx_off, off = decode_varint(value[off:])
TODO who owns it? Are they reliable?
- transaction hex data: blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=hex
- disassembled transaction as JSON: blockchain.info/tx/930a2114cdaa86e1fac46d15c74e81c09eee1d4150ff9d48e76cb0697d8e1d72?format=json
- block by height:
This helper dumps a transaction JSON to a binary:
bitcoin-tx-out-scripts() (
# Dump data contained in out scripts. Remove first 3 last 2 bytes of
# standard transaction boilerplate.
h="$1"
echo curl "https://blockchain.info/tx/${h}?format=json" |
jq '.out[].script' tmp.json |
sed 's/"76a914//;s/88ac"//' |
xxd -r -p > "${h}.bin"
)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.pyThe scripts can be found in the blockchain at:
- uploader: tx 4b72a223007eab8a951d43edc171befeabc7b5dca4213770c88e09ba5b936e17 block 229991 reproduced at: gist.github.com/cirosantilli/ade4dde7c2f2f5020d792872681763e8The uploader creates a standard Pay-to-PubkeyHash transaction with a single output and data as a fake pubkey hash, and sends change to an address specified on the command line:
./bitcoinInsertionTool.py <data> <change-addr> - downloader: tx 6c53cd987119ef797d5adccd76241247988a0a5ef783572a9972e7371c5fb0cc block 229991 reproduced at gist.github.com/cirosantilli/e90bd2e6c3fab25a20898e61e3ab3e90The downloader just strips all operands, and keeps all data, notably where public key hashes would be normally put.
The uploader script uses its own cumbersome data encoding format, which we call the "Satoshi uploader format". The is as follows: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
- 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_CHECKMULTISIGpattern on every output script, so theOP_1andOP_3are 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.
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 we run: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.
.bitcon/bitoin.conf containing:rpcuser=asdf
rpcpassword=qwer
server=1
txindex=1git 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 \
6c53cd987119ef797d5adccd76241247988a0a5ef783572a9972e7371c5fb0ccOther 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.
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:
- chronologically
- by media type, e.g. images vs text
- by themes or events, e.g. the Prayer wars or Mt. Gox' shutdown
- encoding, e.g. AtomSea & EMBII vs raw images
Who said it was easy to be a museum curator!
Cool data embedded in the Bitcoin blockchain Nelson-Mandela.jpg analysis by
Ciro Santilli 40 Updated 2025-07-16
The toplevel transaction is 78f0e6de0ce007f4dd4a09085e649d7e354f70bc7da06d697b167f353f115b8e
The full concatenated payload contains the following ASCII characters:
8881a937a437ff6ce83be3a89d77ea88ee12315f37f7ef0dd3742c30eef92dba|396*8881a937a437ff6ce83be3a89d77ea88ee12315f37f7ef0dd3742c30eef92dba
575061146335bd57f2dc132112152d0eeea44cf187ea6a52ac02435a7e5bea44
674c7cc34ea44bb276c6caf76f2b28fa1597380ab6e6a6906076d8f7229ca5b3
8e2642416ad20924b43f51a633fa1c0a5ba8e4a7b631877db1c64540a42081c9
a3084018096b92af04df57b6116e01ff4b7c7e8bd228235ed49e23f4a2817029
39348722b841afa0c5b67e5af10839afe965ed1b24874e89336bea9fa4ef3091
tomSea & EMBIIOutput 2 is a change, so it contains no data and has been excluded. Change appear to be randomly placed in the list of output of the uploads, but they can be easily removed because they are the only output with a different value.
The newlines shown above are explicitly encoded as CR LF newlines with characters 0d 0a.
396 is the number of payload bytes between 396*8881a937a437ff6ce83be3a89d77ea88ee12315f37f7ef0dd3742c30eef92dba and the last txid 39348722b841afa0c5b67e5af10839afe965ed1b24874e89336bea9fa4ef3091, including newlines but exclusding the last line.Now let's inspect the transactions linked to from toplevel.
tx 8881a937a437ff6ce83be3a89d77ea88ee12315f37f7ef0dd3742c30eef92dba contains only payloads without any change. It starts with the following UTF-8 string with CR LF spaces;
"396\“There is nothing like returning to a place
that remains unchanged to find the ways in
which you yourself have altered.”
-Nelson Mandela
Nelson Rolihlahla Mandela was a South African anti-apartheid revolutionary, politician and philanthropist who served as President of South Afrd۽^2c'︨`ica from 1994 to 1999. -Wikipedia
Born: July 18, 1918, Mvezo, South Africa
Died: December 5, 2013This is immediately followed without any separator by a filename, and another size marker:then followed by all the
Nelson-Mandela.jpg?14400/14400 - len(Nelson-Mandela.jpg?) + len(/) JPEG bytes bytes, starting with the two JPEG file signature byte "FF D8".Further toplevel transaction payloads are then simply concatenated with the previous ones, until the last bytes of the image "FF D9" appears at the end of the payload.padded once again by an
00000430 d2 81 de 80 0c 52 f1 40 ea 29 68 03 ff d9 6f 6d |.....R.@.)h...om|
00000440 53 65 61 20 26 20 45 4d 42 49 49 00 |Sea & EMBII.|AtomSea & EMBII string fragment terminated by a NUL character. Cool data embedded in the Bitcoin blockchain Ordinal ruleset inscription porn by
Ciro Santilli 40 Updated 2025-07-16
These were found by running object detection software for some porn/nudity detection. We need to run some more, all sex was likely missed: github.com/GantMan/nsfw_model/issues/160
Vagina:
- ordinals.com/inscription/723d753d975cbae01b76fb09d827246ef023a46a408c6c452d22d63a6fed9e72i0 shaved closeup
- ordinals.com/inscription/7462bf4f967633efaaadf136c03bc2ad784941563330b593022d68a7c3460641i0 shaved from the front
- ordinals.com/inscription/8e92eb73fa2d0aa951cb860db29107f02d5c439e97254cde87679bb23fea9d27i0 stretch from the back
Dick photos:
- ordinals.com/inscription/3979478c4b9d0e008344cb7274b10ad9f5ea4d04604c97efc56909b825808d18i0 big white dick
- ordinals.com/inscription/8ae58911078f7aa0dfce457355498abc1a5bdd57f5b05525419466064c3e89c3i0 big-ish white dick small blonde guy. Likely gay porn.
- ordinals.com/inscription/dfb4213ac5a26d581cf6b6516bc8726e699ac632f0722c97eb48cfbe6b1e3eb6i0 hard dick
- big black dick Bitcoin memes
Anus:
- #668 ordinals.com/inscription/bb6f577e30e6840dce0474f3c3c55134404688e844982a49161502d3d69e322di0 male asshole open shock porn, this realtively early inscription got some attention:It happened soon after the notable Figure "Ordinal #652", and it likely tried to follow the surge of interest from its predecessor.
- ordinals.com/inscription/31d03361ca6bf998e0623763a87d2f776b33a50504bc3a9bbf128e96d97418b9i0 female open blackhole
Lingerie:
- bitcoinlambos.eth ads
- GenAI blondes in lingerie:
- ordinals.com/inscription/41250e039f9f1fdf9a05a3775d1a94a35bb46481a66687570f5db98ab7d00501i0 serious white bikini
- ordinals.com/inscription/bc361a8978e309d3c5b4212f35c48c74396315ee4c10a7e2f17427264d3178c6i0 Jenna Jameson 80's style photo shoot at at the beach. More at www.forumophilia.com/topic462690.html.
- ordinals.com/inscription/647b0cafe5a6fc545e40b6c1bab910c43adfe6b372fee0cc65d0aef9e470d820i0 Bitcoin carnival dress? What are the fruits behind and what is written in the back?
Sexy illustrations:
- ordinals.com/inscription/beeff78be2939caa9491b7588a6c3822b40b7e00d74190db1838ae9e0845b761i0 The Source by Jean-Auguste-Dominique Ingres (1856). Classical painting woman with pot.
- ordinals.com/inscription/890fc1226d6ac2dbcd54c8a9292581b903c2ab85f1eec8a0b0951bb32f88a173i0 genai cartoon futuristic big boobs
- ordinals.com/inscription/343699e12e3239357f42eab428a60591b9a40599ce57dfffe29709ed103f426di0 vagina apples
- ordinals.com/inscription/3bc21aa658a36c4e26a1c2631ac280e101d7167ee3fa19debadeb44cff0a9535i0 sexy drawing in lingerie
- ordinals.com/inscription/1a30aef623eac0dad6fc6759dc7c963266cda44ce43cece420bc41a07734b3cdi0 bikini selife onlyfans
- The "Astral Babes" Ordinal ruleset inscription collection magiceden.io/ordinals/marketplace/astral-babes hits positive for breasts and is a pain in the butt:
- ordinals.com/inscription/bd1705c52b601ab93b7e82c07477fed89568e3ebd4719ddf41d73c8be57c2d65i0
- ordinals.com/inscription/bd1705c52b601ab93b7e82c07477fed89568e3ebd4719ddf41d73c8be57c2d65i0
- ordinals.com/inscription/c7cd91355f7306c72d4d69f073f07f089689b7f790fb1c8595ac59eaed115af5i0
- ordinals.com/inscription/4322bcce78f05bb280337892954cce24948c9e0a90cb486c9734f90beae14811i0
Cool data embedded in the Bitcoin blockchain Technically interesting ordinal by
Ciro Santilli 40 Updated 2025-07-16
This section is about ordinals that are interesting primarily due to technical reasons linked to edge cases of the protocol.
Interesting MIME types:
- ordinals.com/inscription/dad86d722156b8c384c1f3243e40aa7a0f6f5be496bc24e19485831584f9803fi0: mime type is an UTF-8 orange emoji "🟠"
- ordinals.com/inscription/bc7b86245159cdf8bc63489687909f766a0a0e08279d23fb077cdd60ab1e9f22i0: mime type is an XSS attempt:
<script>alert('xss in content type')</script> tx=bc7b86245159cdf8bc63489687909f766a0a0e08279d23fb077cdd60ab1e9f22 - ordinals.com/inscription/bc7b86245159cdf8bc63489687909f766a0a0e08279d23fb077cdd60ab1e9f22i0: mime type is "FuckYou"
- ordinals.com/inscription/00b0ece72217ce49b637b3f9bf5335bc245e588568aa0676581b40c1bedc521di0: the mime is a long JSON. However, it does appear to be a valid feature as it rendered specially on ordinals.com.
Different
ord markers:- 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5 uses
takingnames. Decode with:gives the PNG of the wireframe draing of a washing machine with transparent background.bitcoin-core.cli decodescript "$(bitcoin-core.cli getrawtransaction 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5 true | jq -r '.vin[0].txinwitness[1]')" | jq -r .asm | sed 's/.* 0 //;s/ OP_ENDIF//;s/ //g' | xxd -r -p > 71e85885522047240a9e70542145dbf2385e1bd468e6ac6002aa755422ea10f5.png
Pinned article: Introduction to the OurBigBook Project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 3. Visual Studio Code extension installation.Figure 4. Visual Studio Code extension tree navigation.Figure 5. Web editor. You can also edit articles on the Web editor without installing anything locally.Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.Video 4. OurBigBook Visual Studio Code extension editing and navigation demo. Source. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact





