This is music generated inside your browser, not a playlist placed over a Bitcoin animation. The block creates a repeatable musical world. Live mempool activity then performs variations inside that world while musical rules keep each style coherent.
01 · The permanent seed
A block builds the musical world
A Bitcoin block hash contains 64 hexadecimal characters, or 32 bytes. V5 mixes the complete hash, engine version and a purpose label into four 32-bit words, then uses the deterministic xoshiro128** generator. Separate labels such as composition:v5 and replay-sound:v5 create independent number streams instead of accidentally reusing the same stream. The height is deliberately excluded from the music seed, so entering either a block height or its hash rebuilds the same score. This generator is for repeatable art, not cryptography.
The hash independently selects one of 12 production scenes and one of 32 groove sessions, plus a root note, musical mode, chord progression, chord shape, song length, arrangement, drum kit, room texture and effects. Scene selection does not inspect the previous block, so listening order cannot change a replay.
10 modesMajor, minor, blues, dorian, phrygian, lydian, mixolydian and more.
32 groovesAmbient, hip-hop, jazz, blues, acid, house, techno, jungle, samba and more.
10 progressionsEach supplies a four-chord idea that develops across the longer form.
5 voicingsTriads, sevenths, ninths, shells or wide fifths.
Four visible eight-character sections of the hash are mapped directly into decision groups: characters 25-32 shape harmony, 33-40 shape groove, 41-48 select the ensemble, and 49-56 shape texture and effects. Those are the colored characters drawn around the record. Other decisions come from the v5 number stream, so the complete hash remains part of the identity.
The displayed name comes only from the block height and uses a length-prefixed base-2,048 code. Block 1 maps to BIP39 index 0 and block 2,048 maps to index 2,047, so every one-word name is used first. Block 2,049 starts at indexes 0, 0; after all 2,048² two-word combinations are exhausted, three-word names begin, followed by four and eventually five words. Decoding first adds the capacity reserved by all shorter names, then reads the words as base-2,048 digits. This keeps names unique, searchable and reversible without leading-word collisions.
A halving era is calculated directly from floor(block height ÷ 210,000); no extra request is needed. The era rotates the orange anchor through the words and is shown in the track metadata. It deliberately does not scramble or add words, because the exact BIP39 sequence must remain sufficient to recover the block height.
These words are a public block label, not a wallet mnemonic, seed phrase or source of private keys.
02 · Notes and time
The seed writes a complete song form
V5 chooses 16, 24, 32, 48 or 64 bars and groups them into four-bar sections: intro, A, variations, B, breaks, returns, C and outro. The four-degree harmonic idea remains recognizable, but section cadences and selected inner bars receive deterministic substitutions. Layer rules introduce and remove harmony, bass, drums and melody as the form develops.
The selected scale is expanded into a 21-note palette. Twelve melodic contours include question-and-answer, ascent, descent, arches, pedal tones, broken thirds and wide leaps. Every track selects a primary and contrasting contour plus two lead rhythms. Sections alternate or return to those ideas, while each bar receives its own timing shift, cadence, register turn, duration and dynamics.
A block can choose 3/4, 4/4, 5/4, 6/8 or 7/8. The groove supplies kick, snare, hi-hat, chord and bass positions, then section energy introduces fills, displaced hits and quieter passages. Tempo ranges from 48 to 176 BPM and swing from 50% to 68%. The scheduler still advances on a light sixteenth-note clock, but it now reads a much longer score instead of repeating one four-bar score.
03 · The virtual studio
Sampled instruments meet Web Audio synthesis
The project bundles 449 MP3 notes from 20 instruments. The block chooses instruments from sensible roles instead of treating every sound as interchangeable:
- Harmony: piano, acoustic/electric/nylon guitar, harmonium, organ, harp or xylophone.
- Bass: electric bass, contrabass, cello, bassoon, tuba or trombone.
- Lead: woodwinds, brass, strings, electric guitar, harp or xylophone.
- Pluck and mallet: guitars, harp, piano, harmonium and xylophone.
Tone.js plays the nearest recorded note and pitch-shifts only when an exact sample is unavailable. Organic sessions use 28 compact CC0 recordings of acoustic bass drum, snare, sidestick, hi-hat, cajon, conga, bongos, shaker, claves, tambourine and woodblock. Paired recordings alternate on repeated hits. Electronic sessions retain synthesized drums, while pads, room texture and the subtle transaction whistle are generated locally.
The audio graph is: voice or sampler → role gain → music bus → low-pass filter → distortion → tremolo → selected modulation → reverb → stereo width → compressor → limiter → volume. V5 selects phaser, auto-filter or auto-pan for the modulation slot and feedback or ping-pong delay for the lead send. A slow block-derived LFO moves the room texture across the stereo field. Effects remain bounded and unused alternatives are not stacked together, protecting slower devices. Drums, bass and rhythm sit forward; lead, pad, arpeggio and mallet remain supporting color.
04 · The live conductor
The mempool changes the performance
mempool.space supplies the latest block, its hash, the half-hour fee estimate, unconfirmed transaction count, total mempool virtual size and projected mempool blocks. A WebSocket then streams newly seen transaction IDs and block updates. The block defines the song; these changing values define how the current performance breathes.
The initial snapshot calls /api/blocks, /api/v1/fees/recommended, /api/mempool and /api/v1/fees/mempool-blocks. The WebSocket at /api/v1/ws subscribes to blocks, projected mempool blocks, statistics and mempool TXIDs. A separate 30-second tip check prevents a missed socket frame from leaving the current block stale.
- Fee pressure
- log2(half-hour sat/vB) / 9, clamped from 0 to 1. It adds 0-4 BPM and up to 1,200 Hz of filter opening.
- Mempool size
- Total virtual bytes / 250,000,000, clamped from 0 to 1. It moves the quiet tape/vinyl bed by up to 8 dB.
- Transaction count
- Count / 500,000, clamped from 0 to 1. It contributes up to 500 Hz of brightness and raises percussion probability.
- Projected blocks
- Projected blocks / 12, clamped from 0 to 1. It increases delay wetness from 8% toward 20%.
Each WebSocket batch is reduced to at most 96 TXIDs on low-power devices or 192 on larger devices. Every selected 32-byte TXID is XORed and mixed into different positions of a rolling 32-byte flow seed. That seed creates a variation spanning the complete 16-to-64-bar score, influencing note choices, velocities, chord inversions, lead/bass/harmony variations, hi-hat offset, fills and melodic register. Written notes remain recurring anchors, so transactions vary the block's composition instead of replacing it. The result activates at the next bar boundary, so network timing cannot tear a phrase apart.
Economy audio uses the same block-written melody but selects only one or two of its notes per bar. This keeps CPU use predictable without collapsing every block into the former single repeated accent.
05 · Transaction detail
A representative transaction adds musical character
There are too many transactions to download every full record safely. The bounded TXID sample shapes the rolling seed, while the browser fetches one representative transaction no more often than every 4 seconds on regular devices or 12 seconds in economy mode. Requests time out after 5 seconds and responses are limited to 300 KB or 100 KB respectively.
- Fee rate
- log2(sat/vB) / 8 becomes fee energy: filter brightness, kick velocity and rhythmic detail.
- Virtual size
- log2(vbytes / 80) / 6 selects sixteenth, eighth or quarter-note length and controls bubble area.
- Inputs and outputs
- The normalized count becomes complexity: rests, chord voice variation, fills and bass pickups.
- Average output value
- A logarithmic 1-10⁹ satoshi range moves the melody down, keeps it centered or moves it up an octave.
- Script family
- Taproot, SegWit, legacy, data, batch and consolidation classifications offset lead, chord or bass voice selection.
- RBF and data outputs
- Their share adds rhythmic detail; the visualizer adds an outer ring for RBF and a square for data outputs.
If transaction-detail sampling fails, the TXIDs still vary the music. No transaction content is invented to fill a missing response.
06 · What the visualizer means
The record is a second view of the same data
Transaction bubbles are released in batches no more often than every 4 seconds. Their color represents a transaction family; their area grows with virtual size; a pale outer ring means replace-by-fee; and a square means a data output was detected. Higher-fee bubbles travel faster.
Bubbles enter from different directions and are curved back toward the record by its visual “gravity.” Roughly one third receive a path across the center. Crossing close enough can produce a quiet whistle whose speed and pitch follow fee motion and whose strength follows proximity. The whistle is intentionally a background detail.
The center shows block height and the complete block hash runs clockwise around the record. During replay, colored hash characters show the sections used for harmony, groove, ensemble and texture. The small inner spectrum is a 32-bin FFT view of the current mix and is omitted on low-power devices. Turning animation off stops canvas analysis, drawing and bubbles, but it does not stop the music or live data.
07 · Blocks and replay
A new block closes one session and opens another
When a new block arrives, it is queued until the musical boundary. The completed block fades to silence, its voices and loaded samplers are released, the next block constructs its studio, and the new mix fades in. Old and new block sessions do not play over each other.
Replay accepts a height or full hash. A height is resolved through /api/block-height/:height. The browser then calls /api/block/:hash, /api/block/:hash/txids and the first transaction page at /api/block/:hash/txs/0. The hash rebuilds the musical world; block weight, count, sampled fees, transaction structures and the folded complete TXID list rebuild its internal flow. Replay data is cached only for the browser session.
08 · Performance and privacy
Everything is generated on the device
Faster devices receive denser visuals and the full effects path. Lower-power devices use fewer particles, a lower canvas frame rate, smaller synth polyphony and a leaner effects mix. Both use the same block identity and musical rules.
The browser contacts mempool.space for public Bitcoin data and downloads only the instrument banks selected by the current block. It does not upload microphone audio, wallet data or personal Bitcoin information. Used samples can be cached by the PWA for later playback.
This is a musical interpretation, not a scientific sonification where one satoshi equals one note. Bitcoin data makes real, bounded decisions; the composition system translates those decisions into something intended to remain listenable.
09 · Repetition and collisions
Same block is repeatable; different blocks are not promised to be mathematically unique
A block hash has 256 bits, but a music generator must turn that enormous value into a finite set of musical decisions. V5 first maps it into a 128-bit generator state. Under the simplifying assumption that states are evenly distributed, one million blocks have roughly a 1.5 × 10-27 chance of containing any pair with the same state. The next block matching any one of a million earlier states is roughly 2.9 × 10-33. These are model estimates, not a proof that two audible recordings can never match.
Two tracks could share a genre, key, chord idea or instrument without being identical because those are intentionally limited musical choices. An exact composition also includes the longer note arrays, velocities, section form, effects and many other decisions, while a live performance additionally depends on mempool traffic and transaction timing. “Sounds similar” therefore has no honest single probability: it depends on what a listener considers the same.
Legacy v4 reduced the hash to one 32-bit state. At one million blocks, the birthday calculation predicts about 116 state-collision pairs, and the next state has about a 1-in-4,295 chance of matching one of those million states. V4 links remain supported so old block performances do not change, but new sessions use v5. Track names are separate: the BIP39 base-2,048 height code is reversible and unique for every supported block height even if two compositions ever resemble one another.