git / moonbite-network / templates/mine.html · raw

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"><meta name="theme-color" content="#0B0D12"><title>Mine MoonBite — Solo, On Your Own Machine</title><meta name="description" content="Mine MBITE solo on your own computer. No pool, no account, no middleman. Run the node, and every block you find pays you directly."><link rel="icon" type="image/svg+xml" href="/static/moonbite-logo.svg"><link rel="stylesheet" href="/static/fonts/moonbite-fonts.css"><style nonce="{{ csp_nonce }}">/* /mine — built from static/moonbite-ds.css; only page-specific pieces here,   all on the --ds-* tokens (d03 colour, d14 radius/spacing, d17 targets). */html { color-scheme: dark; }html, body { margin: 0; }body { background: var(--ds-void, #0B0D12); color: var(--ds-bone, #F5F2EA); overflow-x: hidden; }::selection { background: var(--ds-gold); color: var(--ds-void); }.mine code { font-family: var(--ds-mono); font-size: .9em; padding: 2px 6px; border-radius: 6px; background: var(--ds-raise); color: var(--ds-bone); overflow-wrap: anywhere; }.mine .hint { font-size: 14px; color: var(--ds-ash); margin: 16px 0 0; min-height: 22px; }.mine .hint a, .mine .fine a, .mine .ds-howto p a, .mine .ds-callout a, .mine .lead-copy a { color: var(--ds-bone); border-bottom: 1px solid var(--ds-line-2); }.mine .hint a:hover, .mine .fine a:hover, .mine .ds-howto p a:hover, .mine .ds-callout a:hover, .mine .lead-copy a:hover { border-color: var(--ds-bone); }.mine [id] { scroll-margin-top: 96px; }.mine .os-block > p a { color: var(--ds-bone); border-bottom: 1px solid var(--ds-line-2); }.mine .fine { font-size: 14px; color: var(--ds-ash); margin: 16px 0 0; }/* download panel (hero right) — platform rows, after Shade's download page */.mine .dl-panel { padding: 24px; scroll-margin-top: 96px; }.mine .dl-panel .ds-eyebrow { margin: 0 0 16px; }.mine .dl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }.mine .dl-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 16px; min-height: 72px; padding: 12px 16px;  border-radius: 10px; border: 1px solid var(--ds-line); background: var(--ds-void);  transition: border-color var(--ds-t1) var(--ds-ease), background var(--ds-t1) var(--ds-ease); }.mine .dl-row:hover { border-color: var(--ds-line-2); background: var(--ds-ink); }.mine .dl-row.is-you { border-color: rgba(245, 242, 234, .36); }.mine .dl-row .ic { width: 40px; height: 40px; border-radius: 6px; background: var(--ds-raise); display: flex; align-items: center; justify-content: center; }.mine .dl-row .nm { display: block; font-weight: 700; font-size: 16px; color: var(--ds-bone); }.mine .dl-row .fn { display: block; font-family: var(--ds-mono); font-size: 12px; color: var(--ds-ash); overflow-wrap: anywhere; margin-top: 2px; }.mine .dl-row .st { display: flex; align-items: center; gap: 12px; }.mine .dl-row .you { font-family: var(--ds-mono); font-size: 11px; color: var(--ds-bone); display: none; }.mine .dl-row.is-you .you { display: inline; }/* OS switcher for commands — after Overmind's tabbed install steps */.mine .os-tabs { display: inline-flex; gap: 4px; padding: 4px; margin: 24px 0 0; border-radius: 10px; border: 1px solid var(--ds-line); background: var(--ds-ink); }.mine .os-tab { min-height: 44px; padding: 8px 16px; border-radius: 6px; border: 0; background: transparent; color: var(--ds-ash);  font: 700 14px/1.2 var(--ds-sans); cursor: pointer; transition: background var(--ds-t1) var(--ds-ease), color var(--ds-t1) var(--ds-ease); }.mine .os-tab:hover { color: var(--ds-bone); }.mine .os-tab.on { background: var(--ds-raise); color: var(--ds-bone); }.mine.js .os-block:not(.on) { display: none; }.mine .os-block + .os-block { margin-top: 16px; }.mine.js .os-block + .os-block { margin-top: 0; }.mine .os-block > p { color: var(--ds-ash); margin: 16px 0 0; }.mine .os-block > p b { color: var(--ds-bone); }.mine .ds-code pre { white-space: pre-wrap; overflow-wrap: anywhere; }/* setup / verify layout */.mine .ds-howto .ds-h3 { font-size: 20px; }.mine .ds-howto > li > div { min-width: 0; }.mine .ds-howto p.dim { font-size: 14px; }.mine .two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 64px; margin-top: 48px; align-items: start; }.mine .two .ds-howto { margin-top: 0; }.mine .lead-copy p { color: var(--ds-ash); margin: 16px 0 0; }.mine .lead-copy p b { color: var(--ds-bone); }.mine .lead-copy .ds-h3 { margin-top: 0; }.mine .callouts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }.mine .after-howto { margin-top: 32px; }.mine .ds-section.alt .ds-tile { background: var(--ds-void); }.mine .ds-tile .art { height: 150px; }.mine .ds-tile h3 { margin: 0; }.mine .ds-band .ds-sub { font-size: 18px; }@media (max-width: 1023px) {  .mine .two { grid-template-columns: minmax(0, 1fr); gap: 32px; }}@media (max-width: 767px) {  .mine .callouts { grid-template-columns: minmax(0, 1fr); }  .mine .dl-row { grid-template-columns: 40px minmax(0, 1fr); }  .mine .dl-row .st { grid-column: 2; }  .mine .os-tabs { display: flex; }  .mine .os-tab { flex: 1; padding: 8px; }}</style></head><body>{# d01 mark: one closed path; d02 glyph adds the two bars. #}{% 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" %}{% set reward = '{:g}'.format(consensus.current_reward_coins) %}{% include "partials/site_header.html" %}<main id="main"><div class="ds mine" id="mine-page"><!-- ================= HEAD + DOWNLOAD ================= --><header class="ds-pagehead split">  <div class="ds-wrap">    <div>      <ol class="ds-crumbs" aria-label="Breadcrumb">        <li><a href="/">MoonBite</a></li>        <li><span aria-current="page">Mine</span></li>      </ol>      <p class="ds-eyebrow">Proof of work · RandomX</p>      <h1 class="ds-title">Mine MoonBite<br><span class="g">on your own machine.</span></h1>      <p class="ds-lede">No pool. No account. No middleman. You run the node, it mines        to your wallet, and every block you find pays you, and only you.</p>      <div class="ds-actions">        <a class="ds-btn gold" href="#get" id="dl-primary"           data-linux="{{ 'yes' if downloads.get('linux') else '' }}"           data-windows="{{ 'yes' if downloads.get('windows') else '' }}">          <svg width="16" height="16" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4v12M7 11l5 5 5-5M5 20h14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>          <span id="dl-primary-text">Download the miner</span>        </a>        <a class="ds-btn" href="#setup">See the setup</a>      </div>      <p class="hint" id="os-hint" aria-live="polite">Pick your system from the list. Every build is checked the same way, <a href="#antivirus">see how to verify</a>.</p>      <ul class="ds-checks">        <li>Solo, no pool</li>        <li>Runs on a CPU</li>        <li>Wallet stays on your disk</li>      </ul>    </div>    <div class="ds-stage dl-panel" id="get" aria-labelledby="get-h">      <p class="ds-eyebrow" id="get-h">Node and miner, by system</p>      <ul class="dl-list">        <li>          <a class="dl-row" href="/download/windows" data-os-row="win">            <span class="ic" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24"><g fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="12" rx="2"/><path d="M8 20h8M12 16v4"/></g></svg></span>            <span><span class="nm">Windows</span><span class="fn">moonbite-miner-windows-x86_64.zip</span></span>            <span class="st"><span class="you">Your system</span>{% if downloads.get('windows') %}<span class="ds-tag ok">Published</span>{% else %}<span class="ds-tag">Not published yet</span>{% endif %}</span>          </a>        </li>        <li>          <a class="dl-row" href="/download/macos-arm64" data-os-row="mac">            <span class="ic" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24"><g fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="10" rx="2"/><path d="M3 19h18"/></g></svg></span>            <span><span class="nm">macOS · Apple&nbsp;Silicon</span><span class="fn">moonbite-miner-macos-arm64.tar.gz</span></span>            <span class="st"><span class="you">Your system</span>{% if downloads.get('macos-arm64') %}<span class="ds-tag ok">Published</span>{% else %}<span class="ds-tag">Not published yet</span>{% endif %}</span>          </a>        </li>        <li>          <a class="dl-row" href="/download/macos-x86_64" data-os-row="mac">            <span class="ic" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24"><g fill="none" stroke="#8A8580" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="10" rx="2"/><path d="M3 19h18"/></g></svg></span>            <span><span class="nm">macOS · Intel</span><span class="fn">moonbite-miner-macos-x86_64.tar.gz</span></span>            <span class="st"><span class="you">Your system</span>{% if downloads.get('macos-x86_64') %}<span class="ds-tag ok">Published</span>{% else %}<span class="ds-tag">Not published yet</span>{% endif %}</span>          </a>        </li>        <li>          <a class="dl-row" href="/download/linux" data-os-row="nix">            <span class="ic" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24"><g fill="none" stroke="#F5F2EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M7 9l3 3-3 3M13 15h4"/></g></svg></span>            <span><span class="nm">Linux</span><span class="fn">moonbite-miner-linux-x86_64.tar.gz</span></span>            <span class="st"><span class="you">Your system</span>{% if downloads.get('linux') %}<span class="ds-tag ok">Published</span>{% else %}<span class="ds-tag">Not published yet</span>{% endif %}</span>          </a>        </li>      </ul>      <p class="fine">A build marked <b>Not published yet</b> can be built from source at        <a href="https://moonbite.org/git/">moonbite.org/git</a>.        On a Mac, the menu &rarr; <b>About This Mac</b> tells you Apple Silicon or Intel.</p>    </div>  </div></header><!-- ================= RULES ================= --><section class="ds-rules" aria-label="Mining at a glance">  <div class="ds-wrap">    <div class="ds-rule"><div class="n">01 / Reward</div><div class="v">{{ reward }} MBITE</div><p>Per block right now, paid to whoever finds it.</p></div>    <div class="ds-rule"><div class="n">02 / Block time</div><div class="v">{{ consensus.block_time_min }} min</div><p>One block roughly every {{ consensus.block_time_min }} minutes, network-wide.</p></div>    <div class="ds-rule"><div class="n">03 / Maturity</div><div class="v">100 blocks</div><p>A block's reward becomes spendable 100 blocks after you find it.</p></div>    <div class="ds-rule"><div class="n">04 / Proof of work</div><div class="v">RandomX</div><p>A CPU algorithm. Specialised hardware has no edge.</p></div>  </div></section><!-- ================= SETUP ================= --><section class="ds-section" id="setup" aria-labelledby="setup-h">  <div class="ds-wrap">    <div class="ds-head">      <div>        <p class="ds-eyebrow">Setup</p>        <h2 class="ds-h2" id="setup-h">Three steps.<br><span class="dim">No sign-up.</span></h2>        <p class="ds-sub">One download, one command, one backup. The node does the mining.</p>      </div>      <a class="ds-textlink" href="#antivirus">How to verify the download &rarr;</a>    </div>    <ol class="ds-howto">      <li>        <div>          <h3 class="ds-h3">Get the MoonBite node for your system</h3>          <p>Download the package, unzip it, and keep the <code>mine</code> script in            the same folder as the <code>moonbited</code> binary. <a href="#get">Choose a download</a>.</p>        </div>      </li>      <li>        <div>          <h3 class="ds-h3">Start mining</h3>          <p>One command. It launches your node, connects to the network, makes a            wallet, and starts mining to your own address.</p>          <div class="os-tabs" role="group" aria-label="Operating system">            <button type="button" class="os-tab on" data-os="nix" aria-pressed="true">Linux</button>            <button type="button" class="os-tab" data-os="mac" aria-pressed="false">macOS</button>            <button type="button" class="os-tab" data-os="win" aria-pressed="false">Windows</button>          </div>          <div class="os-block on" data-os="nix">            <div class="ds-code"><div class="ds-code-bar"><span>Linux · terminal in the extracted folder</span><button type="button" class="ds-copy">Copy</button></div><pre>./mine.sh</pre></div>          </div>          <div class="os-block" data-os="mac">            <p>{% if not (downloads.get('macos-arm64') or downloads.get('macos-x86_64')) %}<b>Not published yet</b>, see the macOS rows <a href="#get">above</a>. Once              it is, macOS{% else %}macOS{% endif %} quarantines programs downloaded from the internet, so an              unsigned binary needs one extra step before <code>./mine.sh</code> will run:</p>            <div class="ds-code"><div class="ds-code-bar"><span>macOS · Terminal in the extracted folder</span><button type="button" class="ds-copy">Copy</button></div><pre>xattr -dr com.apple.quarantine moonbite-miner &amp;&amp; ./mine.sh</pre></div>            <p class="dim">That clears the quarantine              flag macOS sets on downloads and blocks with "cannot be opened because the              developer cannot be verified." Run both lines from a Terminal opened in the              extracted folder.</p>          </div>          <div class="os-block" data-os="win">            <p><b>Double-click <code>Mine-MoonBite.bat</code></b> in the folder you              extracted. A window opens and stays open while it mines. That is the whole              setup, no terminal required.</p>            <p class="dim">Prefer a terminal, or want to              pass in your own address? Open PowerShell in that folder and run:</p>            <div class="ds-code"><div class="ds-code-bar"><span>Windows · PowerShell in the extracted folder</span><button type="button" class="ds-copy">Copy</button></div><pre>powershell -ExecutionPolicy Bypass -File .\mine.ps1</pre></div>            <p class="dim">Windows blocks scripts downloaded              from the internet by default, so run it with <code>-ExecutionPolicy Bypass</code>              as shown. Plain <code>.\mine.ps1</code> is refused with "running scripts is              disabled on this system." The <code>.bat</code> above does this for you.</p>          </div>        </div>      </li>      <li>        <div>          <h3 class="ds-h3">Back up your wallet</h3>          <p>Your coins live in a wallet on your own disk. Copy the <code>wallet</code>            folder from your MoonBite data directory somewhere safe. Lose it and the            coins are gone. There is no recovery, by design.</p>          <p class="dim">A block's reward becomes spendable 100 blocks after you find            it. That is standard coinbase maturity and it protects the chain.</p>        </div>      </li>    </ol>    <div class="ds-callout warn after-howto">      <p class="label">Heads up</p>      <p>The animated miner on <a href="/start">/start</a> is a visual demo. It does        <strong>not</strong> mine real MBITE. Real mining is done by the node, with the steps above.</p>    </div>  </div></section><!-- ================= WHAT YOU ARE RUNNING ================= --><section class="ds-section alt" aria-labelledby="solo-h">  <div class="ds-wrap">    <p class="ds-eyebrow">What you are running</p>    <h2 class="ds-h2" id="solo-h">Solo, on a CPU.<br><span class="dim">Paid to you alone.</span></h2>    <div class="ds-grid c3">      <div class="ds-tile">        <svg class="art" viewBox="0 0 240 150" aria-hidden="true">          <g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">            <rect x="24" y="40" width="80" height="54" rx="6" stroke="#8A8580"/>            <path d="M48 112h32M64 94v18" stroke="#8A8580"/>            <path d="M112 67h44" stroke="#F5F2EA" stroke-dasharray="4 6"/>            <path d="M150 61l8 6-8 6" stroke="#F5F2EA"/>          </g>          <circle cx="192" cy="67" r="26" fill="#1D222C" stroke="#8A8580" stroke-width="2"/>          <g transform="translate(192 67) scale(.13)"><path fill="#F5F2EA" d="{{ MARK }}"/></g>        </svg>        <div><h3 class="ds-h3">Solo</h3><p>You mine to yourself. Nothing sits between you and your coins.</p></div>      </div>      <div class="ds-tile">        <svg class="art" viewBox="0 0 240 150" aria-hidden="true">          <g stroke="#8A8580" stroke-width="2" stroke-linecap="round">            <path d="M96 20v16M112 20v16M128 20v16M144 20v16M96 114v16M112 114v16M128 114v16M144 114v16M65 51h16M65 67h16M65 83h16M65 99h16M159 51h16M159 67h16M159 83h16M159 99h16"/>          </g>          <rect x="80" y="35" width="80" height="80" rx="10" fill="#1D222C" stroke="#8A8580" stroke-width="2"/>          <rect x="96" y="51" width="48" height="48" rx="6" fill="#0B0D12" stroke="#F5F2EA" stroke-width="2"/>          <text x="120" y="80" text-anchor="middle" fill="#F5F2EA" font-family="ui-monospace,Menlo,monospace" font-size="13">CPU</text>        </svg>        <div><h3 class="ds-h3">CPU</h3><p>RandomX favours ordinary computers, not specialised hardware.</p></div>      </div>      <div class="ds-tile">        <svg class="art" viewBox="0 0 240 150" aria-hidden="true">          <g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">            <rect x="40" y="30" width="160" height="90" rx="10" stroke="#8A8580"/>            <path d="M40 98h160" stroke="#8A8580"/>            <circle cx="182" cy="109" r="2" stroke="#8A8580"/>            <path d="M64 50h30l8 8h46v28H64z" stroke="#F5F2EA"/>          </g>          <text x="106" y="78" text-anchor="middle" fill="#F5F2EA" font-family="ui-monospace,Menlo,monospace" font-size="12">wallet/</text>        </svg>        <div><h3 class="ds-h3">Yours</h3><p>The wallet is on your disk. Back it up and no one can take it.</p></div>      </div>    </div>    <div class="callouts">      <div class="ds-callout">        <p class="label">Why one CPU thread?</p>        <p>The node mines with one thread per CPU core, so an ordinary computer is competitive. RandomX is a CPU algorithm; specialised hardware has no edge.</p>      </div>      <div class="ds-callout warn">        <p class="label">What it costs</p>        <p><strong>Mining costs electricity that may never be recovered.</strong> Each block pays {{ reward }} MBITE to whoever finds it. Solo, you are paid only for the blocks your own machine finds.</p>      </div>    </div>  </div></section><!-- ================= VERIFY ================= --><section class="ds-section" aria-labelledby="antivirus">  <div class="ds-wrap">    <p class="ds-eyebrow">Verify the download</p>    <h2 class="ds-h2" id="antivirus">Antivirus warnings<br><span class="dim">and how to verify.</span></h2>    <div class="two">      <div class="lead-copy">        <h3 class="ds-h3">A CPU miner may be flagged</h3>        <p>Antivirus software often labels any CPU miner as <code>CoinMiner</code>          or <code>PUA</code> (potentially unwanted application). That is a classification          of what miners are as a class of software, because the same kind of program is          abused on hijacked computers. It is not a finding about this file. Windows          SmartScreen may also say <b>Unknown publisher</b>, and macOS may say the developer          cannot be verified: our builds are not yet signed with a platform certificate, so          we publish three independent ways to check them instead.</p>        <p>MoonBite never bundles the miner with the wallet, and this website never          mines in your browser. <b>If you did not start the miner yourself, it is not ours.</b></p>      </div>      <ol class="ds-howto">        <li>          <div>            <h3 class="ds-h3">Match the SHA-256</h3>            <p>Every release is listed in <a href="https://moonbite.org/downloads/SHA256SUMS.txt"><code>SHA256SUMS.txt</code></a>,              published on this site next to the downloads. The hash of the file you have must              match its line. The miner also prints the hashes of <code>moonbited</code> and              <code>moonbite-cli</code> each time it starts.</p>            <div class="os-tabs" role="group" aria-label="Operating system">              <button type="button" class="os-tab on" data-os="nix" aria-pressed="true">Linux</button>              <button type="button" class="os-tab" data-os="mac" aria-pressed="false">macOS</button>              <button type="button" class="os-tab" data-os="win" aria-pressed="false">Windows</button>            </div>            <div class="os-block on" data-os="nix"><div class="ds-code"><div class="ds-code-bar"><span>Linux</span><button type="button" class="ds-copy">Copy</button></div><pre>sha256sum -c SHA256SUMS.txt --ignore-missing</pre></div></div>            <div class="os-block" data-os="mac"><div class="ds-code"><div class="ds-code-bar"><span>macOS</span><button type="button" class="ds-copy">Copy</button></div><pre>shasum -a 256 -c SHA256SUMS.txt --ignore-missing</pre></div></div>            <div class="os-block" data-os="win"><div class="ds-code"><div class="ds-code-bar"><span>Windows · PowerShell</span><button type="button" class="ds-copy">Copy</button></div><pre>Get-FileHash .\moonbite-miner-windows-x86_64.zip -Algorithm SHA256</pre></div></div>          </div>        </li>        <li>          <div>            <h3 class="ds-h3">Build it yourself if you prefer</h3>            <p>Releases are not signed yet; signing will be announced in a decision record              when it starts. Until then the published SHA-256 is the check, and anyone can              rebuild the node from the open source at              <a href="https://moonbite.org/git/moonbite-core">moonbite.org/git/moonbite-core</a>              and compare.</p>          </div>        </li>        <li>          <div>            <h3 class="ds-h3">If a check fails</h3>            <p>Do not run the file; report it at              <a href="mailto:security@moonbite.org">security@moonbite.org</a>.              Background: <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>        </li>      </ol>    </div>  </div></section><!-- ================= FAQ ================= --><section class="ds-section alt" aria-labelledby="faq-h">  <div class="ds-wrap ds-faq">    <div>      <p class="ds-eyebrow">FAQ</p>      <h2 class="ds-h2" id="faq-h">Before you<br><span class="dim">start.</span></h2>      <p class="ds-sub">More in <a class="ds-textlink" href="/learn">Learn</a> and the <a class="ds-textlink" href="/developers">developer docs</a>.</p>    </div>    <div class="ds-qa">      <details open>        <summary>Do I need a pool or an account?</summary>        <p>No. You run the node, it mines to your wallet, and every block you find pays you directly. There is no pool, no account and no middleman.</p>      </details>      <details>        <summary>What does a block pay?</summary>        <p>{{ reward }} MBITE per block right now, about one block every {{ consensus.block_time_min }} minutes across the whole network. Solo mining pays only for the blocks your own machine finds, and mining costs electricity that may never be recovered.</p>      </details>      <details>        <summary>When can I spend a block reward?</summary>        <p>100 blocks after you find it. That is standard coinbase maturity and it protects the chain.</p>      </details>      <details>        <summary>Is my Mac Apple Silicon or Intel?</summary>        <p>Open the menu &rarr; About This Mac. It tells you which one you have, and each has its own download above.</p>      </details>      <details>        <summary>Why does my antivirus flag the miner?</summary>        <p>Antivirus software often labels any CPU miner as CoinMiner or PUA. It is a classification of the kind of software, not a finding about this file. <a href="#antivirus">Check the SHA-256</a> before you run it.</p>      </details>      <details>        <summary>Does this website mine in my browser?</summary>        <p>No. This website never mines in your browser, and MoonBite never bundles the miner with the wallet. If you did not start the miner yourself, it is not ours.</p>      </details>      <details>        <summary>What if I lose the wallet folder?</summary>        <p>The coins are gone. There is no recovery, by design. Copy the <code>wallet</code> folder from your MoonBite data directory somewhere safe.</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">Mined a block?</h2>      <p class="ds-sub">Paste your address, read the balance live from the chain. No wallet to connect.</p>      <div class="ds-actions">        <a class="ds-btn" href="/balance">See what landed on your address &rarr;</a>        <a class="ds-btn" href="/explorer">Open the explorer</a>      </div>      <p class="fine">Mining costs electricity that may never be recovered.</p>    </div>  </div></section></div></main>{% include "partials/site_footer.html" %}<script nonce="{{ csp_nonce }}">(function () {  var root = document.getElementById('mine-page');  if (!root) return;  root.classList.add('js');  function pick(os) {    document.querySelectorAll('.os-tab').forEach(function (b) {      var on = b.getAttribute('data-os') === os;      b.classList.toggle('on', on);      b.setAttribute('aria-pressed', on ? 'true' : 'false');    });    document.querySelectorAll('.os-block').forEach(function (b) {      b.classList.toggle('on', b.getAttribute('data-os') === os);    });  }  document.addEventListener('click', function (e) {    var t = e.target.closest && e.target.closest('.os-tab');    if (!t) return;    pick(t.getAttribute('data-os'));  });  /* Point the one gold action at the visitor's own build. Never guesses:     phones and unknown systems keep the list; Macs go to the list because     Apple Silicon and Intel cannot be told apart reliably from the browser;     an unpublished build is never offered as a download. */  var ua = navigator.userAgent || '';  var plat = (navigator.userAgentData && navigator.userAgentData.platform) || navigator.platform || '';  var s = plat + ' ' + ua, os = null;  if (/Android|iPhone|iPad|iPod|Mobile/i.test(ua)) os = null;  else if (/Win/i.test(s)) os = 'win';  else if (/Mac/i.test(s)) os = 'mac';  else if (/Linux|X11|CrOS/i.test(s)) os = 'nix';  if (!os) return;  pick(os);  document.querySelectorAll('[data-os-row="' + os + '"]').forEach(function (r) { r.classList.add('is-you'); });  var btn = document.getElementById('dl-primary'), txt = document.getElementById('dl-primary-text'),      hint = document.getElementById('os-hint');  var names = { win: 'Windows', mac: 'macOS', nix: 'Linux' };  var keys = { win: 'windows', nix: 'linux' };  var name = names[os];  if (os === 'mac') {    txt.textContent = 'Download for macOS';    hint.innerHTML = 'Looks like a Mac. Pick Apple Silicon or Intel from the list. <a href="#antivirus">How to verify</a>.';  } else if (btn.getAttribute('data-' + keys[os])) {    btn.setAttribute('href', '/download/' + keys[os]);    txt.textContent = 'Download for ' + name;    hint.innerHTML = 'Detected ' + name + '. Not right? <a href="#get">See every system</a>. Then <a href="#antivirus">verify the download</a>.';  } else {    txt.textContent = 'Choose a download';    hint.innerHTML = 'The ' + name + ' build is not published yet. <a href="https://moonbite.org/git/">Build it from source</a> or pick another system.';  }})();</script></body></html>