PEARL orphan blocks

An orphan block is a validly-mined block that lost a chain race — two miners produced a block at the same height almost simultaneously, the network picked the other one, and yours got reorganised out. The miner gets nothing. Pearl has had 1,227 orphans tracked since we started watching, and Lord Of Pearls is the only explorer that recovers the miner address from the orphan's coinbase by parsing the raw block hex.

The miner most affected lately is prl1pc8suq…xpfy — they've had 59 blocks orphaned in the tracked window.

Recent orphans

HeightDetectedMinerLost rewardHash
#427103m agoprl1pjzksh…qkht−2,844 PRL9c4cfc01…260c
#427058m agoprl1pedact…hxvr−2,844 PRL5fb1b9a0…93e7
#427028m agoprl1pp634n…ek59−2,844 PRL7bdcdaf1…223b
#427029m agoprl1pc8suq…xpfy−2,844 PRLacd887cd…e7ac
#4269216m agoprl1pd060q…jtj8−2,844 PRL6567e714…ffb9
#4269216m agoprl1p0rhaw…93kj−2,844 PRLdcc8cdca…ef8b
#4269119m agoprl1phrzrh…qt36−2,844 PRL61a09909…998e
#4269021m agoprl1p9lkq3…xk7x−2,844 PRLcc4cc432…4b78
#4268522m agoprl1prytc6…gl6t−2,844 PRL22ae76e9…f297
#4266046m agoprl1prytc6…gl6t−2,844 PRL9d688615…b088
#426421h agoprl1prytc6…gl6t−2,844 PRL020e4e8b…871b
#426381h agoprl1prgs9v…z78v−2,844 PRL233b1b5b…3cf1
#426371h agoprl1pr6yeu…rht3−2,844 PRLc8c5e9bb…e9b1
#426371h agoprl1pxpyv9…n3ph−2,844 PRLf2695ac0…1c34
#426341h agoprl1prytc6…gl6t−2,844 PRL5b0cf9f3…94bc
#426331h agoprl1pfpjsn…mxla−2,844 PRLf1b29d4c…e116
#426301h agoprl1p58wvm…j64d−2,844 PRL1340cf38…678b
#426281h agoprl1pdk7hx…t77p−2,844 PRL1d91f0c6…ceca
#426161h agoprl1ppdx75…hkuz−2,845 PRL912c2194…c742
#426071h agoprl1pkydzj…44gl−2,845 PRL60e041fb…c3be
#426071h agoprl1p48dh3…36c3−2,845 PRL650f9875…cca2
#426061h agoprl1prytc6…gl6t−2,845 PRL49473bd8…dd0a
#426061h agoprl1pktzen…kdva−2,845 PRL94cf424e…37bf
#425992h agoprl1pz9qkr…ju30−2,845 PRLc25243ad…6893
#425922h agoprl1pts526…z09t−2,845 PRL33e69b90…6dca
#425902h agoprl1pkwmnw…8s9m−2,845 PRLf283affd…73fc
#425742h agoprl1pm29pz…elm4−2,845 PRLb24a9b98…8f56
#425732h agoprl1pesjz3…r73m−2,845 PRL4ea5fc6f…8a50
#425622h agoprl1pdt5n3…l7n7−2,845 PRL06332bed…5765
#425582h agoprl1pp634n…ek59−2,845 PRL01b47003…5379

Why orphan blocks happen

Two miners, on opposite sides of the world, find a valid block at the same height within ~50ms of each other. Both broadcast their block to the network. Half the network sees one first, half sees the other — the chain temporarily forks. The next block to be mined picks a side, and within a few seconds every node converges on the longer chain. The losing block is now an orphan.

Orphans aren't a bug. They're a natural consequence of physics — light takes ~70ms to cross the planet, and block-finding is a memoryless Poisson process, so very-near-simultaneous wins are inevitable. The orphan rate is a function of network propagation speed and block frequency, not miner correctness.

Why miners care

An orphaned block is a lost block reward. At the current ~2,845 PEARL per block, every orphan costs the miner roughly $X (depending on PEARL price). For solo miners on rented GPUs that already operate on tight margins, even one orphan per day swings profitability noticeably. Knowing your orphan rate is a debugging signal — if you're losing more than the network average, your gateway latency, peer connections, or template-fetch loop probably needs tuning.

How miner attribution works

The Pearl full node returns -32603: not in main chain when you ask for an orphan block via the standard getblock RPC at verbosities 1 or 2. So most explorers can't show you who mined an orphan.

Lord Of Pearls works around this: we fetch the raw block hex via getblock <hash> 0 (which DOES work for orphans), then locate the coinbase transaction by its unique prevout signature (32 zero bytes followed by 0xFFFFFFFF — appears exactly once per block, in the coinbase tx's vin0). From there we forward-parse just that single tx, send its hex back to decoderawtransaction, and read the miner's address from the first non-OP_RETURN output.

The result: every orphan block on Pearl now has its miner address attributed, even the ones from before we started running this code. The historical backfill walked through every existing orphan after deploy.

Live updates

The dashboard home page shows the latest 3 orphans always-visible, with a "Show all" expander for the rest. New orphans appear within seconds of being detected. The full list refreshes every 5 seconds.