An epic satoshi is the first satoshi mined in the first block after a halving. They are exceedingly rare. Three have been mined, and there is one epic sat per 6,336,854 BTC in circulation.
-
-
A rare satoshi is the first satoshi mined in the first block after a difficulty adjustment period. They are very rare. 361 have been mined, and there is one epic sat per 52,423 BTC in circulation.
-
-
An uncommon satoshi is the first satoshi mined in every block. They are moderately rare. More than 730,000 have been mined, and there is one rare sat per 26 BTC in circulation.
-
-
There is only one elusive satoshi, that with ordinal number 623624999999999. Why is left as an exercise to the reader.
-
-
All sats mined in block 124724 are cursed. Again, figuring out why is left as an exercise to the reader.
-
-
A repeater satoshi's ordinal number consists of repititions a single digit, for example, 777777777, or 3333. They are extremely rare. 137 have been mined, or one per 138,138 BTC in circulation.
-
-
A round satoshi's ordinal number has many trailing zeros. The more, the rarer. To reflect this, the bounty for round satoshies is variable.
-
-
An intelligible satoshi is one whose name is an word or sentence. The code mapping ordinals to names is here.
-
-
-
-
Rules
-
-
-
Find an ordinal qualifying for a bounty.
-
Make sure that the bounty has not already been claimed by verifying that no transactions have been sent to the bounty address.
-
Send a transaction that sends the ordinal to the bounty address.
There are no ordinal wallets or transaction construction libraries. However, ordinal theory is extremely simple. A clever hacker should be able to write code to manipulate ordinals in no time.
-
-
Extremely rare ordinals are nearly impossible to find. However, there are ways that an enterprising indivdual of limited means can still obtain rare sats.
-
-
Round and intelligible sats are the easiest to find. You might want to start with them.
-
-
Each of the bounty addresses is an Opendime, so we don't accidentally lose any rare sats that are sent to us.
-
-
For more information about ordinals, check out the main page for an overview, or the BIP for the technical details.
-
-
Satoshi was the oridinal developer of ordinal theory. However, he knew that others would consider it heretical and dangerous, so he hid his knowledge, and it was lost to the sands of time. This potent theory is only now being rediscovered. You can help by researching rare ordinals.
Last big project was Agora, a server for selling downloads for Lightning
-Network payments
-
-
Why ordinals?
-
-
Wanted a simple protocol for assets on Bitcoin
-
Don’t require any modification to the protocol
-
Aesthetically appealing, so particularly well-suited for art
-
-
What are ordinals?
-
Ordinals are just serial numbers for satoshis
-
They start at 0, and go up to 1,906,077,499,999,999 (so far!)
-
Are transferred with a simple first-in-first-out algorithm
-
[2] [1] [3] → [4] [2]
-
-
[a b] [c] [d e f] → [? ? ? ?] [? ?]
-
-
[a b] [c] [d e f] → [a b c d] [e f]
-
-
What about fees?
-
[2] [1] [3] → [4]
-
-
[a b] [c] [d e f] → [a b c d]
-
-
[SUBSIDY] [e f] → [SUBSIDY e f]
-
-
Specification
-
# subsidy of block at given height
-def subsidy(height):
- return 50 * 100_000_000 >> height // 210_000
-
-# first ordinal of subsidy of block at given height
-def first_ordinal(height):
- start = 0
- for height in range(height):
- start += subsidy(height)
- return start
-
-# assign ordinals in given block
-def assign_ordinals(block):
- first = first_ordinal(block.height)
- last = first + subsidy(block.height)
- coinbase_ordinals = list(range(first, last))
-
- for transaction in block.transactions[1:]:
- ordinals = []
- for input in transaction.inputs:
- ordinals.extend(input.ordinals)
-
- for output in transaction.outputs:
- output.ordinals = ordinals[:output.value]
- del ordinals[:output.value]
-
- coinbase_ordinals.extend(ordinals)
-
- for output in block.transaction[0].outputs:
- output.ordinals = coinbase_ordinals[:output.value]
- del coinbase_ordinals[:output.value]
-
-
What are ordinals good for?
-
If you want a token, you can just pick and ordinal to represent your token, and
-use the location of the ordinal to represent ownership.
-
The person who controls the private key that corresponds to the public key of
-the UTXO that contains the ordinal is the current owner of the token.
Not having to make weird multi-step transactions to avoid hitting the dust
-limit
-
Being efficient with block space
-
Very high divisibility
-
Small databases
-
-
Ordinal NFTs
-
-
Hash: (ordinal || content hash || public key)
-
Sign
-
Append signature, data, and then bech32 encode
-
Et voilà: nft1qqz3psl8mvjm9t573n29l8q0phklcdhg65392pv0gpc79tydeujltn5g2h4fsg...
-
-
Ordinal NFTs
-
-
No on-chain transaction to mint
-
Store the NFT wherever
-
Anyone who has access to the NFT will know the secret, hidden meaning of the
-ordinal.
-
-
Ordinal NFT Upgrades: Issued by ordinal owner
-
-
Currently, anyone can assign an NFT to an ordinal.
-
This strikes some people as weird, like digital graffiti.
-
In the future, may want to give some special status, like “self-issued” if the NFT is signed with a public key that held the ordinal.
-
-
Ordinal NFT Upgrades: Timestamping
-
-
Age is of great interest to NFT collectors
-
Including a timestamp in an NFT is an easy way to prove the age of an NFT
-
-
Ordinal NFT Upgrades: Publicity
-
-
Timestamps prove that an NFT was created before a particular time
-
Timestamps don’t prove that there wasn’t anything that was created earlier
-
It might be desirable to add a public issuance method, i.e. one where the chain can be scanned for such issuences, and a total ordering to be established over them
-
Very reluctant to do this, since this kind of embedding of public data in the Bitcoin blockchain is not very aesthetically pleasing or culturally acceptable to bitcoiners
At the moment, ordinals are a fun art project. There are no wallets or markets, and there might never be. Or, they might explode in popularity and take over the world. Who can say?
-
-
Check out this blog post for some rare ordinal theory, and then the bounties page for a little ordinal treasure hunt.
-
-
A slide deck with mostly the same content as this page is available here, and and in NFT minting party video presentation form here.
-
-
What are ordinals?
-
- Ordinals are numbers, like this: 804766073970493. Every satoshi, which is ¹⁄₁₀₀₀₀₀₀₀₀ of a bitcoin, has an ordinal, and every ordinal has a satoshi. When a satoshi changes hands, so does its ordinal. There are a lot of satoshis, and so there are a lot of ordinals. Two quadrillion ninety-nine trillion nine hundred ninety-nine billion nine hundred ninety-seven million six hundred ninety thousand, to be precise.
-
-
What can ordinals do?
-
- Ordinals can be used for anything needing a public, persistent, transferable, decentralized identity. This includes NFTs, accounts, stablecoins, PKI, and more. For more ideas, see the BIP.
-
-
What are ordinals not?
-
- Ordinals are not a side chain, do not require any changes to the bitcoin protocol, and are extremely simple.
-
-
How do ordinals come into existence?
-
- Since ordinals map one-to-one to satoshis, new ordinals are created in the same way that new satoshis are created, by miners. Miners don't need to do anything special to create ordinals.
-
- Every block creates new satoshis. These new satoshis are known as the block subsidy. Each new satoshi in each block subsidy is assigned an ordinal, which is just a number, in the order in which it is mined. So, the genesis block subsidy, which created 50 BTC, or 5,000,000,000 satoshis, contains ordinals 0 through 4,999,999,999, and the second block subsidy, which was also worth 50 BTC, contains ordinals 5,000,000,000 through 9,999,999,999.
-
-
How are ordinals transferred?
-
- Ordinals are transferred the same way that bitcoin is transferred, with bitcoin transactions. Bitcoin transactions have a bunch of inputs, which is bitcoin being sent, and a bunch of outputs, which are the bitcoin being received. Each output and each input has a value in satoshis.
-
- Ordinals transfer in first-in-first-out order. This means that you go through the ordinals in the inputs to a transaction, in order, and assign each ordinal to outputs, in order.
-
- Let's imagine a transaction with three inputs and two outputs. The inputs are on the left of the arrow and the outputs are on the right, all labeled with their values:
-
-
[2] [1] [3] → [4] [2]
-
- Now let's label the same transaction with the ordinals that each input contains, and question marks for each output ordinal. Ordinals are long numbers, so let's use letters to represent them:
-
-
[a b] [c] [d e f] → [? ? ? ?] [? ?]
-
- To figure out which ordinal goes to which output, go through the input ordinals in order and assign each to a question mark:
-
-
[a b] [c] [d e f] → [a b c d] [e f]
-
- What about fees, you might ask? Good question! Let's imagine the same transaction, this time with a two satoshi fee. Transactions with fees send more satoshis in the inputs than are received by the outputs, so to make our transaction into one that pays fees, we'll remove the second output:
-
-
[2] [1] [3] → [4]
-
- The ordinals, e and f now have nowhere to go in the outputs:
-
-
[a b] [c] [d e f] → [a b c d]
-
- So go to the miner who mined the block as fees. The BIP has more details, but in short, fees paid by transactions are treated as extra inputs to the coinbase transaction, and are ordered how their corresponding transactions are ordered in the block. The coinbase transaction of the block might look like this:
-
-
[SUBSIDY] [e f] → [SUBSIDY e f]
-
-
Where can I read the nitty-gritty technical details?