git / moonbite-network / templates/get_wallet.html · raw
{% extends "base.html" %}{% block title %}MoonBite Wallet — self-custody for MBITE{% endblock %}{% block meta_description %}The MoonBite wallet is free, open source and non-custodial. Your keys are created on your own device and never leave it. Your keys, your MBITE.{% endblock %}{% block head_extra %}<style nonce="{{ csp_nonce }}">/* /get-wallet: built from static/moonbite-ds.css. Only the product illustrations (phone, phrase card, step pictures) need page CSS. */.gw-stage { height: 600px; padding: 0; }.gw-phone { position: absolute; top: 40px; right: 24px; width: 252px; height: 520px; border-radius: 44px; padding: 8px; background: var(--ds-raise); box-shadow: 0 48px 96px -32px rgba(0, 0, 0, .9), 0 0 0 1px var(--ds-line-2); }.gw-screen { width: 100%; height: 100%; border-radius: 36px; background: var(--ds-void); overflow: hidden; padding: 16px 16px 0; display: flex; flex-direction: column; }.gw-notch { width: 88px; height: 24px; border-radius: 999px; background: #000; margin: 0 auto; flex: none; }.gw-top { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }.gw-id { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; }.gw-id span { width: 32px; height: 32px; border-radius: 50%; background: var(--ds-slate); display: flex; align-items: center; justify-content: center; }.gw-tag { font-family: var(--ds-mono); font-size: 10px; color: var(--ds-ash); border: 1px solid var(--ds-line-2); border-radius: 999px; padding: 2px 8px; }.gw-k { font-size: 11px; color: var(--ds-ash); margin-top: 24px; }.gw-bal { font-family: var(--ds-mono); font-variant-numeric: tabular-nums; font-size: 22px; letter-spacing: -.02em; margin-top: 4px; }.gw-bal small { font-size: 12px; color: var(--ds-ash); }.gw-addr { font-family: var(--ds-mono); font-size: 10px; color: var(--ds-ash); margin-top: 4px; }.gw-acts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 24px; }.gw-acts div { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 11px; color: var(--ds-ash); }.gw-acts i { width: 44px; height: 44px; border-radius: 50%; background: var(--ds-slate); display: flex; align-items: center; justify-content: center; }.gw-acts i.p { background: var(--ds-bone); }.gw-h { font-size: 12px; font-weight: 700; margin-top: 24px; }.gw-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ds-slate); }.gw-row:last-child { border-bottom: 0; }.gw-row i { width: 28px; height: 28px; border-radius: 50%; background: var(--ds-slate); display: flex; align-items: center; justify-content: center; flex: none; }.gw-row div { flex: 1; min-width: 0; font-size: 12px; }.gw-row div small { display: block; font-size: 10px; color: var(--ds-ash); }.gw-row .amt { font-family: var(--ds-mono); font-variant-numeric: tabular-nums; font-size: 11px; }.gw-row .amt.up { color: var(--ds-gain); }.gw-phrase { position: absolute; left: 16px; top: 48px; z-index: 2; width: 232px; padding: 16px; border-radius: 10px; background: rgba(11, 13, 18, .92); border: 1px solid var(--ds-line-2); box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .8); }.gw-phrase .hd { display: flex; justify-content: space-between; align-items: center; font-family: var(--ds-mono); font-size: 11px; color: var(--ds-ash); letter-spacing: .08em; }.gw-words { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 12px; }.gw-words span { display: flex; gap: 6px; background: var(--ds-slate); border: 1px solid var(--ds-line); border-radius: 6px; padding: 4px 6px; font-family: var(--ds-mono); font-size: 10px; color: var(--ds-ash); }.gw-words span b { color: var(--ds-bone); font-weight: 400; }.gw-phrase .ft { font-size: 11px; color: var(--ds-ash); margin-top: 12px; line-height: 1.5; }.gw-lock { position: absolute; left: 16px; bottom: 40px; z-index: 2; display: flex; align-items: center; gap: 12px; padding: 8px 16px 8px 8px; border-radius: 999px; background: var(--ds-bone); color: var(--ds-void); font-size: 13px; font-weight: 700; box-shadow: 0 24px 48px -12px rgba(0, 0, 0, .8); }.gw-lock i { width: 28px; height: 28px; border-radius: 50%; background: var(--ds-void); display: flex; align-items: center; justify-content: center; }.gw-ic { width: 48px; height: 48px; border-radius: 10px; background: var(--ds-raise); border: 1px solid var(--ds-line); display: flex; align-items: center; justify-content: center; }.gw-wcard { width: 184px; background: var(--ds-slate); border: 1px solid var(--ds-line-2); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; align-items: center; gap: 12px; }.gw-wcard .ic { width: 56px; height: 56px; border-radius: 10px; background: var(--ds-void); border: 1px solid var(--ds-line-2); display: flex; align-items: center; justify-content: center; }.gw-wcard .nm { font-size: 13px; font-weight: 700; }.gw-wcard .bt { width: 100%; text-align: center; font-size: 12px; font-weight: 700; color: var(--ds-void); background: var(--ds-bone); border-radius: 6px; padding: 8px 0; }.gw-wcard .bt2 { width: 100%; text-align: center; font-size: 12px; color: var(--ds-ash); border: 1px solid var(--ds-line-2); border-radius: 6px; padding: 7px 0; }.ds-step .gw-words { width: 100%; max-width: 264px; gap: 8px; margin: 0; }.ds-step .gw-words span { padding: 6px 8px; font-size: 11px; gap: 8px; }.gw-qr { background: var(--ds-bone); border-radius: 10px; padding: 8px; }.gw-qr svg { display: block; width: 128px; height: 128px; }.gw-paid { position: absolute; right: 16px; bottom: 16px; display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--ds-slate); border: 1px solid var(--ds-line-2); font-family: var(--ds-mono); font-size: 12px; }.gw-paid i { width: 24px; height: 24px; border-radius: 50%; background: var(--ds-raise); display: flex; align-items: center; justify-content: center; }.gw-safe { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 48px; align-items: start; margin-top: 48px; }.gw-safe .ds-callout { padding: 32px; gap: 16px; }.gw-safe .ds-callout .big { font-family: var(--ds-sans); font-weight: 800; font-size: clamp(26px, 2.6vw, 32px); line-height: 1.15; letter-spacing: -.02em; color: var(--ds-bone); margin: 0; }.gw-safe .ds-howto { margin-top: 0; }.ds .gw-safe .ds-howto a, .ds .gw-tl { color: var(--ds-bone); border-bottom: 1px solid var(--ds-line-2); }.ds .gw-safe .ds-howto a:hover, .ds .gw-tl:hover { border-color: var(--ds-bone); }.gw-safe .ds-howto .ds-h3 { font-size: 19px; }.gw-plat .art svg { display: block; }.gw-plat .meta { font-family: var(--ds-mono); font-size: 12px; color: var(--ds-ash); }.gw-plat .act { margin-top: auto; padding-top: 16px; }.gw-plat .act .ds-btn { width: 100%; }.ds .gw-av code, .ds .gw-sub code { font-family: var(--ds-mono); font-size: .88em; padding: 1px 6px; border-radius: 6px; background: var(--ds-raise); color: var(--ds-bone); overflow-wrap: anywhere; }.ds .gw-av a, .ds .gw-sub a { color: var(--ds-bone); border-bottom: 1px solid var(--ds-line-2); }.gw-av .ds-tile { justify-content: flex-start; }.gw-av .ds-tile .n { font-family: var(--ds-mono); font-size: 12px; color: var(--ds-ash); }.ds .ds-code pre { border: 0; border-radius: 0; white-space: pre-wrap; overflow-wrap: anywhere; }#downloads, #antivirus, #safety, #faq { scroll-margin-top: 80px; }@media (min-width: 1024px) and (max-width: 1199px) { .gw-phrase { width: 204px; } .gw-phone { right: 16px; }}@media (max-width: 1023px) { .gw-stage { max-width: 560px; width: 100%; margin: 0 auto; } .gw-safe { grid-template-columns: minmax(0, 1fr); gap: 32px; }}@media (max-width: 767px) { .gw-stage { height: auto; display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 24px 16px; } .gw-phone, .gw-phrase, .gw-lock { position: static; } .gw-phrase { width: 100%; max-width: 300px; } .gw-phone { order: 3; } .gw-lock { order: 2; }}</style>{% endblock %}{% block content %}{# d01 mark: one closed path; d02 glyph bars at y=-40.5 and 11.5 (as home_tap.html). #}{% set MARK = "M 13.99 -99.02 A 100 100 0 1 0 99.02 -13.99 A 62 62 0 0 1 13.99 -99.02 Z" %}<div class="ds"><!-- ================= PAGE HEAD ================= --><header class="ds-pagehead split"> <div class="ds-wrap"> <div> <ol class="ds-crumbs"><li><a href="/">MoonBite</a></li><li><span aria-current="page">Wallet</span></li></ol> <p class="ds-eyebrow">Self-custody wallet</p> <h1 class="ds-title">Hold the keys,<br><span class="g">or hold nothing.</span></h1> <p class="ds-lede">The MoonBite wallet is free, open source and non-custodial. Your keys are created on your own device and never leave it. <b>Your 12-word recovery phrase is the only way back in</b>, and nobody, including MoonBite, can reset it.</p> <div class="ds-actions"> <a class="ds-btn gold" href="/wallet">Open the web wallet <svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 8h10M9 4l4 4-4 4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> </a> <a class="ds-btn" href="#downloads">All platforms</a> </div> <ul class="ds-checks"> <li>Free</li> <li>Open source</li> <li>Non-custodial</li> <li>No account, no sign-up</li> </ul> </div> <div class="ds-stage gw-stage"> <div class="gw-phrase" aria-hidden="true"> <div class="hd"><span>RECOVERY PHRASE</span><span>12 WORDS</span></div> <div class="gw-words">{% for i in range(1, 13) %}<span><b>{{ i }}</b>{{ '•' * (4 + (i * 7) % 3) }}</span>{% endfor %}</div> <p class="ft">Created on this device. Never sent to MoonBite.</p> </div> <div class="gw-lock" aria-hidden="true"> <i><svg width="14" height="14" viewBox="0 0 24 24"><rect x="5" y="11" width="14" height="10" rx="2" fill="none" stroke="#F5F2EA" stroke-width="2.4"/><path d="M8 11V7a4 4 0 0 1 8 0v4" fill="none" stroke="#F5F2EA" stroke-width="2.4" stroke-linecap="round"/></svg></i> Signed on your device </div> <div class="gw-phone" role="img" aria-label="Example of the MoonBite wallet on a phone: a balance of 21.45000000 MBITE with Send, Receive and Back up actions and recent activity. Example figures only."> <div class="gw-screen" aria-hidden="true"> <div class="gw-notch"></div> <div class="gw-top"> <div class="gw-id"><span><svg width="18" height="18" viewBox="-150 -150 300 300"><path fill="#F5F2EA" d="{{ MARK }}"/><rect x="-127.5" y="-40.5" width="255" height="13" fill="#D9A441"/><rect x="-127.5" y="11.5" width="255" height="13" fill="#D9A441"/></svg></span>MoonBite Wallet</div> <span class="gw-tag">EXAMPLE</span> </div> <div class="gw-k">Balance</div> <div class="gw-bal">21.45000000 <small>MBITE</small></div> <div class="gw-addr">moon1q…example</div> <div class="gw-acts"> <div><i class="p"><svg width="18" height="18" viewBox="0 0 16 16"><path d="M8 13V3M4 7l4-4 4 4" fill="none" stroke="#0B0D12" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></i>Send</div> <div><i><svg width="18" height="18" viewBox="0 0 16 16"><path d="M8 3v10M4 9l4 4 4-4" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></i>Receive</div> <div><i><svg width="18" height="18" viewBox="0 0 24 24"><path d="M12 3l7 3v5c0 4.5-3 8.5-7 10-4-1.5-7-5.5-7-10V6z" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linejoin="round"/><path d="M9 12l2 2 4-4" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></i>Back up</div> </div> <div class="gw-h">Activity</div> <div> <div class="gw-row"><i><svg width="12" height="12" viewBox="0 0 16 16"><path d="M8 3v10M4 9l4 4 4-4" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></i><div>Received<small>12 min ago</small></div><span class="amt up">+1.20000000</span></div> <div class="gw-row"><i><svg width="12" height="12" viewBox="0 0 16 16"><path d="M8 13V3M4 7l4-4 4 4" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></i><div>Sent<small>1 h ago</small></div><span class="amt">−0.25000000</span></div> <div class="gw-row"><i><svg width="12" height="12" viewBox="0 0 24 24"><rect x="6" y="6" width="12" height="12" rx="2" fill="none" stroke="#F5F2EA" stroke-width="2.5"/></svg></i><div>Block reward<small>Yesterday</small></div><span class="amt up">+10.00000000</span></div> </div> </div> </div> </div> </div></header><!-- ================= WHAT IT DOES ================= --><section class="ds-section" aria-labelledby="what-h"> <div class="ds-wrap"> <p class="ds-eyebrow">What it does</p> <h2 class="ds-h2" id="what-h">A wallet that answers<br><span class="dim">only to you.</span></h2> <p class="ds-sub">It holds your keys, shows your balance, and sends and receives MBITE. Nobody stands between you and your coins.</p> <div class="ds-grid c3"> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="15" r="4"/><path d="M11 12l9-9M17 6l3 3M15 8l2 2"/></svg></span> <div><h3 class="ds-h3">Nobody holds it for you</h3><p>Your keys are made on your device and stay there. MoonBite couldn't move your coins if we wanted to.</p></div> </div> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h4L19 9l-4-4L4 16z"/><path d="M13 7l4 4"/></svg></span> <div><h3 class="ds-h3">Signed on your device</h3><p>Transactions are signed where your keys live. Only the signed transaction goes out to the network.</p></div> </div> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></span> <div><h3 class="ds-h3">Encrypted at rest</h3><p>What the wallet stores on your device is encrypted first, with PBKDF2 and AES-GCM.</p></div> </div> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16v10H8l-4 4z"/><path d="M9 9l6 4M15 9l-6 4"/></svg></span> <div><h3 class="ds-h3">We never ask for your seed</h3><p>No support agent, no pop-up, no "verification" will ever need it. Anyone who asks is stealing from you.</p></div> </div> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 7l-5 5 5 5M16 7l5 5-5 5M14 4l-4 16"/></svg></span> <div><h3 class="ds-h3">Read the source</h3><p>Built on a Litecoin-lineage core. Don't trust our word for what the wallet does: read it line by line.</p></div> </div> <div class="ds-tile"> <span class="gw-ic" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-6 8-6s8 2 8 6"/><path d="M3 3l18 18"/></svg></span> <div><h3 class="ds-h3">No account to create</h3><p>No email, no sign-up, no login with us. The wallet is yours the moment it creates your keys.</p></div> </div> </div> </div></section><!-- ================= THREE STEPS ================= --><section class="ds-section alt" aria-labelledby="steps-h"> <div class="ds-wrap"> <div class="ds-head"> <div> <p class="ds-eyebrow">Getting started</p> <h2 class="ds-h2" id="steps-h">Three steps.<br><span class="dim">No account.</span></h2> </div> <a class="ds-textlink" href="/start">Read the full guide →</a> </div> <div class="ds-steps"> <div class="ds-step"> <div class="pic" aria-hidden="true"> <div class="gw-wcard"> <div class="ic"><svg width="36" height="36" viewBox="-150 -150 300 300"><path fill="#F5F2EA" d="{{ MARK }}"/><rect x="-127.5" y="-40.5" width="255" height="13" fill="#D9A441"/><rect x="-127.5" y="11.5" width="255" height="13" fill="#D9A441"/></svg></div> <div class="nm">MoonBite Wallet</div> <div class="bt">Create new wallet</div> <div class="bt2">Restore from phrase</div> </div> </div> <div class="txt"><div class="n">01</div><h3 class="ds-h3">Open the wallet</h3><p>Open the web wallet, or install the desktop app on Windows, and choose Create new wallet. Your keys are generated right there.</p></div> </div> <div class="ds-step"> <div class="pic" aria-hidden="true"> <div class="gw-words">{% for i in range(1, 13) %}<span><b>{{ i }}</b>{{ '•' * (4 + (i * 7) % 3) }}</span>{% endfor %}</div> </div> <div class="txt"><div class="n">02</div><h3 class="ds-h3">Write down your 12 words</h3><p>On paper, in order, kept offline. They are the only way to restore your coins if this device is lost.</p></div> </div> <div class="ds-step"> <div class="pic" aria-hidden="true"> <div class="gw-qr"> <svg viewBox="0 0 21 21" shape-rendering="crispEdges"> {%- for y in range(21) %}{% for x in range(21) %} {%- set infinder = (x < 8 and y < 8) or (x > 12 and y < 8) or (x < 8 and y > 12) %} {%- if not infinder and ((x * 37 + y * 91 + x * y * 13 + 7) % 11) < 5 %}<rect x="{{ x }}" y="{{ y }}" width="1" height="1" fill="#0B0D12"/>{% endif %} {%- endfor %}{% endfor %} {%- for ox, oy in [(0, 0), (14, 0), (0, 14)] %} <rect x="{{ ox + 0.5 }}" y="{{ oy + 0.5 }}" width="6" height="6" fill="none" stroke="#0B0D12"/> <rect x="{{ ox + 2 }}" y="{{ oy + 2 }}" width="3" height="3" fill="#0B0D12"/> {%- endfor %} </svg> </div> <div class="gw-paid"><i><svg width="12" height="12" viewBox="0 0 16 16"><path d="M3 8.5l3 3 7-7" fill="none" stroke="#2E9E6B" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg></i>+1.20000000</div> </div> <div class="txt"><div class="n">03</div><h3 class="ds-h3">Receive or mine MBITE</h3><p>Share your address to be paid, or point the <a class="gw-tl" href="/mine">miner</a> at it. It settles peer to peer.</p></div> </div> </div> </div></section><!-- ================= SAFETY ================= --><section class="ds-section" id="safety" aria-labelledby="safety-h"> <div class="ds-wrap"> <p class="ds-eyebrow">Safety</p> <h2 class="ds-h2" id="safety-h">Your phrase is the wallet.<br><span class="dim">Guard it like one.</span></h2> <div class="gw-safe"> <div class="ds-callout warn" role="note"> <span class="label">Never share your phrase</span> <p class="big">MoonBite will never ask for your recovery phrase.</p> <p>No support agent, no pop-up, no "verification" will ever need it. Anyone who asks for it, in any channel, is trying to take your coins. MoonBite will never contact you first, and will never ask for a payment of any kind.</p> <p><a class="gw-tl" href="/scams">Read the scam warnings →</a></p> </div> <ol class="ds-howto"> <li><div><h3 class="ds-h3">Paper, not pixels</h3><p>Write the 12 words on paper, in order. No screenshots, no cloud copy, no notes app. Keep your phrase off every screen and every stranger.</p></div></li> <li><div><h3 class="ds-h3">Nobody can reset it</h3><p>Not MoonBite, not a support agent, not anyone. Without your phrase or keys the coins cannot be recovered, which is also why nobody can take them.</p></div></li> <li><div><h3 class="ds-h3">Binaries only from this site</h3><p>Get downloads only from moonbite.org and match the checksum before you run anything. That rule never expires. <a href="#antivirus">How to verify</a>.</p></div></li> </ol> </div> </div></section><!-- ================= PLATFORMS ================= --><section class="ds-section alt" id="downloads" aria-labelledby="dl-h"> <div class="ds-wrap"> <p class="ds-eyebrow">Download</p> <h2 class="ds-h2" id="dl-h">Pick your platform.</h2> <p class="ds-sub">Real builds, no accounts, no sign-up. Check the checksum before you run anything: that rule never expires.</p> <div class="ds-grid c4 gw-plat"> <div class="ds-card"> <div class="art" aria-hidden="true"><svg viewBox="0 0 180 120" width="180" height="120"><rect x="10" y="12" width="160" height="96" rx="8" fill="#161A22" stroke="#8A8580" stroke-width="2"/><path d="M10 32h160" stroke="#8A8580" stroke-width="2"/><circle cx="22" cy="22" r="3" fill="#8A8580"/><circle cx="32" cy="22" r="3" fill="#8A8580"/><rect x="48" y="18" width="96" height="8" rx="4" fill="#1D222C"/><rect x="18" y="40" width="144" height="60" rx="4" fill="#0B0D12"/><rect x="30" y="52" width="40" height="5" rx="2.5" fill="#8A8580"/><rect x="30" y="64" width="64" height="9" rx="3" fill="#F5F2EA"/><rect x="30" y="82" width="28" height="9" rx="4.5" fill="#F5F2EA"/><rect x="64" y="82" width="28" height="9" rx="4.5" fill="#1D222C"/></svg></div> <div class="body"> <div class="meta">nothing to install · any OS</div> <div class="t">Web Wallet</div> <div class="d">Create an address and use your wallet right in the browser. Same wallet, zero download.</div> <div class="act"><a class="ds-btn sm" href="/wallet">Open now</a></div> </div> </div> <div class="ds-card"> <div class="art" aria-hidden="true"><svg viewBox="0 0 180 120" width="180" height="120"><rect x="20" y="10" width="140" height="86" rx="6" fill="#161A22" stroke="#8A8580" stroke-width="2"/><rect x="28" y="18" width="124" height="70" rx="3" fill="#0B0D12"/><g transform="translate(58 53) scale(.11)"><path fill="#F5F2EA" d="{{ MARK }}"/></g><rect x="78" y="44" width="56" height="5" rx="2.5" fill="#8A8580"/><rect x="78" y="56" width="40" height="5" rx="2.5" fill="#1D222C"/><path d="M76 96 L70 110 H110 L104 96" fill="#161A22" stroke="#8A8580" stroke-width="2"/></svg></div> <div class="body"> <div class="meta">moonbite-wallet.exe · ~21 MB</div> <div class="t">Windows (x86_64)</div> <div class="d">The desktop wallet app: the same self-custody wallet, in its own window. Windows 10/11.</div> <div class="act"><a class="ds-btn sm" href="/download/wallet">Download</a></div> </div> </div> <div class="ds-card"> <div class="art" aria-hidden="true"><svg viewBox="0 0 180 120" width="180" height="120"><rect x="34" y="16" width="112" height="72" rx="6" fill="#161A22" stroke="#8A8580" stroke-width="2" stroke-dasharray="5 5"/><rect x="42" y="24" width="96" height="56" rx="3" fill="#0B0D12"/><path d="M20 96h140l-8 10H28z" fill="#161A22" stroke="#8A8580" stroke-width="2" stroke-linejoin="round"/><path d="M82 52h16M90 44v16" stroke="#8A8580" stroke-width="2" stroke-linecap="round"/></svg></div> <div class="body"> <div class="meta"><span class="ds-tag">Native app coming</span></div> <div class="t">Linux / macOS</div> <div class="d">A native desktop app for Linux and macOS is on the way. Until then, the Web Wallet runs the same wallet on any OS.</div> <div class="act"><a class="ds-btn sm" href="/wallet">Use the Web Wallet</a></div> </div> </div> <div class="ds-card"> <div class="art" aria-hidden="true"><svg viewBox="0 0 180 120" width="180" height="120"><g stroke="#8A8580" stroke-width="3" stroke-linecap="round"><path d="M76 16v12M90 16v12M104 16v12M76 92v12M90 92v12M104 92v12M48 46h12M48 60h12M48 74h12M120 46h12M120 60h12M120 74h12"/></g><rect x="60" y="28" width="60" height="64" rx="8" fill="#1D222C" stroke="#8A8580" stroke-width="2"/><rect x="72" y="42" width="36" height="36" rx="5" fill="#0B0D12" stroke="#F5F2EA" stroke-width="2"/><text x="90" y="64" text-anchor="middle" fill="#F5F2EA" font-family="ui-monospace,Menlo,monospace" font-size="11">CPU</text></svg></div> <div class="body"> <div class="meta">separate download</div> <div class="t">Want to mine?</div> <div class="d">The miner is a small, separate download. Create your wallet first, then point the miner at your address.</div> <div class="act"><a class="ds-btn sm" href="/mine">Mining guide</a></div> </div> </div> </div> </div></section><!-- ================= ANTIVIRUS / VERIFY ================= --><section class="ds-section gw-av" id="antivirus" aria-labelledby="av-h"> <div class="ds-wrap"> <p class="ds-eyebrow">Antivirus warnings</p> <h2 class="ds-h2" id="av-h">What the warnings mean,<br><span class="dim">and how to verify.</span></h2> <p class="ds-sub gw-sub">The wallet does not mine. It never includes the miner, and this website never mines in your browser. The miner is a separate download on the <a href="/mine#antivirus">mining guide</a>, where a CPU miner may be labelled CoinMiner or PUA by antivirus software because of what miners are as a class, not because of anything in the file.</p> <div class="ds-grid c3"> <div class="ds-tile"> <div class="n">01</div> <div><h3 class="ds-h3">Unknown publisher</h3><p>Windows SmartScreen may say "Unknown publisher" and macOS may say the developer cannot be verified. Our builds are not yet signed with a platform certificate. That dialog is about reputation, not a detection, so verify the file yourself before running it.</p></div> </div> <div class="ds-tile"> <div class="n">02</div> <div><h3 class="ds-h3">Three checks</h3><p>Compare the SHA-256 with <code>SHA256SUMS.txt</code>; a minisign signature for the manifest is planned but not published yet, so today a matching hash shows the file isn't damaged, not who built it; run the attestation check below where the release has one. The scripts in <code>scripts/release/</code> do all three.</p></div> </div> <div class="ds-tile"> <div class="n">03</div> <div><h3 class="ds-h3">If a check fails</h3><p>Do not run the file. Report it to <a href="mailto:security@moonbite.org">security@moonbite.org</a>. Background reading: the <a href="https://moonbite.org/git/moonbite-network/file/docs/AV-FALSE-POSITIVE-PLAYBOOK.md.html">antivirus false-positive playbook</a> and <a href="https://moonbite.org/git/moonbite-network/file/docs/SIGNING-AND-NOTARISATION.md.html">code signing and notarisation</a>.</p></div> </div> </div> <div class="ds-code"> <div class="ds-code-bar"><span>Verify a build's attestation</span><button class="ds-copy" type="button">Copy</button></div> <pre>gh attestation verify <file> --repo moonbitecoin/moonbite-network</pre> </div> </div></section><!-- ================= FAQ ================= --><section class="ds-section alt" id="faq" aria-labelledby="faq-h"> <div class="ds-wrap ds-faq"> <div> <p class="ds-eyebrow">FAQ</p> <h2 class="ds-h2" id="faq-h">Straight<br><span class="dim">answers.</span></h2> <p class="ds-sub">New to all of this? Start with the <a class="ds-textlink" href="/start">guide</a>.</p> </div> <div class="ds-qa"> <details open> <summary>Is the wallet free?</summary> <p>Yes. The wallet is free and open source. There is no account to open and nothing to pay.</p> </details> <details> <summary>What if I lose my recovery phrase?</summary> <p>Nobody can reset it for you, including MoonBite. Without your phrase or keys the coins cannot be recovered, which is also why nobody can take them. MoonBite will never ask you for it.</p> </details> <details> <summary>Where are my keys kept?</summary> <p>On your device. They are created there, encrypted before they are stored, and transactions are signed there. MoonBite never holds them and could not move your coins if it wanted to.</p> </details> <details> <summary>Is the desktop app different from the web wallet?</summary> <p>It is the same self-custody wallet, in its own window, for Windows 10/11. On Linux and macOS, use the <a href="/wallet">web wallet</a> until the native app is ready.</p> </details> <details> <summary>Does the wallet mine?</summary> <p>No. The wallet never includes the miner, and this website never mines in your browser. The miner is a separate download on the <a href="/mine">mining guide</a>.</p> </details> <details> <summary>Can I buy MBITE?</summary> <p>MBITE is not listed on any exchange and has no market price. Anyone offering to sell you MBITE is not us. See <a href="/scams">scam warnings</a>.</p> </details> </div> </div></section><!-- ================= CLOSING ================= --><section class="ds-section" aria-labelledby="close-h"> <div class="ds-wrap"> <div class="ds-band"> <svg class="mk" viewBox="-150 -150 300 300" aria-hidden="true"><path fill="#F5F2EA" d="{{ MARK }}"/><rect x="-127.5" y="-40.5" width="255" height="13" fill="#D9A441"/><rect x="-127.5" y="11.5" width="255" height="13" fill="#D9A441"/></svg> <h2 class="ds-h2" id="close-h">Your keys.<br>Your MBITE.</h2> <p class="ds-sub">Open the wallet, write down 12 words, and you are done. No account, no sign-up.</p> <div class="ds-actions"> <a class="ds-btn gold" href="/wallet">Open the web wallet</a> <a class="ds-btn" href="/download/wallet">Download for Windows</a> </div> <p class="fine">MoonBite is live on mainnet. MBITE is not listed on any exchange yet, so it carries no market price.</p> </div> </div></section></div>{% endblock %}