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.
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:
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.
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:
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:
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:
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.
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:
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:
zecnero-miner mode solo
What the installer did
- 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.
- 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. - It made the wallet the pool pays. With the bundled
zecnero-walletit 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. - It started the miner on the pool. The miner,
xmrig-zecnero, connects tostratum.zecnero.org:3334over 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 inzecnero-miner status. - 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:
zecnero-miner status
zecnero-miner poolprints the address of your page on the pool, with your hashrate, your workers, your balance and every payment.zecnero-miner stopstops mining.zecnero-miner startstarts it again; your key and settings are kept.zecnero-miner logs minerfollows the miner’s log. Press Ctrl+C to stop watching; mining carries on.zecnero-miner pool-loginprints the unified address the pool pays;zecnero-miner pool-login newmakes a new wallet and logs in with it.zecnero-miner addressprints your mining key’s address, which solo mining pays.zecnero-miner modesays whether you mine on the pool or solo.zecnero-miner mode soloandzecnero-miner mode poolswitch.zecnero-miner updatedownloads the newest release, checks it the same way, and restarts mining if it was running. Your key and settings are kept.zecnero-miner helplists 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.
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:
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:
- 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 on127.0.0.1:18732, reachable only from your computer. - 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, andrx/zecnero2from 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:
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.
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
- Click Start, type PowerShell and open Windows PowerShell. Paste the command from step 01 by right-clicking in the window, then press Enter.
- 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.
- It asks Restart the computer now? Save your work, then type
yand press Enter. - 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 withsudo. - 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.
- Run the command. Open Windows PowerShell as a normal user and paste:
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. AnswerWindows PowerShell
irm https://downloads.zecnero.org/install.ps1 | iex
y, click Yes on the Windows permission prompt, and answeryto restart. If Ubuntu is already installed, none of that appears and it goes straight to step 3. - 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.
- 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 typesavedand 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 typesaved. About a minute later it ends with the status screen and Zecnero is mining on the pool in the background. - Check it. In the same window:
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 fileUbuntu
zecnero-miner status
~/zecnero/MINING-KEY.txt, and the pool wallet’s seed in~/zecnero/POOL-WALLET-SEED.txt:If it saysUbuntucat ~/zecnero/MINING-KEY.txt ~/zecnero/POOL-WALLET-SEED.txt
zecnero-miner: command not found, runsource ~/.bashrconce, or open a new Ubuntu window. - Closing the window does not stop mining. Close it with the X, open Ubuntu from the Start menu later, and
zecnero-miner statusshows the accepted count still growing. What does stop it: shutting down or restarting Windows, sleep, or runningwsl --shutdown. To mine again, open Ubuntu and run:Ubuntuzecnero-miner start
- 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
winvershows 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.
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
- 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
- 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. - 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…). - 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:
.\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:
- Press Win+R, type
secpol.mscand press Enter. Allow the administrator prompt. - Open Local Policies → User Rights Assignment and double-click Lock pages in memory.
- 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:
- 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.
- Run the installed miner once:
Near the top it prints Huge pages support was successfully enabled, but reboot required to use it. Press Ctrl+C and close the window.Windows PowerShell (administrator, once)
& "$env:LOCALAPPDATA\Zecnero\miner\bin\xmrig-zecnero.exe" --bench=1M -a rx/zecnero --no-color
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.
What you need
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.
zecnerod-linux-x86_64.tar.xzThe node. Follows the chain and builds the blocks you mine.61 MB · Linux x86-64, and Windows through WSLzecnero-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 WSLxmrig-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 WSLzecnero-keygen-linux-x86_64.tar.xzMakes the address you mine to, and its private key.0.5 MB · Linux x86-64, and Windows through WSLzecnero-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 WSLzecnero-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 WSLzecnero-keygen-windows-x86_64.zipThe same key tool as a Windows program. Optional.1.6 MB · Windows x86-64xmrig-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, betazecnero-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, betaBUILD-INFO.txtThe commit of each program the release was built from, and the hash of every program.3 KB · Anyzecnero.ascThe Zecnero release key, to check the signature with.1 KB · Any · served from zecnero.orgdownloads.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:
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:
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:
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:
powershell -ExecutionPolicy Bypass -File .\install.ps1
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.
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.
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.
cd ~/zecnero gpg --import zecnero.asc gpg --fingerprint FFFC8AC02BF7B4B450B43B1F653209A344E75767 gpg --verify SHA256SUMS.asc SHA256SUMS sha256sum -c --ignore-missing SHA256SUMS
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.
FFFC 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.
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
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.
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-configConfig 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.
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:
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{"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.
cd ~/zecnero ./zecnero-bridge generate -o ~/.config/zecnero/zecnero-bridge.toml ./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml --check-template
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.
cd ~/zecnero ./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml
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.
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[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.
cd ~/zecnero ./zecnerod --config ~/.config/zecnero/zecnerod.toml start
cd ~/zecnero ./zecnero-bridge --config ~/.config/zecnero/zecnero-bridge.toml
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.
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.
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.
Who gets paid
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.
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…
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.
Questions and problems
Unknown command: modeYour zecnero-miner is from before pool mode. Run zecnero-miner update first, then zecnero-miner mode pool.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.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.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.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.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.some basic tools are missingRun the one line it shows, which installs them, then run the installer again.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.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.~/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.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.