⛏ Mining Guide

How to Mine Tensorium (TXM)

Step-by-step guide to setting up a node, creating a wallet, and mining TXM on the live mainnet. GPU required — mainnet initial difficulty is 42 bits.

🌐 Network: tensorium-mainnet ⚙ Difficulty: 42 bits (GPU required) 🎁 Reward: 7.8558 TXM/block 💻 Platform: Linux x86_64
Mainnet LIVE as of 2026-06-02. Mining rewards are real TXM. GPU required (tensorium-miner). Solo: point at your own node RPC (port 33332, 0% fee). Pool: connect to pooltxm.tensoriumlabs.com:3333 (5% fee).
4 steps to start mining
From zero to mining in under 5 minutes on any Linux machine.
01
Install
One-line installer downloads all binaries and sets up your node.
02
Create Wallet
Generate a secure wallet and get your TXM address.
03
Sync Node
Connect to the seed node and download the current chain.
04
Mine
Run tensorium-miner and start earning block rewards.

1 Requirements

ComponentMinimumRecommended
OSLinux x86_64Ubuntu 22.04 / 24.04 LTS
CPU2 cores4+ cores (more = faster mining)
RAM512 MB2 GB+
Disk1 GB free10 GB+ (for chain growth)
NetworkStable internet, port 33333 openLow-latency connection
Privilegesroot or sudo
GPU required for mainnet. Mainnet runs at 42-bit difficulty — a GPU (RTX 3000+ recommended) is required. GPU (RTX 3000+) required. Use tensorium-miner.

2 Installation

2.1 One-line Installer (Recommended)

The installer downloads pre-compiled binaries, creates a wallet, syncs the chain, and optionally sets up systemd services:

curl -fsSL https://raw.githubusercontent.com/tensorium-labs/tensorium-core/main/install.sh | bash

The installer will:

  1. Download tensorium-node, tensorium-miner, txmwallet to /usr/local/bin/
  2. Prompt you for a wallet passphrase and create a wallet at ~/tensorium-node/wallet.json
  3. Initialize the chain (genesis block) and sync from the seed node
  4. Optionally install systemd services for auto-start on reboot

2.2 Manual Installation

Download the latest mainnet binaries from GitHub Releases:

# Download
# Node + wallet CLI
curl -fsSL -o tensorium-node \
  https://github.com/tensorium-labs/tensorium-core/releases/latest/download/tensorium-node-linux-x86_64
curl -fsSL -o txmwallet \
  https://github.com/tensorium-labs/tensorium-core/releases/latest/download/txmwallet-linux-x86_64

# GPU miner example for RTX 5090 / Blackwell (sm_120)
curl -fsSL -o tensorium-miner \
  https://github.com/tensorium-labs/tensorium-core/releases/latest/download/tensorium-miner-linux-x86_64-sm120

# Make executable and install
chmod +x tensorium-node txmwallet tensorium-miner
sudo mv tensorium-node txmwallet tensorium-miner /usr/local/bin/

# Verify
tensorium-node --help

2.3 Build from Source

If you prefer to build from source (requires Rust ≥ 1.76):

git clone https://github.com/tensorium-labs/tensorium-core.git
cd tensorium-core
cargo build --release

# Binaries will be in target/release/
sudo cp target/release/tensorium-node target/release/tensorium-miner target/release/txmwallet /usr/local/bin/

3 Create a Wallet

3.1 Create New Wallet

# Set where to store the wallet
export TENSORIUM_WALLET=~/tensorium-node/wallet.json

# Set your passphrase (use a strong passphrase — this encrypts your private key)
export TENSORIUM_WALLET_PASSPHRASE="your-strong-passphrase-here"

# Create the wallet
txmwallet create

This generates a secp256k1 keypair and saves it encrypted with Argon2id + ChaCha20-Poly1305. Output example:

address=txm1abc123...
public_key=02ab34...
wallet_version=2
encrypted=true

3.2 Get Your Mining Address

export TENSORIUM_WALLET=~/tensorium-node/wallet.json
export TENSORIUM_WALLET_PASSPHRASE="your-passphrase"

txmwallet getnewaddress
# → txm1abc123xyz...   (your TXM address)

Save this address — you will provide it to tensorium-miner so block rewards go to your wallet.

3.3 Backup Your Wallet

🔑
Back up your wallet file immediately. If you lose wallet.json or forget your passphrase, your funds are permanently unrecoverable. Copy the wallet file to at least two separate locations (external drive, cloud storage, etc.).
# Backup
cp ~/tensorium-node/wallet.json ~/wallet-backup-$(date +%Y%m%d).json

# Verify backup can be decrypted
TENSORIUM_WALLET=~/wallet-backup-*.json \
TENSORIUM_WALLET_PASSPHRASE="your-passphrase" \
txmwallet unlock-check

3.4 Check Balance

export TENSORIUM_WALLET=~/tensorium-node/wallet.json
export TENSORIUM_WALLET_PASSPHRASE="your-passphrase"
export TENSORIUM_STATE=~/tensorium-node/state.json

txmwallet balance

Coinbase rewards require 10 confirmations before they appear as spendable.

4 Run a Node

4.1 Initialize the Chain

mkdir -p ~/tensorium-node
cd ~/tensorium-node

# Initialize mainnet — genesis is hardcoded, near-instant
TENSORIUM_MC_STATE=~/tensorium-node/state.json \
TENSORIUM_MC_MEMPOOL=~/tensorium-node/mempool.json \
TENSORIUM_MC_BANS=~/tensorium-node/banlist.json \
tensorium-node init

4.2 Sync from Seed Node

TENSORIUM_MC_STATE=~/tensorium-node/state.json \
TENSORIUM_MC_MEMPOOL=~/tensorium-node/mempool.json \
TENSORIUM_MC_BANS=~/tensorium-node/banlist.json \
tensorium-node sync seed.tensoriumlabs.com:33333

Output shows sync progress:

sync start: peer=seed.tensoriumlabs.com:33333 peer_height=150 our_height=0
  synced +50 blocks  height=50  total_synced=50
  synced +50 blocks  height=100  total_synced=100
  synced +50 blocks  height=150  total_synced=150
sync complete: tip=150 synced=150 blocks from seed.tensoriumlabs.com:33333

4.3 Start RPC and P2P

Open two terminal windows (or use nohup / tmux):

# Terminal 1 — RPC server (do NOT expose port 33332 publicly)
TENSORIUM_MC_STATE=~/tensorium-node/state.json \
TENSORIUM_MC_MEMPOOL=~/tensorium-node/mempool.json \
TENSORIUM_MC_BANS=~/tensorium-node/banlist.json \
TENSORIUM_MC_PEERS=seed.tensoriumlabs.com:33333 \
tensorium-node rpc 127.0.0.1:33332

# Terminal 2 — P2P listener (port 33333 must be open in firewall)
TENSORIUM_MC_STATE=~/tensorium-node/state.json \
TENSORIUM_MC_MEMPOOL=~/tensorium-node/mempool.json \
TENSORIUM_MC_BANS=~/tensorium-node/banlist.json \
tensorium-node p2p-listen 0.0.0.0:33333

Check your node is working:

curl -s http://localhost:33332/getblockcount
# → {"blocks":151,"chain_id":"tensorium-mainnet","height":150}

4.4 Systemd Service (Auto-start on Reboot)

sudo tee /etc/systemd/system/tensorium-rpc.service <<EOF
[Unit]
Description=Tensorium Mainnet RPC
After=network.target

[Service]
Type=simple
User=$(whoami)
Environment=TENSORIUM_MC_STATE=$HOME/tensorium-node/state.json
Environment=TENSORIUM_MC_MEMPOOL=$HOME/tensorium-node/mempool.json
Environment=TENSORIUM_MC_BANS=$HOME/tensorium-node/banlist.json
Environment=TENSORIUM_MC_PEERS=seed.tensoriumlabs.com:33333
ExecStart=/usr/local/bin/tensorium-node rpc 127.0.0.1:33332
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo tee /etc/systemd/system/tensorium-p2p.service <<EOF
[Unit]
Description=Tensorium Mainnet P2P
After=network.target

[Service]
Type=simple
User=$(whoami)
Environment=TENSORIUM_MC_STATE=$HOME/tensorium-node/state.json
Environment=TENSORIUM_MC_MEMPOOL=$HOME/tensorium-node/mempool.json
Environment=TENSORIUM_MC_BANS=$HOME/tensorium-node/banlist.json
ExecStart=/usr/local/bin/tensorium-node p2p-listen 0.0.0.0:33333
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now tensorium-rpc tensorium-p2p

5 Start Mining

5.1 Solo Mining (GPU, recommended for mainnet)

YOUR_ADDRESS="txm1your_address_here"

# GPU solo mining — connects to your own node RPC (port 33332), 0% pool fee
tensorium-miner --mode solo --rpc http://127.0.0.1:33332 --wallet "$YOUR_ADDRESS" --gpu all --intensity auto

5.2 Pool Mining (5% fee)

YOUR_ADDRESS="txm1your_address_here"

# GPU pool mining — connects to official pool, 5% fee
tensorium-miner --mode pool --pool stratum+tcp://pooltxm.tensoriumlabs.com:3333 --wallet "$YOUR_ADDRESS" --worker "$(hostname)" --gpu all --intensity auto
💡
Solo vs Pool. Solo mining (connect to your own node:33332) earns the full block reward with 0% fee. Pool mining (pooltxm.tensoriumlabs.com:3333) charges 5% but provides smoothed payouts without running your own node.
Explorer vs Pool Website. The explorer shows on-chain blocks and wallet balances. The pool website shows pool ledger entries only. Direct or solo-mined blocks settle straight to the miner wallet and will not appear in pool payout accounting.

5.3 Expected Hashrate by GPU

GPUEst. Hashrate~Block Time (diff 40, solo)
RTX 3060~380 MH/svaries with live difficulty
RTX 3080~1.2 GH/svaries with live difficulty
RTX 4090~2.5 GH/s~27 seconds (diff 40)
RTX 5090~4.6 GH/s~15 seconds (diff 40)
H100 SXM~2 GH/s~34 seconds (diff 40)

5.4 Keep Miner Running

# Using nohup
nohup tensorium-miner --mode solo --rpc http://127.0.0.1:33332 --wallet "$YOUR_ADDRESS" --gpu all --intensity auto > ~/tensorium-node/miner.log 2>&1 &
echo "Miner PID: $!"

# Using tmux
tmux new -s miner "tensorium-miner --mode solo --rpc http://127.0.0.1:33332 --wallet $YOUR_ADDRESS --gpu all --intensity auto"

# Systemd service
sudo tee /etc/systemd/system/tensorium-miner.service <<EOF
[Unit]
Description=Tensorium CUDA GPU Miner
After=tensorium-rpc.service

[Service]
Type=simple
User=$(whoami)
ExecStart=/usr/local/bin/tensorium-miner --mode solo --rpc http://127.0.0.1:33332 --wallet YOUR_TXM_ADDRESS --gpu all --intensity auto
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now tensorium-miner

6 Mining Rewards

6.1 Block Reward

Every block you mine earns you 7.8558 TXM (Era 1, mainnet). This reward is a coinbase transaction with your address as the output.

Current Reward
7.8558
TXM per block (Era 1 mainnet)
Maturity
10 blocks
before reward is spendable (~10 min)
Next Halving
Era 2
at block 2,102,400 (~4 years)
Mining Supply
33,000,000
TXM available for mining

6.2 Coinbase Maturity

On mainnet, block rewards cannot be spent until 10 blocks have been built on top of the block you mined (~10 minutes at target block time).

6.3 Check Your Earnings

export TENSORIUM_WALLET=~/tensorium-node/wallet.json
export TENSORIUM_WALLET_PASSPHRASE="your-passphrase"
export TENSORIUM_STATE=~/tensorium-node/state.json

# Show balance (mature spendable + immature pending)
txmwallet balance

# Check address on explorer
# https://explorer.tensoriumlabs.com/address/YOUR_TXM_ADDRESS

7 Advanced Configuration

7.1 Environment Variables

VariableDefaultDescription
TENSORIUM_MC_STATEtensorium-mc-state.jsonMainnet chain state file path
TENSORIUM_MC_MEMPOOLtensorium-mc-mempool.jsonMainnet mempool file path
TENSORIUM_MC_BANStensorium-mc-banlist.jsonPeer ban list file path
TENSORIUM_MC_PEERSemptyComma-separated peers for block/tx broadcast
TENSORIUM_NODE_IDnode-<timestamp>Your node identity in P2P handshake
TENSORIUM_WALLETtensorium-wallet.jsonWallet file path
TENSORIUM_WALLET_PASSPHRASErequiredPassphrase to decrypt wallet

7.2 RPC API Reference

# Health check
curl http://localhost:33332/health

# Block count
curl http://localhost:33332/getblockcount

# Current difficulty
curl http://localhost:33332/getdifficulty

# Get block by height
curl http://localhost:33332/getblock/0      # genesis
curl http://localhost:33332/getblock/100

# Mempool info
curl http://localhost:33332/getmempoolinfo

# Block template (for custom miner integration)
curl http://localhost:33332/getblocktemplate/txm1youraddress

# Peer ban list
curl http://localhost:33332/getbanlist

# Unban an IP
curl http://localhost:33332/unban/1.2.3.4

7.3 Sending Transactions

export TENSORIUM_WALLET=~/tensorium-node/wallet.json
export TENSORIUM_WALLET_PASSPHRASE="your-passphrase"
export TENSORIUM_STATE=~/tensorium-node/state.json

# Build and sign a transaction (100000000 atoms = 1.0 TXM)
txmwallet send txm1recipient_address 100000000 /tmp/my-tx.json

# Broadcast to your node
txmwallet broadcast /tmp/my-tx.json 127.0.0.1:33332

7.4 Node Commands Reference

tensorium-node init                      # Initialize mainnet genesis block (near-instant)
tensorium-node status                    # Show chain tip and height
tensorium-node rpc [bind]                # Start HTTP RPC (default 127.0.0.1:33332)
tensorium-node p2p-listen [bind]         # Start P2P server (default 0.0.0.0:33333)
tensorium-node sync [host:port]          # Download missing blocks from a peer
tensorium-node p2p-connect <host:port>  # Diagnostic handshake to a peer
tensorium-node peers                     # Print configured peers
tensorium-node banlist                   # Show peer ban list
tensorium-node unban <ip>               # Remove a ban

# Mainnet mining (GPU)
tensorium-miner --mode solo --rpc http://127.0.0.1:33332 --wallet YOUR_ADDRESS --gpu all --intensity auto  # solo — 0% fee
tensorium-miner --mode pool --pool stratum+tcp://pooltxm.tensoriumlabs.com:3333 --wallet YOUR_ADDRESS --worker WORKER --gpu all --intensity auto  # pool — 5% fee

FAQ

Is mainnet TXM worth anything? +
Mainnet is live since 2026-06-02. Mainnet TXM can be bridged to Optimism as wTXM and traded via Uniswap V4. Always conduct your own research. See the Risk Disclosure.
Do I need a GPU to mine? +
Yes. Mainnet runs at 42-bit initial difficulty — a GPU (RTX 3000+ recommended) is required. Download tensorium-miner from the latest release.
Why does genesis init take so long? +
The mainnet genesis is hardcoded in the binary. Running tensorium-node init should be near-instant. If it hangs, update to the latest mainnet v1 release.
My miner found a block but txmwallet balance shows 0. Why? +
On mainnet, coinbase rewards require 100 block confirmations before they are spendable (~100 minutes at target block time). Wait for 100 more blocks after your block, then check your balance again.
What is the seed node and do I need to keep it connected? +
The canonical bootstrap seed is seed.tensoriumlabs.com:33333. Use it in TENSORIUM_MC_PEERS for initial sync.
Can I run the node and miner on different machines? +
Yes. The miner connects to the node via RPC (port 33332). If the miner is on a different machine, set TENSORIUM_RPC_ALLOW_PUBLIC=1 and bind to 0.0.0.0:33332, but restrict access via firewall to trusted IPs only. Never expose the RPC port publicly without a reverse proxy.
I found a bug. Where do I report it? +
Open an issue on GitHub: github.com/tensorium-labs/tensorium-core/issues. Include your OS version, the binary version (from release tag), and steps to reproduce.