Becoming a Miner

How to Become a Miner of the Subnet

Introduction

Infinite Games miners help power decentralised forecasting by submitting event-based probability predictions. This guide walks you through everything you need — from installing your miner to forecasting with AI.

What Does a Miner Actually Do?

Miners in Infinite Games receive real-time forecasting events and respond with a probability (between 0 and 1) that the event will occur. The data format is pre-defined in neurons/protocol.py. You only need to fill in the probability value. Miners get a new request every 3–5 minutes. You don’t need to recalculate constantly. The baseline miner includes a caching system to save on compute. This is useful if you’re using large LLMs like GPT-4.

How Are Miners Rewarded?

As part of the Bittensor network, our system operates a performance-based reward mechanism. Miners earn TAO in line with their score, calculated according to:

  • Forecast quality — how accurate your probabilities are.

  • Forecast timing — the earlier you forecast, the better.

  • Consistency — failure to forecast leads to penalties.

Events are scored every 4 hours — early, confident predictions pay more.

It is fundamental for a miner to understand deeply the scoring mechanism.

It is explained in details here.

You can find the code here.

What Events Will I Be Predicting?

Events are automatically generated by our LLM pipeline based on triggers from Polymarket and X. Most events focus on geopolitics, economics, crypto, and company earnings.

Examples include: Geopolitical:

Will the US confirm a new arms package to Ukraine by March 20, 2025?

Crypto:

Will the market cap of Bitcoin increase by more than 4.2% on March 25, 2025?

Economic:

Will the 5-Year TIPS bond exceed -2.44% on March 27, 2025??

Earnings:

Will LOCL’s stock open higher the day after its March 28 earnings call?

Polymarket:

Will NDP win 10–15 seats in the upcoming Canadian Election?

STEP-BY-STEP SETUP

1

Requirements

System:

Minimum requirements to run the public miner:

  • Storage: 50 GB

  • RAM: 4–8 GB

  • Consistent uptime (downtime is penalized)

Optional:

  • OpenAI or Perplexity API keys if using the built-in LLM forecaster

Tokens:

To register your miner on the network, you’ll need TAO tokens:

  • Testnet: Faucet TAO is used to simulate registration and prediction. These tokens are free and can be requested via the Bittensor Discord. How this is done is provided below.

  • Mainnet: Real TAO tokens are required. These can be purchased on supported exchanges (e.g., Kraken, MEXC) and withdrawn to your Bittensor wallet.

2

Set Up The Environment

Clone the github repo:

git clone https://github.com/amedeo-gigaver/infinite_games.git

Change directory:

cd infinite_games

Create a Virtual Environment:

python -m venv venv

Activate the Virtual Environment:

source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

NOTE: Keep the virtual environment active while running the miner.

3

Create Wallets

Generate shareable coldkey and hotkey pairs:

btcli wallet new_coldkey --wallet.name miner
btcli wallet new_hotkey --wallet.name miner --wallet.hotkey default

Using an existing wallet? Regenerate it using your private mnemonic:

btcli w regen_coldkey --wallet-path ~/.bittensor/wallets/ \
    --wallet-name miner --mnemonic "${MNEMONIC_COLDKEY}"
btcli w regen_hotkey --wallet-name miner --wallet-hotkey default \
    --mnemonic "${MNEMONIC_HOTKEY}"
4

Start by testing your miner on our testnet before deploying to mainnet.

Testnet netuid: 155

Mainnet netuid: 6

Get testnet TAO:

Ask in the Bittensor Discord under “Requests for Testnet TAO” using this format:

  • Testnet netuid: 155

  • Mainnet netuid : 6

  • Roles: Miner

  • Coldkey: - paste your coldkey here -

  • Do you have your mnemonic phrase for the coldkey written down in a safe place? Yes

5

Register Keys

btcli subnet register --wallet.name miner --wallet.hotkey default

To register your miner on the testnet add the --subtensor.network test flag.

Then, follow the prompts:

>> Enter netuid (0): # Enter the appropriate netuid for your environment
Your balance is: # Your wallet balance will be shown
The cost to register by recycle is τ0.000000001 # Current registration costs
>> Do you want to continue? [y/n] (n): # Enter y to continue
>> Enter password to unlock key: # Enter your wallet password
>> Recycle τ0.000000001 to register on subnet:6? [y/n]: # Enter y to register
📡 Checking Balance...
Balance:
  τ5.000000000 ➡ τ4.999999999
✅ Registered
6

Confirm Key Registration

btcli wallet overview --wallet.name miner

To check your miner on the testnet add the --subtensor.network test flag The previous command should display the following:

Subnet: 6 (or 155 on testnet)
COLDKEY    HOTKEY   UID  ACTIVE  STAKE(τ)     RANK    TRUST  CONSENSUS  INCENTIVE  DIVIDENDS  EMISSION(ρ)   VTRUST  VPERMIT  UPDATED  AXON  HOTKEY_SS58
miner  default  197    True   0.00000  0.00000  0.00000    0.00000    0.00000    0.00000            0  0.00000                56  none  5GKkQKmDLfsKaumnkD479RBoD5CsbN2yRbMpY88J8YeC5DT4
1          1        1            τ0.00000  0.00000  0.00000    0.00000    0.00000    0.00000           ρ0  0.00000
                                                                                Wallet balance: τ0.000999999
7

Confirm Incoming Validator Requests Are Being Accepted

Ensure your firewall doesn't block the port on which validators query your miner. The port can be specified with the argument --axon.port and by default it is 8091 .

After registering your miner, check your logs to confirm you are receiving forecasting events. If present, you are correctly connected to the network. If not, please check the firewall of your provider as it may be blocking the port queried by validators.

8

Running a Miner

Run one of the two commands below inside the infinite_games directory to run your miner.

For the testnet:

python neurons/miner.py --netuid 155 --subtensor.network test --wallet.name miner --wallet.hotkey default

For the mainnet:

python neurons/miner.py --netuid 6 test --wallet.name miner --wallet.hotkey default

Then, install and run PM2 commands:

sudo apt update
sudo apt install npm
sudo apt install npm -g

Confirm PM2 is installed and running correctly:

pm2 ls

Now, run the miner:

pm2 start neurons/miner.py --interpreter python3 --name miner -- --wallet.name miner --netuid 155 --wallet.hotkey default --subtensor.network test --loggin

Modify the command above according to your purpose — for example, changing to the appropriate netuid. Use the explanations for Variables and PM2 Commands below to guide you.

9

Stopping Your Miner

Press CTRL + C in the terminal where the miner is running.

10

Using the Pre-Built LLM Forecaster

It is available at neurons/miner/forecasters/llm_forecaster.py and may be used for making predictions. To use it:

  1. Get the required API keys:

  2. Set your API keys as environment variables:

    1. export PERPLEXITY_API_KEY=<your_perplexity_api_key>
    2. export OPENAI_API_KEY=<your_openai_api_key>
  3. Open neurons/miner.py#L31 and locate the assign_forecaster function

  4. Replace the placeholder forecaster with LLMForecaster.

  5. Start your miner — it will now use LLM models to forecast events.

11

Creating Your Own Forecaster (Advanced)

Want to build your own forecasting logic? Here’s how:

  1. Create a new forecaster class based on the existing file: neurons/miner/forecasters/base.py

  2. Implement the _run method in your forecaster

    1. It must return a number between 0 and 1.

    2. Event information can be accessed through the MinerEvent class neurons/miner/models/event.py

  3. Open neurons/miner.py and find the assign_forecaster function. Update it according to purpose — you can even use different forecasters for different types of events. Check the event info inside assign_forecaster and route accordingly.

12

Analysing Miner Performance (Advanced)

Before Joining Mainnet:

You can measure your miner's accuracy on testnet using these API endpoints:

  • Ongoing events: https://ifgames.win/api/v2/events?from_date=1&offset=0&limit=250

  • Resolved events: https://ifgames.win/api/v2/events/resolved?offset=0&resolved_since=1&limit=100

You can also explore previously broadcasted questions via the main analytics dashboard.

New tools will be available soon to help you benchmark your miner before going live on mainnet.

After Registering on Mainnet:

Monitor how well your miner is doing using the following tools:

For a big-picture view, check Taostats:

  • Metagraph tab → live miner rankings

  • Distribution tab → real-time incentive flow

QUICK REFERENCE

Variables

--wallet.name Provide the name of your wallet. --wallet.hotkey Enter your wallet's hotkey. --netuid 6 for mainnet; 155 for testnet. --subtensor.network Specify the network you want to use (finney, test, local, etc). --logging.debug Adjust the logging level according to your preference. --axon.port Specify the port number you want to use.

PM2 Commands

For monitoring status and logs:

pm2 status pm2 logs 0

For managing your miner:

pm2 list lists all pm2 processes

pm2 logs <pid> replace pid with your process ID to view logs

pm2 restart <pid> restart this pic

pm2 reload <pid> reload this pic

pm2 stop <pid> stops your pid

pm2 del <pid> deletes your pid

pm2 describe <pid> prints out metadata on the process

Last updated