XMR20alpha mining explorer updates docs

XMR20 / Mining pool · Block 3,799,494 · 5 November 2026

We mined the largest transaction in Monero’s history.

One transaction. 599,000 bytes. No fees, almost no reward. Inside it: a 21-second music video from 1987, stored byte for byte in the coinbase transaction and now carried by every Monero node. The pool has stopped mining for now; the block stays.

Largest block ever 599,000bytes Previous record 569,375 bytes, January 2021. 5.2% larger, 1,000 bytes under the protocol maximum.
Largest transaction ever 599,000bytes This block has only one transaction, carrying our 598 KB video. The next largest we know of is 142,983 bytes; ours is 4.2 times bigger.
Largest tx_extra ever 598,945bytes 565 times the 1,060-byte relay limit. The largest before it was the Bee Movie Mordinal: 141,490 bytes, March 2023.
Reward given up 0.596XMR Oversized blocks are penalised. We kept 0.003993 of the 0.6 XMR reward, a 99.3% penalty.

What’s inside the block

The inscribed video, exactly as stored on chain. Its on-chain title: “XMR20 introduction”.

  • 598,000 bytes
  • video/mp4
  • H.264 · 320 × 240 · 25 fps
  • AAC stereo
  • 21.52 s

SHA-256d8bc3647700fc9c07f6d5ea37bc6d4328ffa0d5c1a888b614116769380e3be6c

Download the exact bytes

This copy was extracted from the block. The button fetches the block from a public Monero node in your browser, decodes the coinbase, checks the hash and plays those bytes instead.

tx_extra, decoded

598,945 bytes in three parts, and almost all of it is the video. Hover a part to find it in the bytes.

01 51 28 7b 0d d8 02 0b 9b 56 28 8b dc 44 26 a6 f3 ff db 80 96 0c 33 8f a3 7b 0c e7 6c 83 d8 10 59 02 08 05 00 00 00 ea 55 ba 2b de f2 c6 24 58 4d 52 32 30 56 49 44 45 4f 31 dd 00 00 00 7b 22 62 79 74 65 73 22 3a 35 39 38 30 30 30 2c … 00 00 00 20 66 74 79 70 69 73 6f 6d 00 00 02 00 … 597,984 more bytes 00 00 00 00 00 00 00 00 … 654 more zero bytes
  1. Transaction key33 bytesEvery Monero transaction has one.
  2. Mining nonce10 bytesScratch space the miner changes while it searches for the block.
  3. Video field598,902 bytesOne field. The three parts below are inside it.
    1. Label and details240 bytes“XMR20VIDEO1”, then the title, size and SHA-256 shown below.
    2. The video598,000 bytesThe original MP4, byte for byte.
    3. Padding662 bytesZeros, so the block comes out at exactly 599,000 bytes.

The details, as inscribed

{
  "bytes": 598000,
  "mime": "video/mp4",
  "network": "mainnet",
  "op": "inscribe",
  "p": "xmr20",
  "profile": "coinbase-video",
  "sha256": "d8bc3647700fc9c07f6d5ea37bc6d4328ffa0d5c1a888b614116769380e3be6c",
  "title": "XMR20 introduction",
  "v": 1
}

How we did it

  1. Find the one door that is open. Monero caps an ordinary transaction at 149,400 bytes and nodes refuse to relay one with more than 1,060 bytes of tx_extra. The coinbase transaction, the one a miner writes to pay itself, has no limit of its own. It only has to fit the block, and a block may grow to twice the median of recent blocks: 600,000 bytes. So the only way to put 598 KB on Monero in one piece is to mine the block yourself.
  2. Build the block by hand. Our pool software builds its own block templates. Each one carried a 599,000-byte coinbase: the MP4 in a stock 0xDE field, 662 zero bytes of padding, and the reward computed from Monero’s penalty formula to the piconero. A reward one unit off makes the whole block invalid, so we chose 599,000 rather than the full 600,000 and left room.
  3. Rent the hashrate. We pointed rented RandomX hashrate at our private pool: about 18.7 MH/s on average from 41 workers, roughly 0.25% of the Monero network. Statistically that is one block every 12.9 hours. The pool kept mining ordinary-looking templates until a share beat the network difficulty of 889,587,161,825.
  4. Hand it to the network as a peer. A stock node’s RPC refuses a block this big: 599,044 bytes is 1.2 MB as hex, over its 1 MiB request limit. So our pool speaks the peer-to-peer protocol and gave the block to the network the way another node would. Every node validated the proof of work, the exact reward and the weight, and accepted it.
  5. Watch, then stop. The block was found at 04:20:11 UTC on 5 November, 5 hours and 24 minutes after the rental started. Two independent nodes watched it reach 85 confirmations with no reorganisation; mining stopped automatically the moment the candidate was found and the rental was cancelled. The pool is idle for now.

The run

Our pool’s hashrate on 4 and 5 November, from its own verified shares, until the block was found. Mining has stopped since.

  • 10-minute estimate
  • Block 3,799,494 found

A saved copy of the pool’s published samples. Recording began at 16:53 UTC on 4 November. The drop near 22:20 UTC is a node outage that ended the earlier rental.

Verify it yourself

Ask any public Monero node for the block, pull the MP4 out of the coinbase and check its hash. Nothing here depends on us.

Records are for Monero’s canonical chain, heights 0 to 3,799,493 checked against two nodes on 5 November 2026; orphaned blocks and other networks are not counted.

curl -s -X POST https://node.sethforprivacy.com/json_rpc -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"height":3799494}}' \
| python3 -c "
import json, sys, hashlib
r = json.load(sys.stdin)['result']
extra = bytes(json.loads(r['json'])['miner_tx']['extra'])
p = extra[extra.index(b'XMR20VIDEO1'):]
n = int.from_bytes(p[11:15], 'little'); meta = json.loads(p[15:15 + n])
video = p[15 + n:15 + n + meta['bytes']]
open('monero-block-3799494.mp4', 'wb').write(video)
print('block', r['block_header']['hash'])
print('weight', r['block_header']['block_weight'], 'extra', len(extra), 'video', len(video))
print('sha256 ok:', hashlib.sha256(video).hexdigest() == meta['sha256'])"