Skip to main content
Kronex can be mined two ways, and they are not alternatives — both run at once. This page covers direct mining. For merged mining, read Merged mining for how it works and Pool integration for the full node-to-pool contract. The short version: work already being done on one of those four chains can commit to Kronex as well and be paid for it, without giving up the parent-chain reward and without changing what the hardware is doing.

Direct mining

Kronex is sealed with kHeavyHash. The pre-image matches Kaspa byte for byte, so GMiner, lolMiner, BzMiner, IceRiver and Goldshell hardware all mine Kronex with no firmware change. Only the source of work differs.

What the node must be doing

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.

Three methods

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

Two things that break integrations

The timestamp is in seconds. Kaspa headers use milliseconds. Index [10] of the work package is the header timestamp in seconds, and it is the TIME of the pre-image. Multiplying it by 1000 produces work nobody can solve.
Share difficulty and consensus difficulty are 2^32 apart. Use the boundary at index [2], which is already 2^256 / difficulty, instead of converting network difficulty yourself.
MixDigest must be zero — kHeavyHash has no DAG, and consensus rejects a non-zero digest.

Running a pool

The full node-to-stratum contract, including the kaspa stratum dialect, the pre-image construction, per-connection extranonce handling and worked code examples, is in the pool operator reference.