index.html (16029B)
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <meta name="color-scheme" content="dark"> 7 <meta name="description" content="iuna is an experimental cryptocurrency devnet that combines VDF finalization, a burn lottery, and proof-of-work issuance."> 8 <title>iuna Devnet</title> 9 <style> 10 :root { 11 color-scheme: dark; 12 font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 13 background: #0d0f10; 14 color: #edf2f5; 15 --bg: #0d0f10; 16 --panel: #15191b; 17 --panel-2: #101315; 18 --line: #273036; 19 --muted: #98a6ad; 20 --text: #edf2f5; 21 --green: #d5f55f; 22 --cyan: #8de9cd; 23 --blue: #8bdcff; 24 --amber: #ffd070; 25 } 26 * { box-sizing: border-box; } 27 html { 28 max-width: 100%; 29 overflow-x: hidden; 30 scroll-padding-top: 76px; 31 } 32 body { 33 margin: 0; 34 max-width: 100%; 35 overflow-x: hidden; 36 background: var(--bg); 37 color: var(--text); 38 } 39 a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 3px; } 40 code { 41 color: #c7f5ea; 42 overflow-wrap: anywhere; 43 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; 44 } 45 pre { 46 max-width: 100%; 47 margin: 0; 48 overflow-x: auto; 49 border: 1px solid var(--line); 50 border-radius: 8px; 51 padding: 14px; 52 background: #0b0d0e; 53 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03); 54 } 55 .wrap { width: min(1060px, calc(100% - 44px)); margin: 0 auto; } 56 .topbar { 57 position: sticky; 58 top: 0; 59 z-index: 2; 60 border-bottom: 1px solid rgba(39, 48, 54, .9); 61 background: rgba(13, 15, 16, .82); 62 backdrop-filter: blur(12px); 63 } 64 .topbar .wrap { 65 display: flex; 66 justify-content: space-between; 67 gap: 18px; 68 align-items: center; 69 min-height: 58px; 70 } 71 .brand { display: flex; gap: 10px; align-items: center; font-weight: 900; } 72 .mark { 73 position: relative; 74 width: 32px; 75 height: 32px; 76 display: grid; 77 place-items: center; 78 overflow: hidden; 79 border: 1px solid #e8ff8d; 80 border-radius: 8px; 81 background: linear-gradient(145deg, #ecff8a 0%, var(--green) 54%, var(--cyan) 100%); 82 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 9px 20px rgba(213, 245, 95, .14); 83 } 84 .mark::after { 85 content: ""; 86 position: absolute; 87 inset: -40% -70%; 88 background: linear-gradient(100deg, transparent 42%, rgba(255, 255, 255, .34) 50%, transparent 58%); 89 transform: translateX(-58%) rotate(8deg); 90 opacity: 0; 91 pointer-events: none; 92 } 93 .mark svg { position: relative; z-index: 1; width: 21px; height: 21px; display: block; } 94 .mark .mark-loop { fill: none; stroke: #101315; stroke-width: 4.2; stroke-linecap: round; stroke-linejoin: round; } 95 .mark .mark-dot { fill: #101315; } 96 .brand:hover .mark::after { animation: mark-sheen .72s ease both; } 97 @keyframes mark-sheen { from { opacity: 0; transform: translateX(-58%) rotate(8deg); } 32% { opacity: 1; } to { opacity: 0; transform: translateX(58%) rotate(8deg); } } 98 nav { display: flex; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: 13px; font-weight: 750; } 99 nav a { color: var(--muted); text-decoration: none; } 100 nav a:hover { color: var(--green); } 101 .hero { padding: 92px 0 48px; } 102 .hero-grid { 103 display: grid; 104 grid-template-columns: minmax(0, 760px); 105 gap: 32px; 106 align-items: end; 107 } 108 .hero-grid > * { min-width: 0; } 109 .eyebrow { 110 display: inline-flex; 111 gap: 8px; 112 align-items: center; 113 margin-bottom: 18px; 114 color: var(--green); 115 font-size: 12px; 116 font-weight: 900; 117 text-transform: uppercase; 118 } 119 .dot { width: 8px; height: 8px; border-radius: 999px; background: var(--green); box-shadow: 0 0 18px rgba(213, 245, 95, .75); } 120 h1 { 121 max-width: 760px; 122 margin: 0 0 8px; 123 font-size: clamp(48px, 9vw, 104px); 124 line-height: .92; 125 letter-spacing: 0; 126 } 127 .pronunciation { 128 margin: 0 0 20px; 129 color: var(--muted); 130 font-size: 15px; 131 font-weight: 700; 132 } 133 h2 { margin: 0 0 12px; font-size: 28px; line-height: 1.1; letter-spacing: 0; } 134 h3 { margin: 0 0 8px; font-size: 16px; letter-spacing: 0; } 135 p { max-width: 720px; color: #b7c3c9; font-size: 17px; line-height: 1.6; } 136 .lead { color: #eef4f6; font-size: 21px; } 137 .actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; } 138 .button { 139 display: inline-flex; 140 align-items: center; 141 gap: 8px; 142 min-height: 42px; 143 border: 1px solid var(--line); 144 border-radius: 8px; 145 padding: 0 14px; 146 background: var(--panel); 147 color: var(--text); 148 font-size: 14px; 149 font-weight: 850; 150 text-decoration: none; 151 } 152 .button.primary { border-color: var(--green); background: var(--green); color: #11140c; } 153 .button:hover { border-color: var(--green); } 154 .button.discord { 155 border-color: rgba(88, 101, 242, .72); 156 background: linear-gradient(180deg, rgba(88, 101, 242, .24), rgba(88, 101, 242, .14)); 157 color: #eef1ff; 158 box-shadow: 0 10px 28px rgba(88, 101, 242, .16), inset 0 1px 0 rgba(255, 255, 255, .08); 159 } 160 .button.discord:hover { 161 border-color: #8e99ff; 162 background: linear-gradient(180deg, rgba(88, 101, 242, .34), rgba(88, 101, 242, .2)); 163 box-shadow: 0 12px 34px rgba(88, 101, 242, .22), inset 0 1px 0 rgba(255, 255, 255, .1); 164 } 165 .button-icon { 166 width: 18px; 167 height: 18px; 168 flex: 0 0 auto; 169 fill: currentColor; 170 } 171 .repo-link { 172 color: var(--text); 173 text-decoration: none; 174 } 175 .repo-link:hover { color: var(--green); } 176 section { padding: 38px 0; border-top: 1px solid rgba(39, 48, 54, .9); scroll-margin-top: 76px; } 177 .section-head { display: grid; gap: 8px; margin-bottom: 18px; } 178 .section-head p { margin: 0; max-width: 680px; font-size: 15px; } 179 .grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } 180 .card { 181 min-width: 0; 182 border: 1px solid var(--line); 183 border-radius: 8px; 184 padding: 16px; 185 background: rgba(21, 25, 27, .88); 186 } 187 .card p { margin: 0; font-size: 15px; } 188 .card .button { margin-top: 16px; } 189 .tag { 190 display: inline-flex; 191 margin-bottom: 12px; 192 border: 1px solid #3b464d; 193 border-radius: 999px; 194 padding: 3px 8px; 195 color: var(--muted); 196 font-size: 11px; 197 font-weight: 850; 198 text-transform: uppercase; 199 } 200 .tag.green { border-color: rgba(213, 245, 95, .42); color: var(--green); } 201 .tag.cyan { border-color: rgba(141, 233, 205, .4); color: var(--cyan); } 202 .tag.blue { border-color: rgba(139, 220, 255, .4); color: var(--blue); } 203 .split { 204 display: grid; 205 grid-template-columns: minmax(0, 1fr) minmax(260px, .54fr); 206 gap: 18px; 207 align-items: start; 208 } 209 .steps { 210 display: grid; 211 gap: 18px; 212 margin: 18px 0; 213 } 214 .step { 215 display: grid; 216 gap: 10px; 217 } 218 .step p { margin: 0; } 219 .join-panel { 220 display: grid; 221 grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); 222 gap: 18px; 223 border: 1px solid var(--line); 224 border-radius: 8px; 225 padding: 18px; 226 background: rgba(21, 25, 27, .88); 227 } 228 .join-steps { 229 display: grid; 230 gap: 14px; 231 counter-reset: join-step; 232 } 233 .join-step { 234 position: relative; 235 display: grid; 236 gap: 4px; 237 padding-left: 42px; 238 } 239 .join-step::before { 240 counter-increment: join-step; 241 content: counter(join-step); 242 position: absolute; 243 left: 0; 244 top: 1px; 245 width: 28px; 246 height: 28px; 247 display: grid; 248 place-items: center; 249 border: 1px solid rgba(213, 245, 95, .42); 250 border-radius: 999px; 251 color: var(--green); 252 font-size: 12px; 253 font-weight: 900; 254 } 255 .join-step h3, .role-row h3 { margin: 0; } 256 .join-step p, .role-row p { margin: 0; font-size: 15px; } 257 .join-actions { margin-top: 18px; } 258 .role-list { 259 display: grid; 260 gap: 10px; 261 border-left: 1px solid var(--line); 262 padding-left: 18px; 263 } 264 .role-row { 265 display: grid; 266 gap: 4px; 267 border: 1px solid #2d373d; 268 border-radius: 8px; 269 padding: 12px; 270 background: #101315; 271 } 272 .note { 273 border-left: 3px solid var(--green); 274 padding-left: 14px; 275 color: #cbd3d7; 276 font-size: 15px; 277 } 278 .footer { padding-bottom: 60px; color: #87949b; font-size: 14px; } 279 .footer .wrap { 280 display: flex; 281 justify-content: space-between; 282 gap: 14px; 283 flex-wrap: wrap; 284 } 285 @media (max-width: 820px) { 286 .hero { padding-top: 58px; } 287 .hero-grid, .split, .grid, .join-panel { grid-template-columns: 1fr; } 288 nav { display: none; } 289 .wrap { width: min(100% - 32px, 1060px); } 290 h1 { font-size: clamp(44px, 18vw, 78px); } 291 .lead { font-size: 19px; } 292 .button { max-width: 100%; justify-content: center; } 293 .role-list { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 16px; } 294 } 295 </style> 296 </head> 297 <body> 298 <svg width="0" height="0" aria-hidden="true" focusable="false" style="position:absolute"> 299 <symbol id="discord-icon" viewBox="0 0 24 24"> 300 <path d="M19.54 5.34A16.9 16.9 0 0 0 15.35 4a11.7 11.7 0 0 0-.54 1.1 15.8 15.8 0 0 0-4.62 0A11.7 11.7 0 0 0 9.65 4a16.9 16.9 0 0 0-4.19 1.34C2.81 9.28 2.09 13.12 2.45 16.9A16.8 16.8 0 0 0 7.59 19.5a12.8 12.8 0 0 0 1.1-1.79 10.9 10.9 0 0 1-1.73-.83c.14-.1.28-.21.42-.32a12.1 12.1 0 0 0 9.24 0c.14.11.28.22.42.32-.55.32-1.13.6-1.74.83.32.63.69 1.23 1.1 1.79a16.8 16.8 0 0 0 5.15-2.6c.42-4.38-.72-8.18-2.01-11.56ZM9.32 14.57c-1 0-1.82-.92-1.82-2.04 0-1.13.8-2.05 1.82-2.05 1.02 0 1.84.92 1.82 2.05 0 1.12-.8 2.04-1.82 2.04Zm5.36 0c-1 0-1.82-.92-1.82-2.04 0-1.13.8-2.05 1.82-2.05 1.02 0 1.84.92 1.82 2.05 0 1.12-.8 2.04-1.82 2.04Z"></path> 301 </symbol> 302 </svg> 303 <div class="topbar"> 304 <div class="wrap"> 305 <a class="brand repo-link" href="/"><span class="mark" aria-label="iuna"><svg viewBox="0 0 32 32" aria-hidden="true" focusable="false"><circle class="mark-dot" cx="9.4" cy="7.6" r="2.8"></circle><path class="mark-loop" d="M9.4 13v7.1c0 3.7 2.9 6.4 6.6 6.4s6.6-2.7 6.6-6.4V13"></path></svg></span><span>iuna</span></a> 306 <nav aria-label="Page sections"> 307 <a href="#whatisiuna">What is iuna</a> 308 <a href="#howtojoin">Join</a> 309 <a href="/git/iuna/file/docs/protocol.md.html">Protocol</a> 310 <a href="/git/iuna/file/README.md.html">Source</a> 311 <a href="/downloads/">Downloads</a> 312 </nav> 313 </div> 314 </div> 315 316 <header class="hero"> 317 <div class="wrap hero-grid"> 318 <div> 319 <div class="eyebrow"><span class="dot"></span> Devnet prototype</div> 320 <h1>iuna</h1> 321 <p class="pronunciation" aria-label="Pronounced yoo-nuh">/ˈjuː.nə/</p> 322 <p class="lead">An experimental cryptocurrency devnet that combines VDF finalization, a burn lottery, and open proof-of-work issuance.</p> 323 <p>iuna is not a mainnet and not money yet. It is a small L1 lab for learning how a wallet, node, finalizer, miner, mempool, and peer network behave when real people run it on real machines.</p> 324 <div class="actions"> 325 <a class="button primary" href="/downloads/">Download builds</a> 326 <a class="button" href="/git/iuna/file/docs/protocol.md.html">Read protocol</a> 327 <a class="button discord" href="https://discord.gg/JcXRSSDhS" target="_blank" rel="noopener noreferrer"><svg class="button-icon" aria-hidden="true" focusable="false"><use href="#discord-icon"></use></svg><span>Join Discord</span></a> 328 </div> 329 </div> 330 </div> 331 </header> 332 333 <main> 334 <section id="whatisiuna"> 335 <div class="wrap"> 336 <div class="section-head"> 337 <h2>What Is iuna?</h2> 338 <p>iuna combines proof-of-burn finalization, a VDF clock, and proof-of-work issuance. Burns turn capital into temporary timing power that must be paid for again, rather than a permanent stake position.</p> 339 </div> 340 <div class="grid"> 341 <div class="card"> 342 <span class="tag green">PoB</span> 343 <h3>Proof Of Burn</h3> 344 <p>Nodes burn IUNA to enter the block lottery. The top-ranked burner finalizes first; lower ranks can take over with extra VDF delay if the first one disappears.</p> 345 </div> 346 <div class="card"> 347 <span class="tag cyan">VDF</span> 348 <h3>Verifiable Delay</h3> 349 <p>The selected finalizer must run sequential VDF work before publishing a block. That delay is the chain's clock and gives fallback finalizers a clean way to take over.</p> 350 </div> 351 <div class="card"> 352 <span class="tag blue">PoW</span> 353 <h3>Proof Of Work Issuance</h3> 354 <p>PoW mine actions introduce new IUNA. Each action issues 2 IUNA: 1 IUNA goes to the miner and 1 IUNA is paid as a fixed fee to the block finalizer.</p> 355 </div> 356 </div> 357 </div> 358 </section> 359 360 <section id="howtojoin"> 361 <div class="wrap"> 362 <div class="section-head"> 363 <h2>How To Join</h2> 364 <p>Download the latest available build from <a href="/downloads/">Downloads</a>, start it, and follow setup. Choose how much of the network you want to run.</p> 365 </div> 366 <div class="join-panel"> 367 <div> 368 <div class="join-steps"> 369 <div class="join-step"> 370 <h3>Download</h3> 371 <p>Get the latest available build from the local downloads page.</p> 372 </div> 373 <div class="join-step"> 374 <h3>Set Up</h3> 375 <p>Create or import a wallet, back up your recovery phrase, and connect to the devnet.</p> 376 </div> 377 <div class="join-step"> 378 <h3>Choose Your Role</h3> 379 <p>Start simple as a wallet, then switch to node mode whenever you want to do more.</p> 380 </div> 381 </div> 382 <div class="actions join-actions"> 383 <a class="button primary" href="/downloads/">Download builds</a> 384 <a class="button" href="/git/iuna/">Browse source</a> 385 <a class="button discord" href="https://discord.gg/JcXRSSDhS" target="_blank" rel="noopener noreferrer"><svg class="button-icon" aria-hidden="true" focusable="false"><use href="#discord-icon"></use></svg><span>Join Discord</span></a> 386 </div> 387 </div> 388 <div class="role-list" aria-label="iuna roles"> 389 <div class="role-row"> 390 <span class="tag green">Wallet</span> 391 <h3>Wallet</h3> 392 <p>Send, receive, and inspect activity.</p> 393 </div> 394 <div class="role-row"> 395 <span class="tag cyan">Node</span> 396 <h3>Private Node</h3> 397 <p>Mine new coins with PoW actions or earn finalizer rewards by burning, without opening an inbound P2P port.</p> 398 </div> 399 <div class="role-row"> 400 <span class="tag blue">Public Peer</span> 401 <h3>Public Node</h3> 402 <p>Help strengthen the network by opening TCP port <code>9444</code> and sharing your public P2P address.</p> 403 </div> 404 </div> 405 </div> 406 <p class="note">Keep the management UI local. Only the P2P listener should be reachable by other nodes.</p> 407 </div> 408 </section> 409 </main> 410 411 <section class="footer"> 412 <div class="wrap"> 413 <span>iuna devnet prototype.</span> 414 <a href="/git/iuna/file/README.md.html">Source</a> 415 </div> 416 </section> 417 </body> 418 </html>