NetworksRelease VersioningOffline transaction signingGlossary
Hardfork Update Process

Local Mining

⚠️️ Note: The instructions on this page are for CPU mining only.

The Iron Fish mainnet will have many miners and mining pools operating more powerful GPU miners. CPU mining may be useful for testing, development, and learning, but it is not recommended on mainnet.

Quick start 

Start your node by running the following command:

ironfish start

Open a new terminal window and run:

ironfish miners:start

Changing the default account 

If you want to use a different account to store the miners fee, you can create a new account by running the following command:

ironfish wallet:create newAccount

And then set it up as default:

ironfish wallet:use newAccount

Set block graffiti (optional) 

Iron Fish blocks contain a 32-byte publicly-visible field called graffiti that can be set by the block's miner. To set this value to a UTF-8 encoded string on the blocks you mine, update the blockGraffiti config option:

ironfish config:set blockGraffiti "<your graffiti here>"

Join a mining pool 

You can join a mining pool in order to increase your chances of mining a block. Block rewards are typically split among miners based on their respective contributions. We also run a basic mining pool on testnet that anyone can join. To get started, retrieve the public key of the account you want to use:

ironfish wallet:address

And use that public key to join the mining pool:

ironfish miners:start --pool --address <PUBLIC KEY>

Join our Discord if you're interested in creating a different pool for Iron Fish.


My miner has been running for a long time - but I haven't mined a block yet 

  • Difficulty (and therefore time to mine a block) can change depending on how fast blocks are mined on the Iron Fish network.
  • Make sure you are correctly connected to the Iron Fish network (you should see Connected to the Iron Fish network in your node logs).

Not connected to a node - waiting 5s before retrying 

Make sure that your node is currently running. If you are using a different datadir argument to start your node, make sure to use it as well when starting the miner. For example:

ironfish miners:start --datadir=~/.ironfish2/

The trees aren't the same size as the chain 

  • Make sure your node is synced with the network before starting the miner. Run ironfish status to check if your node is still syncing.

Join our newsletter and stay up to date with privacy and crypto.

Discover our impactful presence — read our blog.


  • FAQ
  • Whitepaper
  • Tokenomics


  • Get Started
  • Node App
  • Mine
  • Block Explorer
  • Ecosystem


  • Documentation
  • Github


  • Foundation
  • Governance
  • Grants
  • Our Community


  • About Us
  • Media Kit
  • Contact Us
Privacy Policy


Copyright 2024 Iron Fish.