Mine on the public testnet
This is an operator path for the testnet, not a mainnet mining-pool protocol or
proof that an external pool is currently connected. The network uses RandomX for
miner blocks. The separate hash-commitment lane uses SHA-256; it is not the miner
algorithm. The bundled testnet configuration sets 40 blocks per epoch, an initial
difficulty of 1, and a 60-second target block time. Check modal net info testnet
for the configuration shipped with your binary before operating.
Start a minerā
Install the full modal binary and create a fresh identity as in the
join guide. Keep my-node/node.modal_passfile private.
modal node create --dir ./my-node --testnet
modal node run-miner --dir ./my-node --no-tui
The generated config includes the published bootstrap peers. Open TCP 4040 for
inbound peers. run-miner mines and gossips blocks; use run-hybrid instead if
this node should also run a sequencer. Do not use a Foundation node template as
an independent operator identity.
From a second node directory, ping a bootstrapper using its full address
from modal net info testnet (including /p2p/<peer-id>):
modal node ping --dir ./ping-node --target '<bootstrapper-multiaddr>'
A successful ping proves transport to that peer, not that your blocks became canonical. Check the miner logs for mined blocks, then compare the chain tip and recent blocks with a separately running observer. Keep a dated run log if you are publishing evidence of an external join. The network checklist keeps that evidence open until an external trace exists.
Nominate a sequencerā
By default each mined block nominates the miner's own peer ID. To nominate
other running nodes, stop the miner and add miner_nominees to
./my-node/config.json, preserving the other fields:
{
"miner_nominees": [
"<sequencer-peer-id-1>",
"<sequencer-peer-id-2>"
]
}
Start run-miner again. For a nonempty list, the nominee for a block at index
i is miner_nominees[i % list_length]. The peer IDs must belong to nodes
prepared to sequence; nomination does not start those processes for you.
Hybrid selection uses the canonical mining chain from epoch Nā2 to choose
sequencers for epoch N, so nomination is not immediate. An empty or absent list
nominates the miner's own peer ID. The node's
miner nominee implementation
is the source for this selection rule.
The testnet's named validators are a separate prefix-certificate role;
run-validator is not the mining join path. Mining a block also does not
immediately pay spendable MOD: the MOD contract mints after the chain is two
epochs past the block. Follow the wallet receive flow
to claim the payout for your nominated key.