Home page redrawn: the scene is the page; a 56 px header, one statement, two buttons; three facts, the downloads, one line to the ledger

The owner, 6 October 2026, on the live home page: "too left and text heavy ... we want the home page to suck people in and let
the litepaper carry the weight; also minimise the header." The home page only; nothing else above the fold.

Header (this page only, a page-block override of the shared nav): the wordmark, Litepaper, Live devnet and Download the miner,
56 px, transparent over the hero; the phone sheet shows the same three.
Hero: one statement, eleven words ("A proof-of-work chain for graphics cards, whose miners prove the blocks."), two buttons,
then the step scene (site/live-steps.js on the shared feed) full bleed with its one caption line. Hero copy 17 words with the
buttons. At 1440 by 900 the hero ends at 849 px; at 390 by 844 at 699 px.
Below the fold: three facts, each one number and one sentence: the live hash rate with the vote keys of the last ten
minutes, the shards proven and paid on the chain (with the last ten minutes), and the chip model's one line with its link;
a note under them says the chain's state in the ledger's words (tonight: finality paused) and that the chip figures are a
cost model, not a measurement. Then the downloads row (three platforms) with the devnet and testnet notices and the dev-fee
sentence, then one line to the ledger and to what Igneum does not claim. The footer is unchanged.
Moved, nothing cut: the light-client card to /live (its verifier module with it); the testnet terms to the litepaper's For
miners section (with an id for the metamask page's link); "Live rows arrive with the public testnet, August 2027" to the
litepaper's proving section; "since 2019 (approximate)" onto the litepaper's RandomX date; the journey, economics, wallet,
build and RandomX sections were already in the litepaper (roadmap, economics, wallet, building, vs RandomX). The footer's
Journey link points at the litepaper's roadmap. tools/ci/ledger-text-check.mjs: the home page is checked for E5, X2 and
X7; G4, C2, X3 and X8 are checked on the litepaper (G4 and X8 were already there). The ledger's own "stated on" notes for
those four rows are owed an update by the ledger owner.
Polish lane Q5: the word "final" is drawn and captioned only while finality is active (site/live-steps.js), so nothing on
the page says final while finality is paused; the hero is under 40 words; the Open Graph card is the 1200 by 630 image.

Measured headless at 1440 and 390, dark and light: header 56 px with three items, no "final" anywhere, no horizontal
overflow, no console errors; the caption advanced on every capture. Captures: docs/plans/site-ui-3-shots/after/
home-{1440,390}-{dark,light}.jpg (full page) and home-{1440,390}-{dark,light}-fold.jpg (above the fold).
Checks: link check 912 links across 16 pages 0 broken, ledger text 50 of 50, contrast 32 pairs 0 under 4.5:1, orphan check
0 site headings, api tests 5 pass. The identity grep's one hit is docs/analysis/horizon/polish.md line 433 on master,
untouched here (the polish lane's own table of regex literals); it is main's to route.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-06 20:30:09 +00:00
parent aa805567b5
commit 84b349e150
27 changed files with 118 additions and 466 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View file

@ -134,7 +134,7 @@ main{flex:1}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -189,7 +189,7 @@ main{padding-bottom:var(--sec)}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -790,7 +790,7 @@ table{min-width:560px}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -190,7 +190,7 @@ main{padding-bottom:var(--sec)}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -219,7 +219,7 @@ td.mono{font-family:var(--f-mono);font-size:12.5px;min-width:180px}td.iv{color:v
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -211,7 +211,7 @@ main{padding-bottom:var(--sec)}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -184,7 +184,7 @@ dt{color:var(--ash)}dd{margin:0;font-family:var(--f-mono);font-size:14px;overflo
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -58,99 +58,40 @@
</script> </script>
<!-- head:end --> <!-- head:end -->
<style> <style>
/* home page block (docs/plans/site-ui-3.md section 3); the tokens, type and components are in /site.css */ /* home page block (docs/plans/site-ui-3.md section 3, redrawn 6 Oct 2026: the scene is the page); tokens and components are in /site.css */
.hero{padding:calc(var(--sec) * .7) 0 var(--s-6)} /* the header on this page only: the wordmark, Litepaper, Live and Download, 56 px, transparent over the hero */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s-6);align-items:start} .nav{position:absolute;left:0;right:0;top:0;background:transparent;border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:40}
.hero h1{font-size:var(--t-hero);font-weight:900;line-height:.98;letter-spacing:-.02em;margin:var(--s-3) 0 var(--s-5)} .nav .wrap{height:56px}
.hero .lead{margin-bottom:var(--s-5)} .nav .links a:not([data-nav="litepaper"]):not([data-nav="live"]){display:none}
.hero .cta{align-items:center} .nav .links a[data-nav="live"]::after{content:""}
.hero .fine{font-size:var(--t-base);color:var(--ash);margin:var(--s-4) 0 0;max-width:62ch} .nav .cta{min-height:36px;padding:6px 14px;font-size:14px}
.verify .verify-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)} .nav-sheet a:not([data-nav="litepaper"]):not([data-nav="live"]):not(.btn){display:none}
.verify .verify-head .eyebrow{margin:0} .hero{padding:calc(56px + var(--s-6)) 0 0}
.verify-row{display:flex;gap:var(--s-4);align-items:center;margin-bottom:var(--s-4)} .hero .wrap{text-align:center}
.verify .tick{width:44px;height:44px;border-radius:12px;background:var(--ember);display:grid;place-items:center;flex:none} .hero h1{font-size:clamp(26px,3.6vw,44px);font-weight:700;line-height:1.15;letter-spacing:-.01em;max-width:24ch;margin:0 auto var(--s-5)}
.verify .tick svg{stroke:var(--ember-ink)} .hero .cta{justify-content:center;margin-bottom:var(--s-5)}
.verify h3{margin:0 0 4px} .bleed{width:100%;padding:0 var(--gutter)}
.verify p{margin:0;color:var(--ash);font-size:var(--t-base)} .bleed canvas{width:100%;height:min(54vh,520px);min-height:300px;display:block;border-radius:var(--r-card);background:var(--row);border:1px solid var(--line)}
.verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)} .caption{margin:var(--s-3) auto 0;font:400 13px/1.5 var(--f-mono);color:var(--bone);min-height:1.5em;max-width:var(--max);padding:0 var(--gutter);text-align:left}
.verify .cell{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:10px 12px;min-width:0} .caption.muted{color:var(--ash)}
.verify .cell .k{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)} .facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.verify .cell .v{font:500 14px/1.4 var(--f-mono);color:var(--bone);margin-top:2px;overflow-wrap:anywhere} .fact{background:var(--graphite);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.verify .cell .v.hot{color:var(--molten-text)} .fact .v{font:700 var(--t-num)/1 var(--f-display);color:var(--bone);letter-spacing:-.02em;overflow-wrap:anywhere}
.facts{margin-top:var(--s-6)} .fact .v.state{font:500 var(--t-base)/1.3 var(--f-mono);color:var(--ash)}
.facts .tile .k{text-wrap:pretty} .fact p{margin:0;color:var(--ink-2);font-size:var(--t-base)}
.scene-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);margin-bottom:var(--s-3)} .fact .k{font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.scene-head .state{margin:0} .dl-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.scene{position:relative} .dl-row a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--graphite);color:var(--bone);font-weight:600;min-width:0}
.caption{margin:var(--s-3) 0 0;font-size:13px;line-height:1.5;color:var(--bone);min-height:1.5em}.caption.muted{color:var(--ash)} .dl-row a:hover{text-decoration:none;border-color:var(--line-2);background:var(--hover)}
.scene canvas{width:100%;height:360px;border-radius:var(--r-row);background:var(--row);border:1px solid var(--line);display:block} .dl-row a.primary{background:var(--ember);border-color:var(--ember);color:var(--ember-ink)}
.tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--graphite);border:1px solid var(--line-2);border-radius:var(--r-row);padding:10px 12px;font:400 12px/1.5 var(--f-mono);color:var(--ink-2);display:flex;flex-direction:column;gap:2px;max-width:320px;box-shadow:0 14px 40px var(--shadow)} .dl-row a.primary:hover{background:var(--ember-hi)}
.tip b{color:var(--bone);font-weight:500;overflow-wrap:anywhere} .dl-row a span{font:400 var(--t-sm)/1.4 var(--f-mono);opacity:.85}
.tip[hidden]{display:none}
.scene-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3) var(--s-5);align-items:center;margin-top:var(--s-4)}
.scene-foot .legend{margin:0}
.scene-foot .btn{min-height:36px;padding:6px 14px;font-size:14px}
.program pre{min-height:168px;color:var(--ink-2)}
.program .head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3)}
.program .head .eyebrow{margin:0}
.program .next{font:500 var(--t-sm)/1.4 var(--f-mono);color:var(--molten-text)}
.feed{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.feed div{display:flex;justify-content:space-between;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--line);font:400 14px/1.4 var(--f-mono);color:var(--ink-2)}
.feed div span:last-child{color:var(--ash)}
.proofs .card{display:flex;flex-direction:column;gap:var(--s-3)}
.proofs .card p{margin:0;color:var(--ink-2);font-size:var(--t-base)}
.proofs .card .more{margin-top:auto;font-weight:500}
.cmp td:first-child{color:var(--ash);font-family:var(--f-mono);font-size:14px;white-space:nowrap}
.cmp th:last-child,.cmp td:last-child{color:var(--bone)}
.download{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-6);align-items:center}
.download .shot img{border-radius:var(--r-row);border:1px solid var(--line)}
.download .shot figcaption{font-size:var(--t-sm);color:var(--ash);margin-top:var(--s-2);font-family:var(--f-mono)}
.dl-list{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-4) 0}
.dl-list a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--graphite);color:var(--bone);font-weight:600}
.dl-list a:hover{text-decoration:none;border-color:var(--line-2);background:var(--hover)}
.dl-list a.primary{background:var(--ember);border-color:var(--ember);color:var(--ember-ink)}
.dl-list a.primary:hover{background:var(--ember-hi)}
.dl-list a span{font:400 var(--t-sm)/1.4 var(--f-mono);opacity:.85}
.notice{font-size:var(--t-base);color:var(--ink-2);margin:var(--s-3) 0 0} .notice{font-size:var(--t-base);color:var(--ink-2);margin:var(--s-3) 0 0}
.notice b{color:var(--bone);font-weight:600} .notice b{color:var(--bone);font-weight:600}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)} .ledger-line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--s-4) 0}
.pillar{display:flex;flex-direction:column;gap:var(--s-2)} .ledger-line p{margin:0;color:var(--ink-2)}
.pillar svg{stroke:var(--ember);margin-bottom:var(--s-2)} @media (max-width:900px){.facts,.dl-row{grid-template-columns:1fr}.hero{padding-top:calc(56px + var(--s-5))}.bleed canvas{height:300px}}
.pillar p{color:var(--ink-2);margin:0;font-size:var(--t-base)} @media (max-width:720px){.hero .cta .btn{width:100%}}
.pillar a{font-weight:500;margin-top:auto}
.wallet-states{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-4)}
.wstate{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 12px 6px 8px;font:500 var(--t-sm)/1.4 var(--f-mono);color:var(--ink-2);background:var(--row)}
.wstate i{width:8px;height:8px;border-radius:50%;background:var(--ash);display:inline-block}
.wstate.block i{background:var(--molten)}
.wstate.final i{background:var(--ember)}
.wstate small{color:var(--ash);font-weight:400}
.phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.phase{background:var(--graphite);border:1px solid var(--line);border-radius:var(--r-row);padding:var(--s-4);display:flex;flex-direction:column;gap:6px}
.phase .w{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.phase .n{font:700 var(--t-base)/1.3 var(--f-display);color:var(--bone)}
.phase .g{font-size:14px;color:var(--ink-2)}
.phase.active{border-color:var(--ember-40)}
.phase.active .w{color:var(--ember-text)}
.phase.done .n{color:var(--ash)}
.log{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:var(--s-4)}
.log>div{display:grid;grid-template-columns:110px 1fr;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--t-base);color:var(--ink-2)}
.log>div .d{font:500 var(--t-sm)/1.6 var(--f-mono);color:var(--ash)}
.log>div.more{display:none}
.log.open>div.more{display:grid}
.log-toggle{margin-top:var(--s-3);align-self:flex-start;background:none;border:1px solid var(--line);border-radius:var(--r-btn);color:var(--bone);font:600 14px/1.2 var(--f-sans);padding:8px 14px;cursor:pointer}
.now{display:inline-flex;align-items:center;gap:8px;font:500 var(--t-sm)/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.split2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-6);align-items:center}
.bar{height:14px;border-radius:7px;overflow:hidden;display:flex;background:var(--row);border:1px solid var(--line)}
.bar div{height:100%}
.band{background:var(--ember);color:var(--ember-ink);padding:var(--s-6) 0;margin-top:var(--sec)}
.band .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-4)}
.band h2,.band p{color:var(--ember-ink);margin:0}
.band p{opacity:.85;margin-top:6px;max-width:60ch}
.band .btn{background:var(--ember-ink);color:var(--ember);border-color:var(--ember-ink)}
.band .btn:hover{background:var(--ember-ink);opacity:.9}
.band+.foot{margin-top:0}
@media (max-width:900px){.hero-grid,.download,.split2{grid-template-columns:1fr}.pillars,.phases{grid-template-columns:1fr}.scene canvas{height:280px}}
@media (max-width:560px){.verify-grid{grid-template-columns:1fr}.log>div{grid-template-columns:1fr;gap:2px}.scene canvas{height:240px}}
</style> </style>
</head> </head>
<body> <body>
@ -205,136 +146,26 @@
<header class="hero" id="top"> <header class="hero" id="top">
<div class="wrap"> <div class="wrap">
<div class="hero-grid"> <h1>A proof-of-work chain for graphics cards, whose miners prove the blocks.</h1>
<div> <div class="cta">
<div class="eyebrow ember">GPUs are back · for good</div> <a href="#get" class="btn primary">Download the miner</a>
<h1>Mined by GPUs.<br>Proven by fire.</h1> <a href="/litepaper" class="btn">Read the litepaper</a>
<p class="lead">A proof-of-work chain built for graphics cards. The mining program rewrites itself every hour and is compiled on the card, so a chip built for one hour is useless the next. The same cards prove every block. No premine, no stake, no foundation.</p>
<div class="cta">
<a href="#get" class="btn primary">Download the miner</a>
<a href="/litepaper" class="btn">Read the litepaper</a>
</div>
<p class="fine">Every card mines; today's app proves on a 24 GB NVIDIA card and mines and proves on 32 GB. Measured on 6 October 2026 on eleven rented cards with the patched server: every NVIDIA card from 8 GB proves, 10 GB and up mine and prove (<a href="/bench#prover-tiers-on-real-cards-the-rented-fleet-6-october-2026-branch-gpu-fleet">the log</a>); ships when the packaging row lands. AMD and Apple cards mine. The chip model is public: <a href="/bench#counter-asic-2-0-the-numbers">the numbers</a>.</p>
</div>
<div class="card verify">
<div class="verify-head">
<div class="eyebrow">This tab · light client</div>
<div class="state" data-lc="badge"><span class="dot off"></span><span data-lc="badge-text">PREVIEW</span></div>
</div>
<div class="verify-row">
<div class="tick"><svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7"></path></svg></div>
<div>
<h3>Browser checks Igneum</h3>
<p data-lc="line">A checkpoint certificate, verified in this tab. Voter list from the node.</p>
</div>
</div>
<div class="verify-grid">
<div class="cell"><div class="k">Block proof</div><div class="v" data-lc="proof" title="No execution proof is on the chain yet. The first off-chain GPU proof of a block was 4 October 2026">not yet</div></div>
<div class="cell"><div class="k">Checkpoint</div><div class="v" data-lc="checkpoint">checking</div></div>
<div class="cell"><div class="k">Proof system</div><div class="v" data-lc="system">BLS aggregate, version 1</div></div>
<div class="cell"><div class="k">Verified in this tab</div><div class="v hot" data-lc="tab">checking</div></div>
</div>
<script type="module" src="/verify/verify.js"></script>
</div>
</div> </div>
<div class="tiles facts" aria-label="Four facts">
<div class="tile"><div class="v">1 / s</div><div class="k">blocks, rising to 10</div></div>
<div class="tile"><div class="v">~60 s</div><div class="k">to a proof at launch, the target. First GPU proof of a block: 1.4 s on an RTX 5090, 4 Oct 2026</div></div>
<div class="tile"><div class="v">0</div><div class="k">premine</div></div>
<div class="tile"><div class="v">4B</div><div class="k">IGN hard cap, ever</div></div>
</div>
<p class="note">100% of emission goes to miners and provers; the protocol carries no fee.</p>
</div> </div>
<div class="bleed">
<canvas id="steps" aria-label="The live devnet, step by step: every square is a real block moving left as time passes; its outline, quarter cells, fill and ring show mined, shards being proven, proven and locked checkpoint"></canvas>
</div>
<p class="caption mono" id="steps-caption" aria-live="polite">Connecting to the devnet observer.</p>
</header> </header>
<section id="prove" class="sec"> <section id="facts" class="sec">
<div class="wrap"> <div class="wrap">
<div class="sec-head"> <div class="facts">
<div class="eyebrow">The chain, now</div> <div class="fact"><div class="k">Live now</div><div class="v" id="f-hash">pending</div><p><span id="f-keys">pending</span> vote keys mined a block in the last ten minutes; a card runs several.</p></div>
<h2>Watch the chain prove itself</h2> <div class="fact"><div class="k">Proven and paid</div><div class="v" id="f-paid">pending</div><p>shards proven and paid on the chain so far, <span id="f-paid10">pending</span> of them in the last ten minutes.</p></div>
<p>Blocks every second, proven in shards, locked every 30 seconds. First live lock 4 Oct 2026: checkpoint 242, 77.4% of all weight, two hours after genesis.</p> <div class="fact"><div class="k">The chip model</div><div class="v">5x to 9x</div><p>per joule for the strongest chip against an RTX 5090 today in our public model, about 2x once the lever now in its gates ships: <a href="/bench#counter-asic-2-0-the-numbers">the numbers</a>.</p></div>
</div> </div>
<div class="card viz" id="viz-card"> <p class="note" id="facts-note">One node is read every 2 s. The chip figures are a cost model, not a measurement.</p>
<div class="scene-head">
<div class="state" id="viz-label"><span class="dot off"></span><span id="viz-word">connecting to the devnet observer</span></div>
<div class="viz-stats mono"><span>chain block <b id="c-blocks">pending</b></span><span>shards proven <b id="c-proven">pending</b></span><span>last lock <b id="c-locked">pending</b></span><span>vote keys in 10 min <b id="c-miners">pending</b></span><span>hash rate <b id="c-hash">pending</b></span></div>
</div>
<div class="scene">
<canvas id="steps" aria-label="The live devnet, step by step: every square is a real block moving left as time passes; its outline, quarter cells, fill and ring show mined, shards being proven, proven and locked checkpoint"></canvas>
</div>
<p class="caption mono" id="steps-caption" aria-live="polite">Connecting to the devnet observer.</p>
<div class="scene-foot">
<div class="legend" id="legend-live">
<span><i class="sw" style="border:2px solid var(--line-2)"></i>mined, pending</span>
<span><i class="sw" style="border:2px solid var(--ember)"></i>mined, included</span>
<span><i class="sw" style="border:2px solid var(--line-2);opacity:.45"></i>excluded</span>
<span><i class="sw" style="border:2px solid var(--molten);background:linear-gradient(90deg,var(--molten) 50%,transparent 50%)"></i>shards being proven</span>
<span><i class="sw" style="background:var(--ember)"></i>proven</span>
<span><i class="sw" style="border:3px solid var(--ember);border-radius:50%;background:transparent"></i>locked checkpoint, final to its left</span>
</div>
<div class="cta"><a href="/live" class="btn">The live page</a></div>
</div>
<p class="note" id="viz-note">One node is read every 2 s. Every square is a real block, released at a calm pace so each step can be seen; the counters read the chain. Chain block is the EVM block number. Shards proven is every shard paid on the chain so far. Last lock is the latest checkpoint the finality rule locked.</p>
</div>
<div class="grid c2" style="margin-top:var(--s-4)">
<div class="card program">
<div class="head"><div class="eyebrow">This hour's program</div><div class="next">next in <span id="countdown">59:59</span></div></div>
<pre id="program" aria-label="A sample of the current hour's mining program"></pre>
<p class="note">A new program every hour: a chip wired for one program is useless. A programmable chip is met by the latency-shadow work and the price per joule, not by surprise. First live swap 4 Oct 2026: Apple, NVIDIA and AMD kept hashing through it, 0 rejected blocks.</p>
</div>
<div class="card">
<div class="eyebrow">Proofs sold to other chains</div>
<div class="feed">
<div><span>rollup · batch proof</span><span>at testnet</span></div>
<div><span>bridge · state proof</span><span>at testnet</span></div>
<div><span>rollup · fault proof</span><span>at testnet</span></div>
<div><span>IGN burned from jobs</span><span>phase two</span></div>
</div>
<p class="note">The same cards sell proofs to rollups and bridges. Jobs are paid on the customer's chain at launch; settlement in IGN with a 10% burn follows the proof bridge in phase two. Live rows arrive with the public testnet, August 2027.</p>
</div>
</div>
<p class="note"><a href="/litepaper#proving">Read more in the litepaper</a></p>
</div>
</section>
<section id="check" class="sec">
<div class="wrap">
<div class="sec-head">
<div class="eyebrow">For the sceptic</div>
<h2>Three things to check</h2>
<p>Igneum states its limits first. Each of these is measured, published and open to anyone who wants to break it.</p>
</div>
<div class="grid c3 proofs">
<div class="card">
<div class="eyebrow">Chip economics</div>
<h3>The chip model is public</h3>
<p>In our public model the strongest chip reaches 5x to 9x per joule against an RTX 5090 today, about 2x once the lever now in its gates ships. The model, its inputs and what it does not cover are in the engineering log.</p>
<a class="more" href="/bench#counter-asic-2-0-the-numbers">The numbers</a>
</div>
<div class="card">
<div class="eyebrow">Monero's technique, applied to GPUs</div>
<h3>A program that keeps changing</h3>
<p>The random program that has kept chips off Monero since 2019 (approximate), rebuilt for graphics cards. The program keeps changing on a schedule fixed at genesis; nobody touches it.</p>
<div class="tbl" style="margin-top:var(--s-2)"><table class="cmp">
<thead><tr><th>Property</th><th>RandomX</th><th>Igneum</th></tr></thead>
<tbody>
<tr><td>Who mines</td><td>CPUs</td><td>GPUs</td></tr>
<tr><td>Program changes</td><td>Every hash</td><td>Every hour</td></tr>
<tr><td>Memory</td><td>2 GB, fixed</td><td>2 GB, growing (the proposed schedule, fixed at the testnet genesis: 2 GB, doubling at years 4, 12 and 28)</td></tr>
<tr><td>Verified by</td><td>Any CPU</td><td>Any CPU</td></tr>
</tbody>
</table></div>
<a class="more" href="/litepaper#randomx">Igneum vs RandomX</a>
</div>
<div class="card">
<div class="eyebrow">Every criticism</div>
<h3>What Igneum does not claim</h3>
<p>Proof lag, chip economics, the market size, and the one rule external review will try hardest to break: the litepaper states the limits, and the ledger carries every criticism, answered or conceded.</p>
<a class="more" href="/litepaper#limits">The limits</a>
<a class="more" href="/ledger">The ledger</a>
</div>
</div>
<p class="note">Built on the shoulders: Kaspa's GHOSTDAG and node, Monero's RandomX idea, Chia's class-group VDF, Ethereum's EVM, Succinct's SP1, BLS12-381 and Bitcoin's address format. What changed, why, and how it is measured: <a href="/litepaper#shoulders">the provenance section of the litepaper</a>.</p>
</div> </div>
</section> </section>
@ -343,154 +174,26 @@
<div class="sec-head"> <div class="sec-head">
<div class="eyebrow"><span data-product="full">Igneum Ember</span> · one click</div> <div class="eyebrow"><span data-product="full">Igneum Ember</span> · one click</div>
<h2 id="mine">Install. Start. The card mines.</h2> <h2 id="mine">Install. Start. The card mines.</h2>
<p><span data-product="full">Igneum Ember</span> finds your GPU, makes a wallet for you and runs the node, the miner and the prover as one app. The card mines; a 24 GB NVIDIA card proves as well.</p>
</div> </div>
<div class="download"> <div class="dl-row">
<div> <a data-dl="miner-windows" href="https://dl.igneum.network/public/igneum-miner-windows.exe" class="primary">Windows <span data-dl-meta="miner-windows">v0.3.15 · 62.7 MB</span></a>
<div class="dl-list"> <a data-dl="miner-mac" href="https://dl.igneum.network/public/igneum-miner-mac.dmg">macOS <span data-dl-meta="miner-mac">v0.3.15 · 41.9 MB</span></a>
<a data-dl="miner-windows" href="https://dl.igneum.network/public/igneum-miner-windows.exe" class="primary">Windows <span data-dl-meta="miner-windows">v0.3.14 · 45.4 MB</span></a> <a href="/miner#get">Linux · HiveOS <span>on the miner page</span></a>
<a data-dl="miner-mac" href="https://dl.igneum.network/public/igneum-miner-mac.dmg">macOS <span data-dl-meta="miner-mac">v0.3.14 · 41.9 MB</span></a>
<a href="/miner#get">Linux · HiveOS <span>on the miner page</span></a>
</div>
<p class="notice" data-devnet-notice><b>Devnet.</b> Coins have no value and the chain may be reset.</p>
<p class="notice" data-testnet-notice>Public testnet: not yet open; the devnet build is here for people who want to look.</p>
<p class="notice"><a href="/miner">Read more about the miner</a>. The protocol carries no fee. The <span data-product="name">Ember</span> software takes an optional 1% dev fee, like other GPU miners, off with one flag. Download only from this domain. Nobody from Igneum will ask for your seed.</p>
<div class="grid c2" style="margin-top:var(--s-5)">
<div><h3 style="font-size:var(--t-base)">NVIDIA, AMD, Apple silicon</h3><p class="note" style="margin-top:4px">Found by itself. One worker per card, several identities each.</p></div>
<div><h3 style="font-size:var(--t-base)">A new program every hour, no pause</h3><p class="note" style="margin-top:4px">Compiled ahead and swapped in 0.01 ms on the live devnet, 0 rejected blocks.</p></div>
<div><h3 style="font-size:var(--t-base)">Signed updates at a safe moment</h3><p class="note" style="margin-top:4px">The card keeps mining through the download. The old version comes back if the new one fails to start.</p></div>
<div><h3 style="font-size:var(--t-base)">Four pages: Mine, Earnings, Prove, Settings</h3><p class="note" style="margin-top:4px">Every card is one row: rate, watts, MH per watt, pounds a day at your electricity price, a Tune button. The node is one line.</p></div>
<div><h3 style="font-size:var(--t-base)">Ember Tune, measured</h3><p class="note" style="margin-top:4px">An RTX 5090 from 311 W to 227 W for 0.15% of its rate; an RTX 4070 from 106 W to 76 W for none (the Windows rig, 6 Oct 2026). Every number in the bench table.</p></div>
</div>
</div>
<figure class="shot" style="margin:0">
<img src="/img/miner-dashboard.webp" width="2880" height="1800" alt="The Mine page of Igneum Miner 0.3.14 on a three-card PC: 169 MH/s at 532 W, one row per card with its rate, watts, MH per watt, temperature, tune line, Tune button and switch" loading="lazy" decoding="async">
<figcaption><span data-product="caption">Igneum Ember (the app window still says Igneum Miner)</span> 0.3.14 on a Windows rig with an RTX 5090, RTX 4070 and RX 9070 XT, live devnet, 6 Oct 2026.</figcaption>
</figure>
</div> </div>
<details id="testnet-terms" style="margin-top:var(--s-6)"> <p class="notice" data-devnet-notice><b>Devnet.</b> Coins have no value and the chain may be reset.</p>
<summary>What you agree to when you run the testnet miner</summary> <p class="notice" data-testnet-notice>Public testnet: not yet open; the devnet build is here for people who want to look.</p>
<div class="grid c3"> <p class="notice"><a href="/miner">Read more about the miner</a>. The protocol carries no fee. The one payment to the project is the Ember software's optional 1% dev fee, like other GPU miners, off with one flag. Download only from this domain. Nobody from Igneum will ask for your seed.</p>
<p><b>No value.</b> Testnet IGN cannot be sold, bought or redeemed, now or at mainnet. There is no airdrop, no points scheme and no promise tied to testnet balances. Mainnet starts from an empty genesis.</p>
<p><b>Resets.</b> The chain restarts from a fresh genesis when a consensus rule changes. Every reset is announced at least seven days ahead on this page and in the app. Balances, contracts and history do not carry over. The devnet that runs today resets without notice.</p>
<p><b>What the app sends home.</b> The app version, a random machine id made at install, your operating system, the node version, the hash rate, and the app, node and miner logs (which name the address the card mines to). They go to the project's log intake, a service Igneum runs on Vercel, and are read by the maintainers to find faults. Never your seed phrase, never a key, never a file you did not make with the app. Nothing is sold or shared.</p>
</div>
<p class="note">Wallet set-up for MetaMask: <a href="/metamask">chain id, RPC and the one-click button</a>. The miner software takes an optional 1% fee, off with one flag; the protocol carries no fee to anyone.</p>
</details>
</div> </div>
</section> </section>
<section id="build" class="sec"> <section id="ledger" class="sec">
<div class="wrap"> <div class="wrap">
<div class="sec-head"> <div class="ledger-line">
<div class="eyebrow">How it works</div> <p>Every criticism, answered or conceded, and <a href="/litepaper#limits">what Igneum does not claim</a>.</p>
<h2>One chain, three jobs</h2> <a href="/ledger" class="btn">The ledger</a>
</div>
<div class="pillars">
<div class="pillar">
<svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="5" width="18" height="12" rx="2"></rect><path d="M7 9h4M7 13h2M15 9v4M18 9v4M9 21h6"></path></svg>
<h3>Mine</h3>
<p>Any 4 GB card at launch, 8 GB from about year 4 under the proposed schedule, fixed at the testnet genesis: 2 GB, doubling at years 4, 12 and 28, approximate. 80% of each block to its finder.</p>
<a href="#get">About the miner</a>
</div>
<div class="pillar">
<svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4z"></path><path d="M9 12l2 2 4-4"></path></svg>
<h3>Prove</h3>
<p>The same card proves shards and sells proofs to other chains.</p>
<a href="#prove">How proving pays</a>
</div>
<div class="pillar">
<svg viewBox="0 0 24 24" width="32" height="32" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 7l-5 5 5 5M16 7l5 5-5 5M14 4l-4 16"></path></svg>
<h3>Build</h3>
<p>Ethereum bytecode, with the differences documented. Proofs of any computation from the miners' cards, verified by the chain itself. 20% of priority fees to the contracts that ran, stated at the fee levels that exist.</p>
<a href="/litepaper#builders-ask">Deploy on Igneum</a>
</div>
</div>
<p class="note"><a href="/litepaper#building">Read more in the litepaper</a></p>
</div>
</section>
<section id="wallet" class="sec">
<div class="wrap">
<div class="split2">
<div>
<div class="eyebrow">Igneum Wallet · desktop</div>
<h2>Your coins, your wallet</h2>
<p class="lead" style="margin-top:var(--s-3)">Igneum Wallet holds the key the miner makes for you and verifies finality itself. MetaMask works too.</p>
<div class="wallet-states" aria-label="The three states a transfer can be in">
<span class="wstate"><i></i>pending <small>waiting for a block</small></span>
<span class="wstate block"><i></i>in a block <small>carried, not yet covered</small></span>
<span class="wstate final"><i></i>final, checkpoint 5 <small>under a checkpoint this wallet verified</small></span>
</div>
<div class="grid c1" style="gap:var(--s-3)">
<div><h3 style="font-size:var(--t-base)">Sealed on your machine</h3><p class="note" style="margin-top:4px">24 words, three typed back, a password. Argon2id and XChaCha20-Poly1305. Nothing leaves.</p></div>
<div><h3 style="font-size:var(--t-base)">Rewards in one history</h3><p class="note" style="margin-top:4px">Block rewards, proving payouts and transfers. Send with the fee shown. Receive by a QR drawn locally.</p></div>
<div><h3 style="font-size:var(--t-base)">Reads your own node</h3><p class="note" style="margin-top:4px">When the miner is installed, the wallet uses its node. Nobody else sees your balance.</p></div>
</div>
<div class="cta" style="margin-top:var(--s-5)">
<a href="/wallet" class="btn">Read more about the wallet</a>
<a href="/wallet#metamask" class="btn">MetaMask export</a>
</div>
<p class="note">macOS first, Windows next. Public testnet first. Download only from this domain. Nobody from Igneum will ask for your seed.</p>
</div>
<figure class="shot" style="margin:0">
<img src="/img/wallet-home.webp" width="2240" height="1560" alt="The wallet window: a balance in IGN, an example address with Send and Receive, node and finality panels, and a history of block rewards" loading="lazy" decoding="async" style="border-radius:var(--r-row);border:1px solid var(--line)">
<figcaption class="note" style="font-family:var(--f-mono);font-size:var(--t-sm)">Igneum Wallet on a private test network, 5 Oct 2026. The address is an example.</figcaption>
</figure>
</div> </div>
</div> </div>
</section> </section>
<section id="journey" class="sec">
<div class="wrap">
<div class="sec-head">
<div class="eyebrow">The journey</div>
<h2>Where Igneum is right now</h2>
<div class="now" style="margin-top:var(--s-3)"><span class="dot live"></span><span id="stage-label">loading</span></div>
<p>Thirteen months, four public gates, each a measurement published pass or fail.</p>
</div>
<div class="phases" id="phases"></div>
<p class="note">The log below is the engineering log's dated entries, newest first. Day one was 3 October 2026; several entries can share a date because the work is logged as it is run.</p>
<div class="log" id="log"></div>
<p class="note"><a href="/litepaper#roadmap">Read more in the litepaper</a></p>
</div>
</section>
<section id="economics" class="sec">
<div class="wrap">
<div class="split2">
<div>
<div class="eyebrow">Economics</div>
<h2>Every coin, mined</h2>
<p class="lead" style="margin-top:var(--s-3)">Hard cap of 4 billion IGN, halving every two years for ever.</p>
<div class="bar" id="bar" aria-label="Emission split"><div style="width:80%;background:var(--ember)"></div><div style="width:20%;background:var(--molten)"></div></div>
<div class="legend" style="margin-top:var(--s-3)">
<span><i class="sw" style="background:var(--ember)"></i>80% miners</span>
<span><i class="sw" style="background:var(--molten)"></i>20% provers</span>
<span><i class="sw" style="border:1px solid var(--line-2)"></i>0% anyone else in the protocol</span>
</div>
</div>
<div class="tiles" style="grid-template-columns:repeat(2,minmax(0,1fr))">
<div class="tile"><div class="v">0</div><div class="k">premine</div></div>
<div class="tile"><div class="v">0</div><div class="k">stake, anywhere</div></div>
<div class="tile"><div class="v">0</div><div class="k">admin keys in consensus</div></div>
<div class="tile"><div class="v">90%</div><div class="k">of blocks must signal to upgrade</div></div>
</div>
</div>
<p class="note" style="margin-top:var(--s-5)">No premine, no stake, no fee to any team in the protocol. Base fee burned. The one payment to the project is the Ember software's optional 1% dev fee, off with one flag. On the devnet today the coinbase's 20% output is burned under the tag igneum-proving-pool-v0, and provers are paid from a separate escrow in the execution state credited with the same 20%.</p>
<p class="note"><a href="/litepaper#economics">Read more in the litepaper</a></p>
</div>
</section>
<div class="band">
<div class="wrap">
<div>
<h2>Read what Igneum does not claim.</h2>
<p>The litepaper states the limits first. Proof lag, chip economics, the market size, and the one rule external review will try hardest to break.</p>
</div>
<a href="/litepaper#limits" class="btn">The litepaper</a>
</div>
</div>
</main> </main>
<!-- footer:start --> <!-- footer:start -->
@ -523,7 +226,7 @@
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>
@ -560,77 +263,20 @@
<script src="/live-steps.js"></script> <script src="/live-steps.js"></script>
<script> <script>
(function(){ (function(){
var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
var fmtN=function(v){return v===null||v===undefined?'pending':Number(v).toLocaleString('en-GB');}; var fmtN=function(v){return v===null||v===undefined?'pending':Number(v).toLocaleString('en-GB');};
function fmtHash(h){if(h===null||h===undefined||!(h>0))return 'pending';return h>=1e9?(h/1e9).toFixed(1)+' GH/s':(h/1e6).toFixed(1)+' MH/s';} function fmtHash(h){if(h===null||h===undefined||!(h>0))return 'pending';return h>=1e9?(h/1e9).toFixed(1)+' GH/s':(h/1e6).toFixed(1)+' MH/s';}
var cap=document.getElementById('steps-caption');
// the live scene: the shared module reads /api/live; the counters read the chain, never the window (chain block, // the feed's state is the caption while the feed is not live; the scene writes the caption while it is
// shards paid on the chain, the latest locked checkpoint); the state word and the note say what the feed is doing function onState(s,r){if(s==='live')return;cap.classList.add('muted');cap.textContent=s==='connecting'?'Connecting to the devnet observer.':s==='stale'?(r.charAt(0).toUpperCase()+r.slice(1))+'. The scene holds the last stored blocks.':'Live feed unavailable. The scene holds its last blocks; the live page shows the last stored state.';}
var label=document.getElementById('viz-label'),word=document.getElementById('viz-word'),dot=label?label.querySelector('.dot'):null,note=document.getElementById('viz-note'); function onData(d){var s=d.state,pv=d.proving;
var cb=document.getElementById('c-blocks'),cp=document.getElementById('c-proven'),cl=document.getElementById('c-locked'),cm=document.getElementById('c-miners'),ch=document.getElementById('c-hash'); document.getElementById('f-hash').textContent=fmtHash(s.hashes_per_second_estimate);
function setWord(state,reason){ document.getElementById('f-keys').textContent=fmtN(s.miners_10m!==null&&s.miners_10m!==undefined?s.miners_10m:(d.miners||[]).length);
if(!word||!dot)return; var paid=document.getElementById('f-paid');if(!pv||!pv.supported){paid.textContent='no proving layer';paid.className='v state';}else if(!pv.active){paid.textContent='proving not active';paid.className='v state';}else{paid.textContent=fmtN(pv.paid_shards_total);paid.className='v';}
var w=state==='live'?'live devnet':state==='stale'?reason:state==='failed'?'live feed unavailable':'connecting to the devnet observer'; document.getElementById('f-paid10').textContent=fmtN(pv&&pv.active?(pv.shards_paid_10m||0):null);
word.innerHTML=state==='live'?'<a href="/live">live devnet</a>':w; var fn=d.finality,note=document.getElementById('facts-note');
dot.className='dot '+(state==='live'?'live':state==='failed'?'bad':'off'); note.textContent='One node is read every 2 s. '+(fn&&fn.supported&&!fn.active?'Finality is paused: under two thirds of the weight is signing, so no checkpoint locks until it returns. ':fn&&fn.active&&fn.latest_locked_index?'The latest locked checkpoint is #'+fmtN(fn.latest_locked_index)+'. ':'')+(pv&&pv.active&&pv.median_proof_lag_s?'Proofs land a median '+Math.round(pv.median_proof_lag_s)+' s behind the tip. ':'')+'The chip figures are a cost model, not a measurement.';}
label.className='state '+(state==='live'?'live':state==='failed'?'bad':''); var c=document.getElementById('steps');
if(state!=='live'&&note){note.textContent=(state==='failed'?'The live feed is unavailable, so the scene holds its last blocks and the counters read pending.':state==='stale'?w.charAt(0).toUpperCase()+w.slice(1)+'. The scene holds the last stored blocks; the counters are the last the observer wrote.':'Connecting to the devnet observer.')+' The live page shows the last stored state.';} if(c&&window.IgneumFeed&&window.IgneumSteps){var steps=IgneumSteps.mount(c,{caption:cap});IgneumFeed.start({window:300,subs:[steps],onState:onState,onData:onData});}
}
function onData(d){
var s=d.state,pv=d.proving,fn=d.finality;
cb.textContent=fmtN(s.height);
cp.textContent=!pv||!pv.supported?'no proving layer':!pv.active?'not active':fmtN(pv.paid_shards_total);
cl.textContent=!fn||!fn.supported?'no finality':!fn.active?'finality paused'+(fn.latest_locked_index?', last #'+fmtN(fn.latest_locked_index):''):fn.latest_locked_index!==null&&fn.latest_locked_index!==undefined?'#'+fmtN(fn.latest_locked_index):'none yet';
cm.textContent=fmtN(s.miners_10m!==null&&s.miners_10m!==undefined?s.miners_10m:(d.miners||[]).length);
ch.textContent=fmtHash(s.hashes_per_second_estimate);
if(note&&!s.stale){var lag=pv&&pv.active&&pv.median_proof_lag_s?Math.round(pv.median_proof_lag_s):null;
note.textContent='One node is read every 2 s. Chain block is the EVM block number. Shards proven is every shard paid on the chain so far'+(pv&&pv.active?' ('+fmtN(pv.shards_paid_10m||0)+' in the last 10 minutes'+(lag?', landing a median '+lag+' s behind the tip, so the newest blocks on screen are still pending':'')+')':'')+'. Last lock is the latest checkpoint the finality rule locked. A card runs several vote keys. Every square is a real block released at a calm pace so each step can be seen; the caption follows the newest block that changed step.';}
}
// the step view: the shared feed polls /api/live (300 s window so late proofs still reach the caption) and pushes to the scene
var stepsCanvas=document.getElementById('steps');
if(stepsCanvas&&window.IgneumFeed&&window.IgneumSteps){var steps=IgneumSteps.mount(stepsCanvas,{caption:document.getElementById('steps-caption')});
IgneumFeed.start({window:300,subs:[steps],onState:setWord,onData:onData});}
// hourly program ticker
var ops=['rotl','rotr','xor','add','sub','mul','mulhi','mad','or'];
function hex(){return '0x'+Math.floor(Math.random()*0xFFFFFFFF).toString(16).toUpperCase().padStart(8,'0');}
function reg(){return 'r'+Math.floor(Math.random()*8);}
function line(){var o=ops[Math.floor(Math.random()*ops.length)];var r=Math.random();
if(r<0.25)return reg()+' ^= load(ds, '+reg()+' & MASK)';
if(r<0.35)return reg()+' = shfl_xor('+reg()+', '+[1,2,4,8,16][Math.floor(Math.random()*5)]+')';
if(o==='mad')return reg()+' = mad('+reg()+', '+reg()+' | 1, '+reg()+')';
if(o==='rotl'||o==='rotr')return reg()+' = '+o+'('+reg()+', '+Math.floor(Math.random()*31+1)+')';
if(o==='mulhi')return reg()+' = mulhi('+reg()+', '+hex()+')';
return reg()+' = '+reg()+' '+({xor:'^',add:'+',sub:'-',mul:'*',or:'|'})[o]+' '+(Math.random()<0.5?reg():hex());}
var pre=document.getElementById('program');
function program(){var ls=['// seed from a locked checkpoint, through a 10 minute delay'];for(var i=0;i<5;i++)ls.push(line());ls.push('// 64 instructions x 8 iterations, regenerated every hour');return ls;}
function type(ls){pre.textContent='';var i=0,j=0,out='';function t(){if(i>=ls.length)return;if(j<=ls[i].length){out=ls.slice(0,i).join('\n')+(i?'\n':'')+ls[i].slice(0,j);pre.textContent=out;j++;setTimeout(t,reduce?0:14);}else{i++;j=0;t();}}t();}
type(program());
if(!reduce)setInterval(function(){type(program());},16000);
var cd=document.getElementById('countdown');
function countdown(){var n=new Date();var s=3599-(n.getMinutes()*60+n.getSeconds());cd.textContent=String(Math.floor(s/60)).padStart(2,'0')+':'+String(s%60).padStart(2,'0');}
countdown();setInterval(countdown,1000);
// journey: the build inlines journey.json into #journey-data, so the phases and the log render in the same pass as the
// page (no fetch, no layout shift); the fetch is the fallback for an unbuilt copy
var MON=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
function day(iso){var m=/^(\d{4})-(\d{2})-(\d{2})$/.exec(iso||'');return m?(+m[3])+' '+MON[+m[2]-1]+' '+m[1]:(iso||'');}
function journey(j){
var ph=document.getElementById('phases'),lg=document.getElementById('log'),lab=document.getElementById('stage-label');
var active=j.phases.filter(function(p){return p.status==='active';});
var names=active.map(function(p){return p.name;}),list=names.length>1?names.slice(0,-1).join(', ')+' and '+names[names.length-1]:names.join('');
lab.textContent='now · '+list+' · updated '+day(j.updated);
j.phases.forEach(function(p,i){var d=document.createElement('div');d.className='phase '+p.status;d.innerHTML='<div class="w">'+p.when+'</div><div class="n">'+(i+1)+'. '+p.name+'</div>'+(p.gate?'<div class="g">Gate: '+p.gate+'</div>':'<div class="g">'+p.line+'</div>');ph.appendChild(d);});
var SHOW=8,last='';
j.log.forEach(function(e,i){var d=document.createElement('div');if(i>=SHOW)d.className='more';var same=e.date===last;last=e.date;
d.innerHTML='<span class="d"'+(same?' aria-hidden="true"':'')+'>'+(same?'':day(e.date))+'</span><span>'+(e.short||e.text)+'</span>';lg.appendChild(d);});
if(j.log.length>SHOW){var t=document.createElement('button');t.type='button';t.className='log-toggle';t.setAttribute('aria-expanded','false');t.textContent='Show all '+j.log.length+' entries';
t.onclick=function(){var open=lg.classList.toggle('open');t.setAttribute('aria-expanded',open?'true':'false');t.textContent=open?'Show the latest '+SHOW:'Show all '+j.log.length+' entries';};lg.appendChild(t);}
}
var inline=document.getElementById('journey-data'),data=null;
try{if(inline&&inline.textContent.trim())data=JSON.parse(inline.textContent);}catch(e){data=null;}
if(data)journey(data);
else fetch('/journey.json').then(function(r){return r.json();}).then(journey).catch(function(){document.getElementById('stage-label').textContent='phase 3 · devnet';});
})(); })();
</script> </script>
</body> </body>

View file

@ -51,21 +51,10 @@
</script> </script>
<!-- head:end --> <!-- head:end -->
<style> <style>
:root{--obsidian:#0C0C0E;--graphite:#16161A;--line:#2A2A30;--line-2:#3A3A42;--ember:#F2541B;--molten:#FFB35C;--bone:#F4F1EC;--ash:#9A9A9E;--ink-2:#C9C7C2;--max:1200px;--gutter:clamp(16px,4vw,32px);--sec:clamp(40px,6vw,72px)} /* page block; tokens, type and components are in /site.css */
*{box-sizing:border-box} .entry code,.entry .did,.entry blockquote,.entry p,.entry h3{overflow-wrap:anywhere}.entry code{white-space:normal}
body{margin:0;background:var(--obsidian);color:var(--bone);font-family:var(--f-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--ember);text-decoration:none}a:hover{color:var(--molten)}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ash)}
h1{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,5vw,52px);line-height:1.08;margin:10px 0 18px}
main h2{font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2.6vw,28px);text-wrap:balance;margin:var(--sec) 0 16px;padding-top:8px;border-top:1px solid var(--line);scroll-margin-top:84px} main h2{font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2.6vw,28px);text-wrap:balance;margin:var(--sec) 0 16px;padding-top:8px;border-top:1px solid var(--line);scroll-margin-top:84px}
h3{font-family:var(--f-sans);font-weight:600;font-size:17px;margin:0;flex:1 1 auto;min-width:0}
.intro{font-size:17px;color:var(--ink-2);max-width:76ch;margin:0 0 24px} .intro{font-size:17px;color:var(--ink-2);max-width:76ch;margin:0 0 24px}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--graphite);margin:0 0 20px}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:520px}
th,td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
th{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);font-weight:500}
tr:last-child td{border-bottom:0}
td.num{font-family:var(--f-display);font-weight:700;font-size:22px;color:var(--ember);white-space:nowrap} td.num{font-family:var(--f-display);font-weight:700;font-size:22px;color:var(--ember);white-space:nowrap}
.chip{background:none;border:1px solid var(--line-2);color:var(--bone);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;cursor:pointer} .chip{background:none;border:1px solid var(--line-2);color:var(--bone);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;cursor:pointer}
.chip:hover,.chip.on{border-color:var(--ember);color:var(--molten)} .chip:hover,.chip.on{border-color:var(--ember);color:var(--molten)}
@ -81,9 +70,7 @@ blockquote{margin:10px 0;padding:10px 14px;border-left:3px solid var(--line-2);c
.status{font-size:15px;color:var(--ink-2)} .status{font-size:15px;color:var(--ink-2)}
.badge{display:inline-block;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);color:var(--bone);margin-right:6px;vertical-align:middle} .badge{display:inline-block;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);color:var(--bone);margin-right:6px;vertical-align:middle}
.b-open{border-color:var(--ember);color:var(--ember)}.b-conceded{border-color:var(--molten);color:var(--molten)}.b-fixed-or-built{border-color:#5cb85c;color:#8fd48f} .b-open{border-color:var(--ember);color:var(--ember)}.b-conceded{border-color:var(--molten);color:var(--molten)}.b-fixed-or-built{border-color:#5cb85c;color:#8fd48f}
code{font-family:var(--f-mono);font-size:13px;color:var(--bone);background:#0C0C0E;padding:1px 5px;border-radius:5px}
details{margin-top:8px;font-size:14px;color:var(--ash)}summary{cursor:pointer;color:var(--ash)}details p{margin:8px 0 0;color:var(--ink-2)} details{margin-top:8px;font-size:14px;color:var(--ash)}summary{cursor:pointer;color:var(--ash)}details p{margin:8px 0 0;color:var(--ink-2)}
.foot{margin-top:var(--sec)}
</style> </style>
</head> </head>
<body> <body>
@ -1279,7 +1266,7 @@ details{margin-top:8px;font-size:14px;color:var(--ash)}summary{cursor:pointer;co
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -350,7 +350,7 @@ body.all .pager{display:none}
<section id="randomx"> <section id="randomx">
<h2>Monero's idea, finished for GPUs</h2> <h2>Monero's idea, finished for GPUs</h2>
<p>RandomX has kept chips off Monero since 2019 by making the mining program random, so the only hardware that runs it well is the hardware everyone already owns. Igneum takes the same principle to graphics cards and adds what RandomX never had.</p> <p>RandomX has kept chips off Monero since 2019 (approximate) by making the mining program random, so the only hardware that runs it well is the hardware everyone already owns. Igneum takes the same principle to graphics cards and adds what RandomX never had.</p>
<div class="tbl"><table> <div class="tbl"><table>
<thead><tr><th>Property</th><th>RandomX, Monero</th><th>Igneum</th></tr></thead> <thead><tr><th>Property</th><th>RandomX, Monero</th><th>Igneum</th></tr></thead>
<tbody> <tbody>
@ -376,7 +376,7 @@ body.all .pager{display:none}
<h3>The proving budget</h3> <h3>The proving budget</h3>
<p>Gas prices execution. Proving cost is a different number, so Igneum meters it separately: every transaction pays in both dimensions, and each block has a proving-cost budget set in consensus from measured prover throughput. A transaction that is cheap to run and expensive to prove pays for what it costs the provers. Measured on 5 October 2026 (an RTX 5090 under SP1 6.8.1's GPU prover, the shard size the chain adopts from its fee switch, 30,000 proving gas, about 4.7 million prover cycles): one full shard proves in 4.3 seconds and needs 20.4 GB of GPU memory with the card to itself, so a 24 GB card proves full shards and a 12 GB or 16 GB card does not on this prover build, whose floor is 13.9 GB for even an empty shard; mining and proving on one card needs 32 GB today (the prototype-size shard beside the miner peaked at 30.1 GB) and 24 GB once the adopted shard size is live (22.2 GB beside the miner, 13.2 seconds a shard, measured on the 32 GB card; a 24 GB card has not run it yet). The old 12 GB gate on the roadmap was withdrawn on 5 October until a prover build with a smaller floor was measured; on 6 October a patched server proved the same shard at 7.4 to 8.0 GB alone on eleven rented cards from the RTX 3060 to the RTX 5090 (the real-card table), so the gate returns as measured and the patched server is not yet in the shipped app. The first proofs exist: on 4 October 2026 an RTX 5090 proved a small two-transaction block in 1.4 seconds (2.7 seconds compressed), verified in 0.22 and 0.038 seconds, and a laptop CPU proved a three-shard block end to end in 19 minutes. Later that day the same card proved a full shard at the provisional size, 6.75 million prover gas, which executed in 60.8 million cycles: core proof 8.3 seconds, compressed proof 10.9 seconds, verified in 0.040 seconds; a four-shard block took 44.5 seconds of GPU stages end to end. Since 5 October 2026 shards are assigned and proven on the live devnet. The gate asks for a mid-range card, and an RTX 5090 is not one, so the gate stands open. Once the gate is measured, the budget rises by schedule as hardware improves. The proof system is hash-based, which is what runs on consumer cards, and sits behind a versioned interface, so Igneum can adopt a better proof system when one exists by a miner-signalled release, and runs for ever on the current one if none is adopted.</p> <p>Gas prices execution. Proving cost is a different number, so Igneum meters it separately: every transaction pays in both dimensions, and each block has a proving-cost budget set in consensus from measured prover throughput. A transaction that is cheap to run and expensive to prove pays for what it costs the provers. Measured on 5 October 2026 (an RTX 5090 under SP1 6.8.1's GPU prover, the shard size the chain adopts from its fee switch, 30,000 proving gas, about 4.7 million prover cycles): one full shard proves in 4.3 seconds and needs 20.4 GB of GPU memory with the card to itself, so a 24 GB card proves full shards and a 12 GB or 16 GB card does not on this prover build, whose floor is 13.9 GB for even an empty shard; mining and proving on one card needs 32 GB today (the prototype-size shard beside the miner peaked at 30.1 GB) and 24 GB once the adopted shard size is live (22.2 GB beside the miner, 13.2 seconds a shard, measured on the 32 GB card; a 24 GB card has not run it yet). The old 12 GB gate on the roadmap was withdrawn on 5 October until a prover build with a smaller floor was measured; on 6 October a patched server proved the same shard at 7.4 to 8.0 GB alone on eleven rented cards from the RTX 3060 to the RTX 5090 (the real-card table), so the gate returns as measured and the patched server is not yet in the shipped app. The first proofs exist: on 4 October 2026 an RTX 5090 proved a small two-transaction block in 1.4 seconds (2.7 seconds compressed), verified in 0.22 and 0.038 seconds, and a laptop CPU proved a three-shard block end to end in 19 minutes. Later that day the same card proved a full shard at the provisional size, 6.75 million prover gas, which executed in 60.8 million cycles: core proof 8.3 seconds, compressed proof 10.9 seconds, verified in 0.040 seconds; a four-shard block took 44.5 seconds of GPU stages end to end. Since 5 October 2026 shards are assigned and proven on the live devnet. The gate asks for a mid-range card, and an RTX 5090 is not one, so the gate stands open. Once the gate is measured, the budget rises by schedule as hardware improves. The proof system is hash-based, which is what runs on consumer cards, and sits behind a versioned interface, so Igneum can adopt a better proof system when one exists by a miner-signalled release, and runs for ever on the current one if none is adopted.</p>
<h3>Proving for everyone else</h3> <h3>Proving for everyone else</h3>
<p>The same miners accept proving jobs from other chains. Rollups post a job, a miner wins it, proves it, and is paid. The job market is permissionless and is Designed, not yet built. At launch a job is paid on the customer's own chain, in the customer's currency, to a payout contract keyed by miner address, because Igneum cannot yet see Ethereum. Settlement in IGN, with 10% of each fee burned, follows when the proof bridge lets Igneum see the payment, in phase two. The Igneum miner client can also bid on other proving networks and take the best price, where a miner chooses to hold their collateral: Boundless provers post ZKC and Succinct provers stake PROVE (approximate, from their documentation). The proving market is small today. Igneum does not depend on it. We know of no other proof-of-work chain selling proofs to other chains.</p> <p>The same miners accept proving jobs from other chains. Rollups post a job, a miner wins it, proves it, and is paid. The job market is permissionless and is Designed, not yet built. At launch a job is paid on the customer's own chain, in the customer's currency, to a payout contract keyed by miner address, because Igneum cannot yet see Ethereum. Settlement in IGN, with 10% of each fee burned, follows when the proof bridge lets Igneum see the payment, in phase two. The Igneum miner client can also bid on other proving networks and take the best price, where a miner chooses to hold their collateral: Boundless provers post ZKC and Succinct provers stake PROVE (approximate, from their documentation). The proving market is small today. Igneum does not depend on it. We know of no other proof-of-work chain selling proofs to other chains. Live rows arrive with the public testnet, August 2027.</p>
</section> </section>
<section id="finality"> <section id="finality">
@ -503,6 +503,11 @@ body.all .pager{display:none}
<p>The protocol carries no fee: no dev fund, no cut to any team. Ember, the miner software, takes an optional 1% dev fee, the way other GPU miners do. One block template in 100 is requested with the dev address instead of yours, by a counter, not a random draw, so it is exactly 1 in 100 and anyone can check it from the source or from the chain. One flag turns it off (<code>--dev-fee 0</code>, a switch in the app, a line in the HiveOS config). The miner prints the fee and the address when it starts. Any other client is welcome.</p> <p>The protocol carries no fee: no dev fund, no cut to any team. Ember, the miner software, takes an optional 1% dev fee, the way other GPU miners do. One block template in 100 is requested with the dev address instead of yours, by a counter, not a random draw, so it is exactly 1 in 100 and anyone can check it from the source or from the chain. One flag turns it off (<code>--dev-fee 0</code>, a switch in the app, a line in the HiveOS config). The miner prints the fee and the address when it starts. Any other client is welcome.</p>
<h3>One click, for everyone else</h3> <h3>One click, for everyone else</h3>
<p>Farm operators get a HiveOS package. Everyone else gets Igneum Ember: install it on Windows, macOS or Linux, press Start, and the card is mining to a key the app made for you. It is the same client with a face on it. Implemented, Ember 0.3.9 (5 October 2026): the app shows the key once and has you save it before mining starts, or takes an address you already have; the dashboard shows each card's hash rate, blocks found and accepted by the node, the node's height and peers, the next hourly program, the finality votes sent, and a proving tile with shards assigned, submitted and paid and the verifier state; the chain label reads devnet v4 and the welcome screen says nothing is bought or sold; NVIDIA cards are capped at 80% of their default power limit for stability, with a sweep that looks for the best hash per watt, not yet measured on a card; proving the shards the chain assigns is a switch in Settings (proving v0), beside the 1% dev fee switch, finality voting, and signed updates that install themselves at a quiet moment with a switch to turn that off. It shows no earnings in IGN or in any currency, and it has no hardware-wallet path. Roadmap, Designed and not in the app: earnings per block in IGN with the network named, a figure in your currency, mining paused while you game, and a hardware wallet for your key. Ember is downloaded only from this domain, with the version and size on the button and the hash in the signed manifest the app checks. The next section says what is shipped and what is still a design. Nobody from Igneum will ever ask for your seed. Mining never runs in a browser, because browser compute is slow and browser mining has meant malware since Coinhive. The browser is for the dashboard, and for verifying the chain.</p> <p>Farm operators get a HiveOS package. Everyone else gets Igneum Ember: install it on Windows, macOS or Linux, press Start, and the card is mining to a key the app made for you. It is the same client with a face on it. Implemented, Ember 0.3.9 (5 October 2026): the app shows the key once and has you save it before mining starts, or takes an address you already have; the dashboard shows each card's hash rate, blocks found and accepted by the node, the node's height and peers, the next hourly program, the finality votes sent, and a proving tile with shards assigned, submitted and paid and the verifier state; the chain label reads devnet v4 and the welcome screen says nothing is bought or sold; NVIDIA cards are capped at 80% of their default power limit for stability, with a sweep that looks for the best hash per watt, not yet measured on a card; proving the shards the chain assigns is a switch in Settings (proving v0), beside the 1% dev fee switch, finality voting, and signed updates that install themselves at a quiet moment with a switch to turn that off. It shows no earnings in IGN or in any currency, and it has no hardware-wallet path. Roadmap, Designed and not in the app: earnings per block in IGN with the network named, a figure in your currency, mining paused while you game, and a hardware wallet for your key. Ember is downloaded only from this domain, with the version and size on the button and the hash in the signed manifest the app checks. The next section says what is shipped and what is still a design. Nobody from Igneum will ever ask for your seed. Mining never runs in a browser, because browser compute is slow and browser mining has meant malware since Coinhive. The browser is for the dashboard, and for verifying the chain.</p>
<h3 id="testnet-terms">Testnet terms</h3>
<p><strong>No value.</strong> Testnet IGN cannot be sold, bought or redeemed, now or at mainnet. There is no airdrop, no points scheme and no promise tied to testnet balances. Mainnet starts from an empty genesis.</p>
<p><strong>Resets.</strong> The chain restarts from a fresh genesis when a consensus rule changes. Every reset is announced at least seven days ahead on the site and in the app. Balances, contracts and history do not carry over. The devnet that runs today resets without notice.</p>
<p><strong>What the app sends home.</strong> The app version, a random machine id made at install, your operating system, the node version, the hash rate, and the app, node and miner logs (which name the address the card mines to). They go to the project's log intake, a service Igneum runs on its host, and are read by the maintainers to find faults. Never your seed phrase, never a key, never a file you did not make with the app. Nothing is sold or shared.</p>
<p>Wallet set-up for MetaMask: <a href="/metamask">chain id, RPC and the one-click button</a>. The miner software takes an optional 1% fee, off with one flag; the protocol carries no fee to anyone.</p>
<h3>Fair launch, announced</h3> <h3>Fair launch, announced</h3>
<p>Launch date and miner software published a month ahead. Pools live on testnet. HiveOS support on day one. The founders mine from genesis like everyone else, with disclosed addresses and the same software. Nobody has coins before block one. The first 30 days of mainnet run on proof of work alone, with no locked checkpoint, while vote weights build; anyone crediting deposits in that month should treat Igneum as plain proof of work with a 12-hour depth.</p> <p>Launch date and miner software published a month ahead. Pools live on testnet. HiveOS support on day one. The founders mine from genesis like everyone else, with disclosed addresses and the same software. Nobody has coins before block one. The first 30 days of mainnet run on proof of work alone, with no locked checkpoint, while vote weights build; anyone crediting deposits in that month should treat Igneum as plain proof of work with a 12-hour depth.</p>
</section> </section>
@ -727,7 +732,7 @@ body.all .pager{display:none}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -46,7 +46,7 @@
else parts.push(sh.length + (sh.length === 1 ? ' shard planned' : ' shards planned')); else parts.push(sh.length + (sh.length === 1 ? ' shard planned' : ' shards planned'));
} }
if (b.locked) { var idx = cpIndexOf(b.hash); parts.push('locked at checkpoint' + (idx !== null ? ' ' + fmt(idx) : '')); } if (b.locked) { var idx = cpIndexOf(b.hash); parts.push('locked at checkpoint' + (idx !== null ? ' ' + fmt(idx) : '')); }
else if (b.final) parts.push('final under the newest lock'); else if (b.final && finality && finality.active) parts.push('final under the newest lock');
return name + ': ' + parts.join('; '); return name + ': ' + parts.join('; ');
} }
function setCaption(text, muted) { if (!caption) return; caption.textContent = text; caption.classList.toggle('muted', !!muted); } function setCaption(text, muted) { if (!caption) return; caption.textContent = text; caption.classList.toggle('muted', !!muted); }
@ -91,7 +91,8 @@
// parent edges between blocks on screen // parent edges between blocks on screen
blocks.forEach(function (b) { (b.src.parents || []).forEach(function (h) { var q = byHash[h]; if (!q || q.x === null || blocks.indexOf(q) < 0) return; var both = b.step === 'proven' && q.step === 'proven'; ctx.strokeStyle = both ? F.rgba(T.ember, 0.45) : F.rgba(T.ash, 0.22); ctx.lineWidth = both ? 1.5 : 1; ctx.beginPath(); ctx.moveTo(b.x, b.y); var mx = (b.x + q.x) / 2; ctx.bezierCurveTo(mx, b.y, mx, q.y, q.x, q.y); ctx.stroke(); }); }); blocks.forEach(function (b) { (b.src.parents || []).forEach(function (h) { var q = byHash[h]; if (!q || q.x === null || blocks.indexOf(q) < 0) return; var both = b.step === 'proven' && q.step === 'proven'; ctx.strokeStyle = both ? F.rgba(T.ember, 0.45) : F.rgba(T.ash, 0.22); ctx.lineWidth = both ? 1.5 : 1; ctx.beginPath(); ctx.moveTo(b.x, b.y); var mx = (b.x + q.x) / 2; ctx.bezierCurveTo(mx, b.y, mx, q.y, q.x, q.y); ctx.stroke(); }); });
// the lock line: everything left of the newest locked block is final // the lock line: everything left of the newest locked block is final
var lk = null; blocks.forEach(function (b) { if (b.src.locked && (!lk || b.x > lk.x)) lk = b; }); // the lock line and the word final are drawn only while finality is active (the owner's rule: no "final" anywhere while finality is paused)
var lk = null; if (!finality || finality.active) blocks.forEach(function (b) { if (b.src.locked && (!lk || b.x > lk.x)) lk = b; });
if (lk) { ctx.strokeStyle = F.rgba(T.ember, 0.55); ctx.lineWidth = 1.5; ctx.setLineDash([5, 6]); ctx.beginPath(); ctx.moveTo(lk.x, 6); ctx.lineTo(lk.x, H - 6); ctx.stroke(); ctx.setLineDash([]); ctx.fillStyle = T.ash; ctx.font = '500 ' + Math.max(10, Math.round(S * 0.42)) + 'px IBM Plex Mono, monospace'; ctx.textAlign = 'right'; ctx.textBaseline = 'alphabetic'; ctx.fillText('final', lk.x - 8, 14); } if (lk) { ctx.strokeStyle = F.rgba(T.ember, 0.55); ctx.lineWidth = 1.5; ctx.setLineDash([5, 6]); ctx.beginPath(); ctx.moveTo(lk.x, 6); ctx.lineTo(lk.x, H - 6); ctx.stroke(); ctx.setLineDash([]); ctx.fillStyle = T.ash; ctx.font = '500 ' + Math.max(10, Math.round(S * 0.42)) + 'px IBM Plex Mono, monospace'; ctx.textAlign = 'right'; ctx.textBaseline = 'alphabetic'; ctx.fillText('final', lk.x - 8, 14); }
blocks.forEach(function (b) { blocks.forEach(function (b) {
var h = S / 2, w = b.step, src = b.src, ex = src.color === 'red'; var h = S / 2, w = b.step, src = b.src, ex = src.color === 'red';

View file

@ -54,6 +54,8 @@
<!-- head:end --> <!-- head:end -->
<style> <style>
/* page block; tokens, type and components are in /site.css */ /* page block; tokens, type and components are in /site.css */
.verify-row{display:flex;gap:var(--s-4);align-items:center;margin:var(--s-3) 0 var(--s-4)}.tick{width:44px;height:44px;border-radius:12px;background:var(--ember);display:grid;place-items:center;flex:none}.tick svg{stroke:var(--ember-ink)}.verify-row h3{margin:0 0 4px}.verify-row p{margin:0;color:var(--ash);font-size:var(--t-base)}
.verify-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2)}.verify-grid .cell{background:var(--row);border:1px solid var(--line);border-radius:var(--r-row);padding:10px 12px;min-width:0}.verify-grid .k{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}.verify-grid .v{font:500 14px/1.4 var(--f-mono);color:var(--bone);margin-top:2px;overflow-wrap:anywhere}.verify-grid .v.hot{color:var(--molten-text)}@media (max-width:700px){.verify-grid{grid-template-columns:1fr 1fr}}
.scene{position:relative}.scene canvas{width:100%;height:420px;border-radius:var(--r-row);background:var(--row);border:1px solid var(--line);display:block}@media (max-width:700px){.scene canvas{height:300px}} .scene{position:relative}.scene canvas{width:100%;height:420px;border-radius:var(--r-row);background:var(--row);border:1px solid var(--line);display:block}@media (max-width:700px){.scene canvas{height:300px}}
.tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--graphite);border:1px solid var(--line-2);border-radius:var(--r-row);padding:10px 12px;font:400 12px/1.5 var(--f-mono);color:var(--ink-2);display:flex;flex-direction:column;gap:2px;max-width:320px;box-shadow:0 14px 40px var(--shadow)}.tip b{color:var(--bone);font-weight:500;overflow-wrap:anywhere}.tip[hidden]{display:none} .tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--graphite);border:1px solid var(--line-2);border-radius:var(--r-row);padding:10px 12px;font:400 12px/1.5 var(--f-mono);color:var(--ink-2);display:flex;flex-direction:column;gap:2px;max-width:320px;box-shadow:0 14px 40px var(--shadow)}.tip b{color:var(--bone);font-weight:500;overflow-wrap:anywhere}.tip[hidden]{display:none}
.scene-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);align-items:flex-start;margin-top:var(--s-4)} .scene-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);align-items:flex-start;margin-top:var(--s-4)}
@ -177,6 +179,18 @@ main{padding-bottom:var(--sec)}
<div class="cell"><div class="k">Peers</div><div class="v" id="st-peers">0</div><div class="s" id="st-mempool">mempool 0</div></div> <div class="cell"><div class="k">Peers</div><div class="v" id="st-peers">0</div><div class="s" id="st-mempool">mempool 0</div></div>
</div> </div>
<div class="card" id="light-client" style="margin-top:var(--gap)">
<div class="viz-head"><div class="eyebrow">This tab · light client</div><div class="state" data-lc="badge"><span class="dot off"></span><span data-lc="badge-text">PREVIEW</span></div></div>
<div class="verify-row"><div class="tick"><svg viewBox="0 0 24 24" width="26" height="26" fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7"></path></svg></div><div><h3>Browser checks Igneum</h3><p data-lc="line">A checkpoint certificate, verified in this tab. Voter list from the node.</p></div></div>
<div class="verify-grid">
<div class="cell"><div class="k">Block proof</div><div class="v" data-lc="proof" title="No execution proof is on the chain yet. The first off-chain GPU proof of a block was 4 October 2026">not yet</div></div>
<div class="cell"><div class="k">Checkpoint</div><div class="v" data-lc="checkpoint">checking</div></div>
<div class="cell"><div class="k">Proof system</div><div class="v" data-lc="system">BLS aggregate, version 1</div></div>
<div class="cell"><div class="k">Verified in this tab</div><div class="v hot" data-lc="tab">checking</div></div>
</div>
<script type="module" src="/verify/verify.js"></script>
</div>
<div class="card viz" aria-label="Block DAG, finality and proving, live"> <div class="card viz" aria-label="Block DAG, finality and proving, live">
<div class="viz-head"> <div class="viz-head">
<div class="state" id="dag-state"><span class="dot off"></span>connecting to the devnet observer</div> <div class="state" id="dag-state"><span class="dot off"></span>connecting to the devnet observer</div>
@ -245,7 +259,7 @@ main{padding-bottom:var(--sec)}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -130,7 +130,7 @@ ol{margin:0 0 14px;padding-left:22px}li{margin-bottom:6px}
<div class="card" id="testnet"> <div class="card" id="testnet">
<span class="tag">Public testnet · coming</span> <span class="tag">Public testnet · coming</span>
<h3>Igneum testnet</h3> <h3>Igneum testnet</h3>
<p>The network the one-click miner app joins at public testnet. Coins on it have no value and the chain resets with notice (<a href="/#testnet-terms">testnet terms</a>).</p> <p>The network the one-click miner app joins at public testnet. Coins on it have no value and the chain resets with notice (<a href="/litepaper#testnet-terms">testnet terms</a>).</p>
<dl> <dl>
<dt>Network name</dt><dd>Igneum Testnet</dd> <dt>Network name</dt><dd>Igneum Testnet</dd>
<dt>Chain id</dt><dd>4462 (0x116e)</dd> <dt>Chain id</dt><dd>4462 (0x116e)</dd>
@ -217,7 +217,7 @@ ol{margin:0 0 14px;padding-left:22px}li{margin-bottom:6px}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -541,7 +541,7 @@ pre b{color:var(--molten);font-weight:500}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -182,7 +182,7 @@ table{min-width:560px}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -27,7 +27,7 @@
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -164,7 +164,7 @@
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -358,7 +358,7 @@ td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
<div class="eyebrow">Follow</div> <div class="eyebrow">Follow</div>
<a href="/live">Live devnet</a> <a href="/live">Live devnet</a>
<a href="/explorer">Explorer</a> <a href="/explorer">Explorer</a>
<a href="/#journey">Journey</a> <a href="/litepaper#roadmap">Journey</a>
<a href="/metamask">Add Igneum to MetaMask</a> <a href="/metamask">Add Igneum to MetaMask</a>
<a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a> <a href="https://github.com/igneum-network/spec" rel="noopener"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"></path></svg>GitHub, spec and vectors</a>
<a href="/miner#get">Miner downloads: devnet build</a> <a href="/miner#get">Miner downloads: devnet build</a>

View file

@ -8,16 +8,15 @@ import { fileURLToPath } from 'node:url';
const site = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'site'); const site = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'site');
const REQUIRED = { const REQUIRED = {
'index.html': [ 'index.html': [
['E5', 'The one payment to the project is the Ember software’s optional 1% dev fee', 'The one payment to the project is the Ember software\'s optional 1% dev fee'], // 6 Oct 2026: the home page is the scene, three facts, the downloads and one line to the ledger; the rows it no longer
['G4', 'admin keys in consensus'], // states moved to the litepaper (G4, C2, X3, X8 below) and the ledger's "stated on" notes are owed an update
['C2', 'since 2019 (approximate)'], ['E5', 'The one payment to the project is the Ember software\u2019s optional 1% dev fee', 'The one payment to the project is the Ember software\'s optional 1% dev fee'],
['M32', 'a chip wired for one program is useless'],
['X2', 'Public testnet: not yet open; the devnet build is here for people who want to look'], ['X2', 'Public testnet: not yet open; the devnet build is here for people who want to look'],
['X3', 'Live rows arrive with the public testnet, August 2027'],
['X7', 'hello@igneum.network'], ['X7', 'hello@igneum.network'],
['X8', 'No listing is arranged, promised or sought by the project'],
], ],
'litepaper.html': [ 'litepaper.html': [
['X3', 'Live rows arrive with the public testnet, August 2027'],
['C2', 'since 2019 (approximate)'],
['M2', 'computing items on the fly runs 4.8x slower than loading them'], ['M2', 'computing items on the fly runs 4.8x slower than loading them'],
['M4', 'ProgPoW, as KAWPOW on Ravencoin since 2020'], ['M4', 'ProgPoW, as KAWPOW on Ravencoin since 2020'],
['M7', 'The hash is a lottery, not a general-purpose cryptographic hash'], ['M7', 'The hash is a lottery, not a general-purpose cryptographic hash'],