I just necroposted to an
old thread in which Johnson Lau came up with a numbering system for satoshis, which I independently also came up with a decade later. I think it's worth giving its own thread, so I'll copy what I posted here:
So, funny story, in the beginning of 2022, I came up with the exact same scheme discussed in this thread. After I finished the scheme, I realized that it was basically serial numbers for satoshis, typed "satoshi serial numbers" into Google, and found this post. It feels natural extension to bitcoin, so it makes sense that multiple people have come up with it over the years.
I called it "ordinal theory" or "ordinals", because it uses order in multiple places:
- The order of satoshis in the supply of satoshis, for numbering
- The order of inputs and outputs of a transaction, for inheritance
- The order of transactions in a block, for inheritance of fees
I've spent the last year implementing it, so just 10 years after the OP, you can finally try it out!
The binary, written in Rust, is called
ord, and the code is on GitHub at
https://github.com/casey/ord.
I has a bunch of functionality:
- Conversion between different, equivalent, notations, including the raw integer notation, block.offset notation, names, and degree notation, which is based on relation to difficulty adjustments and halvings.
- An index that connects to a Bitcoin Core node instance and tracks the location of all sats.
- An NFT implementation which embeds NFT content in Taproot witnesses, assigning them to the first sat of the first output of the transaction, "inscribing" that sat with content
- A rarity system: common = not the sat of the block, uncommon = first sat of the block, rare = first sat after a difficulty adjustment, epic = first sat after a halving, legendary = first sat after a conjunction, which is the difficulty adjustment and the halving happening on the same block, which happens every 6 halvings, and mythic = first sat of genesis block.
- A naming system, which assigns unique names consisting of the letters a through z to each sat, basically base 26, but starting backwards, so that all short names aren't locked in the genesis block.
- A block explorer, with a signet instance hosted at https://signet.ordinals.com and a mainnet instance at https://ordinals.com. The block explorer supports search, try putting in different representations for a sat: 0, 0.0, satoshi, etc.
- A wallet, which can construct transactions to send particular sats and make and send inscriptions.
Everything is open source, permissively licensed, and independently developed, so try it out and let me know what you think! Keep in mind that this is still very much alpha software. We're as careful as possible developing it, but it hasn't been audited and may have bugs