Argonmine

github.com/argonchain-source/argonchain — 2034424b4e913deb227cf89852d45f775590aac5

Audit date ·

Audits are prepared by the site owner with a self-hosted (local) AI, checked against the exact commit above, and hand-edited before publishing. This is not financial, legal, or investment advice. Read it as one person's notes on one commit at one date. Do your own research.

This is a point-in-time review of code quality and tokenomics at the commit above, not a safety certification. Projects can change after this date. Check for newer releases or a newer audit before relying on these scores.

A Go layer-1 with a clean money path and no premine. The label is PROBLEMS FOUND because of a coinbase accounting bug that left about 330 ARG unminted, service keys held in host environment variables, and a bridge vault whose owner is one project wallet that can pause and hand over without a timelock.

Code 7.5 · Tokenomics 8 · Risk 7.5 · PROBLEMS FOUND

🪙 ARGONMINE (ARG) — Code & Tokenomics Audit

Repo: argonchain-source/argonchain at commit 2034424b4e913deb227cf89852d45f775590aac5 (Go node, explorer, bridge, swap service, app)
Date: 2026-11-01 Scope: code review of the money path (subsidy, treasury share, coinbase assembly, vault contract powers, service key custody), tokenomics, live network numbers from explorer.argonmine.com/api/stats and /api/pool/stats fetched 2026-11-01. Tests were read, not executed; decoders and the vault contract not cryptanalytically re-proved.

🎯 Verdict: MIXED (code 7.5 / tokenomics 8.0, band 7.5 = MIXED, raised by the instant override)

Argonmine is a Go layer-1 with a genuinely clean money path: the subsidy is a pure function of height, the treasury share is integer arithmetic inside the block, no coin is minted outside Subsidy(height) + fees, the genesis block pays nobody, and the vault keeps the stablecoin backing separate from its fee surplus. Storage and transport look competent: wallet seeds are Argon2id-deriving a key for XChaCha20-Poly1305, decoders are canonical and fuzz-covered, and 106 test files exist including end-to-end runs with real guardians.

Two things put it here. A coinbase accounting bug ran on mainnet for about 660 browser-mined blocks: the treasury share was taken twice, so the miner got 49.0 instead of 49.5 and 0.5 ARG per block was never minted — about 330 ARG that will not exist. The fix is in this commit, but the explorer still reports the theoretical schedule as supply, so the number a reader sees is about 330 ARG above what actually exists. And the money on the EVM side sits under one project wallet: the vault's onlyOwner can pause the vault and hand the vault to a new owner immediately, with no timelock, while the guardian veto only covers proposals that are already timelocked. A single key backs uARG, and the roadmap states that every change the owner makes waits 7 days while the contract makes pause() and transferOwnership() immediate — that contradiction is the instant override, so the label here is PROBLEMS FOUND, even though the 7.5 score falls in the MIXED band.

🔑 At a glance

FieldValue
ProjectArgonmine (ARG)
Chain / consensusOwn L1, Argon2id 8 MiB PoW, ASERT, 10-minute blocks
Code score7.5 / 10
Tokenomics score8.0 / 10
Risk score7.5 / 10 (the lower of the two)
VerdictMIXED (instant override; the band for 7.5 is MIXED)

Live numbers (fetched 2026-11-01): height 2,609; displayed supply 130,450.00 ARG; network hashrate 15.06 MH/s; treasury address balance 1,374.99999338 ARG (1,155.00 from the rule over blocks 300-2609, plus 219.99999338 from fee routing); pool 25 blocks found, 873.25763679 ARG paid, 8.83239101 ARG owed, 8.91001861 ARG pool fees, 231 active miners.

🔗 Links & sources

WhatLinkStatus
🏠 Homepage✅ fetched
💻 Source✅ cloned in this audit
📄 Docs / spec✅ fetched
🔎 Explorer✅ live API read
📣 Announcement✅ fetched
💬 Socialsnot opened in this pass

🧮 Risk score inputs

#Findingfile:lineReachableDeductionApplies to
1Treasury share of the block subsidy is 1%, taken inside every block from height 300, paid to one project-held key with no on-chain spending rule. Rate is below the 3% band used in this corpus (3% → −1, 10% → −2, 75% → −3; 1% placed at −0.5 by inference)consensus/treasury.go:22, consensus/params.go:125live every block−0.5tokenomics
2The bridge vault is governed by one project wallet (onlyOwner). pause() and transferOwnership() are immediate — no timelock; the guardian veto only applies to already-timelocked proposals. Mitigations measured: the backing (obligations) can never be swept as surplus, most owner changes carry a 7-day timelock (up to 30 days), releases need a guardian thresholdcontracts/Vault.sol:313, 369, 681, docs/BRIDGE.md:160live (uARG redemption path)−1.5tokenomics
3A coinbase accounting bug ran on mainnet from block 300 for about 660 browser-mined blocks: the treasury share was taken twice, the miner got 49.0 instead of 49.5, and 0.5 ARG per block was never minted — about 330 ARG that will not exist. Fixed at this commit (cmd/argonmine-explorer/work.go:362 refuses a template below the subsidy, miner.AssembleFromTemplate pays the treasury itself), and the incident is recorded in docs/SECURITY-REVIEW.md:58-64. The explorer's supply figure is the theoretical schedule, not the outputs, so the number shown is about 330 ARG above what existscmd/argonmine-explorer/work.go:362, cmd/argonmine-explorer/index.go:1181-1195live chain state, fixed path−1.0code
4Service key custody: the pool wallet and the swap service run from mnemonics read from the host environment (POOL_MNEMONIC, SWAP_MNEMONIC) plus a password variable. These single keys hold miner balances and swap funds on public hosts. User wallets are encrypted at rest, so this is the service side, not the user sidecmd/argonmine-explorer/main.go:222, cmd/argonmine-swap/main.go:89live (every payout)−1.0code
5No CI in the repo: no workflow file, only deploy/docker-compose.yml. 106 test files, including fuzz targets for every decoder and end-to-end guardian runs, exist but nothing runs them automaticallyrepo root, deploy/docker-compose.yml, consensus/fuzz_test.gorelease path−0.5code
code deductions, one at a time:
  1.0 -> 2.0 -> 2.5
tokenomics deductions, one at a time:
  0.5 -> 2.0

code_score       = 10 − (1.0 + 1.0 + 0.5)  = 7.5
tokenomics_score = 10 − (0.5 + 1.5)         = 8.0
risk_score       = min(7.5, 8.0)            = 7.5

Band check: 7.5 sits in 3.0-7.9, which is MIXED. The verdict is MIXED because an instant override fires: docs/ROADMAP.md:307 states that "Every change the owner makes to a vault waits 7 days", and the contract it describes does not do that. contracts/Vault.sol:36 and :37 list pause and withdrawSurplus as immediate owner actions, :313 is withdrawSurplus under onlyOwner, :369 is pause() open to the owner and every guardian, and :677 and :681 make transferOwnership immediate and not timelocked. The project's own bridge page states the immediate paths (docs/BRIDGE.md:160), so the roadmap line contradicts the code. Scores stay at code 7.5 / tokenomics 8.0 — the contradiction changes the label, not the numbers. The treasury rule is a soft fork by design (a pre-rule node still accepts a block that omits the treasury output) — stated as a fact, not a deduction.

✅ Verified good (code)

🗺 Roadmap (context, not scored)

Read from docs/ROADMAP.md (page last updated 2026-10-28). Plans are promises, not code, so no
plan moves a score. What the roadmap says about the two scored items:

The only claim the roadmap makes that the contract contradicts is the 7-day rule for every owner
change (docs/ROADMAP.md:307 against contracts/Vault.sol:36, :37, :313, :369, :681). That is what raises this card to
MIXED.

🔍 Open questions (not scored)

Files we opened

consensus/treasury.go:22

consensus/params.go:125

contracts/Vault.sol:313

contracts/Vault.sol:369

contracts/Vault.sol:681

cmd/argonmine-explorer/work.go:362

cmd/argonmine-explorer/index.go:1181-1195

cmd/argonmine-explorer/main.go:222

cmd/argonmine-swap/main.go:89

wallet/store.go:18

consensus/fuzz_test.go

docs/SECURITY-REVIEW.md:58-64

docs/BRIDGE.md:160

Every file listed here was opened by us during the audit. Nothing here is a guess.

Back to Projects