DocsMining Guide
Testnet only. TXM has no monetary value. The chain may be reset before mainnet. Mine to test the software and help find bugs.

Requirements

ComponentMinimumRecommended
OSLinux x86_64Ubuntu 22.04 / 24.04 LTS
CPU2 cores4+ cores
RAM512 MB2 GB+
Disk1 GB free10 GB+
Port23333 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

CPUThreadsEst. Hashrate~Block Time (diff 26)
Basic VPS (1 vCPU)11–3 MH/s25–70s
Mid VPS (4 vCPU)45–15 MH/s5–15s
i5-13600K1450–100 MH/s<2s
Ryzen 9 7950X1680–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.