#85·Runtime upgrade to 2400: WASM smart-contract decommission (step 1 of 2)

Democracy
14hrs 19mins ago
0
Proposed

This motion authorizes the enactment of runtime-2400 on Astar mainnet.

It is the first of two runtime steps decommissioning WASM (ink!) smart contracts, following the freeze enacted with runtime-2207 and the 90-day migration window that closed on 10 September 2026. It blocks all calls to pallet_contracts and settles every balance the pallet still holds, so those deposits can be returned to depositors before the pallet index is dropped. Astar moves from spec version 2300 to 2400.

The release also adds a missing XCM benchmark and hardens the XCM configuration. This is a runtime-only release; node clients are not impacted.

Preimage: 0xc4932e1655fa18a5a0cee29b40d61294b15d40c477fdfa988a113a93382e001f

Forum post: WASM smart-contract sunset on Astar and Shiden

Full changelog: runtime-2400 release notes

Required client version: none, node clients are unaffected by this release.

What changes in runtime-2400

  • All pallet_contracts calls are blocked (#1682). RuntimeCall::Contracts(..) is rejected by the runtime base filter. Existing WASM contracts can no longer be called, uploaded, or instantiated. The pallet stays in the runtime; only its calls are filtered.
  • pallet-contracts hold balances are settled in a multi-block migration (#1682). All code and storage deposits, approximately 22,153 ASTR on Astar, are swept to a Foundation-controlled escrow account, XPDSbfc3fcoVWEtPsxQXFDvWqnZgQfsxXv6MW8dd7G3GkZt, and returned to the original depositors in a separate batch of transfers. This must happen before the pallet index is dropped: the holds are tagged with that index, so removing the pallet first would make them undecodable and freeze the reserved funds permanently.
  • Proper weights for the XCM transfer_assets method (#1679). Implements the missing benchmark helper so the call is charged a real weight.
  • XCM configuration hardening, with no added capability (#1683). Replaces the outdated forked AllowTopLevelPaidExecutionFrom primitive with the upstream one, restricts the foreign-asset trader to one asset for buy_execution, and weighs ReserveAssetDeposited and InitiateReserveWithdraw properly for multiple assets.
  • Removes completed migrations (#1668). Internal cleanup.

Impact

  • Existing WASM contracts stop responding to calls at activation. In practice this ends WASM dApps on Astar.
  • User funds held in user wallets are unaffected. Free balances sitting on contract accounts are deliberately untouched by this runtime and are handled in step 2.
  • EVM contracts, EVM precompiles, and direct extrinsic interactions are unaffected. XCM behaviour is unchanged for users.
  • No action is required from node operators, stakers, dApp Staking participants, or holders.

Sunset sequencing

  • Freeze (runtime-2207, enacted 15 June 2026). New WASM uploads and instantiation disabled.
  • Migration window, 12 June to 10 September 2026. Affected developers were contacted directly; the Astar Community Council opened the dApp Staking delisting motion for Lucky in the first week of September, per step 4 of the published plan.
  • Step 1 (runtime-2400, this motion). Calls blocked, deposits settled.
  • Step 2 (subsequent runtime, separate motion). Purges the contract child tries and the pallet_contracts prefix.

Runtime artifacts (Astar)

  • Spec version 2400, metadata v14, 1989137 bytes
  • Blake2-256: 0x9767d318111a6fb349e260793eeba9fa9af961e35ed8cb70ce5fa25667d7654a
  • SHA256: 0x600dae9de8b1224476313f9e2fa328da230ba8f125493a784fa70367b91bfab2
  • IPFS: QmXTRMhXVkyY8ERAivYH8BiRXiDgMiM1wXnRLZW21vKDw6

Action requested

Approve enactment of runtime-2400 on Astar mainnet.

Edited
Reply
Up
Share
Business
Call
Metadata
Timeline1
Comments