The bot watches every new Bitcoin block and posts on X and Nostr when one of these events happens:
A Bitcoin transaction has no "amount sent". It spends whole earlier outputs, its inputs, and creates new outputs. When the inputs add up to more than the sender wants to pay, the rest goes back to the sender as change, in one of the new outputs.
The bot counts a transaction's outputs, except those that go back to an address that is also one of its inputs. Whale alerts use this amount, rounded down to whole BTC. The BTC moved on-chain in the daily summary adds it up for every transaction of the day, including the new coins paid to miners.
Leaving out outputs to an input address removes the change that is easy to recognise, which would otherwise make a transaction look much larger than it is. Telling change from a payment any further means guessing, so the bot doesn't: change sent to a new address is counted as moved. The amount can therefore be more than was actually paid to someone else, but it is the same every time and anyone can check it from the transaction.
Dormant coin posts are different: their amount is the total of the old coins the transaction spends.
Dormant coins are bitcoin that have sat unspent for a long time. The bot posts when a transaction spends coins that haven't moved for at least 10 years, but only if the addresses holding them haven't spent anything else in that time, so an address in regular use that happens to hold an old coin doesn't count. The post says how long the oldest of the coins sat still and, when the bot has the price for the days they were received, what they were worth then.
Coins that have been dormant this long are often described as lost, but the blockchain can't tell lost coins from coins that are simply being held. An unspent output looks exactly the same whether its keys are in a safe or on a hard drive in a landfill. Long-term holders keep coins in cold storage on purpose, keys turn up again in old backups and forgotten wallets, heirs inherit them, and coins mined in Bitcoin's first years still move from time to time, more than a decade later. Each dormant coins post is about coins that could have been counted as lost the day before. Estimates of how much bitcoin is lost are guesses, based mostly on how long coins have been dormant.
The only coins known to be gone for good are burned coins, sent to an output that can never be spent. An
OP_RETURN output is unspendable by the rules of the protocol, and the 50 BTC reward of the
genesis block can't be spent either. Coins sent to burn addresses, made up without a private key, such as
1BitcoinEaterAddressDontSendf59kuE,
are as good as burned, since finding a key for one is practically impossible. Any other coins could move in the
next block.
From the bot's own Bitcoin node, which runs Bitcoin Core 32.1.0. The node downloads every block from the Bitcoin network and checks it against the consensus rules itself. The bot reads the blocks directly from the node, so it doesn't depend on a block explorer or anyone else's API for this data.
The bot only reports on a block once the next block has been mined on top of it. Posts and this site are therefore always one block behind the latest one, which usually means a delay of about 10 minutes.
The wait is there because the newest block isn't final. Two miners sometimes find a block at nearly the same time, and the network soon keeps one and drops the other. Once another block has been built on top, it's very unlikely that the block below it will be replaced, so the bot almost never reports on a block that later disappears.
X charges extra for posts that contain links, and Nostr doesn't. Posts on X show the transaction ID instead, as
txid: followed by the ID. To see the transaction, paste the ID into mempool.space or another block
explorer, or use the link on the timeline.
Prices are in US dollars and come from two exchanges, using the timestamp of the block. From Coinbase, the bot takes the closing price of the last full minute before that time, and from Kraken, the first trade at or after it. It averages the two and rounds to the nearest dollar. If only one exchange has a usable price, it uses that one.
A block's timestamp is set by its miner and can be slightly ahead of the actual time. In that case, the bot uses the price from a minute ago. The 24-hour changes compare this price with the same calculation for 24 hours before the block.
If you find the bot useful, you can send bitcoin to
3Muzah8bLvUBgRx7Xa71obeSDnR4efqJQb.