How to Mine Firo (FIRO) with FiroPoW

Firo is designed to be mined by GPUs.

The FiroPoW mining algorithm (a modified version of ProgPoW 0.9.4) is designed to utilize all parts of a GPU and includes a random sequence that changes every block to add further ASIC and FPGA resistance.

We believe in the importance of fair distribution in FIRO and remain committed to having it mineable using commodity hardware like GPUs. The VRAM requirement is targeted to be mineable by GPUs with 8GB VRAM and above to keep old hardware off but keeping it accessible to most modern GPUs.

Before you begin, make sure you have a Firo (FIRO) address where you want your mining payouts to go to. We do not recommend mining directly to an address owned by an exchange. To get one, download a Firo wallet and sync it with the network.

This guide is written for Windows users. Linux users can follow the same steps using the Linux packages and commands noted along the way.

Step 1: Getting your Miner

We recommend Firominer, Firo’s open source reference miner. It supports both NVIDIA and AMD GPUs, has no developer fee, supports both pool and solo mining, and performs within about 1% of closed-source miners.

Download the latest version from the Firominer releases page and choose the package for your GPU:

  • NVIDIA: the cuda12.9-opencl package for your operating system. It requires NVIDIA driver 576.57 or newer on Windows, or 575.57.08 or newer on Linux.
  • AMD: the opencl package for your operating system. Make sure your AMD GPU driver is up to date.

Choose a .zip archive for Windows or a .tar.gz archive for Linux. Both package variants include the desktop launcher and command-line miner. Check the release notes for the current driver and operating system requirements.

Packages are available for 64-bit Windows 10/11 and for Ubuntu 22.04 or newer (x86-64). You don’t need to install the CUDA Toolkit, as the files Firominer needs are included. Older NVIDIA cards such as the GTX 10 series need a driver from the R575 or R580 branch, because newer driver branches no longer support them.

Extract the whole archive into a folder of your choice and keep its contents together. The executables in the bin folder need the other files that come with them, so don’t move them out on their own. To open the desktop launcher, double-click bin\firominer-gui.exe on Windows or run ./bin/firominer-gui on Linux. The Linux launcher requires X11 or XWayland.

Verifying your download (recommended): download the checksum file named SHA256SUMS-v*.txt from the same release page (* represents the release version). On Windows, open PowerShell in your downloads folder and run:

Get-FileHash .\firominer-windows-*.zip -Algorithm SHA256

The hash shown should match the line for the archive you downloaded in the checksum file. On Linux, run sha256sum --check --ignore-missing SHA256SUMS-v*.txt from your downloads folder.

Antivirus warnings: antivirus software, including Windows Defender, often flags cryptocurrency miners as potentially unwanted applications, and this may happen with Firominer too. Only download miners from their official release pages and verify the checksum before adding an exclusion for the miner’s folder.

Other Miners

Other FiroPoW miners are also available. These are closed source and charge a developer fee:

Warning: Third-party miners are listed here for convenience and have not been vetted. Use at your own risk. All fees go to the developers of the miners.

If you use one of these miners, extract its download into a folder of your choice.

Step 2: Registering with a Pool (if not solo mining)

There are several pools running Firo on FiroPoW. Please try to spread the hashrate around so that no pool has more than 50% of the total hashrate for decentralization reasons! Note that pure 51% attacks are not possible on Firo due to Chainlocks technology which requires an attacker to either take down or take over the masternode network and also have 51% of the hashrate. You can view the current hashrate distribution here.

Currently Cedric-Crispin is the only pool with Spark Address payout support. Others only support transparent FIRO payouts. We recommend asking your favorite mining pool to add Spark Address support!

The pools below are listed on MiningPoolStats. Check their current status and connection details before mining.

  • cedric-crispin Spark Address and Spark Name payout support
    • firo.cedric-crispin.com:4064
    • firo.cedric-crispin.com:4065 (SSL)
  • EthCore
    • ethcore.ru:2073 (low-diff)
    • ethcore.ru:2075 (high-diff)
    • ethcore.ru:2077 (SSL)
  • Rplant
    • eu.rplant.xyz:7045 (TCP)
    • eu.rplant.xyz:17045 (SSL)
    • asia.rplant.xyz:7045 (TCP)
    • asia.rplant.xyz:17045 (SSL)
    • na.rplant.xyz:7045 (TCP)
    • na.rplant.xyz:17045 (SSL)
  • WoolyPooly
    • pool.woolypooly.com:3104
  • Pooly.ca
    • stratum+tcp://pooly.ca:3094
  • SmoozyPool
    • smoozypool.es:4031 (PPLNS)
  • For detailed stratum information, please visit the pool’s own site.

Most of the pools listed here do not require registration, only a valid Firo address as username and worker details. Ensure that you also get the pool’s address and port.

Step 3: Configuring your Miner

Pool Mining with Firominer

Desktop Launcher

  1. Open bin\firominer-gui.exe on Windows or run ./bin/firominer-gui on Linux.
  2. Go to Mining setup and choose Pool.
  3. Enter your Pool endpoint, for example stratum+tcp://firo.cedric-crispin.com:4064. For an SSL port, use stratum+ssl:// instead.
  4. Enter your Payout address / account, Worker name and Pool password following your pool’s instructions. Use x if no password is required. Spark addresses and Spark Names are supported only by Cedric-Crispin.
  5. Leave GPU backend on Automatic to use all compatible GPUs, or choose NVIDIA CUDA or OpenCL. Click Save setup, then Start mining.

Use Pool mode for a pool’s SOLO endpoint too. Solo mode connects directly to your own Firo node, as described below.

Command Line or Batch File

Windows packages include a ready-made launcher called mine_firo.bat in the bin folder. Open it in Notepad (right-click the file and choose Edit or Edit in Notepad), find the line that starts with "%~dp0firominer.exe" and replace the pool details with your own:

"%~dp0firominer.exe" -P "stratum+tcp://WALLET.WORKER:PASSWORD@POOLADDRESS:PORT"
  • WALLET: your Firo address
  • WORKER: a name for this mining rig
  • PASSWORD: your pool password. Use x if your pool doesn’t need one.
  • POOLADDRESS:PORT: your pool’s address and port from Step 2

Then save the file.

The launcher points to cedric-crispin (firo.cedric-crispin.com:4064) by default, so change the pool address and port if you use a different pool. Keep the quotation marks. Lines starting with rem are comments and are ignored. Some pools use a different login format, so check your pool’s site if your shares aren’t accepted. To use a pool’s SSL port, replace stratum+tcp:// with stratum+ssl://.

By default, Firominer mines on every GPU it detects. To choose explicitly, add -U for NVIDIA (CUDA) or -G for AMD (OpenCL) right after "%~dp0firominer.exe", for example:

"%~dp0firominer.exe" -G -P "stratum+tcp://WALLET.WORKER:PASSWORD@POOLADDRESS:PORT"

You can also add a backup pool by adding a second -P with another pool’s details. Firominer switches to it if the first pool can’t be reached.

On Linux, run Firominer from the extracted folder:

./bin/firominer -P "stratum+tcp://WALLET.WORKER:PASSWORD@POOLADDRESS:PORT"

Pool Mining with Other Miners

Open your favourite text editor, paste the line for your miner and edit it with your pool details.

TeamBlackMiner (Nvidia/AMD):

TBMiner.exe --algo firopow --hostname POOLADDRESS --port PORT --wallet WALLETADDRESS --worker-name WORKER --server-passwd x

SRBMiner-Multi (Nvidia/AMD):

SRBMiner-MULTI.exe --disable-cpu --algorithm firopow --pool POOLADDRESS:PORT --wallet USERNAME.WORKER

Gminer:

miner.exe --algo firopow --server POOLADDRESS:PORT --user username.worker

Team Red Miner (AMD):

teamredminer.exe -a firopow -o stratum+tcp://POOLADDRESS:PORT -u username.worker -p password

Save the file as a .bat file (for example, miner.bat) in the same folder as the miner’s executable.

Solo Mining with Firominer

Firo’s network difficulty is low enough that solo mining is a realistic option. Every block you find pays the full block reward straight to your address, though payouts arrive less regularly than with a pool. Solo mining with Firominer requires no pool; it mines directly against your own synced Firo wallet running on the same computer.

The block reward must go to a transparent Firo address. Spark addresses can’t be used as a solo mining reward address.

First, edit firo.conf to allow RPC calls. Navigate to the default data directory, create a file called firo.conf and add these lines, replacing RPCUSER and RPCPASSWORD with a username and password of your choice:

rpcuser=RPCUSER
rpcpassword=RPCPASSWORD
rpcport=8382
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
listen=1
server=1
daemon=1

Avoid characters such as @, : and / in your RPC username and password, since they would break the connection line below.

Restart your Firo wallet and wait until it is synced to the latest block.

Desktop Launcher

  1. Open Firominer’s desktop launcher, go to Mining setup and choose Solo.
  2. Set Node endpoint to http://127.0.0.1:8382 to match the configuration above. The launcher’s default port is 8888; use the port set in your firo.conf.
  3. Enter the RPC username and RPC password from firo.conf, and your transparent Firo address as the Reward address.
  4. Click Test node and wait for confirmation that the node is synced and the reward address is valid. Leave Coinbase message empty unless your node supports it; any message you enter is public text embedded in blocks you mine.
  5. Choose your GPU backend, click Save setup, then Start mining.

The launcher remembers your setup, but does not save your RPC password. Enter it again when you reopen the launcher. Keep your Firo wallet running and synced while mining.

Command Line or Batch File

In Firominer’s bin folder, make a copy of mine_firo.bat and rename it solo_firo.bat. Open solo_firo.bat in Notepad and replace the line that starts with "%~dp0firominer.exe" with:

"%~dp0firominer.exe" -P "getwork://RPCUSER:[email protected]:8382" -r YOURFIROADDRESS

Change RPCUSER, RPCPASSWORD and the port 8382 so they match your firo.conf, replace YOURFIROADDRESS with your transparent Firo address, and save the file.

On Linux, run:

./bin/firominer -P "getwork://RPCUSER:[email protected]:8382" -r YOURFIROADDRESS

Step 4: Running the Miner

If you use Firominer’s desktop launcher, click Start mining and follow the progress on Overview, GPUs and Activity. To stop, click Stop mining.

If you use a batch file, double-click the .bat file you created or edited (for Firominer, mine_firo.bat or solo_firo.bat). A console window opens and shows the miner’s progress.

When Firominer starts, it generates the DAG and prepares its mining code on each GPU, so give it a minute or two before your hashrate appears.

For pool mining, you should be good to go once you see your shares accepted. It may take a few minutes for the correct speed to be reflected on the pool’s website and in your miner.

For solo mining, there are no shares. Firominer only submits a solution when it finds a block. The reward then shows up in your wallet and becomes spendable once it has enough confirmations. Keep your Firo wallet open and synced while you mine.

Troubleshooting Firominer

  • No GPUs detected: update your GPU driver, and for NVIDIA cards check that it meets the minimum version in Step 1. To see which GPUs Firominer detects, open PowerShell in the Firominer folder and run .\bin\firominer.exe --list-devices.
  • Missing file errors: make sure you extracted the whole archive and that firominer.exe is still in the bin folder with the files it came with.
  • Errors while generating the DAG: your GPU may not have enough free memory. Close other programs using the GPU and check that it meets the VRAM requirement above.
  • Firominer disappears or won’t start: your antivirus may have quarantined it. See the antivirus note in Step 1.

For desktop launcher help, see the Firominer GUI guide. For all command-line options, run .\bin\firominer.exe --help or see the Firominer README. You can report problems on GitHub.

Happy mining!