🌌 Bitcoin Universe
.bitcoinAbstract
Bitcoin Universe is a deterministic, on-chain procedural generation engine that transforms raw Bitcoin consensus data into interactive 3D star systems. Every Bitcoin block — identified by its height — produces a unique, verifiable, and immutable cosmic visualization derived entirely from the block's intrinsic fields: hash, merkle_root, transaction_count, total_fee, subsidy, and timestamp.
By eliminating external randomness and anchoring all visual and trait outputs to consensus-verified block data, Bitcoin Universe creates a trustless digital-physical artifact class: on-chain worlds that anyone can reproduce independently given only a block height.
1. Introduction
1.1 Motivation
Bitcoin blocks are cryptographically sealed packets of entropy. Each block hash is an unpredictable, universally agreed-upon 64-byte hexadecimal string. Rather than treating this entropy as mere bookkeeping, Bitcoin Universe interprets it as the genome of a star system. The result is a cross-disciplinary bridge between blockchain consensus, procedural generation, and real-time 3D graphics.
1.2 Design Principles
| Principle | Implementation |
|---|---|
| Determinism | Identical block height → identical output, every time, on any device. |
| Verifiability | All traits link to inspectable on-chain fields with explicit derivation formulas. |
| Immutability | Once a block is mined, its cosmic representation is fixed forever. |
| Accessibility | Zero installation; runs in any WebGL-capable browser. |
| Composability | Namespace system (<label>.<height>.bitcoin) allows child derivations. JSON metadata envelope ("p": "bitcoinuniverse") enables trustless indexing. |
2. System Architecture
2.1 Data Layer
The canonical data source is the Ordinals block endpoint:
GET https://ordinals.com/r/blockinfo/{height}
| Field | Type | Role |
|---|---|---|
height | uint32 | System identifier & namespace root. |
hash | hex64 | Primary entropy source for biome, weather, stellar class, flags. |
merkle_root | hex64 | Secondary entropy for resource extraction. |
transaction_count | uint32 | Civilization density metric. |
total_fee | uint64 | Economic development metric. |
subsidy | uint64 | Historical era classification. |
timestamp | uint32 | Temporal modifier & time-based flags. |
Caching Strategy: Client-side Map with LRU eviction (capacity: 30 blocks). Eliminates redundant network requests.
2.2 Deterministic Randomness Engine
Bitcoin Universe does not use Math.random(). It employs a seeded PRNG initialized from the block hash.
Seed Derivation
seed = Σ(i=0..n-1) hash.charCodeAt(i) × 31^(n-1-i) (mod 2³²)
Mulberry32 PRNG
function mulberry32(a) {
return function() {
let t = a += 0x6D2B79F5;
t = Math.imul(t ^ t >>> 15, t | 1);
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
return ((t ^ t >>> 14) >>> 0) / 4294967296;
};
}
3. Trait Generation Protocol
3.1 Surface Biome
Because modern Bitcoin block hashes begin with many zeros due to proof-of-work difficulty, using the first byte would produce 99% Ocean biomes. Entropy is extracted from hash byte 9 (characters 18–20), safely past the typical 18-character proof-of-work zero prefix.
biome_index = parseInt(hash[18:20], 16) % 5
| Index | Biome | Emoji | Core Palette |
|---|---|---|---|
| 0 | Ocean | 🌊 | Cyan / Deep Blue / White |
| 1 | Desert | 🏜️ | Amber / Orange / White |
| 2 | Forest | 🌳 | Green / Emerald / White |
| 3 | Snowfield | ❄️ | Ice Blue / Pale Cyan / White |
| 4 | Volcano | 🌋 | Crimson / Magma / Gold |
3.2 Atmosphere (Weather)
weather_index = parseInt(hash[2:4], 16) % 4
| Index | Weather |
|---|---|
| 0 | Sunny |
| 1 | Rain |
| 2 | Storm |
| 3 | Snow |
3.3 Civilization Density
| Tx Count | Classification | Level |
|---|---|---|
| 1 | Primordial / Empty | 0 |
| 2 – 100 | Ancient / Sparse | 1 |
| 101 – 1,000 | Settled / Medieval | 2 |
| 1,001 – 5,000 | Industrial / Dense | 3 |
| 5,001 – 7,000 | Metropolitan | 4 |
| 7,001 – 8,000 | Megacity | 5 |
| 8,001+ | Ecumenopolis | 6 |
Extremely rare — receives distinctive visual upgrades: a thick, bright red pulsing ring, 60 city-light particles, 30 urban glow sprites, central core glow, +25% opacity, and 24 rotating satellite dots.
3.4 Economic Development
Derived from total_fee (satoshis). The three rarest tiers trigger a separate rendering pipeline layered on top of the base stellar class.
- Cyan central orb · 80-particle spiral
- 2 aura rings · +20% opacity · +20% field
- Crimson/gold dual orb · 120-particle spiral
- 3 aura rings · +30% opacity · +40% field
- Deep gold / white supernova orb
- 160-particle spiral in 3 concentric shells
- 5 aura rings · +40% opacity · +60% field
- 12 energy arcs — electromagnetic discharge halo
Post-Scarcity, Singularity, and Omega tiers are detected at runtime from total_fee and layer on top of the base stellar class system. An Omega-economy Transcendent-class block accumulates all enhancements from both dimensions simultaneously.
3.5 Stellar Class (Rarity)
Derived from the count of leading zero characters in the block hash. Each additional zero is statistically 16× rarer.
leading_zeros = count of '0' chars before first non-zero char in hash
stellar_class = lookup(leading_zeros)
Radius: 1.2 · Core: 12 · Field: 20
Radius: 1.6 · Core: 28 · Field: 38
Radius: 2.0 · Core: 48 · Field: 60
Radius: 2.5 · Core: 72 · Field: 88
Radius: 3.2 · Core: 105 · Field: 128
Radius: 4.0 · Core: 200 · Field: 240
Radius: 5.0 · Core: 280 · Field: 320
Mythic and Transcendent classes are statistically extraordinary. Bitcoin's current proof-of-work yields hashes with 18–19 leading zeros as the baseline. Achieving 21–23+ zeros requires satisfying both standard difficulty and an additional cosmic lottery.
3.6 Resource Deposit
Derived from merkle_root[0:2] — an independent entropy source from the block hash, ensuring the mineral deposit is uncorrelated with biome, weather, and stellar class.
resource_byte = parseInt(merkle_root[0:2], 16) // range 0–255
3.7 Historical Era
| Subsidy (sats) | Era | Block Range |
|---|---|---|
| 5,000,000,000 | Genesis Era | 0–209,999 |
| 2,500,000,000 | Pioneer Era | 210,000–419,999 |
| 1,250,000,000 | Growth Era | 420,000–629,999 |
| 625,000,000 | Maturity Era | 630,000–839,999 |
| 312,500,000 | Sovereign Era | 840,000–1,049,999 |
| 156,250,000 | Post-Sovereign Era | 1,050,000+ |
| 0 | Terminal Era | ~6,930,000+ |
3.8 Temporal Modifiers
| Condition | Modifier |
|---|---|
| Hour 0,1,23 + Weekend | Void Midnight |
| Hour 0,1,23 | Midnight |
| Weekend | Weekend Pulse |
| Otherwise | Standard |
3.9 Trait Summary
Every Bitcoin block deterministically produces the following cosmic traits. Each trait is derived from a single on-chain field, with no external input.
| # | Cosmic Name | Bitcoin Field | Derivation |
|---|---|---|---|
| 1 | Surface Biome | hash | parseInt(hash[18:20], 16) % 5 |
| 2 | Atmosphere (Weather) | hash | parseInt(hash[2:4], 16) % 4 |
| 3 | Civilization Density | transaction_count | Range lookup → 7 levels (Primordial → Ecumenopolis) |
| 4 | Economic Development | total_fee | Range lookup → 7 tiers (Primordial → Omega) |
| 5 | Stellar Class | hash | Count leading zeros → 7 classes (Common → Transcendent) |
| 6 | Resource Deposit | merkle_root | parseInt(merkle_root[0:2], 16) → range lookup |
| 7 | Historical Era | subsidy | Exact value match → halving epoch |
| 8 | Temporal Modifier | timestamp | UTC hour + weekday → Midnight / Weekend / Void Midnight / Standard |
| 9 | Special Flags | height, hash, timestamp | Boolean checks → up to 14 compounding flags |
4. Special Flags & Cosmic Phenomena
Special flags are boolean properties layered onto any block, independent of Stellar Class or Economy. Active flags trigger dedicated visual effects in both the 3D star map and the sidebar trait panel. Flags are not mutually exclusive.
| Attribute | Value |
|---|---|
| Display name | Genesis Signal |
| Icon | 🌅 |
| Pattern | 20090103 — found inside transaction hashes on the block page |
| What it encodes | January 3, 2009 — the date Satoshi Nakamoto mined the Bitcoin Genesis Block (Block 0) |
| Supply | 23 confirmed blocks of ~950,000 mined (<0.003% — rarest flag in the system) |
| Some known blocks | 350315, 351614, 450967, etc |
How to manually verify a block
- Navigate to
ordinals.com/block/{height}in your browser — e.g. ordinals.com/block/851335 - Open your browser's find bar — Menu → Find and edit, or press Ctrl+F / ⌘F
- Type
20090103and press Enter - If the pattern exists in one of the block's transaction hashes, your browser will highlight and jump to it — shown as "1/1" or higher in the search bar
Visual effects when active
Sidebar: Full-width premium card with animated gold border pulse, the pattern in spaced monospace, encoded date, and rarity note.
3D star map — seven stacked layers:
| Layer | Detail |
|---|---|
| Blazing core orb | White-gold at 2.5× coreRadius — brightest center in the system |
| Gold bloom | Secondary warm glow at 4.5× coreRadius |
| 3× sunrise rings | Concentric tilted tori at 1.55×, 1.95×, 2.42× coreRadius, each spinning independently |
| Sacred icosahedron | Gold wireframe at 1.2× coreRadius, dual-axis rotation |
| 16 dawn beams | Radial light lines pulsing outward, individual frequencies |
| 24 orbit particles | Golden dots revolving in warm orbital band, twinkle-animated |
| Outer halo | Diffuse gold at 8× coreRadius — tints entire scene warm gold |
All pre-existing nebula particles receive a +0.30 opacity boost. Field particles scale ×1.5 and shift to #ffd700.
Verification — Pattern highlighted in browser
4.1 All Special Flags
| Flag | Trigger | Rarity | Description |
|---|---|---|---|
| 🌅 Genesis Signal | Height in confirmed Genesis Signal list | Ultra-rare · ~0.003% | Pattern 20090103 in tx hashes — Bitcoin's birthday |
| 💥 Nova Event | height % 210,000 == 0 | Every 210k blocks | Bitcoin halving |
| ⚛️ Quantum Shift | height % 2,016 == 0 | ~Every 2 weeks | Difficulty adjustment epoch |
| 📅 Weekend Pulse | day ∈ {0,6} | ~28% | Mined on weekend |
| 🌙 Void Midnight | hour ∈ {0,1,23} | ~12.5% | Near UTC midnight |
| ✨ Cosmic Signature | hash contains 21e8 | ~0.05% | Sacred pattern |
| 🔁 Cosmic Echo | hash has 4+ repeated hex chars | ~18% | Resonance anomaly |
| 🪞 Symmetric Nebula | Full block height palindrome (≥3 digits) | Variable | Structural symmetry |
| 🔢 Prime Alignment | isPrime(height) | ~13% | Mathematical rarity |
| 📐 Harmonic Sequence | isFibonacci(height) | Rare | Golden ratio alignment |
| 🔥 Primordial Age | height < 1000 | 0.1% | First 1,000 blocks |
| 2️⃣ Binary Nexus | Power of two | Rare | Binary perfection |
| 3️⃣ Ternary Resonance | Power of three | Rare | Ternary harmonic |
| ! Exponential Crest | Factorial (n!) | Ultra-rare | Exponential milestone |
5. 3D Rendering Engine
Stack: Three.js r160, OrbitControls, WebGL 2.0.
Scene layers: background stars, inner nebula (particle count scales with civilization & rarity), bright heart, geodesic cages (Rare+), field particles, aura rings (Legendary+), and a resource deposit ring (all classes) — a thin orbital torus and clustered particles colored by mineral type.
5.1 Resource Deposit Visuals
Every star system renders a mineral deposit ring at coreRadius × 1.75. Opacity and particle count scale with rarity:
| Resource | Color | Ring Opacity | Particles |
|---|---|---|---|
| Stone | #8B7D6B | 12% | 6 |
| Iron | #708090 | 15% | 8 |
| Gold | #FFD700 | 35% | 14 |
| Crystal | #E0FFFF | 55% | 22 |
| Void Matter | #4B0082 | 75% | 32 |
5.2 Standout Visuals for Rare Resources
Crystal (Rare — ~1.2% of blocks)
Rotating wireframe octahedron (cyan), prismatic counter-rotating ring, 18 independently-twinkling sparkle particles.
Void Matter (Epic — ~0.4% of blocks)
Solid black event horizon sphere, dark purple accretion disk spinning at 0.015 rad/frame, 40-particle inward spiral arms, dark outer halo.
6. User Interface & Interaction
Controls: block height input, prev/next navigation, random warp, keyboard arrows, R key for random, mouse drag to orbit, scroll to zoom. URL persistence via ?block=. Verification link to ordinals.com/r/blockinfo/{height}.
Resource badges: Crystal and Void Matter trait cards receive animated borders, glowing badges, and CSS pulse animations so users immediately spot rare mineral deposits.
7. Namespace & Ownership
-
Parent
<height>.bitcoin— the world's deed; first confirmed inscription wins permanently.
Rule: The block height must exist at inscription time (≤ current block height). Pre‑inscribing future blocks is not permitted – the namespace is only valid for already‑mined blocks. -
Child 1
image.pnginscribed under<height>.bitcoin— the visual artifact, cryptographically linked to ownership -
Child 2
metadata.jsonsibling child under<height>.bitcoin— protocol envelope for indexers; carries"p": "bitcoinuniverse","op": "artifact","block","hash","traits"
The namespace inscription is the ownership claim. Without it, a visual artifact carries no binding on-chain identity. The image inscribed as a child of the namespace is provably linked to the owner — anyone can trace the child's parent and verify provenance without trusting any platform.
8. Security & Trust Model
All generation is client-side, deterministic, and verifiable. Source: ordinals.com public endpoint. Caching prevents replay attacks. No private keys, no wallets, no backend.
9. Performance Characteristics
| Metric | Value |
|---|---|
| Initial load | ~150 KB |
| Block fetch | 50–200 ms |
| Scene build | <100–500 ms |
| Frame rate | 60 fps on integrated graphics |
| GPU memory | ~30–45 MB |
10. Conclusion
Bitcoin Universe transforms block consensus data into trustless, immutable, and procedurally generated digital universes. The deterministic protocol ensures every block height maps to exactly one star system — reproducible by anyone, anchored forever in the blockchain.
Every block is a universe. The namespace is the deed. The child inscription is the artifact. What you do with them is up to you.
11. Ordinals Artifact & Inscription
Bitcoin Universe worlds are fully deterministic and publicly verifiable. Any holder who wishes to make their block's star system a permanent on-chain artifact may do so independently and permissionlessly using standard Ordinals tooling.
11.1 The Parent-Child Model
The canonical ownership structure uses three linked inscriptions:
- Explore & Verify — Confirm the block's traits in the explorer: stellar class, flags, biome, resource
- Capture — Export a clean 1200×1200 PNG via the Export button (no UI chrome)
- Inscribe the parent namespace — Inscribe
<height>.bitcoin. This is the deed to the world. First confirmed inscription wins, permanently, as determined by Bitcoin consensus.
Block existence check: The numeric part of the namespace must be ≤ the block height in which the inscription is confirmed. Future blocks cannot be claimed. This follows the same convention as Bitmap. - Inscribe the image as a child — Inscribe the PNG as a child of
<height>.bitcoin. The image is now cryptographically linked to the ownership claim on-chain — it lives under the deed, provably and permanently - Inscribe the metadata as a sibling child — Inscribe a JSON file as a second child of
<height>.bitcoin. This is the protocol envelope that lets indexers and marketplaces discover and verify the artifact without trusting any server:{ "p": "bitcoinuniverse", "op": "artifact", "block": <height>, "type": "image", "traits": { ... } }
A standalone image inscription has no binding to any block. Two people could each inscribe a screenshot of the same block and neither is provably the owner. When the image is inscribed as a child of <height>.bitcoin, it is permanently and cryptographically linked to the namespace. Anyone can trace the child's parent and verify provenance without trusting any platform. The parent-child link is what makes the artifact canonical.
11.2 Two Distinct Sellable Assets
The parent-child model creates two independent on-chain assets with different ownership semantics:
| Asset | What It Represents | If Sold/Transferred |
|---|---|---|
Parent840000.bitcoin |
The world's deed and namespace root. The most authoritative asset — holds the block's identity and the right to issue further children | Buyer inherits the world's identity and namespace authority. Seller relinquishes all claims |
Childimage.png ↳ 840000.bitcoin |
The visual artifact — the canonical render of the world, provably linked to its parent namespace | Buyer holds the canonical image artifact. Parent namespace remains with original owner unless separately transferred |
An owner could keep the parent (holding the world's identity forever) while selling the child artifact to a collector. Or sell the parent and transfer everything. This creates two tiers of ownership with genuinely different value propositions — decided entirely by the owner, with no platform involvement.
11.3 Convention
| Convention | Recommendation |
|---|---|
| Image format | PNG, 1200×1200 px minimum, square, no UI chrome |
| Image inscription | Must be a child of <height>.bitcoin — not standalone |
| Metadata inscription | JSON sibling child of <height>.bitcoin — protocol envelope for indexers |
| Required JSON fields | "p": "bitcoinuniverse", "op": "artifact", "block", "hash", "type": "image" |
| Optional JSON fields | "traits": { ... } — recommended; anchors visual properties for marketplaces and verifiers |
| Priority rule | First confirmed namespace inscription wins — enforced by Bitcoin consensus |
| Block existence | The numeric part of the namespace must be ≤ the block height in which the inscription is confirmed. Future blocks cannot be claimed. |
| No platform | Any standard Ordinals tool: ord CLI, OrdinalsBot, Gamma.io |
Bitcoin Universe operates no marketplace, holds no custody of any inscription, and has no admin key over any namespace or artifact. Once inscribed on Bitcoin, the outcome is permanent and outside the control of any party — including this project.
12. Disclaimer
Bitcoin Universe is an experimental, open, and community-driven project. Please read the following carefully before interacting with any aspect of this protocol.
- Experimental status. Bitcoin Universe is experimental software. The protocol, visual renderer, trait generation rules, and namespace conventions are subject to change without notice. No version of this software should be considered production-ready or final.
- No financial advice. Nothing in this whitepaper, the Bitcoin Universe explorer, or any associated materials constitutes financial, investment, or legal advice. Ordinals inscriptions and Bitcoin-native assets carry real monetary risk. Always conduct your own research.
- No guarantees of value. The existence of a deterministic world trait or a rarity classification does not confer, imply, or guarantee any monetary value. Rarity is a protocol-defined property, not a market promise.
- First-inscription-wins. Ownership of a namespace inscription (e.g.
840000.bitcoin) is determined solely by the Ordinals protocol's first-inscription-wins convention. Bitcoin Universe does not operate, control, or adjudicate any marketplace, registry, or ownership dispute. - No central authority. Bitcoin Universe has no central server, no admin key, no ability to freeze, reverse, or modify inscriptions. Once a block's traits are computed and an inscription is confirmed on Bitcoin, neither BitBlock nor any other party can alter the outcome.
- Ordinals dependency. This protocol depends on the continued availability of the
ordinals.com/r/blockinfoendpoint. While this endpoint carries backward-compatibility guarantees within the Ordinals protocol, its long-term availability cannot be guaranteed by Bitcoin Universe. - Use at your own risk. Interacting with Bitcoin, Ordinals inscriptions, or any on-chain protocol carries technical, financial, and regulatory risk that varies by jurisdiction. Bitcoin Universe contributors accept no liability for losses arising from use of this software or protocol.
- Open protocol. The Bitcoin Universe trait generation rules are fully open and deterministic. Anyone may build on, fork, or extend this protocol. The project welcomes community contributions and independent implementations.
Protocol v0.3.0 · May 2026 · Bitcoin Universe is experimental. Continue at your own understanding.