Releases: numen-network/numen
Release list
v0.2.0
Numen v0.2.0
Numen v0.2.0 tightens consensus, validator entry, governance submission, EVM precompile safety, fee calibration, and release reproducibility. It bumps the runtime spec version to 101 and the node package to 0.2.
⚡ What ships
🛡️ Harder PoScan and deterministic difficulty
PoScan now derives generator seeds from the full 32-byte digest, domain-separates the protocol version, pins shortcut-sensitive generation parameters, and binds work hashes to the block pre-hash. Difficulty is verified from the block timestamp inherent instead of the node's local clock, so live import and historical replay reach the same verdict.
🧾 Accountable governance and validator entry
Identity is now part of the runtime. Referendum submission requires a judged identity with a plaintext social channel, and validator entry uses the same qualified identity gate. Public participation is now attributable, not just stake-backed.
🔐 Validator stake
Validator stake remains locked until expiry across exit, pending-queue drops, and stake-exempt paths.
🔐 EVM precompile protections
The native balances ERC20 precompile now rejects delegatecall/callcode access, closing the inherited-caller-context hole.
💸 Fees aligned across Substrate and EVM
Transaction fees now calibrate weight and length pricing against Frontier's EVM gas price. Substrate calls no longer undercut equivalent EVM execution by orders of magnitude, and fee multiplier bounds were retuned around that anchor.
🧱 Runtime migration and weights groundwork
In-house pallets now carry StorageVersion, vesting is wired into the runtime, and benchmarked weights are generated for runtime and local pallets. CI also covers the runtime-benchmarks feature path.
What's Changed
Node
- Update testnet raw chain spec by @motoZ-crypto in #166
- Bump node to 0.2 by @motoZ-crypto in #167
Consensus & Mining
- Verify difficulty from the block timestamp instead of the local clock by @motoZ-crypto in #147
- Harden poscan against mining shortcuts by @motoZ-crypto in #150
Runtime & Pallets
- Remove treasury root spend origin left over from sudo removal by @motoZ-crypto in #144
- Add
StorageVersionto in-house pallets by @motoZ-crypto in #149 - Add vesting pallet to runtime by @motoZ-crypto in #151
- Add identity pallet to runtime by @motoZ-crypto in #152
- Stop the vesting lock from advertising a fee exemption by @motoZ-crypto in #162
Governance & Validators
- Require judged identity to submit referenda by @motoZ-crypto in #153
- Require a plaintext social channel to submit referenda by @motoZ-crypto in #156
- Harden validator entry by @motoZ-crypto in #157
- Keep validator stake locked until expiry by @motoZ-crypto in #159
- Add referendum test from submission to spend dispatch by @motoZ-crypto in #155
EVM & Fees
- Calibrate transaction fees against the EVM gas price by @motoZ-crypto in #148
- Reject delegatecall into the balances-erc20 precompile by @motoZ-crypto in #160
CI
- Harden pr ci gates by @motoZ-crypto in #154
- build releases with production flags by @motoZ-crypto in #163
- add benchmark weight pipeline by @motoZ-crypto in #164
Docs
- Fix incorrect block time in difficulty docs by @motoZ-crypto in #145
- Update readme and link community health files by @motoZ-crypto in #146
- Update build guide by @motoZ-crypto in #161
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Numen v0.1.0
First public testnet release · 2026-07-19
Numen is a Layer 1 blockchain powered by Proof of Scan, built with the Polkadot SDK.
⚡ What ships
🔭 Proof of Scan that scans 3D objects
Each candidate block defines a new 3D object to scan, and the work is the scan itself. The seal commits to what the scan saw, so grinding nonces means scanning objects, not just hashing headers.
👛 Mining without keys
The block header carries only a payout address, so the miner never holds a private key. Connect an external miner through the RPC endpoints mining_getTask, mining_subscribeTask, and mining_submitSeal, or let the node scan on every core with --node-miner.
🏁 Finality by GRANDPA
Proof of Scan produces blocks while the validator set finalizes them. Sessions rotate keys and im-online heartbeats track liveness. A validator seat requires a 1M NUMN lock over 180 days, with a genesis exemption list so the launch set can bootstrap the network.
🏛️ Governance with no owner key
There is no sudo pallet and there never was one. OpenGov referenda with conviction voting drive every change, a treasury with bounties and child bounties funds the work, and a prime account with only emergency powers for referendum cancel, referendum kill and treasury reject.
⚙️ Full EVM
The Frontier stack is integrated. Deploy Solidity contracts as is, and access the native NUMN balance from Solidity through an ERC20 precompile.
📇 Chain facts
| Consensus | Proof of Scan (PoScan) + GRANDPA finality |
| ss58 prefix | 14240 |
| Token | NUMN (mainnet) · tNUMN (testnet) |
| Decimals | 18 |
| Genesis issuance | 600M NUMN (400M treasury + 200M airdrop) |
| Contracts | EVM via Frontier |
🚀 Run it
wget https://github.com/motoZ-crypto/numen/releases/download/v0.1.0/numen-linux-x86_64.tar.gz
tar -xzf numen-linux-x86_64.tar.gz
cd numen-linux-x86_64
./numen --chain testnet-raw.jsonAdd mining to the same node
./target/release/numen --chain testnet-raw.json --miner <ADDRESS> --node-miner <THREADS>Tip
Generate the payout keypair offline, for example with subkey generate, and give the node only the SS58 address. Mining never touches a private key.
Build details live in how to build.
What's Changed
Node & Runtime
- Set ss58 prefix to 14240 by @motoZ-crypto in #125
- Add testnet and mainnet chain specs by @motoZ-crypto in #126
- Update genesis config presets by @motoZ-crypto in #128
- Replace airdrop address by @motoZ-crypto in #133
- Update node cli metadata by @motoZ-crypto in #135
- Add testnet raw chain spec by @motoZ-crypto in #136
- Rename runtime and node crates to numen by @motoZ-crypto in #134
- Rename crypto-node to numen in tooling and metadata by @motoZ-crypto in #140
- Fix clippy warnings by @motoZ-crypto in #143
Pallet
- Add validator stake exemption list by @motoZ-crypto in #127
- Set validator lock to 1M NUMN over 180 days by @motoZ-crypto in #129
- Update governance tracks by @motoZ-crypto in #130
- Add prime pallet for runtime upgrades by @motoZ-crypto in #131
- Retire sudo and point governance brakes at prime by @motoZ-crypto in #132
Test
- Add tests for untested runtime and node wiring by @motoZ-crypto in #139
CI
- Add testnet raw chainspec to release assets by @motoZ-crypto in #141
- Rename numen-node to numen by @motoZ-crypto in #142
Docs
- Sync github labels doc with actual repo labels by @motoZ-crypto in #137
- Update docs by @motoZ-crypto in #138
Full changelog all commits
Full Changelog: Alpha-0.4...v0.1.0
Alpha-0.4
What's New
Key Features
- Implement an on-chain treasury with bounties and child bounties for funding community work.
- Implement OpenGov governance over treasury and bounty spending, so referenda decide where the funds go.
- Rework PoW economics with a halving block reward, transaction fees paid to the miner and 10 second target blocks.
- Add multisig, proxy and utility pallets for shared account control, delegation and batched calls.
- Export miner-generated 3D models over RPC, so external tools can pull the geometry behind a block.
What's Changed
Pallet
- Add treasury with bounties and child bounties by @motoZ-crypto in #116
- Add opengov governance for treasury and bounty spending by @motoZ-crypto in #117
- Adjust gov curve parameters by @motoZ-crypto in #121
- Add multisig pallet to runtime by @motoZ-crypto in #123
- Add proxy and utility pallets to runtime by @motoZ-crypto in #124
PoScan
- Add support for exporting miner-generated 3d model via rpc by @motoZ-crypto in #113
Mining
- Fix mining subscription firing on a timer instead of on task change by @motoZ-crypto in #118
- Pow updates by @motoZ-crypto in #122
Test
- Add criterion benches for the block verification path by @motoZ-crypto in #114
- Rewrite the evm, governance and opengov tests by @motoZ-crypto in #119
Full Changelog: Alpha-0.3...Alpha-0.4
Alpha-0.3
What's New
Key Features
- Integrated the Spectral3D algorithm, implemented PoScan, and added mining support. #100 ; #101; #102; #103; #104; #105
What's Changed
Node
- Adopt Rust edition 2024 by @motoZ-crypto in #106
- Switch the node miner to PoScan by @motoZ-crypto in #109
PoScan
- Deterministic procedural geometry by @motoZ-crypto in #107
- Verify PoScan seals in the runtime by @motoZ-crypto in #108
- Freeze the PoScan work value across architectures by @motoZ-crypto in #110
- Drop sp-core from poscan so its work golden rides wasm by @motoZ-crypto in #111
Mining
- Support external miners over RPC by @motoZ-crypto in #112
CI
- Verify PoScan seals in the runtime by @motoZ-crypto in #108
- Drop sp-core from poscan so its work golden rides wasm by @motoZ-crypto in #111
Full Changelog: Alpha-0.2...Alpha-0.3
Alpha-0.2
What's New
Key Features
- Implement EVM integration via Frontier, including pallet-evm and pallet-ethereum runtime integration, Ethereum-compatible JSON-RPC support, and compatibility verification for mainstream tools such as Hardhat, Foundry, ethers.js/web3.js, and MetaMask. #8 ; #32 #33 #34
What's Changed
Pallet
- Integrate Frontier pallet-evm and pallet-ethereum into Runtime by @motoZ-crypto in #82
- Integrate Frontier Ethereum-compatible JSON-RPC layer by @motoZ-crypto in #84
- Vendor frontier precompile-utils framework by @motoZ-crypto in #85
- Use upstream precompile utils by @motoZ-crypto in #98
- Expose native UNIT as an ERC20 precompile by @motoZ-crypto in #86
- Expose session parameters for validator configuration by @motoZ-crypto in #91
- Add event for GRANDPA equivocation reporting and update tests by @motoZ-crypto in #89
- Add event for dropped pending validators and remove coin lock by @motoZ-crypto in #90
- Rename the validator pallet's ActiveValidators to DesiredValidators by @motoZ-crypto in #92
- Align equivocation tracking and kicking logic with offline implementation by @motoZ-crypto in #93
Test
- Add EVM developer tooling compatibility tests and pre-fund Frontier dev accounts by @motoZ-crypto in #87
- Add event for GRANDPA equivocation reporting and update tests by @motoZ-crypto in #89
- Add validator rejoin tests by @motoZ-crypto in #94
- Rewrite zombienet tests by @motoZ-crypto in #96
CI
- Split CI jobs into separate clippy and test stages by @motoZ-crypto in #83
- Increase timeout limit for clippy and test jobs in CI workflow by @motoZ-crypto in #88
- Fix GitHub action failures by @motoZ-crypto in #95
- Fix GitHub action failures by @motoZ-crypto in #97
- Rewrite release workflow by @motoZ-crypto in #99
Full Changelog: Alpha-0.1...Alpha-0.2
Alpha-0.1
What's New
Key Features
- Implement the core architecture with Polkadot SDK solochain template. #1 ; #9 #10
- Implement the PoW mining pipeline, including PoW block production, node-level mining flow, premature block rejection, and custom-address mining support. #2 ; #11 #12 #67 #70
- Implement ASERT difficulty adjustment, including pallet-difficulty runtime integration, ASERT difficulty calculation, block timestamp drift checks, and a re-anchoring mechanism after long mining outages to prevent chains of low-difficulty empty blocks after recovery. #3 ; #13 #14 #15 #16 #65
- Implement validator lifecycle management, including validator pallet runtime integration, validator staking, auto-renewal, voluntary exit, automatic unlock on expiry, offline eviction via ImOnline, cooldown-based rejoin after eviction, and onboarding flow for new validators. #6 #7 ; #22 #23 #24 #25 #26 #27 #28 #29 #31 #76
- Implement session-based validator rotation, including pallet-session runtime integration and SessionManager-based coordination between validator candidates and session transitions, so validator set changes take effect at session boundaries. #5 #7 ; #20 #21
- Implement GRANDPA finality and safety, including pallet-grandpa runtime integration, node-level GRANDPA voter integration, PoW fork choice constrained by finalized blocks, and GRANDPA equivocation detection with slashing support. #4 #7 ; #17 #18 #19 #30
Test
What's Changed
- Switch the polkadot sdk repository to github by @motoZ-crypto in #62
- Bump dependencies by @motoZ-crypto in #63
- Remove license info from the upstream template by @motoZ-crypto in #78
Node & Runtime
- Create Project Skeleton and Cargo Workspace by @motoZ-crypto in #38
- Configure Base Runtime by @motoZ-crypto in #39
- Implement PoW Placeholder Algorithm by @motoZ-crypto in #40
- Add dev mode miner account handling to command and service layers by @motoZ-crypto in #64
- Spawn GRANDPA observer task for non-validator nodes by @motoZ-crypto in #73
Pallet
- Integrate PoW into Node Service Layer by @motoZ-crypto in #41
- Integrate pallet-difficulty into Runtime by @motoZ-crypto in #42
- Integrate pallet-grandpa into Runtime by @motoZ-crypto in #45
- Integrate GRANDPA voter in service by @motoZ-crypto in #46
- Integrate pallet-session into Runtime by @motoZ-crypto in #48
- Integrate pallet-validator into Runtime by @motoZ-crypto in #49
- Integrate pallet-im-online into Runtime by @motoZ-crypto in #56
- Implement ASERT Difficulty Calculation Logic by @motoZ-crypto in #43
- Implement Block Timestamp Drift Validation by @motoZ-crypto in #44
- Implement Validator Lock by @motoZ-crypto in #50
- Implement Lock Auto-Renewal Mechanism by @motoZ-crypto in #52
- Implement Validator Exit Mechanism by @motoZ-crypto in #53
- Implement Lock Expiry Auto-Unlock by @motoZ-crypto in #54
- Implement SessionManager Trait for pallet-session Integration by @motoZ-crypto in #55
- Implement Offline Kick Logic by @motoZ-crypto in #57
- Implement GRANDPA Equivocation Detection and Kick by @motoZ-crypto in #58
- Implement custom address mining by @motoZ-crypto in #71
- Implement validator join & tools by @motoZ-crypto in #75
- Remove pallet template by @motoZ-crypto in #59
- Remove the default comments in the template by @motoZ-crypto in #60
- PoW fork choice respects GRANDPA finality by @motoZ-crypto in #47
- ASERT re-anchoring by @motoZ-crypto in #66
- Reject too early block by @motoZ-crypto in #68
- Update ASERT anchor height to u64 and propagate the change by @motoZ-crypto in #79
- Unify block time configuration and fix timestamp minimum period by @motoZ-crypto in #51
- Validator status cleanup by @motoZ-crypto in #61
- Validator genesis config by @motoZ-crypto in #72
- Override new_session_genesis to fix initial set by @motoZ-crypto in #74
- Prevent validator rejoin at cooldown boundary by @motoZ-crypto in #80
Test
- adjust validator LockDuration for testing by @motoZ-crypto in #69
- Rewrite tests and clean up clippy warnings by @motoZ-crypto in #81
- Set up Zombienet and integration testing by @motoZ-crypto in #77
Full Changelog: https://github.com/motoZ-crypto/crypto-node/commits/Alpha-0.1