igneum/docs/design/miner-dev-fee.md
igneum-labs 7eed16a29a Pre-public scrub, the text pass (7 October 2026, 19:5x UK): no founder name, personal login, earlier business or personal address in any tracked text file, and a gate check that keeps it so
The sweep (main's item 1): 199 tracked text files, 783 lines. The founder's full name, first name and possessive become "the founder" (sentence starts capitalised); the lowercase operating-system user name in WSL paths and commands becomes <user>; the second owner login becomes "the second owner login"; the three earlier businesses and the two other brands become "the other business", "the earlier entity", "the earlier business" and "another brand"; the Chrome profile rule names the igneum.network profile, not the profile's label. The standing commit login igneum-labs is not a founder term here: the fresh-repository step renames it in the history (docs/plans/history-rewrite.md, tools/repo/fresh-repo.sh).

The patterns never appear in plain text in the tree (a plaintext list would be the hit): tools/ci/founder-strings.b64 (perl regex, tab, a sample per row) is read by tools/ci/founder-strings-check.sh (every tracked text file, perl, known-failed first: the self-test plants each row's sample in a fixture and the hit must name the file), by tools/community/discord-hooks.mjs (the guard's founder and business rows; the test takes its fixtures from the samples) and by tools/repo/fresh-repo.sh (the business names of the rewrite rules). site/forbidden-strings.txt carries the same patterns as b64: lines, decoded case-insensitive by site/scrub.mjs and tools/ci/launch-gates-check.mjs (whose fixture now plants an encoded made-up name). The check runs in the gate's tree checks on every merge.

Not in this commit, by main's word: the 105 commit messages and 40 personal-identity commits that need the history rewrite (listed, not run), and the secrets found by gitleaks over the history (reported with owners).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-07 18:39:50 +00:00

4.9 KiB

The miner software's dev fee

Decision (the founder, 4 October 2026, evening): the Igneum miner software takes a visible, switchable 1% dev fee, the norm for GPU miners (lolMiner, T-Rex). The protocol stays fee-free: no dev fund, no fee to any team, foundation or fund (CLAUDE.md, litepaper). This fee is the software's, like every third-party miner's, and it is documented as such.

Mechanism

Solo mining, no pool: the miner asks its node for block templates with a payout address. One template in 100 is requested with the dev payout address instead of the user's. The choice is a template counter, never a random draw, so it is exactly 1 in 100 and anyone can audit it from the source: template n (counting from 0) is a fee template when floor((n + 1) p / 100) > floor(n p / 100), which at p = 1 is the templates 99, 199, 299, ... Every template is mined for the same time, so fee blocks are p in 100 on average.

What changes on a fee template, and what does not:

Field User template Fee template
Coinbase extra data IGNA address (the execution-layer payout the chain pays) the user's --evm-address the dev address
Vote key hash (finality weight) the user's the user's, unchanged
UTXO-side coinbase script (--address, a label address with no key in the app) the user's the user's, unchanged

So a fee block still adds to the user's finality weight, and the only thing that moves is who the execution layer pays for that block.

Source: vendor/igneum-node-v4 branch dev-fee, igneum/miner/src/main.rs, section "Software dev fee" (DevFee, fee_slot, Identity::with_dev_fee_address, template(.., fee), submit(.., fee), payouts).

The flag, the lines, the counter

Where What
igneum-miner mine ... --dev-fee <percent> whole percent of templates; default 1; --dev-fee 0 turns it off
Start line, on dev fee 1% (1 block in 100) to 0x<address>; --dev-fee 0 turns it off
Start line, off dev fee off (--dev-fee 0); the default is 1% (1 block in 100) to 0x<address>
Start line, no release address (a build whose DEV_FEE_ADDRESS is not 40 hex; none since 5 October 2026) dev fee off: no release address is set (DEV_FEE_ADDRESS placeholder in igneum/miner/src/main.rs)
Per fee block accepted dev-fee block <hash>
Status line (CPU and worker modes) and MINER SUMMARY fee=N
igneum-miner payouts <grpc url> blocks per IGNA payout address over every block the node holds, with the share; the dev address is tagged (dev fee)

The app (Igneum Miner): Settings shows the same line next to the rewards address with a switch, stored in settings.json as dev_fee (default on); off passes --dev-fee 0. The dashboard's "your blocks" row shows the lifetime dev-fee block count; each fee block is also an event. The HiveOS package: DEV_FEE=0 in the Flight Sheet's extra config.

The addresses

Constant (igneum/miner/src/main.rs) Value Network
DEV_FEE_ADDRESS 0x7F45d7d7272e57639BeBb739A60B05bB2CD4C126: the founder's payout address from the Igneum Wallet, given 5 October 2026, EIP-55 checksum verified, on file at ~/.config/igneum/dev-fee-release.json; set on the fork's release-0.3.6 (commit cf369022). Were it ever not 40 hex the fee would be off outside the devnet and the miner would say so at start mainnet, testnet
DEV_FEE_ADDRESS_DEVNET 0xdfaea67368f3e3753397d878f97efe6aa8020c2e devnet and simnet only

The devnet address was generated on 4 October 2026 with the app's own key derivation (secp256k1, keccak of the uncompressed public key, app/igneum-app/src/keys.rs), checked against the known vector for key 0x01. The private key is held outside the repository (the maintainers' local secret store, mode 0600) and never in any commit. Devnet coins have no value and the devnet may be reset; this address is never a release address.

Tests and measurement

  • Unit tests (cargo test --release -p igneum-miner dev_fee_tests): exactly 100 fee templates in 10,000 at 1%, at positions 99, 199, ...; 0 at --dev-fee 0; 2, 3, 5, 10, 50 and 100% exact over 10,000; a fee template carries the dev IGNA address and the user's unchanged key reveal; the release address pays the fee on mainnet and testnet (and never the devnet address), and a non-hex placeholder keeps the fee off.
  • Test network: node tools/dev-fee/run.mjs (two nodes on 29900+, fast-time profile, proof of work skipped and the genesis target at the floor, three CPU stub miners: two at the default fee and one control at --dev-fee 0), then igneum-miner payouts on the peer node. The numbers are in docs/bench-log.md under "the software dev fee measured".

Public text

  • Litepaper, "For miners", "What a miner's hour looks like": the fee paragraph.
  • Homepage, the miner section's download note.
  • docs/fud-ledger.md: entry E18 (software-level, switchable, the audit).