415 lines
48 KiB
HTML
415 lines
48 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
||
<title>Igneum 2.0 devnet transaction</title>
|
||
<meta name="description" content="One devnet transaction: status, value, fees and their split, the block that executed it, its proof state and finality, its logs.">
|
||
<link rel="canonical" href="https://igneum.network/tx">
|
||
<meta name="robots" content="noindex">
|
||
<meta name="theme-color" content="#0C0C0E">
|
||
<!-- share:start -->
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:site_name" content="Igneum">
|
||
<meta property="og:title" content="Igneum transaction">
|
||
<meta property="og:description" content="One devnet transaction: status, value, fees, the block that executed it, its proof state and finality.">
|
||
<meta property="og:url" content="https://igneum.network/tx">
|
||
<meta property="og:image" content="https://igneum.network/og/explorer.png?v=4">
|
||
<meta property="og:image:type" content="image/png">
|
||
<meta property="og:image:width" content="1200">
|
||
<meta property="og:image:height" content="630">
|
||
<meta property="og:image:alt" content="The devnet, block by block. igneum.network/explorer">
|
||
<meta property="og:image" content="https://igneum.network/og/explorer-square.png?v=4">
|
||
<meta property="og:image:type" content="image/png">
|
||
<meta property="og:image:width" content="1200">
|
||
<meta property="og:image:height" content="1200">
|
||
<meta property="og:image:alt" content="The devnet, block by block. igneum.network/explorer">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:title" content="Igneum transaction">
|
||
<meta name="twitter:description" content="One devnet transaction: status, value, fees, the block that executed it, its proof state and finality.">
|
||
<meta name="twitter:image" content="https://igneum.network/og/explorer.png?v=4">
|
||
<meta name="twitter:image:alt" content="The devnet, block by block. igneum.network/explorer">
|
||
<!-- share:end -->
|
||
<link rel="icon" href="/favicon.ico" sizes="48x48">
|
||
<link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
|
||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180">
|
||
<link rel="manifest" href="/site.webmanifest">
|
||
<!-- head:start -->
|
||
<link rel="preload" href="/fonts/unbounded-900.woff2" as="font" type="font/woff2" crossorigin>
|
||
<link rel="preload" href="/fonts/plex-sans-400.woff2" as="font" type="font/woff2" crossorigin>
|
||
<meta name="color-scheme" content="dark light">
|
||
<link rel="stylesheet" href="/site.css">
|
||
<style>
|
||
/* Shared by every page: the head partial, injected by the build between the head markers. Edit the partial, not the page. */
|
||
/* Fonts, self-hosted (latin subsets, OFL): Unbounded 500/700/900, IBM Plex Sans 400/500/600, IBM Plex Mono 400/500. Fallbacks carry size and ascent overrides so the swap does not move the layout. The tokens, type and components are in /site.css (docs/plans/site-ui-3.md). */
|
||
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/unbounded-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/unbounded-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'Unbounded';font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/unbounded-900.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||
@font-face{font-family:'Unbounded Fallback';src:local('Arial Black'),local('Arial-Black'),local('Impact');size-adjust:114%;ascent-override:87.5%;descent-override:21.5%;line-gap-override:0%}
|
||
@font-face{font-family:'Plex Sans Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica');size-adjust:100.5%;ascent-override:102%;descent-override:27.4%;line-gap-override:0%}
|
||
@font-face{font-family:'Plex Mono Fallback';src:local('Courier New'),local('Menlo');size-adjust:100%;ascent-override:102.5%;descent-override:27.5%;line-gap-override:0%}
|
||
</style>
|
||
<script>
|
||
/* theme before first paint: ?theme=light|dark for one view (the capture tool), else the stored choice under igneum-theme, else the system setting; ?motion=off marks the page data-motion=off so every .reveal is drawn at once (a headless render never scrolls) */
|
||
(function(){var t=null;try{t=new URLSearchParams(location.search).get("theme");}catch(e){}if(t!=="light"&&t!=="dark"){try{t=localStorage.getItem("igneum-theme");}catch(e){t=null;}}if(t!=="light"&&t!=="dark")t=window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";document.documentElement.setAttribute("data-theme",t);try{if(new URLSearchParams(location.search).get("motion")==="off")document.documentElement.setAttribute("data-motion","off");}catch(e){}})();
|
||
</script>
|
||
<!-- head:end -->
|
||
<style>
|
||
/* page block; tokens, type and components are in /site.css */
|
||
/* the explorer pages share this block with block.html and address.html; same tokens as live.html */
|
||
--card-pad:clamp(18px,3vw,28px);--card-r:18px;--tile-pad:18px 20px;--tile-r:14px;--gap:24px;--gap-tile:12px;
|
||
--fs-h1:clamp(32px,5.5vw,56px);--fs-h3:clamp(18px,2vw,22px);--fs-tile:clamp(20px,2.2vw,26px)}
|
||
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:6px}
|
||
.mono{font-family:var(--f-mono)}
|
||
h1,h2{font-family:var(--f-display);margin:0;line-height:1.08;text-wrap:balance}
|
||
.head{padding:65px 0 45px;display:flex;flex-direction:column;gap:14px}
|
||
.head p{color:var(--ink-2);max-width:67ch;font-size:18px;line-height:1.65}
|
||
.search{display:flex;gap:10px;max-width:760px;margin-top:4px;align-items:center;padding:12px 16px;border:1px solid var(--line-2);border-radius:8px;background:var(--row)}
|
||
.search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--bone);font-size:14px}
|
||
.search input::placeholder{color:var(--ash)}
|
||
.btn.primary:hover{background:#FF6A2B;border-color:#FF6A2B;color:var(--ember-ink)}
|
||
.msg{font-family:var(--f-mono);font-size:13px;color:var(--molten);min-height:18px}
|
||
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:24px;background:var(--row)}
|
||
@media (max-width:700px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.cell{border-right:1px solid var(--line)!important}.cell:nth-child(2n){border-right:0!important}.cell:nth-last-child(-n+4){border-bottom:1px solid var(--line)}.cell:nth-last-child(-n+2){border-bottom:0}}
|
||
.cell{padding:22px 25px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px;min-width:0}.cell:nth-child(4n){border-right:0}.cell:nth-last-child(-n+4){border-bottom:0}
|
||
.cell .k{font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin-bottom:5px}
|
||
.cell .v{font:700 clamp(21px,2.2vw,29px)/1.1 var(--display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||
.cell .v small{font-family:var(--f-mono);font-weight:500;font-size:13px;color:var(--ash);margin-left:4px;letter-spacing:.04em}
|
||
@media (max-width:700px){.cell .v{font-size:19px}}
|
||
.cell .s{font:10px/1.5 var(--mono);color:var(--ash);text-wrap:balance;margin-top:4px}
|
||
.cell.status .v{display:flex;align-items:center;gap:10px}
|
||
.off .dot{background:var(--ash);animation:none}.off .cell.status .v{color:var(--ash)}.on .cell.status .v{color:var(--molten)}
|
||
@media (prefers-reduced-motion:reduce){.dot{animation:none}}
|
||
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
|
||
tbody tr:hover td{background:rgba(255,255,255,.025)}
|
||
.id{font-family:var(--f-mono);color:var(--molten)}
|
||
.hash{font-family:var(--f-mono)}
|
||
.sw.chain{background:var(--ember);border-color:var(--blue)}.sw.blue{background:rgba(92,184,255,.7);border-color:var(--blue)}.sw.red{background:linear-gradient(45deg,transparent 44%,var(--ash) 44%,var(--ash) 56%,transparent 56%) center/8px 8px no-repeat}
|
||
.chip{display:inline-block;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2);margin-right:6px}
|
||
.chip.hot{border-color:var(--molten);color:var(--molten)}.chip.ok{border-color:var(--green);color:var(--green)}
|
||
dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;margin:12px 0 0;font-size:14px}
|
||
dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);padding-top:3px}
|
||
dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
|
||
@media (max-width:640px){dl{grid-template-columns:1fr;gap:2px 0}dd{margin-bottom:8px}}
|
||
.two{display:grid;gap:var(--gap);grid-template-columns:1fr}
|
||
@media (min-width:900px){.two{grid-template-columns:1fr 1fr}.two .card{margin-top:0}}
|
||
.two-wrap{margin-top:var(--gap)}
|
||
main{padding-bottom:100px}.card{background:var(--row);border:1px solid var(--line);border-radius:16px;padding:25px;margin-top:24px}.card .viz-head h2{font-size:19px}.card .viz-head .eyebrow{margin:0}
|
||
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2);margin:0 6px 6px 0}
|
||
.badge.ok{border-color:var(--green,#5CC48A);color:var(--green,#5CC48A)}.badge.hot{border-color:var(--molten);color:var(--molten)}.badge.bad{border-color:var(--excluded);color:var(--excluded)}.badge.wait{color:var(--ash)}
|
||
.bar{display:inline-block;width:72px;height:7px;border-radius:4px;background:var(--line);vertical-align:middle;margin-right:7px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green,#5CC48A)}.bar i.part{background:var(--molten)}
|
||
.dagbox{position:relative;width:100%;height:320px;border:1px solid var(--line);border-radius:12px;background:var(--obsidian);overflow:hidden}.dagbox canvas{width:100%;height:100%;display:block;cursor:pointer}
|
||
.dagtip{position:absolute;pointer-events:none;font:11px/1.5 var(--mono);color:var(--bone);background:var(--graphite);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;max-width:300px;display:none}
|
||
.kv{color:var(--ash)}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<!-- nav:start -->
|
||
<a class="skip" href="#main">Skip to content</a>
|
||
<nav class="nav" aria-label="Main" data-nav-version="5">
|
||
<div class="container nav-row">
|
||
<a href="/" class="logo" aria-label="Igneum home">
|
||
<svg class="brand-mark" viewBox="0 0 1024 1024" aria-hidden="true"><rect width="1024" height="1024" rx="160" fill="#0C0C0E"></rect><g transform="translate(166.95 166.95) scale(6.901)"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></g></svg>
|
||
<span class="word">IGNEUM</span>
|
||
</a>
|
||
<span class="devnet" id="nav-devnet" title="igneum-devnet-4, the Igneum 2.0 devnet, chain id 4465. Coins have no value. The chain may reset."><span class="dot off" id="foot-dot"></span><span id="foot-state" data-devnet-state="live">Devnet live</span></span>
|
||
<div class="nav-groups" id="nav-groups" role="list">
|
||
<div class="nav-group" role="listitem"><button type="button" class="group-btn" id="nav-btn-mine" data-group="mine" aria-expanded="false" aria-controls="nav-panel-mine" aria-haspopup="true">Mine<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m7 10 5 5 5-5"/></svg></button></div>
|
||
<div class="nav-group" role="listitem"><button type="button" class="group-btn" id="nav-btn-network" data-group="network" data-active aria-expanded="false" aria-controls="nav-panel-network" aria-haspopup="true">Network<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m7 10 5 5 5-5"/></svg></button></div>
|
||
<div class="nav-group" role="listitem"><button type="button" class="group-btn" id="nav-btn-learn" data-group="learn" aria-expanded="false" aria-controls="nav-panel-learn" aria-haspopup="true">Learn<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m7 10 5 5 5-5"/></svg></button></div>
|
||
<div class="nav-group" role="listitem"><button type="button" class="group-btn" id="nav-btn-build" data-group="build" aria-expanded="false" aria-controls="nav-panel-build" aria-haspopup="true">Build<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="m7 10 5 5 5-5"/></svg></button></div>
|
||
</div>
|
||
<div class="nav-controls">
|
||
<button class="btn icon-btn" type="button" data-theme-toggle aria-label="Switch to light theme"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2M2 12h2m16 0h2M5 5l1 1m12 12 1 1M5 19l1-1M18 6l1-1"/></svg></button>
|
||
<a href="/download" class="btn primary small cta" data-nav="download">Download</a>
|
||
<button class="burger" id="nav-burger" type="button" aria-expanded="false" aria-controls="nav-sheet" aria-label="Open the menu" aria-haspopup="true"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path class="bars" d="M4 6h16M4 12h16M4 18h16"/><path class="cross" d="m6 6 12 12M6 18 18 6"/></svg></button>
|
||
</div>
|
||
</div>
|
||
<div class="panels" id="nav-panels">
|
||
<div class="panel-wrap container">
|
||
<div class="nav-panel" id="nav-panel-mine" data-group="mine" role="region" aria-labelledby="nav-btn-mine" hidden>
|
||
<div class="panel-list">
|
||
<a href="/miner" data-nav="miner"><b>Ember, the miner</b><span>One click installs the node, the miner and the prover.</span></a>
|
||
<a href="/download" data-nav="download"><b>Download</b><span>Windows, macOS, Linux and HiveOS.</span></a>
|
||
<a href="/app" data-nav="app"><b>The app</b><span>What you see while the card mines.</span></a>
|
||
<a href="/wallet" data-nav="wallet"><b>The wallet</b><span>Your coins. Final means final.</span></a>
|
||
<a href="/miners" data-nav="miners"><b>GPU bench table</b><span>Measured rates, card by card.</span></a>
|
||
<a href="/tuning" data-nav="tuning"><b>Tuning</b><span>The knee rule, the priors, the flags and the compiler settings, every figure measured.</span></a><a href="/dev-fee" data-nav="dev-fee"><b>The dev fee</b><span>The optional one, in full view, off with one flag.</span></a>
|
||
<a href="/metamask" data-nav="metamask"><b>Add to MetaMask</b><span>Igneum as a network in your wallet.</span></a>
|
||
</div>
|
||
</div>
|
||
<div class="nav-panel" id="nav-panel-network" data-group="network" role="region" aria-labelledby="nav-btn-network" hidden>
|
||
<div class="panel-list">
|
||
<a href="/live" data-nav="live"><b>Live devnet</b><span>The chain as it grows, one lane per miner.</span></a>
|
||
<a href="/explorer" data-nav="explorer" aria-current="page"><b>Explorer</b><span>Look a block or an address up.</span></a>
|
||
<a href="/evidence" data-nav="evidence"><b>Evidence</b><span>Every claim and how far it is tested.</span></a>
|
||
<a href="/light" data-nav="light"><b>Light wallet</b><span>A balance your browser proves, trusting no node.</span></a>
|
||
<a href="/receipt" data-nav="receipt"><b>Payment receipt</b><span>A receipt any third party re-verifies offline.</span></a>
|
||
<a href="/oracle" data-nav="oracle"><b>State oracle on Sepolia</b><span>Balances on the devnet, read from another chain.</span></a>
|
||
</div>
|
||
</div>
|
||
<div class="nav-panel" id="nav-panel-learn" data-group="learn" role="region" aria-labelledby="nav-btn-learn" hidden>
|
||
<div class="panel-list">
|
||
<a href="/litepaper" data-nav="litepaper"><b>Litepaper</b><span>The design, as published.</span></a>
|
||
<a href="/income" data-nav="income"><b>Income</b><span>What your card would mine, from the live network.</span></a>
|
||
<a href="/economics" data-nav="economics"><b>Economics</b><span>The emission, the split and the fees, each with its line in the node.</span></a><a href="/scorecard" data-nav="scorecard"><b>Scorecard</b><span>The twelve acceptance gates, their evidence and where each stands.</span></a><a href="/prize" data-nav="prize"><b>Prize</b><span>A better adversary or a reproduced shortcut, never a confirmation: the terms.</span></a><a href="/acceptance" data-nav="acceptance"><b>Acceptance</b><span>The Test and Acceptance Standard, case by case, as each one passes.</span></a><a href="/audit" data-nav="audit"><b>Site audit</b><span>Every page, what the reset changed and what is open.</span></a><a href="/docs" data-nav="docs"><b>Documents</b><span>The plan, the standard, the specifications and the evidence files, by path.</span></a>
|
||
<a href="/ledger" data-nav="ledger"><b>Ledger</b><span>Every criticism, answered or conceded.</span></a>
|
||
<a href="/claims" data-nav="claims"><b>What Igneum does not claim</b><span>The limits, stated first.</span></a>
|
||
<a href="/randomx" data-nav="randomx"><b>Igneum vs RandomX</b><span>What was kept and what was rebuilt for GPUs.</span></a>
|
||
<a href="/provenance" data-nav="provenance"><b>Built on the shoulders</b><span>Every borrowed part, credited.</span></a>
|
||
</div>
|
||
</div>
|
||
<div class="nav-panel" id="nav-panel-build" data-group="build" role="region" aria-labelledby="nav-btn-build" hidden>
|
||
<div class="panel-list">
|
||
<a href="/build" data-nav="build"><b>Build on Igneum</b><span>Chain ids, RPC, a contract in five minutes.</span></a>
|
||
<a href="/faucet" data-nav="faucet"><b>Devnet faucet</b><span>10 IGN of devnet coin, once a day.</span></a>
|
||
<a href="/swap" data-nav="swap"><b>Swap</b><span>Test tokens on the devnet; every swap is a proven block.</span></a>
|
||
<a href="/grants" data-nav="grants"><b>Grants</b><span>Tooling, apps, infrastructure, research.</span></a>
|
||
<a href="/compatibility" data-nav="compatibility"><b>Compatibility</b><span>Every row a test run against the devnet.</span></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="nav-sheet" id="nav-sheet" role="dialog" aria-modal="true" aria-label="Menu" hidden>
|
||
<div class="sheet-scroll">
|
||
<div class="sheet-group"><div class="sheet-head">Mine</div>
|
||
<a href="/miner" data-nav="miner"><b>Ember, the miner</b><span>One click installs the node, the miner and the prover.</span></a>
|
||
<a href="/download" data-nav="download"><b>Download</b><span>Windows, macOS, Linux and HiveOS.</span></a>
|
||
<a href="/app" data-nav="app"><b>The app</b><span>What you see while the card mines.</span></a>
|
||
<a href="/wallet" data-nav="wallet"><b>The wallet</b><span>Your coins. Final means final.</span></a>
|
||
<a href="/miners" data-nav="miners"><b>GPU bench table</b><span>Measured rates, card by card.</span></a>
|
||
<a href="/tuning" data-nav="tuning"><b>Tuning</b><span>The knee rule, the priors, the flags and the compiler settings, every figure measured.</span></a><a href="/dev-fee" data-nav="dev-fee"><b>The dev fee</b><span>The optional one, in full view, off with one flag.</span></a>
|
||
<a href="/metamask" data-nav="metamask"><b>Add to MetaMask</b><span>Igneum as a network in your wallet.</span></a>
|
||
</div>
|
||
<div class="sheet-group"><div class="sheet-head">Network</div>
|
||
<a href="/live" data-nav="live"><b>Live devnet</b><span>The chain as it grows, one lane per miner.</span></a>
|
||
<a href="/explorer" data-nav="explorer" aria-current="page"><b>Explorer</b><span>Look a block or an address up.</span></a>
|
||
<a href="/evidence" data-nav="evidence"><b>Evidence</b><span>Every claim and how far it is tested.</span></a>
|
||
<a href="/light" data-nav="light"><b>Light wallet</b><span>A balance your browser proves, trusting no node.</span></a>
|
||
<a href="/receipt" data-nav="receipt"><b>Payment receipt</b><span>A receipt any third party re-verifies offline.</span></a>
|
||
<a href="/oracle" data-nav="oracle"><b>State oracle on Sepolia</b><span>Balances on the devnet, read from another chain.</span></a>
|
||
</div>
|
||
<div class="sheet-group"><div class="sheet-head">Learn</div>
|
||
<a href="/litepaper" data-nav="litepaper"><b>Litepaper</b><span>The design, as published.</span></a>
|
||
<a href="/income" data-nav="income"><b>Income</b><span>What your card would mine, from the live network.</span></a>
|
||
<a href="/economics" data-nav="economics"><b>Economics</b><span>The emission, the split and the fees, each with its line in the node.</span></a><a href="/scorecard" data-nav="scorecard"><b>Scorecard</b><span>The twelve acceptance gates, their evidence and where each stands.</span></a><a href="/prize" data-nav="prize"><b>Prize</b><span>A better adversary or a reproduced shortcut, never a confirmation: the terms.</span></a><a href="/acceptance" data-nav="acceptance"><b>Acceptance</b><span>The Test and Acceptance Standard, case by case, as each one passes.</span></a><a href="/audit" data-nav="audit"><b>Site audit</b><span>Every page, what the reset changed and what is open.</span></a><a href="/docs" data-nav="docs"><b>Documents</b><span>The plan, the standard, the specifications and the evidence files, by path.</span></a>
|
||
<a href="/ledger" data-nav="ledger"><b>Ledger</b><span>Every criticism, answered or conceded.</span></a>
|
||
<a href="/claims" data-nav="claims"><b>What Igneum does not claim</b><span>The limits, stated first.</span></a>
|
||
<a href="/randomx" data-nav="randomx"><b>Igneum vs RandomX</b><span>What was kept and what was rebuilt for GPUs.</span></a>
|
||
<a href="/provenance" data-nav="provenance"><b>Built on the shoulders</b><span>Every borrowed part, credited.</span></a>
|
||
</div>
|
||
<div class="sheet-group"><div class="sheet-head">Build</div>
|
||
<a href="/build" data-nav="build"><b>Build on Igneum</b><span>Chain ids, RPC, a contract in five minutes.</span></a>
|
||
<a href="/faucet" data-nav="faucet"><b>Devnet faucet</b><span>10 IGN of devnet coin, once a day.</span></a>
|
||
<a href="/swap" data-nav="swap"><b>Swap</b><span>Test tokens on the devnet; every swap is a proven block.</span></a>
|
||
<a href="/grants" data-nav="grants"><b>Grants</b><span>Tooling, apps, infrastructure, research.</span></a>
|
||
<a href="/compatibility" data-nav="compatibility"><b>Compatibility</b><span>Every row a test run against the devnet.</span></a>
|
||
</div>
|
||
<div class="sheet-foot">
|
||
<a href="/download" class="btn primary big" data-nav="download">Download</a>
|
||
<div class="sheet-social"><a href="https://discord.gg/igneum" target="_blank" rel="noopener">Discord</a><a href="https://git.igneum.network/igneum-network/spec" target="_blank" rel="noopener">Source</a><a href="https://www.reddit.com/user/Igneum_network/" target="_blank" rel="noopener">Reddit</a></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<script>
|
||
(function(){
|
||
// the slim bar (site-ui-5, 7 Oct 2026): three group buttons open one panel each; the burger opens the sheet on phones.
|
||
// Keyboard: Enter or Space opens a group, Escape closes it and returns focus to its button, arrows move between the
|
||
// group buttons, Tab walks the open panel's links, a click outside closes. The theme toggle flips data-theme and stores it.
|
||
var n=document.querySelector('.nav');if(!n)return;
|
||
var btns=[].slice.call(n.querySelectorAll('.group-btn')),panels=[].slice.call(n.querySelectorAll('.nav-panel')),wrap=n.querySelector('.panels');
|
||
var burger=document.getElementById('nav-burger'),sheet=document.getElementById('nav-sheet');
|
||
function panelOf(g){return panels.filter(function(p){return p.getAttribute('data-group')===g;})[0];}
|
||
function closeAll(focusBack){var was=null;btns.forEach(function(b){if(b.getAttribute('aria-expanded')==='true')was=b;b.setAttribute('aria-expanded','false');});panels.forEach(function(p){p.hidden=true;});n.classList.remove('panel-open');if(focusBack&&was)was.focus();}
|
||
function open(g){closeAll(false);var b=btns.filter(function(x){return x.getAttribute('data-group')===g;})[0],p=panelOf(g);if(!b||!p)return;b.setAttribute('aria-expanded','true');p.hidden=false;n.classList.add('panel-open');anchor(b,p);}
|
||
// the panel sits under its button; a panel that would run past the container's right edge aligns its right edge to the button's right edge instead (never past the viewport)
|
||
function anchor(b,p){var pw=n.querySelector('.panel-wrap');if(!pw)return;var cr=pw.getBoundingClientRect(),br=b.getBoundingClientRect(),w=p.offsetWidth,left=br.left-cr.left;if(left+w>cr.width)left=(br.right-cr.left)-w;if(left<0)left=0;p.style.setProperty('--panel-left',Math.round(left)+'px');}
|
||
window.addEventListener('resize',function(){var o=btns.filter(function(x){return x.getAttribute('aria-expanded')==='true';})[0];if(o)anchor(o,panelOf(o.getAttribute('data-group')));}); btns.forEach(function(b,i){
|
||
b.addEventListener('click',function(){var on=b.getAttribute('aria-expanded')==='true';if(on)closeAll(false);else open(b.getAttribute('data-group'));});
|
||
b.addEventListener('keydown',function(e){
|
||
var k=e.key;
|
||
if(k==='ArrowRight'||k==='ArrowLeft'){e.preventDefault();var j=(i+(k==='ArrowRight'?1:btns.length-1))%btns.length;btns[j].focus();if(n.classList.contains('panel-open'))open(btns[j].getAttribute('data-group'));}
|
||
else if(k==='ArrowDown'){e.preventDefault();open(b.getAttribute('data-group'));var f=panelOf(b.getAttribute('data-group')).querySelector('a');if(f)f.focus();}
|
||
else if(k==='Escape'){closeAll(true);}
|
||
});
|
||
});
|
||
if(wrap)wrap.addEventListener('keydown',function(e){if(e.key==='Escape'){e.stopPropagation();closeAll(true);}});
|
||
document.addEventListener('click',function(e){if(!n.classList.contains('panel-open'))return;if(e.target.closest('.group-btn')||e.target.closest('.nav-panel'))return;closeAll(false);});
|
||
document.addEventListener('focusin',function(e){if(!n.classList.contains('panel-open'))return;if(n.contains(e.target))return;closeAll(false);});
|
||
document.addEventListener('keydown',function(e){if(e.key==='Escape'&&n.classList.contains('panel-open'))closeAll(true);});
|
||
// the sheet on phones
|
||
function setSheet(o){if(!burger||!sheet)return;n.classList.toggle('open',o);sheet.hidden=!o;burger.setAttribute('aria-expanded',o?'true':'false');burger.setAttribute('aria-label',o?'Close the menu':'Open the menu');document.documentElement.classList.toggle('nav-locked',o);if(o){var f=sheet.querySelector('a');if(f)f.focus();}}
|
||
if(burger&&sheet){
|
||
burger.addEventListener('click',function(){setSheet(!n.classList.contains('open'));});
|
||
sheet.addEventListener('click',function(e){if(e.target.closest('a'))setSheet(false);});
|
||
sheet.addEventListener('keydown',function(e){
|
||
if(e.key==='Escape'){setSheet(false);burger.focus();return;}
|
||
if(e.key!=='Tab')return;var f=sheet.querySelectorAll('a,button');if(!f.length)return;var first=f[0],last=f[f.length-1];
|
||
if(e.shiftKey&&document.activeElement===first){e.preventDefault();burger.focus();}else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();burger.focus();}
|
||
});
|
||
burger.addEventListener('keydown',function(e){if(e.key==='Tab'&&!e.shiftKey&&n.classList.contains('open')){e.preventDefault();var f=sheet.querySelector('a');if(f)f.focus();}});
|
||
var mq=window.matchMedia('(min-width:861px)');if(mq.addEventListener)mq.addEventListener('change',function(){setSheet(false);});
|
||
}
|
||
// the theme toggle
|
||
var t=n.querySelector('[data-theme-toggle]');
|
||
function paintToggle(){var dark=document.documentElement.getAttribute('data-theme')!=='light';t.setAttribute('aria-label',dark?'Switch to light theme':'Switch to dark theme');t.innerHTML=dark?'<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2M2 12h2m16 0h2M5 5l1 1m12 12 1 1M5 19l1-1M18 6l1-1"/></svg>':'<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20.7 13.3A8.5 8.5 0 0 1 10.7 3.3 8.5 8.5 0 1 0 20.7 13.3Z"/></svg>';}
|
||
if(t){t.addEventListener('click',function(){var v=document.documentElement.getAttribute('data-theme')==='light'?'dark':'light';document.documentElement.setAttribute('data-theme',v);try{localStorage.setItem('igneum-theme',v);}catch(e){}document.dispatchEvent(new CustomEvent('igneum-theme'));});paintToggle();document.addEventListener('igneum-theme',paintToggle);}
|
||
})();
|
||
</script>
|
||
<!-- nav:end -->
|
||
<main id="main" class="wrap">
|
||
<div class="head">
|
||
<div class="breadcrumb"><a href="/">Igneum</a><span>/</span><a href="/explorer">Explorer</a><span>/</span><span>Transaction</span></div>
|
||
<div class="eyebrow"><a href="/explorer">The devnet explorer</a> · transaction</div>
|
||
<h1 class="hash" id="title">Transaction</h1>
|
||
<div id="chips"></div>
|
||
<div class="msg" id="msg" aria-live="polite"></div>
|
||
</div>
|
||
<div id="body" hidden>
|
||
<div class="two two-wrap">
|
||
<div class="card"><div class="viz-head"><h2>Summary</h2></div><dl id="summary"></dl></div>
|
||
<div class="card"><div class="viz-head"><h2>Fees and proving</h2><div class="eyebrow">the receipt's Igneum section</div></div><dl id="fees"></dl><p class="note">Read from one node on the build box, the chain the finality certificates follow. Both base fees burn in full. The priority fee pays 80 percent to the including miner and 20 percent to the developer registrations of the contracts whose code ran; no part of it reaches the provers (the fee rows on <a href="/economics">economics</a>). Proving gas (pgas) is what the shard that proves this transaction costs; the proving base fee prices it.</p></div>
|
||
</div>
|
||
<div class="card"><div class="viz-head"><h2>Block and proof</h2><div class="eyebrow" id="blk-eyebrow"></div></div><dl id="blk"></dl></div>
|
||
<div class="card"><div class="viz-head"><h2>Logs</h2><div class="eyebrow" id="log-n"></div></div><div class="tbl" id="logs"></div></div>
|
||
</div>
|
||
<p class="note" data-four-words><b>Four words, used exactly.</b> <b>Included</b>: the block carries the transaction. <b>Executed</b>: the EVM ran it and the result is on the record. <b>Proven</b>: a valid proof record for its block was carried and paid. <b>Finalised</b>: the block sits under a certified checkpoint, two thirds of active and of total weight. A pause in finality is shown as a pause, never as a block losing its lock. The definitions are the finality specification’s: <a href="https://git.igneum.network/igneum-network/igneum/src/branch/master/docs/spec/finality-guarantees.md">section 9, the guarantees</a>.</p>
|
||
</main>
|
||
<!-- footer:start -->
|
||
<footer class="site-footer">
|
||
<div class="container">
|
||
<p class="positioning">A GPU-secured network for Ethereum-compatible applications and verifiable computation.</p>
|
||
<div class="footer-grid">
|
||
<div class="footer-brand">
|
||
<a href="/" class="logo" aria-label="Igneum home"><svg class="brand-mark" viewBox="0 0 1024 1024" aria-hidden="true"><rect width="1024" height="1024" rx="160" fill="#0C0C0E"></rect><g transform="translate(166.95 166.95) scale(6.901)"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></g></svg><span class="word">IGNEUM</span><span class="stop">.</span></a>
|
||
<p>Mined by GPUs. Proven by fire.</p>
|
||
<div class="social" aria-label="Igneum elsewhere">
|
||
<a href="https://discord.gg/igneum" target="_blank" rel="noopener" aria-label="The Igneum Discord"><svg viewBox="0 0 24 24" width="22" height="22" fill="currentColor" aria-hidden="true"><path d="M19.6 5.3A17 17 0 0 0 15.4 4l-.2.4a15.6 15.6 0 0 1 3.9 1.9 13.6 13.6 0 0 0-14.2 0A15.6 15.6 0 0 1 8.8 4.4L8.6 4a17 17 0 0 0-4.2 1.3C1.8 9.2 1.1 13 1.4 16.7a17.1 17.1 0 0 0 5.2 2.6l1.1-1.8a10.8 10.8 0 0 1-1.7-.8l.4-.3a12.2 12.2 0 0 0 11.2 0l.4.3-1.7.8 1.1 1.8a17 17 0 0 0 5.2-2.6c.4-4.3-.7-8-3-11.4zM8.7 14.4c-1 0-1.8-.9-1.8-2.1s.8-2.1 1.8-2.1 1.9 1 1.8 2.1c0 1.2-.8 2.1-1.8 2.1zm6.6 0c-1 0-1.8-.9-1.8-2.1s.8-2.1 1.8-2.1 1.9 1 1.8 2.1c0 1.2-.8 2.1-1.8 2.1z"></path></svg></a>
|
||
<a href="https://git.igneum.network/igneum-network/spec" target="_blank" rel="noopener" aria-label="Igneum source: the spec, the vectors and the issues"><svg viewBox="0 0 24 24" width="22" height="22" fill="currentColor" aria-hidden="true"><path d="M8.6 17.6 3 12l5.6-5.6 1.4 1.4L5.8 12l4.2 4.2zm6.8 0-1.4-1.4L18.2 12 14 7.8l1.4-1.4L21 12z"></path></svg></a>
|
||
<a data-social="reddit" href="https://www.reddit.com/user/Igneum_network/" target="_blank" rel="noopener" aria-label="Igneum on Reddit"><svg viewBox="0 0 24 24" width="22" height="22" fill="currentColor" aria-hidden="true"><path d="M22 12.1a2.2 2.2 0 0 0-3.7-1.6 10.8 10.8 0 0 0-5.8-1.8l1-4.6 3.2.7a1.5 1.5 0 1 0 .2-.9l-3.6-.8a.5.5 0 0 0-.5.4l-1.1 5.2a10.8 10.8 0 0 0-5.9 1.8A2.2 2.2 0 1 0 3.4 14a4.3 4.3 0 0 0 0 .7c0 3.4 3.9 6.1 8.6 6.1s8.6-2.7 8.6-6.1a4.3 4.3 0 0 0 0-.7 2.2 2.2 0 0 0 1.4-1.9zM7 13.6a1.5 1.5 0 1 1 1.5 1.5A1.5 1.5 0 0 1 7 13.6zm8.6 4.1a5.7 5.7 0 0 1-3.6 1.1 5.7 5.7 0 0 1-3.6-1.1.4.4 0 0 1 .6-.6 4.9 4.9 0 0 0 3 .9 4.9 4.9 0 0 0 3-.9.4.4 0 0 1 .6.6zm-.3-2.6a1.5 1.5 0 1 1 1.5-1.5 1.5 1.5 0 0 1-1.5 1.5z"></path></svg></a>
|
||
<a href="mailto:hello@igneum.network" aria-label="Email hello@igneum.network"><svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"></rect><path d="m3.5 6.5 8.5 6.5 8.5-6.5"></path></svg></a>
|
||
</div>
|
||
<div class="footer-dl" aria-label="Download Ember"><a href="/download#windows"><span class="osmark mini" data-os="windows" title="Windows"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="currentColor"><path d="M3 5.6l7.3-1v7.1H3zM11.4 4.4L21 3v8.7h-9.6zM3 12.3h7.3v7.1L3 18.4zM11.4 12.3H21V21l-9.6-1.4z"/></svg></span>Windows</a><a href="/download#mac"><span class="osmark mini" data-os="mac" title="macOS"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="currentColor"><path d="M16.4 12.6c0-2.5 2-3.6 2.1-3.7-1.2-1.7-3-1.9-3.6-2-1.5-.2-3 .9-3.8.9-.8 0-2-.9-3.3-.8-1.7 0-3.2 1-4.1 2.5-1.8 3-.5 7.6 1.3 10.1.9 1.2 1.9 2.6 3.2 2.5 1.3 0 1.8-.8 3.3-.8 1.6 0 2 .8 3.3.8 1.4 0 2.3-1.2 3.1-2.5 1-1.4 1.4-2.8 1.4-2.9 0 0-2.7-1-2.9-4.1zM13.9 5.3c.7-.8 1.2-2 1-3.2-1 0-2.2.7-2.9 1.5-.6.7-1.2 1.9-1 3 1.1.1 2.2-.5 2.9-1.3z"/></svg></span>macOS</a><a href="/download#linux"><span class="osmark mini" data-os="linux" title="Linux"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="currentColor"><path d="M12 2c-2.4 0-4 1.9-4 4.6 0 1.2.2 2 0 2.8-.6 1.4-2.1 2.9-2.6 4.9-.3 1.1-.1 2 .3 2.6-.6.4-1.3 1-1.1 1.7.3 1 2.1 1.2 3.2 1.8.7.4 1.5.6 2.1.1.6.2 1.3.3 2.1.3s1.5-.1 2.1-.3c.6.5 1.4.3 2.1-.1 1.1-.6 2.9-.8 3.2-1.8.2-.7-.5-1.3-1.1-1.7.4-.6.6-1.5.3-2.6-.5-2-2-3.5-2.6-4.9-.2-.8 0-1.6 0-2.8C16 3.9 14.4 2 12 2zm-1.4 4.2c.5 0 .8.5.8 1.2s-.3 1.2-.8 1.2-.8-.5-.8-1.2.3-1.2.8-1.2zm2.8 0c.5 0 .8.5.8 1.2s-.3 1.2-.8 1.2-.8-.5-.8-1.2.3-1.2.8-1.2zM12 9.3c.9 0 1.9.5 1.9 1s-1 1.2-1.9 1.2-1.9-.7-1.9-1.2 1-1 1.9-1zm0 3.4c2.2 0 3.6 2.6 3.6 4.4 0 1.5-1.6 2.3-3.6 2.3s-3.6-.8-3.6-2.3c0-1.8 1.4-4.4 3.6-4.4z"/></svg></span>Linux</a><a href="/download#hive"><span class="osmark mini" data-os="hive" title="HiveOS"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round" stroke-linecap="round"><path d="M12 2.6 20.2 7.3v9.4L12 21.4 3.8 16.7V7.3z"/><path d="M12 7.4 16 9.7v4.6L12 16.6 8 14.3V9.7z"/><path d="M12 7.4V2.6M16 9.7l4.2-2.4M16 14.3l4.2 2.4M12 16.6v4.8M8 14.3l-4.2 2.4M8 9.7 3.8 7.3"/></svg></span>HiveOS</a></div>
|
||
<a href="https://git.igneum.network/igneum-network/spec" target="_blank" rel="noopener" class="text-link">Specification and test vectors<svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 18 18 6M6 6h12v12"/></svg></a>
|
||
</div>
|
||
<div class="footer-column"><h4>Run</h4><div>
|
||
<a href="/download">Download Ember</a>
|
||
<a href="/miner">The miner</a>
|
||
<a href="/app">The app</a>
|
||
<a href="/wallet">The wallet</a>
|
||
<a href="/miners">GPU bench table</a>
|
||
<a href="/dev-fee">The dev fee</a>
|
||
<a href="/faucet">Devnet faucet</a>
|
||
<a href="/metamask">Add Igneum to MetaMask</a>
|
||
</div></div>
|
||
<div class="footer-column"><h4>Read</h4><div>
|
||
<a href="/litepaper">Litepaper</a>
|
||
<a href="/evidence">Evidence</a>
|
||
<a href="/ledger">Ledger: every criticism</a>
|
||
<a href="/claims">What Igneum does not claim</a>
|
||
<a href="/randomx">Igneum vs RandomX</a>
|
||
<a href="/provenance">Built on the shoulders</a>
|
||
</div></div>
|
||
<div class="footer-column"><h4>Explore</h4><div>
|
||
<a href="/live">Live devnet</a>
|
||
<a href="/explorer">Explorer</a>
|
||
<a href="/build">Build on Igneum</a>
|
||
<a href="/swap">Swap</a>
|
||
<a href="/grants">Grants</a>
|
||
<a href="/download">Downloads: devnet build</a>
|
||
<a href="https://discord.gg/igneum" target="_blank" rel="noopener">Community Discord</a>
|
||
<a href="mailto:hello@igneum.network">hello@igneum.network</a>
|
||
<a href="https://git.igneum.network/igneum-network/spec/issues" rel="noopener">An issue on the spec</a>
|
||
</div></div>
|
||
</div>
|
||
<div class="footer-bottom">
|
||
<p>Igneum Labs LTD · Unit IH-00-01-01-OF-01, Level 01, Innovation One, Dubai International Financial Centre. Experimental software. Nothing on this site is an offer to sell anything.<br>Report a flaw by email or by an issue on the spec. Nobody from Igneum will ask for your seed. © 2026 Igneum · not an offer to sell anything</p>
|
||
<div class="theme-group" role="group" aria-label="Theme"><button type="button" data-theme-set="system" aria-pressed="true">System</button><button type="button" data-theme-set="light" aria-pressed="false">Light</button><button type="button" data-theme-set="dark" aria-pressed="false">Dark</button></div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<script>
|
||
(function(){
|
||
// theme control: stores light or dark under igneum-theme; system clears it and follows the OS. The head applied the value before paint.
|
||
var bs=document.querySelectorAll('[data-theme-set]');if(!bs.length)return;
|
||
var media=window.matchMedia('(prefers-color-scheme: light)');
|
||
function stored(){try{var t=localStorage.getItem('igneum-theme');return t==='light'||t==='dark'?t:'system';}catch(e){return 'system';}}
|
||
function apply(){var c=stored();document.documentElement.setAttribute('data-theme',c==='system'?(media.matches?'light':'dark'):c);bs.forEach(function(b){b.setAttribute('aria-pressed',b.getAttribute('data-theme-set')===c?'true':'false');});document.dispatchEvent(new CustomEvent('igneum-theme'));}
|
||
bs.forEach(function(b){b.addEventListener('click',function(){var v=b.getAttribute('data-theme-set');try{if(v==='system')localStorage.removeItem('igneum-theme');else localStorage.setItem('igneum-theme',v);}catch(e){}apply();});});
|
||
if(media.addEventListener)media.addEventListener('change',function(){if(stored()==='system')apply();});
|
||
document.addEventListener('igneum-theme',function(){var c=stored();bs.forEach(function(b){b.setAttribute('aria-pressed',b.getAttribute('data-theme-set')===c?'true':'false');});});
|
||
bs.forEach(function(b){b.setAttribute('aria-pressed',b.getAttribute('data-theme-set')===stored()?'true':'false');});
|
||
// the network state word in the status bar: one read of the observer per page view
|
||
var fs=document.getElementById('foot-state'),fd=document.getElementById('foot-dot');if(fs&&fd&&fs.getAttribute('data-devnet-state')==='live'){fetch('/api/live?window=30',{cache:'no-store'}).then(function(r){return r.json();}).then(function(d){var on=d&&d.ok&&d.state&&!d.state.stale;fs.textContent=on?'devnet live':'devnet, observer stale';fd.className='dot '+(on?'live':'off');}).catch(function(){fs.textContent='devnet';});}
|
||
})();
|
||
</script>
|
||
<!-- footer:end -->
|
||
<script type="module">
|
||
import { ignFromWei, shortHash, rel, int, utc } from '/lib/explorer.mjs';
|
||
const $ = id => document.getElementById(id);
|
||
const esc = s => String(s ?? '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
||
const addr = a => a ? `<a class="hash" href="/address/${esc(a)}">${esc(a)}</a>` : '<span class="kv">none</span>';
|
||
const dl = pairs => pairs.filter(p => p).map(([k, v]) => `<dt>${esc(k)}</dt><dd>${v}</dd>`).join('');
|
||
const wei = h => (h === null || h === undefined ? null : BigInt(h).toString());
|
||
const id = decodeURIComponent(location.pathname.split('/').pop() || '');
|
||
async function load() {
|
||
const r = await fetch('/api/explorer?tx=' + encodeURIComponent(id)); const j = await r.json();
|
||
$('title').textContent = id;
|
||
if (!j.ok) { $('msg').textContent = j.error || 'Not found.'; return; }
|
||
const t = j.tx, b = j.block, now = new Date(j.now).getTime(), g = t.igneum || {};
|
||
document.title = `Devnet transaction ${shortHash(t.hash, 8, 6)}`;
|
||
$('title').textContent = t.hash;
|
||
const chips = [t.status === 'success' ? '<span class="chip ok">success</span>' : t.status === 'failed' ? '<span class="chip" style="border-color:var(--excluded);color:var(--excluded)">failed</span>' : '<span class="chip">no receipt</span>'];
|
||
chips.push(`<span class="chip">chain block ${int(t.number)}</span>`);
|
||
if (b && b.in_observer) { chips.push(b.lock && b.lock.final ? `<span class="chip ok">finalised under lock ${int(b.lock.index)}</span>` : '<span class="chip">not yet finalised</span>'); if (b.shards && b.shards.total) chips.push(`<span class="chip ${b.shards.paid === b.shards.total ? 'ok' : ''}">${b.shards.paid} of ${b.shards.total} shards paid</span>`); chips.push(`<span class="chip">class ${esc(b.class || 'v4')}</span>`); }
|
||
if (t.contract_address) chips.push('<span class="chip hot">contract creation</span>');
|
||
$('chips').innerHTML = chips.join('');
|
||
const fee = t.gas_used !== null && t.effective_gas_price !== null ? (BigInt(t.gas_used) * BigInt(t.effective_gas_price)).toString() : null;
|
||
$('summary').innerHTML = dl([
|
||
['Network', 'The devnet' + (j.chain_id ? ', chain id ' + esc(j.chain_id) + ' as the node reports it' : '')],
|
||
['Hash', `<span class="hash">${esc(t.hash)}</span>`],
|
||
['Status', t.status || 'no receipt'],
|
||
['Block', `<a class="hash" href="/block/${esc(t.block_hash)}">${esc(shortHash(t.block_hash, 12, 8))}</a> <span class="kv">chain block ${int(t.number)}, index ${int(t.index)}</span>`],
|
||
['Time', t.ts ? `${utc(t.ts)} <span class="kv">(${rel(now - t.ts)})</span>` : 'n/a'],
|
||
['From', addr(t.from)], ['To', t.to ? addr(t.to) + (t.contracts && t.contracts[t.to] !== undefined ? ' <span class="chip">contract</span>' : '') : (t.contract_address ? `<span class="kv">created</span> ${addr(t.contract_address)}` : '<span class="kv">none</span>')],
|
||
['Value', `${ignFromWei(t.value_wei, 8)} IGN`],
|
||
['Fee', fee ? `${ignFromWei(fee, 8)} IGN <span class="kv">${int(t.gas_used)} gas at ${ignFromWei(t.effective_gas_price, 10)} IGN per gas</span>` : 'n/a'],
|
||
['Gas', `${int(t.gas_used)} used of ${int(t.gas)} limit`],
|
||
['Nonce', int(t.nonce)], ['Type', `${t.type} <span class="kv">${t.type === 2 ? 'EIP-1559' : t.type === 1 ? 'access list' : 'legacy'}</span>`],
|
||
['Input', `${int(t.input_bytes)} bytes${t.selector ? `, selector <span class="hash">${esc(t.selector)}</span>` : ''}`],
|
||
]);
|
||
$('fees').innerHTML = t.igneum ? dl([
|
||
['Miner tip', g.minerTip ? `${ignFromWei(wei(g.minerTip), 8)} IGN <span class="kv">to the including miner</span>` : 'n/a'],
|
||
['Execution base fee burned', g.burnedExecutionBaseFee ? `${ignFromWei(wei(g.burnedExecutionBaseFee), 8)} IGN` : 'n/a'],
|
||
['Proving fee burned', g.burnedProvingFee ? `${ignFromWei(wei(g.burnedProvingFee), 8)} IGN` : 'n/a'],
|
||
['Proving gas', g.pgasUsed ? `${int(Number(BigInt(g.pgasUsed)))} pgas${g.provingBaseFeePerGas ? ` at ${ignFromWei(wei(g.provingBaseFeePerGas), 10)} IGN per pgas` : ''}${g.overBudget ? ', over budget' : ''}${g.pgasAborted ? ', aborted' : ''}` : 'n/a'],
|
||
g.developerShares && g.developerShares.length ? ['App share', g.developerShares.map(s => `${ignFromWei(wei(s.wei), 8)} IGN ${s.payee ? 'to ' + addr(s.payee) : '<span class="kv">unregistered, burned</span>'}`).join('<br>')] : null,
|
||
['Including block', g.includingBlock ? `<a class="hash" href="/block/${esc(String(g.includingBlock).replace(/^0x/, ''))}">${esc(shortHash(String(g.includingBlock).replace(/^0x/, ''), 12, 8))}</a> <span class="kv">the first block that carried it; executed under chain block ${int(t.number)}</span>` : 'n/a'],
|
||
['Including miner', g.includingMiner ? addr(g.includingMiner) : 'n/a'],
|
||
]) : '<div class="empty">No receipt yet.</div>';
|
||
if (b && b.in_observer) {
|
||
$('blk-eyebrow').textContent = `chain block ${int(b.number)}`;
|
||
$('blk').innerHTML = dl([
|
||
['Block', `<a class="hash" href="/block/${esc(b.hash)}">${esc(b.hash)}</a>`],
|
||
['Blue score', int(b.blue_score)], ['DAA score', int(b.daa)], ['Class', esc(b.class || 'v4')],
|
||
['Miner', addr(b.evm_miner)],
|
||
['Lock state', b.lock ? `${b.lock.final ? 'finalised' : 'not yet finalised'} <span class="kv">${esc(b.lock.reason)}</span>` : 'n/a'],
|
||
['Proof', b.shards && b.shards.total ? `${b.shards.paid} of ${b.shards.total} shards paid${b.shards.median_lag !== null ? `, median lag ${int(b.shards.median_lag)} DAA` : ''} <span class="kv">${b.shards.proving} proving, ${b.shards.verified} verified, ${b.shards.planned} planned</span>` : '<span class="kv">plan not read yet</span>'],
|
||
]);
|
||
} else { $('blk-eyebrow').textContent = 'outside the observer window'; $('blk').innerHTML = dl([['Block', `<a class="hash" href="/block/${esc(t.block_hash)}">${esc(t.block_hash)}</a>`], ['Note', esc(b && b.note ? b.note : 'the observer keeps one day of blocks')]]); }
|
||
const logs = t.logs || [];
|
||
$('log-n').textContent = `${logs.length} log${logs.length === 1 ? '' : 's'}`;
|
||
$('logs').innerHTML = logs.length ? `<table><thead><tr><th class="n">Index</th><th>Address</th><th>Topics</th><th>Data</th></tr></thead><tbody>${logs.map(l => `<tr><td class="n">${int(l.i)}</td><td>${addr(l.address)}</td><td class="hash" style="font-size:12px">${(l.topics || []).map(x => esc(x)).join('<br>')}</td><td class="hash" style="font-size:12px;overflow-wrap:anywhere">${esc(l.data)}</td></tr>`).join('')}</tbody></table>` : '<div class="empty">This transaction emitted no logs.</div>';
|
||
$('body').hidden = false;
|
||
}
|
||
load().catch(e => { $('msg').textContent = 'The API did not answer: ' + e.message; });
|
||
</script>
|
||
</body>
|
||
</html>
|