Start mining

Three ways in

All three compute the same hash and submit to the same contract. They differ only in how fast they search, and every one of them needs a funded wallet — a submission costs an ETH fee on top of gas.

hashrateneedsgood for
Browser30 MH/s on WebGPUnothingtrying it in a minute
CLI475 MH/s on CUDAa Rust toolchainactually mining
Agentthe same as the CLIan MCP clienthands-off operation

§1

Mine with the CLI

The fastest of the three. Needs a Rust toolchain; everything else it installs itself.

  1. 1

    Install

    One command. Nothing to clone.

    shell
    cargo install --git https://github.com/noncepow/nonce-miners nonce-miner
  2. 2

    Make a wallet

    The key is encrypted with a password into a standard V3 keystore at ~/.nonce/keystore.json — the same file geth and MetaMask read, so it is not trapped here.

    shell
    nonce-miner wallet new

    There is no copy of the password anywhere. Lose it and the key goes with it.

  3. 3

    Fund it

    Send the address some ETH. Every submission costs a fee on top of gas, so a wallet with none cannot mine at all.

  4. 4

    Check before you spend

    Read-only. It answers, in one place, every question that otherwise costs you a failed run: chain reachable, contract present, key usable, how many submissions the balance covers, and whether a GPU is actually available.

    shell
    export NONCE_RPC_URL=https://rpc.testnet.chain.robinhood.com
    export NONCE_ADDRESS=0x2002DF653B8Fb6Eb5009D7e4FB59635D62211305
    
    nonce-miner status
  5. 5

    Mine

    shell
    nonce-miner --gpu     # CUDA
    nonce-miner           # all cores

    The GPU path needs an Nvidia driver and nvrtc — no CUDA toolkit, because the kernel is compiled at runtime.

§2

Run with an agent

Eight MCP tools: status, protocol info, start and stop, claim, stake, unstake and strategy. Works with any MCP client — Claude Desktop, Claude Code, Cursor.

  1. 1

    Add the server

    Nothing to install: npx fetches it. Put this in your client's MCP configuration.

    mcp config
    {
      "mcpServers": {
        "nonce": {
          "command": "npx",
          "args": ["-y", "@noncepow/mcp-server"],
          "env": {
            "NONCE_RPC_URL": "https://rpc.testnet.chain.robinhood.com",
            "NONCE_ADDRESS": "0x2002DF653B8Fb6Eb5009D7e4FB59635D62211305",
            "NONCE_PRIVATE_KEY": "0x your key"
          }
        }
      }
    }

    Leave NONCE_PRIVATE_KEY out and the server still runs, read only — status and protocol info work, mining and claiming do not. That is the right way to try it.

  2. 2

    Give it a GPU

    On its own the server mines in-process at about 70 KH/s. If the nonce-miner binary is on PATH it drives that instead — 475 MH/s on a CUDA card. Rewards are split by score, so this is the difference between mining and appearing to.

    shell
    cargo install --git https://github.com/noncepow/nonce-miners nonce-miner
  3. 3

    Ask it to mine

    In plain language. It will report the hashrate, your share of the last epoch, and what is still unclaimed.

    prompt
    Check the NONCE protocol status, then start mining on the GPU.

§3

Mine in the browser

Nothing to install. Connect a wallet on the front page and press start — it uses WebGPU where the browser has it, and falls back to worker threads where it does not.

The check runs your browser's kernel against 64 digest vectors the contract itself produced. A kernel that disagrees by one byte finds solutions the contract rejects every time, which reads as bad luck and costs a fee on each attempt.

Before you commit hardware

Rewards are split among everyone who submits in an epoch, so what you earn depends on how many others are mining and on a price nobody can predict. Per-epoch variance is large, because the score of a best-of-N hash search is heavy-tailed: most epochs pay below average and a few pay far above it. Read the limitations first.