Zecnero
Testnet is live · zecnero-testnet-v0.3.0

Mine the testnet.

Mine the Zecnero (ZMR) public testnet on a desktop CPU with one command, on Linux or on Windows through WSL. It downloads and checks the signed release, makes your mining key, and mines on the official pool about a minute later, with no node to sync. Prefer your own node? The same command sets up solo mining. New to this? How mining Zecnero works explains the pieces, and the downloads are listed below.

Source code and binaries. Everything you run is open source on GitLab: the node and the key tool in zecnerod, the miner in xmrig-zecnero, and the bridge for solo mining in zecnero-bridge. The signed binaries are in the downloads, and BUILD-INFO.txt names the commit each one was built from. You do not have to paste a command into a shell: download the installer and read and check it first, or skip it and run the binaries yourself with the manual setup.

This is a test network. Testnet coins have no value. You are mining to prove the consensus rules and the network hold up. To spend what you mine, use the testnet beta of the Zecnero wallet: it shields mined coins first, then sends them.

01

Mine on the pool

The easiest way to mine is the official pool, pool.zecnero.org. Its settings, and those of Rabid Pool, which Rabid Mining runs independently, are on the pools page. Your computer runs only the miner. The pool runs the node, finds blocks with everyone’s work, and pays each miner their part. There is no node to sync, so you are mining about a minute after the install.

Paste one command. On Linux, or in the Ubuntu window of WSL on Windows:

Linux or WSL (Ubuntu)
curl -fsSL https://downloads.zecnero.org/install-miner.sh | bash

On Windows, paste this into Windows PowerShell instead; it does not need to run as administrator. It sets up WSL first if you do not have it yet, and Windows and WSL below walks through that.

Windows PowerShell
irm https://downloads.zecnero.org/install.ps1 | iex

It asks you to save your mining key, then asks how you want to mine. Press Enter for 1) Pool. For the pool the installer logs in with a unified address, which the pool pays in Orchard, so it then makes a wallet for your payouts: press Enter for 1), a new wallet, choose a passphrase, and save the wallet’s 24-word seed the same way as the key. (If this computer already has a Zecnero wallet, it uses that one and asks for its passphrase.) About a minute later it shows your miner on the pool:

What you should see
Zecnero Testnet Miner (pool)
Login:    nutest1… (unified, Orchard payouts)
Pool:     connected to stratum.zecnero.org:3334 (TLS)
Miner:    running, 5.5 kH/s, 14 accepted
Balance:  0.42 ZMR pending, 6.06 ZMR paid
Page:     https://pool.zecnero.org/miner/nutest1…

Login is the unified address the pool pays: the address of the wallet the installer made. accepted counts the shares the pool took from your miner; each one earns you part of the next block the pool finds. Balance and Page come from the pool, which updates them about once a minute.

You need a 64-bit Intel or AMD processor, 8 GB of memory, and Linux or Windows 10 or 11. The full list is under What you need. Want to check the script before you run it? See Download, verify, then run.

Already have xmrig-zecnero?

If you run xmrig-zecnero yourself, point it at the pool with your testnet unified address. It needs no settings file:

Linux or WSL (Ubuntu)
xmrig-zecnero -o stratum.zecnero.org:3334 --tls -u YOUR_ADDRESS -a rx/zecnero

Replace YOUR_ADDRESS with your nutest1… unified address; it needs an Orchard receiver. The pool has refused transparent nm… logins since block 16,529, because it can only pay shielded, and it stops taking Sapling ntestsapling1… logins 160 blocks (about 3 hours 20 minutes) before the NU2 upgrade, because from NU2 nothing can pay a Sapling address. To tell your computers apart on the pool’s pages, add a worker name after a dot, such as nutest1….desktop. Port 3334 uses TLS. Port 3333 takes the same connection without it:

Linux or WSL (Ubuntu)
xmrig-zecnero -o stratum.zecnero.org:3333 -u YOUR_ADDRESS -a rx/zecnero

Use 3334 where you can. Some home routers, antivirus programs and internet providers cut plain mining traffic: the miner connects, gets a few shares accepted and then goes silent. Over TLS they can’t see that the connection is mining. The miner is in the downloads, and the pool announcement shows how to check it.

Already installed?

If you installed with the one command before, you mine solo with your own node. To move to the pool, update first, then switch. The older zecnero-miner does not know the mode command, so run both lines, in this order:

Linux or WSL (Ubuntu)
zecnero-miner update
zecnero-miner mode pool

Switching stops the node and the bridge and starts the miner on the pool. mode pool asks you to set up a unified address for the pool to pay, not your mining key’s, and offers to make a new wallet for it, as the installer does; the pool has not taken nm… logins since the testnet’s network upgrade at block 16,529. Your mining key stays, for solo mining. To go back to your own node:

Linux or WSL (Ubuntu)
zecnero-miner mode solo

What the installer did

  1. It downloaded the release and checked it. The installer fetched the newest release, zecnero-testnet-v0.3.0, checked the signature on its checksum list against the Zecnero release key built into the installer, and checked every file against that list. If anything does not match, it stops and installs nothing.
  2. It made your mining key. It showed the key once, waited for you to type SAVED, then cleared it from the screen. A copy is in ~/zecnero/MINING-KEY.txt, readable only by you. Solo mining pays the key’s address: the key is the only way to spend those coins, and nobody can reissue it.
  3. It made the wallet the pool pays. With the bundled zecnero-wallet it made a new testnet wallet, locked with the passphrase you chose, showed its unified address and its 24-word seed once, and waited for SAVED again. A copy is in ~/zecnero/POOL-WALLET-SEED.txt, readable only by you. The 24 words are the only way to spend what the pool pays you.
  4. It started the miner on the pool. The miner, xmrig-zecnero, connects to stratum.zecnero.org:3334 over TLS and logs in with that wallet’s unified address and your computer’s short name as the worker, so the pool can tell your computers apart. If TLS keeps failing on your connection, it switches to port 3333 by itself and says so in zecnero-miner status.
  5. It also installed the node and the bridge, without starting them. They are there for solo mining, so switching later needs no download.

Everything lives in ~/zecnero: the programs, their settings, the logs, your key and the wallet’s seed. The wallet file itself is in ~/.local/share/zecnero-wallet. Nothing needs a port opened on your router. On Linux it may also offer huge pages, which make mining faster and need your password, and to start mining when the computer starts; both are optional.

Check on it, stop it, update it

The installer adds a zecnero-miner command. To see how it is going:

Linux or WSL (Ubuntu)
zecnero-miner status
  • zecnero-miner pool prints the address of your page on the pool, with your hashrate, your workers, your balance and every payment.
  • zecnero-miner stop stops mining. zecnero-miner start starts it again; your key and settings are kept.
  • zecnero-miner logs miner follows the miner’s log. Press Ctrl+C to stop watching; mining carries on.
  • zecnero-miner pool-login prints the unified address the pool pays; zecnero-miner pool-login new makes a new wallet and logs in with it. zecnero-miner address prints your mining key’s address, which solo mining pays.
  • zecnero-miner mode says whether you mine on the pool or solo. zecnero-miner mode solo and zecnero-miner mode pool switch.
  • zecnero-miner update downloads the newest release, checks it the same way, and restarts mining if it was running. Your key and settings are kept.
  • zecnero-miner help lists every command.

Mining runs in the background: closing the terminal does not stop it. It stops when the computer sleeps, shuts down or restarts, and on Windows also when you run wsl --shutdown. To mine again, open Ubuntu (or a terminal on Linux) and run zecnero-miner start. Where the computer uses systemd, zecnero-miner autostart on starts mining whenever it starts.

How the pool pays

When the pool finds a block, the block’s reward, less the 3% founder stream (see Who gets paid) and the pool fee, is split among the pool’s miners by the shares they sent before it (PPLNS). The official pool’s fee is 0% on the testnet and will be 1% on Mainnet. A block’s coins can be paid once it has 100 confirmations, about two hours. The pool then pays every balance of 0.5 ZMR or more, in batches, to the address you mine with. Your page on the pool shows what is waiting to mature, what you are owed and every payment, with a link to the explorer. The pool announcement has the details.

The pool pays the wallet the installer made, not your mining key. ~/zecnero/bin/zecnero-wallet balance shows what it holds. To spend from it in the desktop wallet or on another computer, restore it in the testnet beta of the Zecnero wallet from the 24 words in ~/zecnero/POOL-WALLET-SEED.txt.

Want coins before your first payment, to try the wallet? Get a few from the faucet. If you have mined more than you need, send some back to the faucet so others can test too.

02

Solo mining with your own node

Solo mining runs your own Zecnero node, the bridge and the miner. A block your computer finds pays you its whole reward, less the 3% founder stream, and nothing arrives until it finds one, which is chance. The node syncs with the network first, which takes a few minutes. Solo miners also keep the network spread out. The pool page shows the official pool’s share of the network at all times.

Run the same installer and answer 2) Solo with your own node when it asks how you want to mine. To choose it without the question:

Linux or WSL (Ubuntu)
curl -fsSL https://downloads.zecnero.org/install-miner.sh | ZECNERO_MODE=solo bash

Already mining on the pool? Run zecnero-miner mode solo. In solo mode the installer and zecnero-miner start do this:

  1. Start a Zecnero node. The node, zecnerod, connects to the testnet on TCP port 18733 and catches up with the chain. Its control port, RPC, stays on 127.0.0.1:18732, reachable only from your computer.
  2. Once the node has caught up, start the bridge and the miner. The bridge turns the node’s block templates into jobs on 127.0.0.1:3333, and the miner, xmrig-zecnero, hashes them with RandomX (rx/zecnero, and rx/zecnero2 from the NU2 upgrade, which the bridge names in each job).

How mining Zecnero works explains the three programs in more detail. In solo mode, zecnero-miner status shows all three:

What you should see
Zecnero Testnet Miner (solo)
Wallet:   nmBcbVpCWS6akYGac7cmLJh95ASG3vMcqeu (transparent mining key, solo)
Node:     synced (height 1244 / 1244)
Bridge:   connected
Miner:    running, 1.2 kH/s, 3 accepted

The node is ready at synced; until then it shows how far it has got. accepted counts practice results the bridge asks the miner for, so you can see it works; coins come only when a result is good enough for a whole block. zecnero-miner stop stops the miner, the bridge and the node, and zecnero-miner logs follows all three logs (or logs node, logs bridge, logs miner).

Where solo coins go

A block you find pays the address in ~/zecnero/MINING-KEY.txt. It shows up on the explorer with your address as the miner. To spend it, import the private key into the Zecnero wallet as above, wait until the coins are 100 blocks old, then shield them, which moves them to your shielded address, before you send them anywhere; the wallet applies the Mainnet rule that mined coins must be shielded first.

The wallet works through the public node by default. To use your own node instead, choose your own node: http://127.0.0.1:18732, with the cookie file ~/zecnero/data/node/.cookie.

03

Windows and WSL

The miner, the node and the bridge are Linux programs. Windows runs them inside WSL (Windows Subsystem for Linux), which comes with Windows 10 and 11 and gives you an Ubuntu terminal. Microsoft’s own guide is Install WSL.

WSL is the default way to mine on Windows, for the pool and for solo mining. On the pool it is quick: no node has to sync, so mining starts about a minute after the installer runs in Ubuntu. For pool mining only, a native Windows miner is also available as an opt-in beta, with no WSL: see Native Windows (beta).

What the PowerShell command does

  1. Click Start, type PowerShell and open Windows PowerShell. Paste the command from step 01 by right-clicking in the window, then press Enter.
  2. It checks that Windows is 64-bit and new enough, then looks for WSL and Ubuntu. If they are missing, it explains what comes next and asks Install WSL and Ubuntu now?; press Enter for yes. Windows asks for administrator permission: click Yes. The download is about 500 MB and installs Ubuntu 24.04.
  3. It asks Restart the computer now? Save your work, then type y and press Enter.
  4. After the restart an Ubuntu window opens and asks you to create a user: type a short name in lower case, such as miner, and press Enter. It has nothing to do with your Windows account. It then asks for a password, twice. Nothing appears on screen while you type it, not even dots. That is normal: type it and press Enter. You need it whenever a command starts with sudo.
  5. A PowerShell window opens again by itself and says Welcome back. Once the Ubuntu user is made, press Enter there. It then runs the Linux installer inside Ubuntu: the download, the checks, your key and the SAVED step, the wallet for pool payouts and its own SAVED step, and the start. If the window does not open, paste the same PowerShell command again.

If Ubuntu is already installed, the command skips straight to the Linux installer. If it runs on WSL 1, the command offers to convert it to WSL 2 first; press Enter for yes. To open Ubuntu later, click Start and type Ubuntu. To paste into it, right-click or press Ctrl+Shift+V.

What you will see, step by step

This is the default way to mine on Windows. It takes about 15 minutes the first time, most of it the Ubuntu download and the restart, and it touches nothing outside WSL.

  1. Run the command. Open Windows PowerShell as a normal user and paste:
    Windows PowerShell
    irm https://downloads.zecnero.org/install.ps1 | iex
    You see your Windows build, then a box explaining that WSL and Ubuntu are needed, that Windows will ask for permission, that the PC restarts, and that the Ubuntu password does not show while typing. Answer y, click Yes on the Windows permission prompt, and answer y to restart. If Ubuntu is already installed, none of that appears and it goes straight to step 3.
  2. After the restart. Ubuntu opens and asks for a username and a password. Choose a short lower-case name; the password shows nothing while you type it, not even dots. A PowerShell window opens by itself saying Welcome back: press Enter there once Ubuntu is set up. If no window opens, paste the step 1 command again.
  3. The installer runs inside that window. It shows the checks, the download, then Signature OK: signed by the Zecnero release key FFFC8AC02BF7B4B450B43B1F653209A344E75767. Next comes the box SAVE THIS. IT IS THE ONLY COPY. with your nm… address and your private key. Copy both somewhere safe (a password manager is best), then type saved and press Enter. Anything else makes it ask again. The screen clears and it asks How do you want to mine? Press Enter for the pool. The pool login is a unified address, so it then makes a wallet for your payouts: press Enter for 1), a new wallet, and type a passphrase for it twice (nothing shows while you type). A second SAVE THIS. IT IS THE ONLY COPY. box shows the wallet’s unified address, your pool login, and its 24-word seed, the only way to spend what the pool pays you. Save them too, then type saved. About a minute later it ends with the status screen and Zecnero is mining on the pool in the background.
  4. Check it. In the same window:
    Ubuntu
    zecnero-miner status
    You want Pool: connected and Miner: running, … H/s, N accepted, with N above 0 within a few minutes. (Solo shows Node: synced and Bridge: connected instead of the pool.) Your key is also in the file ~/zecnero/MINING-KEY.txt, and the pool wallet’s seed in ~/zecnero/POOL-WALLET-SEED.txt:
    Ubuntu
    cat ~/zecnero/MINING-KEY.txt ~/zecnero/POOL-WALLET-SEED.txt
    If it says zecnero-miner: command not found, run source ~/.bashrc once, or open a new Ubuntu window.
  5. Closing the window does not stop mining. Close it with the X, open Ubuntu from the Start menu later, and zecnero-miner status shows the accepted count still growing. What does stop it: shutting down or restarting Windows, sleep, or running wsl --shutdown. To mine again, open Ubuntu and run:
    Ubuntu
    zecnero-miner start
  6. Running the installer again is safe. Paste the step 1 command again any time, for example after an update. It finds Ubuntu, checks the programs, and asks You already have a mining key. Make a new one instead? [y/N] and Your settings files already exist. Replace them with fresh ones? [y/N]. Press Enter for both to keep everything; your key file is not touched, and you keep mining the way you chose.

If WSL will not install or start

The command stops with a message that says what to do. The ones you are most likely to see:

  • Error 0x80370102 (“The virtual machine could not be started because a required feature is not installed”): virtualization is switched off. Restart into the BIOS or UEFI setup (usually F2, F10, Del or Esc right after switching on), set Intel Virtualization Technology (VT-x) or SVM Mode (AMD) to Enabled, save and restart, then run the same command again.
  • Windows did not give permission to install WSL (0x80070005): right-click the Start button, choose Terminal (Admin) or Windows PowerShell (Admin), and run the same command there.
  • The WSL part of Windows is not fully installed yet: restart the computer and run the same command again.
  • Ubuntu is installed but not set up yet: open Ubuntu from the Start menu, create the user and password, close it, and run the same command again.
  • This Windows is too old: WSL 2 needs Windows 10 version 2004 (build 19041) or Windows 11. Install the latest updates, restart, and run the same command again. Win+R then winver shows your version.
  • A work or school computer often blocks WSL and miners by policy. Ask whoever manages it, or use your own.
  • Anything else: Microsoft’s WSL troubleshooting page lists the other error codes.
03b

Native Windows (beta)

Beta, opt-in. It needs an update at the next network upgrade. The way above, through WSL, stays the default and the one we test most. The native miner is for people who would rather not install WSL and who mine on the pool.

From testnet-v0.2.0 there is a second way to mine on the pool from Windows: with Windows programs, without WSL, Ubuntu or a restart. xmrig-zecnero.exe mines, and zecnero-wallet.exe makes the unified address the pool pays. It is pool mining only: solo mining needs the node and the bridge, which run in WSL.

The beta miner mines the current algorithm only. At the next network upgrade it needs an update: run zecnero-miner update when that release is out. A beta miner that has not been updated stops with a message that says so, rather than mine work the pool cannot use.

Install it

  1. Click Start, type PowerShell and open Windows PowerShell. It does not need to run as administrator. Paste this and press Enter:
    Windows PowerShell, native beta
    irm https://downloads.zecnero.org/install-native.ps1 | iex
  2. It downloads the release and checks its signature with the Zecnero release key it carries (fingerprint FFFC 8AC0 2BF7 B4B4 50B4 3B1F 6532 09A3 44E7 5767) before it installs anything. Windows has no gpg, so the script checks the signature itself, in PowerShell. A missing or wrong signature, or a file that does not match the signed checksums, stops the install.
  3. It asks where the pool should pay you. Press Enter to make a new wallet: choose a passphrase (it does not show while you type), and a box shows the wallet’s 24-word seed once. Write it down or put it in a password manager, then type SAVED. Or choose 2 and paste a unified address you already have (nutest1…).
  4. It says whether your account can use huge pages, asks about Start menu shortcuts and whether to start mining when you sign in to Windows (off unless you say yes), then starts mining in its own window. Closing that window stops mining.

Everything goes into %LOCALAPPDATA%\Zecnero\miner, for your account only. The Start menu gets Zecnero miner, Zecnero miner status, Stop Zecnero miner and Update Zecnero miner. From PowerShell, in that folder:

Windows PowerShell, in %LOCALAPPDATA%\Zecnero\miner
.\zecnero-miner status
.\zecnero-miner update
.\zecnero-miner huge-pages
.\zecnero-miner uninstall

uninstall removes the programs and keeps your seed file and wallet. To read the script before you run it, check install-native.ps1 against the signed INSTALLERS.SHA256SUMS as for install.ps1 under Download, verify, then run, then run the saved copy with powershell -ExecutionPolicy Bypass -File .\install-native.ps1 install.

Microsoft Defender and the native miner

Defender may flag xmrig-zecnero.exe and block it, as it does most XMRig builds (see Antivirus). The installer never changes Defender’s settings: when Defender blocks the miner, it says so and stops. Check the download yourself first: compare Get-FileHash .\xmrig-zecnero-windows-x86_64.zip -Algorithm SHA256 with that file’s line in the signed SHA256SUMS. If it matches and you choose to mine, allow that one file in Protection history, or add an exclusion for the folder %LOCALAPPDATA%\Zecnero\miner only, then run the install command again. Do not turn Defender off. Rather not do either? Mine through WSL instead: same pool, same payouts.

Huge pages on Windows

RandomX mines faster with large memory pages, often by 20 to 30%. Windows gives them only to an account with the Lock pages in memory right, which no account has by default. Giving it takes an administrator, once, and a sign-out. The installer and zecnero-miner never do this for you and never ask for administrator rights: zecnero-miner huge-pages only says whether your account has the right, and zecnero-miner huge-pages on prints these steps with your account name filled in. Mining works without huge pages, only slower.

Windows 10 or 11 Pro, Enterprise or Education:

  1. Press Win+R, type secpol.msc and press Enter. Allow the administrator prompt.
  2. Open Local Policies → User Rights Assignment and double-click Lock pages in memory.
  3. Click Add User or Group…, type the account that mines, click Check Names, then OK and OK.

Windows 10 or 11 Home has no secpol.msc. There the miner gives the right to the account that runs it when it runs once as administrator:

  1. From the account that mines, click Start, type PowerShell, right-click Windows PowerShell, choose Run as administrator and allow the prompt. If Windows asks for another account’s password, that account would get the right, not yours: stop here and mine without huge pages.
  2. Run the installed miner once:
    Windows PowerShell (administrator, once)
    & "$env:LOCALAPPDATA\Zecnero\miner\bin\xmrig-zecnero.exe" --bench=1M -a rx/zecnero --no-color
    Near the top it prints Huge pages support was successfully enabled, but reboot required to use it. Press Ctrl+C and close the window.

Then, either way: sign out of Windows and back in, or restart, because Windows applies the right only from the next sign-in. zecnero-miner huge-pages then says the account has the right, and after zecnero-miner start, zecnero-miner status shows Huge pages: in use.

To undo it: on Pro, open the same Lock pages in memory setting, select your account, click Remove, and sign out and back in. On Home, zecnero-miner huge-pages off prints the secedit steps for an administrator PowerShell. On a computer an organisation manages, its policy may set this right and override either.

04

What you need

CPUx86-64 (Intel or AMD)
Memory8 GB in the computer; the miner uses about 2.3 GB in fast mode, and in solo mode the node about 1 GB more. With less, the miner runs in a slower light mode until the NU2 upgrade; from NU2 it mines only in fast mode
Disk1 GB free; the programs take about 100 MB and the chain is still small
SystemWindows 10 (version 2004 or later) or 11 with WSL 2, or 64-bit Linux with glibc 2.34 or later, such as Ubuntu 22.04 or Debian 12

No GPU. RandomX is built so an ordinary processor is the efficient hardware for it. On the pool, your internet connection must reach stratum.zecnero.org on TCP port 3334 (or 3333); solo, it must reach other nodes on TCP port 18733. You do not need to open or forward any port on your router.

Solo: one node per internet connection. The testnet seeds accept one new connection from the same internet address every two minutes, so a second computer at home, or a restart within two minutes, can be turned away. Wait three minutes and start again.

Downloads

Release zecnero-testnet-v0.3.0, from https://downloads.zecnero.org/testnet-v0.3.0/. The installer downloads these for you, so you only need the buttons for the manual setup, or the miner alone for the pool. However you download them, check them before you run anything.

Downloadzecnerod-linux-x86_64.tar.xzThe node. Follows the chain and builds the blocks you mine.61 MB · Linux x86-64, and Windows through WSL
Downloadzecnero-bridge-linux-x86_64.tar.xzThe bridge. Turns the node’s block templates into jobs for the miner.1.3 MB · Linux x86-64, and Windows through WSL
Downloadxmrig-zecnero-linux-x86_64.tar.xzThe miner. XMRig with the rx/zecnero algorithm, built with no libraries to install.2.6 MB · Linux x86-64, and Windows through WSL
Downloadzecnero-keygen-linux-x86_64.tar.xzMakes the address you mine to, and its private key.0.5 MB · Linux x86-64, and Windows through WSL
Downloadzecnero-minerThe zecnero-miner command the installer sets up: starts, stops, watches and updates the miner, on the pool or with your own node. A bash script.128 KB · Linux x86-64, and Windows through WSL
Downloadzecnero-wallet-linux-x86_64.tar.xzThe command-line wallet. zecnero-miner uses it for your pool login and to register your payout address. For the desktop wallet, see Wallets.2.9 MB · Linux x86-64, and Windows through WSL
Downloadzecnero-keygen-windows-x86_64.zipThe same key tool as a Windows program. Optional.1.6 MB · Windows x86-64
Downloadxmrig-zecnero-windows-x86_64.zipThe miner as a Windows program, for the native Windows beta (pool mining only). install-native.ps1 installs it; it needs an update at the next network upgrade.3.3 MB · Windows x86-64, beta
Downloadzecnero-miner.ps1The zecnero-miner command of the native Windows beta: starts, stops, watches and updates the Windows miner. A PowerShell script, the same file as install-native.ps1.113 KB · Windows, beta
DownloadSHA256SUMSThe checksum of every file in the release.1 KB · Any
DownloadSHA256SUMS.ascThe release key’s signature over SHA256SUMS.1 KB · Any
DownloadBUILD-INFO.txtThe commit of each program the release was built from, and the hash of every program.3 KB · Any
Downloadzecnero.ascThe Zecnero release key, to check the signature with.1 KB · Any · served from zecnero.org

downloads.zecnero.org is a file host. It has no page of its own, so typing it into a browser shows an error. Use the links above. The installers, install-miner.sh and install.ps1, sit at the top of the file host with their signed checksums, INSTALLERS.SHA256SUMS and INSTALLERS.SHA256SUMS.asc; earlier releases stay there too. The source code is on GitLab. A Zecnero download from anywhere other than downloads.zecnero.org is not ours.

Download, verify, then run

Piping a script from the internet into a shell runs it without showing it to you, and without checking it: the installer checks everything it downloads, but nothing checks the installer itself. To check it first, download it with its signed checksums and the release key, verify them, read it, then run it:

Linux or WSL (Ubuntu)
curl -fsSLO https://downloads.zecnero.org/install-miner.sh
curl -fsSLO https://downloads.zecnero.org/INSTALLERS.SHA256SUMS
curl -fsSLO https://downloads.zecnero.org/INSTALLERS.SHA256SUMS.asc
curl -fsSLO https://zecnero.org/zecnero.asc
gpg --import zecnero.asc
gpg --fingerprint FFFC8AC02BF7B4B450B43B1F653209A344E75767
gpg --verify INSTALLERS.SHA256SUMS.asc INSTALLERS.SHA256SUMS
sha256sum -c --ignore-missing INSTALLERS.SHA256SUMS

Go on only if gpg --verify says Good signature with the primary key fingerprint FFFC 8AC0 2BF7 B4B4 50B4 3B1F 6532 09A3 44E7 5767 (the “not certified” warning is normal, as in step 3 of the manual setup) and sha256sum prints install-miner.sh: OK. Anything else, stop and tell us on Discord. Then read it (q closes it) and run it:

Linux or WSL (Ubuntu)
less install-miner.sh
bash install-miner.sh

On Windows, the PowerShell command does this check for you inside Ubuntu: it runs install-miner.sh only after checking it against the signed INSTALLERS.SHA256SUMS with the release key it carries, and stops otherwise. What it cannot check is itself, install.ps1, which comes over HTTPS. If Ubuntu is already set up, you can skip PowerShell and run the Linux steps above in Ubuntu. To check install.ps1 in PowerShell you need gpg for Windows (Gpg4win); Get-FileHash on its own only compares the file with a checksum list from the same server, which proves nothing. With Gpg4win:

Windows PowerShell
curl.exe -fsSLO https://downloads.zecnero.org/install.ps1
curl.exe -fsSLO https://downloads.zecnero.org/INSTALLERS.SHA256SUMS
curl.exe -fsSLO https://downloads.zecnero.org/INSTALLERS.SHA256SUMS.asc
curl.exe -fsSLO https://zecnero.org/zecnero.asc
gpg --import zecnero.asc
gpg --fingerprint FFFC8AC02BF7B4B450B43B1F653209A344E75767
gpg --verify INSTALLERS.SHA256SUMS.asc INSTALLERS.SHA256SUMS
(Get-FileHash install.ps1 -Algorithm SHA256).Hash.ToLower()
Select-String install.ps1 INSTALLERS.SHA256SUMS

The hash Get-FileHash prints must match the one on the install.ps1 line of INSTALLERS.SHA256SUMS, after a Good signature as above. Open it in Notepad to read it, then run it from the same folder:

Windows PowerShell
powershell -ExecutionPolicy Bypass -File .\install.ps1
05

Advanced: manual setup

Show the manual steps

The solo setup, by hand, one terminal window per program. Use it if you would rather see each piece, or if the installer does not work for you. For the pool by hand you need only the miner: see Already have xmrig-zecnero? Commands go into the Ubuntu or Linux terminal, one box at a time.

1. Install the tools

The download, checking and unpacking tools. The programs themselves need nothing installed: the miner is built with its libraries inside, and the node uses only what every Linux has. Paste this line on its own: it asks for your Ubuntu password first (nothing shows while you type it), and anything pasted after it would be taken as the password.

Ubuntu, window 1
sudo apt update && sudo apt install -y curl ca-certificates xz-utils gnupg

On Fedora the packages are curl xz gnupg2.

2. Download

This makes a folder called zecnero in your home folder and downloads the four programs, the checksums, their signature and the release key into it. Keep it in your Linux home folder: unpacking under /mnt/c fails with Cannot utime: Operation not permitted.

Ubuntu, window 1
mkdir -p ~/zecnero && cd ~/zecnero
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/zecnerod-linux-x86_64.tar.xz
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/zecnero-bridge-linux-x86_64.tar.xz
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/xmrig-zecnero-linux-x86_64.tar.xz
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/zecnero-keygen-linux-x86_64.tar.xz
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/SHA256SUMS
curl -fLO https://downloads.zecnero.org/testnet-v0.3.0/SHA256SUMS.asc
curl -fLO https://zecnero.org/zecnero.asc
ls -l

3. Check the signature and the checksums

The signature check proves SHA256SUMS was signed by the Zecnero release key. Only then does the checksum check mean anything, because anyone who could replace a download could replace an unsigned list of checksums too.

Ubuntu, window 1
cd ~/zecnero
gpg --import zecnero.asc
gpg --fingerprint FFFC8AC02BF7B4B450B43B1F653209A344E75767
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
What you should see
gpg: Good signature from "zecnero <zecnero@proton.me>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: FFFC 8AC0 2BF7 B4B4 50B4  3B1F 6532 09A3 44E7 5767
xmrig-zecnero-linux-x86_64.tar.xz: OK
zecnero-bridge-linux-x86_64.tar.xz: OK
zecnero-keygen-linux-x86_64.tar.xz: OK
zecnerod-linux-x86_64.tar.xz: OK

You need Good signature, the fingerprint below, and OK on all four archives. The WARNING: This key is not certified lines are normal: comparing the fingerprint by eye is the check.

Zecnero release key fingerprintFFFC 8AC0 2BF7 B4B4 50B4 3B1F 6532 09A3 44E7 5767Also published on the GitLab project and in the launch announcement. Check it in one of those places too: a fingerprint that only appears on this site proves nothing if this site is what was tampered with.

If any check fails, stop. BAD signature, a different fingerprint, a line ending in FAILED, or no file was verified all mean the files are not the ones we signed. Delete them, download again, and if it still fails, ask on Discord before running anything.

4. Unpack and make your key

This unpacks the four programs and saves a new mining key in ~/zecnero/MINING-KEY.txt, readable only by you. If that file already exists, from the installer or an earlier run, the command refuses to overwrite it, so it cannot lose a key.

Ubuntu, window 1
cd ~/zecnero
for f in zecnerod zecnero-bridge xmrig-zecnero zecnero-keygen; do tar -xf "$f-linux-x86_64.tar.xz"; done
(set -C; umask 077; ./zecnero-keygen --network testnet > MINING-KEY.txt)
cat MINING-KEY.txt
What you should see
Keep the private key. It is the only way to spend what is paid to the address, and nothing else in Zecnero holds a copy.
network:      Testnet
address:      nmBcbVpCWS6akYGac7cmLJh95ASG3vMcqeu
private key:  cT...
secret (hex): ...

A testnet address starts with nm. Copy the private key somewhere safe as well, such as a password manager or paper.

5. Configure and start the node

zecnerod generate --network testnet writes a testnet configuration with the seeds and RPC on 127.0.0.1:18732. The next two lines fill your address into the miner_address line of its [mining] section, and check-config reads the file back the way start would.

Ubuntu, window 1
mkdir -p ~/.config/zecnero && cd ~/zecnero
./zecnerod generate --network testnet -o ~/.config/zecnero/zecnerod.toml
ADDR=$(awk 'tolower($1) == "address:" {print $2; exit}' ~/zecnero/MINING-KEY.txt)
sed -i "s|^# miner_address = .*|miner_address = \"$ADDR\"|" ~/.config/zecnero/zecnerod.toml
./zecnerod -c ~/.config/zecnero/zecnerod.toml check-config
What you should see
Config OK: Testnet, RPC 127.0.0.1:18732, miner address set

Anything else is one line saying what to fix. When it says Config OK, start the node. It keeps running in this window; leave it open.

Ubuntu, window 1
cd ~/zecnero
./zecnerod --config ~/.config/zecnero/zecnerod.toml start

It is ready when the log says finished initial sync to chain tip. handshake_success_total=2 means it reached both seeds; 0 means they turned it away, see Problems. To check it from a second Ubuntu window, ask it for the testnet’s first block:

Ubuntu, window 2
curl -s -u "$(cat ~/.cache/zebra/.cookie)" -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"getblockhash","params":[0]}' http://127.0.0.1:18732; echo
What you should see
{"jsonrpc":"2.0","id":1,"result":"004aa9ae10c69d42dfba2ecd1485aab0881109c73d49796336a5c976461df0a8"}

6. Configure and start the bridge

Now go to window 2. zecnero-bridge generate writes the bridge’s configuration with every setting explained. Its defaults already fit: the node’s RPC on 127.0.0.1:18732, the node’s cookie file, and the miner on 127.0.0.1:3333. The bridge learns the network from the node. --check-template then asks the node for one block template and checks it. Run it once the node log says finished initial sync to chain tip.

Ubuntu, window 2
cd ~/zecnero
./zecnero-bridge generate -o ~/.config/zecnero/zecnero-bridge.toml
./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml --check-template
What you should see
Node OK, template OK, ready to mine

Node is still syncing or Node synced, waiting for the mempool to start means the node is not quite ready: the second one lasts about two minutes after the sync. Wait, and run the last line again. Anything else is one line saying what to fix. When it says ready to mine, start the bridge. It keeps running in window 2; if the node falls behind, it prints Waiting for node to sync and carries on by itself.

Ubuntu, window 2
cd ~/zecnero
./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml
What you should see (lines shortened)
INFO zecnero_bridge: Using the node's RPC cookie at /home/miner/.cache/zebra/.cookie
INFO zecnero_bridge: Connected to zecnerod at http://127.0.0.1:18732: Testnet, height 1244
INFO zecnero_bridge: new work height=1245 transactions=0 tip_changed=false

7. Configure and start the miner

Open a third Ubuntu window. This writes the miner’s configuration, the same settings the installer uses, and starts it. max-threads-hint is the share of your CPU threads it may use, in percent; lower it to keep some for yourself. The user is a label the bridge ignores.

Ubuntu, window 3
cat > ~/.config/zecnero/xmrig.json <<'EOF'
{
    "autosave": false,
    "background": false,
    "colors": false,
    "donate-level": 0,
    "donate-over-proxy": 0,
    "print-time": 60,
    "health-print-time": 0,
    "retries": 5,
    "retry-pause": 5,
    "randomx": {
        "init": -1,
        "mode": "auto",
        "1gb-pages": false,
        "numa": true
    },
    "cpu": {
        "enabled": true,
        "huge-pages": true,
        "hw-aes": null,
        "priority": null,
        "max-threads-hint": 100,
        "yield": true
    },
    "opencl": false,
    "cuda": false,
    "pools": [
        {
            "url": "127.0.0.1:3333",
            "algo": "rx/zecnero",
            "user": "zecnero-miner",
            "pass": "x",
            "keepalive": true,
            "tls": false
        }
    ]
}
EOF
cd ~/zecnero
./xmrig-zecnero --config ~/.config/zecnero/xmrig.json
What you should see
[2026-09-25 23:47:25.533]  net      new job from 127.0.0.1:3333 diff 842356 algo rx/zecnero height 1246
[2026-09-25 23:47:25.534]  msr      FAILED TO APPLY MSR MOD, HASHRATE WILL BE LOW
[2026-09-25 23:47:46.163]  randomx  dataset ready (20730 ms)
[2026-09-25 23:47:46.164]  cpu      READY threads 20/20 (20) huge pages 0% 0/20 memory 40960 KB (0 ms)
[2026-09-25 23:48:46.079]  miner    speed 10s/60s/15m 1227.8 n/a n/a H/s max 1227.8 H/s

You are mining when you see new job, READY and a speed line every minute. The MSR and huge pages messages are expected inside WSL and without root; they cost some speed and nothing else. Solo mining prints no “accepted” lines until the miner finds a whole block; the installer’s bridge asks for easier practice results so that its status can show some, this manual setup does not.

8. Stop and start again

Press Ctrl+C in each window: the miner first, then the bridge, then the node. Wait two minutes before you start the node again (the seeds’ limit). To start again, open three Ubuntu windows and run one of these in each, in this order, letting the node catch up before the others. Your key, settings and chain are kept.

Ubuntu, window 1: the node
cd ~/zecnero
./zecnerod --config ~/.config/zecnero/zecnerod.toml start
Ubuntu, window 2: the bridge
cd ~/zecnero
./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml
Ubuntu, window 3: the miner
cd ~/zecnero
./xmrig-zecnero --config ~/.config/zecnero/xmrig.json

Keep the bridge and RPC on 127.0.0.1. The bridge trusts the miner’s results without checking them, and RPC controls the node, so neither must be reachable from a network.

06

Antivirus and Windows Defender

Antivirus programs, Windows Defender included, flag every build of XMRig as a potentially unwanted application, ours included. Mining software is what gets planted on computers whose owners did not ask for it, so scanners flag the whole category. They cannot tell our miner from a hostile one; the signed checksums can, which is why the installer checks them.

Through WSL the miner runs inside Ubuntu, and Defender on a home PC usually does not see it. The native Windows beta runs xmrig-zecnero.exe in Windows itself, where Defender may block it: see Microsoft Defender and the native miner. You may see a warning if you download the archive into Windows with a browser, open the WSL folder in File Explorer, or use security software that watches WSL.

If Defender flags it

Check the file first: step 3 of the manual setup, or on Windows compare Get-FileHash .\xmrig-zecnero-linux-x86_64.tar.xz -Algorithm SHA256 in PowerShell with that file’s line in the signed SHA256SUMS. Then open Windows Security → Virus & threat protection → Protection history, open the entry, and choose Actions → Allow on device.

Allow the one file or folder and nothing wider. Do not turn Defender off. Anyone who tells you to switch off your antivirus to run their software is telling you something about their software. On a work computer, ask whoever manages it.

07

Who gets paid

On the pool: your login

The pool pays the address you log in with, the part before the dot; the installer logs in with the unified address of the wallet it made, which zecnero-miner pool-login prints. The block reward goes to the pool, which keeps its pool fee (0% on the testnet, 1% on Mainnet), splits the rest among its miners by their shares and pays balances of 0.5 ZMR or more once the block has 100 confirmations.

Solo: the node’s address

A block you find pays the miner_address in the node’s settings, which the installer sets to the address in ~/zecnero/MINING-KEY.txt. The miner’s login name is ignored; putting an address there changes nothing.

The founder stream: 3%. Every block below FSEnd pays 3% of the block subsidy to the founder address, on the pool and solo alike. It is disclosed, enforced by consensus, and a block that leaves it out is rejected by every node. The stream goes back into development and infrastructure. It is paid to a public 2-of-3 multisig (P2SH) address. Kaito holds all three keys, and any spending is posted publicly. The other 97% and all the fees go to the miner, or on the pool to its miners, less the pool fee. There is no premine, no founder-only mining period and no dev fund. See the FAQ.

Blocks arrive every 75 seconds on average, and which miner finds each one is chance. A mined coin can be spent 100 blocks after the block that created it, and, under the Mainnet rule the wallet follows, only once it has been shielded.

Reward calculator

Estimate how much ZMR a hashrate earns at the current difficulty. The network hashrate and the block height are read from the explorer when the page loads; if it does not answer, type them in. These are estimates at the current difficulty, not a promise. Testnet coins have no value.

The estimate is the same whichever algorithm the chain is on, since it works from your share of the network hashrate. The next network upgrade moves mining from rx/zecnero to rx/zecnero2. A CPU runs rx/zecnero2 at a different hashrate from rx/zecnero, so after the upgrade measure your rate again and enter the new figure rather than reusing an older one.

Reading the current network hashrate and height from the explorer…

ZMR per day‐
ZMR per week‐
ZMR per month‐
Time to a block solo‐

Enter your hashrate to see an estimate. A block pays the miner the subsidy less the 3% founder stream; blocks arrive every 75 seconds on average.

08

Questions and problems

Unknown command: modeYour zecnero-miner is from before pool mode. Run zecnero-miner update first, then zecnero-miner mode pool.
The miner connects, gets a few shares accepted, then goes silentSomething between you and the pool cuts plain mining traffic: a home router, an antivirus program or your internet provider. Use port 3334 with TLS, which the installer does. If you run xmrig-zecnero yourself, use -o stratum.zecnero.org:3334 --tls.
zecnero-miner status says pool page unavailableThe pool’s website did not answer, so the balance could not be read. Mining is not affected: the Pool and Miner lines show the connection itself. Try pool.zecnero.org again later.
zecnero-miner: command not foundOpen a new terminal, or run source ~/.bashrc, so the shell finds the command. If it still says so, run the installer again; it keeps your key and settings.
The installer says please run the installer without sudoRun it as your normal user. It installs into your home folder and asks for your password only when it needs it.
WARNING: THE SIGNATURE WAS NOT CHECKEDgpg is not installed, so the installer could only check the checksums. Install it with sudo apt update && sudo apt install -y gnupg and run the installer again.
Solo: the node stays at height 0, or keeps saying it is not syncedThe seeds turned it away, usually because a node on the same internet connection connected in the last two minutes: a restart that came too soon, or another computer at home already running a node. The node log (zecnero-miner logs node) shows handshake_success_total=0. Run zecnero-miner stop, make sure no other node runs on your network, wait three minutes, then zecnero-miner start.
Solo: the bridge says Waiting for node to sync or waiting for the mempool to startThe node is not ready yet. The first is normal for the first minutes and shows how far it is; the second lasts about two minutes after the sync. The bridge carries on by itself.
Mining runs, but no coins arriveOn the pool, your part of each block first waits 100 confirmations, about two hours, then counts toward your balance, and the pool pays once it reaches 0.5 ZMR. zecnero-miner pool prints your page on the pool, which shows what is maturing, what you are owed and every payment. Solo mining pays only when your computer finds a whole block, and which miner finds each block is chance. There, a hashrate and a growing accepted count in zecnero-miner status mean it all works, and blocks you found show up on the explorer with your address as the miner.
GLIBC_2.34 not foundYour Linux is too old for these programs. Use Ubuntu 22.04 or later, or Debian 12 or later.
curl: (6) Could not resolve host in WSLUbuntu has no working internet connection. A VPN is the usual cause. Try without it, or run wsl --shutdown in PowerShell and open Ubuntu again.
Port 18733 or Port 18732 is already in use, or Address already in useSomething already runs on that port, usually a second copy of the node, the bridge or the miner. Do not run the manual setup and the installer at the same time.
The installer says some basic tools are missingRun the one line it shows, which installs them, then run the installer again.
Manual setup: Zecnero mainnet hasn't launched yetThe node was started without the testnet settings. Start it with the configuration from step 5, or add --network testnet.
Manual setup: the bridge says Waiting for zecnerod or Can't reach zecnerodThe node is not running, or has not opened RPC yet. Check window 1 for Opened RPC endpoint at 127.0.0.1:18732, and check that listen_addr = "127.0.0.1:18732" is under [rpc] in its configuration.
I lost my mining keyIf ~/zecnero/MINING-KEY.txt is gone and you did not save a copy, the coins paid to that address cannot be spent, and nobody can recover them. zecnero-miner setup makes a new key for future blocks.
Is there a pool?Yes: the official testnet pool, pool.zecnero.org, and the installer mines on it by default. See Mine on the pool and the pool announcement. The pools page lists its settings and any other pool that supports ZMR.
Is there a Windows build of the node or the miner?The miner, as an opt-in beta for pool mining: Native Windows (beta). It needs an update at the next network upgrade, and Microsoft Defender may block xmrig-zecnero.exe, as it does most XMRig builds. The node and the bridge run in WSL, and WSL stays the default way to mine on Windows; on the pool that means mining about a minute after the install, with no node to sync. zecnero-keygen and the wallet also ship as Windows programs.
Can I mine on a laptop?It will run. Laptops get hot and throttle, so use fewer threads and keep it plugged in.
Will an ASIC show up?RandomX runs randomly generated programs whose instruction mix and memory behaviour are modelled on general-purpose processors, so hardware built for it converges on a general-purpose processor. Dedicated RandomX hardware sold so far has shown little efficiency advantage over a high-end desktop chip. If hardware with a large advantage does appear, the proof of work can be changed by a network upgrade.
Still stuck, or found a bug?That is what the testnet is for. Ask on Discord, or open an issue on GitLab with what you ran, what it printed, the output of zecnero-miner status, and whether you use WSL or Linux.