Releases: RaoFoundation/subtensor
Release list
v3.4.9-424
v3.4.8-423
What's Changed
- Governance refactoring (V1 -> V2) by @shamil-gadelshin in #2620
- Added dev test for the setCode tx by @evgeny-s in #2628
- Governance update 1 by @shamil-gadelshin in #2627
- Referenda benchmarks by @l0r1s in #2626
- Add getNetworkRegistrationBlock view to SubnetPrecompile by @fine135 in #2674
- Remove the per-block staking operation rate limiter by @evgeny-s in #2712
- Pallet advanced limit orders by @girazoki in #2554
- Adapt rate limits after disabling in-block staking rate limit by @evgeny-s in #2720
- [Re-merge] Fix for arithmetic side effect by @evgeny-s in #2722
- Re-enable balancer by @gztensor in #2505
- fix failed eco test by @open-junius in #2725
- Governance by @l0r1s in #2198
- Remove CreateSignedTransaction deadcode by @l0r1s in #2479
- Optimize locks to avoid full iteration of lock map by @gztensor in #2701
- Fix issues in conviction by @gztensor in #2744
- fixes pallet limit orders by @girazoki in #2732
- Add
StakeInfoRuntimeApi.get_stake_availability_for_coldkeysruntime API by @basfroman in #2742 - Fix & Add Benchmarks by @JohnReedV in #2749
- Improve Efficiency of Timelocked Commitments by @JohnReedV in #2751
- fix pallet_subtensor_swap weight info by @JohnReedV in #2752
- Added eco-tests for indexer + CI job to notify the indexer team by @evgeny-s in #2624
- fix timeout in ts e2e dev test by @open-junius in #2756
- Remove pallet-registry from runtime by @l0r1s in #2747
- record db cost for precompile view functions by @open-junius in #2757
- fix eco test with two deprecated variables by @open-junius in #2762
- Adds
min_childkey_taketo hyperparams v3 by @thewhaleking in #2761 - [Feature] Configurable Tempo & Owner-Triggered Epochs by @evgeny-s in #2638
- Fixed dev tests by @evgeny-s in #2776
- Added a possibility to configure max epochs per block. by @evgeny-s in #2770
- pallet-signed-voting extracted from governance umbrella PR by @l0r1s in #2713
- Switch subnet emissions to price-based shares by @gztensor in #2779
- Convert transaction extensions to dispatch extensions by @l0r1s in #2773
- feat(chain-extensions): add read-only WASM queries for subnet registration, coldkey lock, and stake availability by @silva-fj in #2768
- Fix contract tests balance checks + benchmarks by @l0r1s in #2783
- Back propagate new subnet emission off by @gztensor in #2788
- migrate contract e2e by @open-junius in #2716
- Girazoki fix pallet limit orders bugs by @girazoki in #2791
- Back propagate new subnet emission off - clean merge by @gztensor in #2790
- Postpone gov preparation by @l0r1s in #2796
- mainnet deploy June 24th, 2026 by @sam0x17 in #2769
New Contributors
Full Changelog: v3.4.7-422...v3.4.8-423
v3.4.7-422
What's Changed
Full Changelog: v3.4.6-421...v3.4.7-422
v3.4.6-421
What's Changed
Full Changelog: v3.4.5-419...v3.4.6-421
v3.4.5-419
Security hotfix — resolves a set of findings from a recent security audit, primarily hardening the proxy permission system along with several hotkey-swap and staking edge cases. Mainnet upgraded to spec_version 419. All findings were reproduced with regression tests before being fixed.
🔒 Security advisories
| Advisory | Severity | Summary |
|---|---|---|
| GHSA-m759-m8mv-q3m5 | 🟠 High | Restricted proxies (NonTransfer/NonFungible/NonCritical) can take over an entire coldkey via the announce/swap coldkey-swap lifecycle |
| GHSA-qh57-vpv2-3fvp | 🟠 High | NonFungible proxy denylist omits live swap_hotkey_v2 (call 72), letting a scoped delegate reassign a victim's hotkey identity |
| GHSA-xm63-2wwx-pm6w | 🟡 Moderate | Owner proxy except sudo_set_sn_owner_hotkey carve-out is bypassable via the duplicate alias sudo_set_subnet_owner_hotkey |
| GHSA-h98r-p37h-h4mv | 🟡 Moderate | set_weights/commit_weights family is Pays::No with the per-neuron rate limit enforced only in the dispatch body, enabling fee-free block-fill flooding |
| GHSA-6c95-q3r3-rgwq | 🟢 Low | Root cleanliness gate omits RootClaimed, letting a hotkey-swap merge inflate the claimed high-water mark and under-pay future root dividends |
| GHSA-vpjj-mhgr-cphg | 🟢 Low | Per-subnet hotkey-swap cooldown (HotkeySwapOnSubnetInterval) is bypassable via the all-subnets swap path |
| GHSA-rhmm-mqf8-v6gv | 🟢 Low | StakingColdkeysByIndex / NumStakingColdkeys grow monotonically and are never pruned |
| GHSA-wc2g-rc74-vgw3 | 🟢 Low | Per-subnet ChildkeyTake is not migrated during hotkey swap, silently resetting it |
What's changed
- Proxy filter hardening — cover the coldkey-swap lifecycle,
swap_hotkey_v2, and thesudo_set_subnet_owner_hotkeyalias in the restricted-proxy filters (#5, #6, #7) - Weight-setting throttle — enforce the per-neuron
set_weights/commit_weightsrate limit pre-dispatch (#10) - Hotkey-swap correctness —
RootClaimedwatermark accounting (#14), per-subnet swap cooldown on the all-subnets path (#15), per-subnetChildkeyTakemigration (#18), plus review follow-ups mergingRootClaimedby sum and extending the cooldown to parent-key subnets (#22) - Storage housekeeping — prune the staking-coldkey index when no longer needed (#16)
- Bump
spec_versionto 419
Full Changelog: v3.4.4-417...v3.4.5-419
v3.4.4-417
Hotfix: adds a check that ensures that during a hotkey swap, the new hotkey already exists globally and is owned by corresponding coldkey
Full Changelog: v3.4.3-416...v3.4.4-417
v3.4.3-416
What's Changed
Full Changelog: v3.4.2-415...v3.4.3-416
v3.4.2-415
What's Changed
- Expose proxy type filtering rules via runtime api by @basfroman in #2703
- Fix chain buys accounting by @sam0x17 in #2706 (hotfix)
Full Changelog: v3.4.1-413...v3.4.2-415
v3.4.1-413
What's Changed
- add min stake const by @open-junius in #2684
- Crowdloan optional per-contributor maximum contribution and exclusive call/target address. by @l0r1s in #2697
- Get Hyperparams v3 by @thewhaleking in #2699
- Subnet Protocol Alpha Accounting by @JohnReedV in #2645 (hotfix)
Full Changelog: v3.4.0-411...v3.4.1-413
v3.4.0-411
What's Changed
- fix benchmark remove stake by @open-junius in #2602
- Port more precompile tests to Rust by @ales-otf in #2616
- Port more precompile tests to Rust by @ales-otf in #2622
- fix the admin window not set in e2e by @open-junius in #2619
- Bugfix for:
hotkey_swapon a single subnet wipes all root dividend accumulations by @evgeny-s in #2527 - PalletId-based subnet account Ids maintain subnet TAO reserves by @gztensor in #2524
- Port more precompile tests to rust by @ales-otf in #2623
- fix multiplier event type by @JohnReedV in #2621
- Feat/recycle burn chain exts by @LandynDev in #2560
- add origin in extension by @open-junius in #2550
- Convictions (stake locks) by @gztensor in #2599
- feat: net TAO flow for emission allocation by @igoraxz in #2634
- net tao flow followup by @JohnReedV in #2635
- Make instant seal work and added interval by @girazoki in #2589
- Conviction updates by @gztensor in #2632
- Pallet alpha-assets by @gztensor in #2629
- Count burned registration in tao inflow by @gztensor in #2640
- No initial owner alpha by @gztensor in #2642
- Lock transfers by @gztensor in #2641
- Record TAO in-flow on burned neuron registration by @gztensor in #2571
- remove double record tao flow by @open-junius in #2644
- Remove duplicate migration by @evgeny-s in #2617
- remove subnet owner check by @open-junius in #2631
- Recycle logging by @gztensor in #2646
- add test and fix parameter order by @open-junius in #2630
- Clear Vali Trust/Permit in
clear_neuronby @JohnReedV in #2653 - Subnet Emission Owner Toggle by @JohnReedV in #2657
- Allow subnet owners to set minimum childkey take per subnet by @gztensor in #2660
- fix(weights): include netuid in BatchWeightItemFailed event by @RUNECTZ33 in #2654
- extend subtensor extension by @open-junius in #2569
- Handle tao transfer errors in root claim by @gztensor in #2671
- Handle swap errors when taking fees in alpha by @gztensor in #2672
- Drain protocol ema when net_flow disabled by @gztensor in #2673
- Conviction v2 by @gztensor in #2658
- Temporarily disable stake locking by @gztensor in #2656
- Implement OnTransactionPayment for EVM pallet by @gztensor in #2650
- Add migration to fix TI after evm fees divergence by @gztensor in #2670
- Subnet owner capability to disable and enable owner cut by @gztensor in #2648
- feat: normalize protocol cost in net flow EMA by @igoraxz in #2675
- add test normalization_keeps_eligible_subnet_count by @JohnReedV in #2677
- Try-runtime fixes: TI check and conviction v1 removal by @gztensor in #2683
- Disable TI checks in try-runtime by @gztensor in #2681
- Remove deprecated conviction maps by @gztensor in #2682
- Ai reviewer by @sam0x17 in #2668
- Conviction updates by @gztensor in #2687
- Only Root Toggles Subnet Emissions by @JohnReedV in #2694
- 60 day unlock and maturity rate by @gztensor in #2696
- add atomic extension check by @open-junius in #2669
- No default auto-lock by @gztensor in #2695
- Set unlock and maturity rates to 90 days half life by @gztensor in #2698
- mainnet deploy 5/27/2026 by @sam0x17 in #2643
New Contributors
- @LandynDev made their first contribution in #2560
- @igoraxz made their first contribution in #2634
- @girazoki made their first contribution in #2589
- @RUNECTZ33 made their first contribution in #2654
Full Changelog: v3.3.15-402...v3.4.0-411