MINING

Mining is live. Two ways, both at once.

kHeavyHash seals every block. Work already being done for Bitcoin Cash, Litecoin, Ravencoin or Zcash can commit to Kronex as well and be paid for it — without giving up the parent-chain reward and without changing what the hardware does.

testnet Both run on the public testnet today, chain ID 5768. This is the working core of the chain; the marketplace above it is in development.

01 · TWO WAYS TO MINE

Direct and merged

They are not alternatives. Both run at once, and both are paid from the same reward pool.

AlgorithmWhat you mineWhat you earn
DirectkHeavyHashKronex blocksThe block reward
MergedSHA256d · Scrypt · KawPoW · EquihashBitcoin Cash, Litecoin, Ravencoin or Zcash blocksWorkshare rewards, on top of the parent-chain payout

Mining guideMerged miningPool integration

02 · DIRECT MINING

kHeavyHash, unchanged

The pre-image matches Kaspa byte for byte, so existing kHeavyHash miners and hardware mine Kronex with no firmware change. Only the source of work differs.

Works todaytestnet

  • GMiner
  • lolMiner
  • BzMiner
  • IceRiver
  • Goldshell

A node hands out work only when it is building blocks. The reward goes to the node's etherbase; a stratum login is only an accounting label as far as the chain is concerned.

NODE — BUILD TEMPLATES WITHOUT MINING ON THE NODE'S OWN CPU

krnxd --http --http.api eth,krnx,net,web3 --http.addr 127.0.0.1 --http.port 8545 \
      --mine --miner.threads 0 --miner.etherbase 0xYOUR_ADDRESS --miner.recommit 3s
krnx_getWork
an 11-element array: the work package
krnx_submitWork
true / false
krnx_submitHashrate
true, for the node's own stats

All three are mirrored under eth_ with the names stock go-ethereum uses, so existing ethash pool code needs only its hashing swapped out.

REAL CODE — PASTE IT INTO A TERMINAL AGAINST YOUR NODE

curl -s -X POST http://127.0.0.1:8545 \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"krnx_getWork","params":[]}' \
  | jq -r '.result[0,2,3]'

03 · TWO THINGS THAT BREAK INTEGRATIONS

Read this before you write a pool

Index [10] is milliseconds
It is the TIME of the pre-image, already in the right unit. Parse it as a 64-bit integer and pass it through unchanged — converting it, or storing it in a uint32, produces work nobody can solve.
Share and consensus difficulty are 2^32 apart
Index [2] is the exact target of the current work; the stratum scale is (2^224 − 1) ÷ difficulty. Converting network difficulty by hand is how a pool ends up counting hashrate four billion times too low.
MixDigest must be zero
kHeavyHash has no DAG, and consensus rejects a non-zero digest.

04 · MERGED MINING

Four parent chains

A merge-mining proof rides inside the block and earns rewards; it does not decide which block is valid. Every Kronex block is still sealed by kHeavyHash.

Parent chainIDAlgorithmHeaderSubmit method
Bitcoin Cash1SHA256d80 byteskrnx_submitShaBlock
Litecoin2Scrypt (N=1024, r=1, p=1)80 byteskrnx_submitScryptBlock
Ravencoin3KawPoW120 byteskrnx_submitKawpowBlock
Zcash4Equihash (200,9)1487 byteskrnx_submitEquihashBlock

Dogecoin rides along on the Litecoin side, on the same Scrypt work. Each chain carries its own difficulty state and its own reward curve. Losing one parent chain reduces the work flowing into Kronex; it does not stop the chain.

Parent-chain work
KRNXAuxRoot in the pre-image
Kronex block
Fig. 01 — merged work

The payload reduces to one header field, KRNXAuxRoot, and that field is part of the proof-of-work pre-image — not just of the block hash. Rewriting who gets paid costs a re-mine.

The proofs are called workshares: the parent-chain header, the coinbase transaction that commits to Kronex, and the Merkle path binding one to the other. Anyone can verify a workshare from the data it carries, and no workshare can be forged more cheaply than the hashrate it claims.

Merged miningWorkshares

05 · FOR POOL OPERATORS

Four methods, nothing else

Your miners need no changes — this is an ordinary SHA256d, Scrypt, KawPoW or Equihash header. Only the source of work is different. A parent-chain node is not required.

krnx_getMiningInfo
the window, in blocks, in which a share can still be included — inclusionWindowBlocks, 5 today
krnx_getBlockTemplate
work: rules, your KRNX coinbase address, extranonce, a 30-byte extradata tag
krnx_submit…Block
share — Sha, Scrypt, Kawpow or Equihash
krnx_getWorkshareReward
reward lookup by workshareId, optional

The reward lands on the KRNX address the pool names in the template request — a 20-byte 0x address, never a parent-chain one. The parent coin does not go to the pool and parent transactions are never handed out. Complete client implementations exist in Go, Rust, Node.js and Python.

Pool integration — the full node-to-stratum contractMining pool guide

06 · GETTING PAID

One reward pool

Workshares in a block share the reward pool with the sealer and any uncles.

Block rewards, recipient distribution and coin locking are implemented on the testnet and documented. To confirm a specific share was credited, call krnx_getWorkshareReward with the workshareId recorded at submit time. The reward curve is configured per parent chain.

RewardsWorkshares

07 · WHAT EXISTS TODAY

What exists today

Network
public testnet · chain 5768
RPC
https://rpc.kronex.network
Explorer
https://explorer-testnet.kronex.network
Mainnet
chain 5769 · not launched

Testnet assets have no value. The network has not been reset yet but may be, and a reset destroys testnet state. Mainnet has a chain ID and no blocks.

Hashpower Market — the buyer's view, planned →Hashpower Providers — the supply side, planned →