ink! Project State Q1/25
Time at Parity (2019–2024)
In 2019, ink! began as a small initiative at Parity. Over the years, it evolved into a sophisticated ecosystem with a growing community around it. Throughout this time, Parity consistently allocated developer resources to ink!, which was truly remarkable.
By April 2024, ink! moved out from under Parity’s umbrella. Today, it is developed and maintained by an alliance of individual developers, companies, and community teams. You can read more about this transition here.
Despite this shift, our collaboration with Parity remains strong. We continue contributing code to Parity-maintained components and regularly coordinate with Parity developers. Parity itself is still involved: in late 2024, SRLabs and the Parity security team audited ink! v5 (details here).
Exploring Alternatives to WebAssembly (2023)
From ink! v1 through v5, the execution platform was Substrate’s smart contracts module, pallet-contracts
. This required contracts to be compiled to WebAssembly (Wasm), typically using cargo build
, rustc
, or our CLI tool cargo-contract
.
However, as an ongoing research topic, Parity explored alternatives to Wasm for smart contract execution. Some of these discussions were captured on the Polkadot Forum, such as the eBPF investigation, highlighting Wasm’s shortcomings for smart contracts.
In 2023, Parity core developer Jan Bujak (@koute) explored other options, ultimately landing on RISC-V. His forum post provides a great overview.
This research led to the creation of PolkaVM, a very fast RISC-V-based virtual machine. Jan frequently shared performance benchmarks on the Polkadot Forum, sparking community excitement. For blockchains, faster performance means higher throughput and lower transaction costs — crucial for scalability and user experience. This eventually inspired the idea of migrating the Substrate stack to RISC-V long-term.
RISC-V and pallet-revive
(2025)
Migrating Substrate from Wasm to RISC-V is a significant endeavor. Smart contracts became a natural starting point — a contained component to kick things off.
Parity forked pallet-contracts
into a new project called pallet-revive
. Contracts uploaded to this pallet are now in RISC-V bytecode, no longer Wasm.
Several major changes accompanied this:
- The pallet’s inner logic was extensively updated to align more closely with the EVM, improving type handling, events, and debugging to support Solidity.
- In the
pallet-contracts
era, Solidity compatibility was driven by Solang, which parses Solidity syntax and outputs Wasm. But Solidity is a fast-evolving language, making parsing challenging.
Forpallet-revive
, Parity introducedrevive
, a compiler translating Solidity’s more stable YUL bytecode to RISC-V. Solidity developers can still usesolc
to compile their contracts to YUL. - An RPC wrapper was built to map Ethereum RPC calls to Substrate.
Currently, pallet-revive
is deployed on the Polkadot testnet Westend (via the AssetHub parachain). A Kusama launch is planned for early Q2/25, with a Polkadot rollout targeted for Q3/25.
Migrating ink! to RISC-V and pallet-revive
(WIP)
The Polkadot ecosystem sees pallet-revive
and RISC-V as the future of smart contracts — and we fully share that vision. In autumn 2024, the ink! Alliance proposed a Polkadot treasury grant to support this migration, which received strong community backing.
As a result, ink! v5 and cargo-contract
v5 are the last versions supporting pallet-contracts
and Wasm. While we’ll continue to backport important fixes, future versions (starting with v6) will not be compatible. You can still propose backports to our v5 branches and here.
Right now, the master
branches of ink! and cargo-contract
are compatible with the polkadot-sdk
+ pallet-revive
+ PolkaVM stack as of January 7, 2025. We’re actively working to catch up to the present and aim to release pre-release 6.0.0-alpha
versions in March 2025.
A migration guide is underway to document all breaking changes and new features.
Still pending migration are the Contracts UI and external libraries like ink!athon, the ink! Analyzer VS Code extension, polkadot-js
, and more. We’re in touch with the maintainers to coordinate these efforts.
ink!ubator 2.0
The ink!ubator is our grant program to grow the ink! ecosystem. The first cohort wrapped up in autumn 2024 — you can read the final report by Toma, one of our curators, on the Polkadot Forum here.
We’re now accepting applications for ink!ubator 2.0. Details are available on the GitHub repository.
Questions?
If you have any questions, the best places to reach us are our Telegram group and the Polkadot Forum. We’d love to hear from you!