⛏ Mining
Mining Guide
Start mining TXM with your CPU. Any Linux machine with 2+ cores can mine on the current testnet.
Testnet only. TXM has no monetary value. The chain may be reset before mainnet. Mine to test the software and help find bugs.
Requirements
| Component | Minimum | Recommended |
|---|---|---|
| OS | Linux x86_64 | Ubuntu 22.04 / 24.04 LTS |
| CPU | 2 cores | 4+ cores |
| RAM | 512 MB | 2 GB+ |
| Disk | 1 GB free | 10 GB+ |
| Port | 23333 open (P2P) | — |
No GPU needed for testnet. Difficulty 26 targets CPU mining. GPU mining (difficulty 36+) comes in Phase 6 with a CUDA miner.
Installation
One-line installer
bash
curl -fsSL https://raw.githubusercontent.com/rygroup-dev/tensorium-core/main/install.sh | bash
Handles binaries, wallet creation, chain init, seed node sync, and optional systemd setup automatically.
Manual download
bash
RELEASE="v0.1.1-testnet"
BASE="https://github.com/rygroup-dev/tensorium-core/releases/download/${RELEASE}"
curl -fsSL -o tensorium-node "${BASE}/tensorium-node-linux-x86_64"
curl -fsSL -o txmminer "${BASE}/txmminer-linux-x86_64"
curl -fsSL -o txmwallet "${BASE}/txmwallet-linux-x86_64"
chmod +x tensorium-node txmminer txmwallet
sudo mv tensorium-node txmminer txmwallet /usr/local/bin/
Create a Wallet
bash
export TENSORIUM_WALLET=~/tensorium-node/wallet.json export TENSORIUM_WALLET_PASSPHRASE="your-strong-passphrase" mkdir -p ~/tensorium-node txmwallet create # Get your mining address ADDR=$(txmwallet getnewaddress) echo "Your address: $ADDR"
Back up wallet.json immediately. Losing this file or your passphrase means losing your funds permanently — no recovery is possible.
Node Setup
bash — init + sync
mkdir -p ~/tensorium-node && cd ~/tensorium-node # Initialize genesis (~30 seconds at difficulty 26) TENSORIUM_STATE=~/tensorium-node/state.json \ TENSORIUM_MEMPOOL=~/tensorium-node/mempool.json \ TENSORIUM_BANS=~/tensorium-node/banlist.json \ tensorium-node init # Sync from seed node TENSORIUM_STATE=~/tensorium-node/state.json \ TENSORIUM_MEMPOOL=~/tensorium-node/mempool.json \ TENSORIUM_BANS=~/tensorium-node/banlist.json \ tensorium-node sync 157.230.44.162:23333
bash — start RPC + P2P (two terminals or use nohup)
# Terminal 1 — RPC (keep on localhost only) TENSORIUM_STATE=~/tensorium-node/state.json \ TENSORIUM_MEMPOOL=~/tensorium-node/mempool.json \ TENSORIUM_BANS=~/tensorium-node/banlist.json \ TENSORIUM_PEERS=157.230.44.162:23333 \ tensorium-node rpc 127.0.0.1:23332 # Terminal 2 — P2P listener (open to network) TENSORIUM_STATE=~/tensorium-node/state.json \ TENSORIUM_MEMPOOL=~/tensorium-node/mempool.json \ TENSORIUM_BANS=~/tensorium-node/banlist.json \ tensorium-node p2p-listen 0.0.0.0:23333
Auto-start with systemd
bash
sudo tee /etc/systemd/system/tensorium-rpc.service <<EOF [Unit] Description=Tensorium Node RPC After=network.target [Service] Type=simple User=$(whoami) Environment=TENSORIUM_STATE=$HOME/tensorium-node/state.json Environment=TENSORIUM_MEMPOOL=$HOME/tensorium-node/mempool.json Environment=TENSORIUM_BANS=$HOME/tensorium-node/banlist.json Environment=TENSORIUM_PEERS=157.230.44.162:23333 ExecStart=/usr/local/bin/tensorium-node rpc 127.0.0.1:23332 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF sudo tee /etc/systemd/system/tensorium-p2p.service <<EOF [Unit] Description=Tensorium Node P2P After=network.target [Service] Type=simple User=$(whoami) Environment=TENSORIUM_STATE=$HOME/tensorium-node/state.json Environment=TENSORIUM_MEMPOOL=$HOME/tensorium-node/mempool.json Environment=TENSORIUM_BANS=$HOME/tensorium-node/banlist.json ExecStart=/usr/local/bin/tensorium-node p2p-listen 0.0.0.0:23333 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now tensorium-rpc tensorium-p2p
Start Mining
bash
YOUR_ADDRESS="txm1your_address_here" # Mine continuously — auto-detects core count txmminer 127.0.0.1:23332 "$YOUR_ADDRESS" # Specify thread count txmminer 127.0.0.1:23332 "$YOUR_ADDRESS" 8
Sample output:
txmminer rpc=127.0.0.1:23332 miner=txm1abc... threads=8 Press Ctrl+C to stop. mining height=151 bits=26 threads=8 … ✓ height=151 nonce=8432156 7.2s 9.31 MH/s mining height=152 bits=26 threads=8 … ✓ height=152 nonce=52341 0.1s 8.87 MH/s mining height=153 bits=26 threads=8 … ✓ height=153 nonce=71234812 61.3s 9.14 MH/s
Expected hashrate by CPU
| CPU | Threads | Est. Hashrate | ~Block Time (diff 26) |
|---|---|---|---|
| Basic VPS (1 vCPU) | 1 | 1–3 MH/s | 25–70s |
| Mid VPS (4 vCPU) | 4 | 5–15 MH/s | 5–15s |
| i5-13600K | 14 | 50–100 MH/s | <2s |
| Ryzen 9 7950X | 16 | 80–150 MH/s | <1s |
Keep miner running persistently
bash — systemd
sudo tee /etc/systemd/system/tensorium-miner.service <<EOF [Unit] Description=Tensorium CPU Miner After=tensorium-rpc.service [Service] Type=simple User=$(whoami) ExecStart=/usr/local/bin/txmminer 127.0.0.1:23332 YOUR_TXM_ADDRESS Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now tensorium-miner
Rewards
Every block you mine earns 15.23557865 TXM (Era 1). Rewards require 100 confirmations (~100 minutes) before they are spendable.
bash — check balance
export TENSORIUM_WALLET=~/tensorium-node/wallet.json export TENSORIUM_WALLET_PASSPHRASE="your-passphrase" export TENSORIUM_STATE=~/tensorium-node/state.json txmwallet balance
Track your mined blocks on the Explorer — search your txm1… address.
FAQ
Is testnet TXM worth anything?
No. Zero monetary value. Testnet exists to test the protocol and find bugs. Do not buy, sell, or trade testnet coins.
Do I need a GPU?
Not on testnet. Difficulty 26 is designed for CPU mining. GPU mining (difficulty 36+) is planned for Phase 6 with a CUDA miner.
Genesis init is taking too long — is it stuck?
Not stuck. At difficulty 26, genesis requires ~67M hash attempts on average. On a basic VPS (1–2 MH/s), this takes 1–3 minutes. On faster hardware it's faster. It will complete.
Balance shows 0 after mining a block?
Coinbase rewards require 100 block confirmations before they are spendable. Wait for ~100 more blocks, then check again.
When is GPU mining available?
Phase 6 — after Phase 4 (public testnet) and Phase 5 (stabilization) are complete. The CUDA miner will be released alongside a difficulty increase to 36–40 bits. See the Roadmap.
Found a bug. Where to report?
Open an issue on GitHub. Include OS, binary version, and steps to reproduce.