Welcome Polkadot Scalability Hackathon participants!
On this page we explain how you can participate with ink! v6.
Read more about the hackathon here.
You need to use ink! v6!
The current stable release of ink! (v5) is only compatible with WebAssembly and
pallet-contracts
. With v6 we are transitioning to pallet-revive
and PolkaVM.
pallet-revive
is the execution environment for smart contracts on Kusama and
Polkadot AssetHub.
ink! v6 is not yet released. This means you have to install our tools from the GitHub
master
branches and also depend on ink! master
in your contracts Cargo.toml
.
We did a writeup about this transition and the story behind it here. The chapter Technical Background of this documentation describes the larger architectural view.
For the documentation of ink! v6 you need to make sure you are viewing the v6 version:

If you already have an ink! v5 contract: there is a migration guide available here.
ink! v6 is still work in progress, there are still rough edges and possibly bugs.
You can find support in our Telegram group or open issues in our repositories.
Install Rust and cargo
: Installation Guide.
Download the binary for a local development node here.
# Install our cli tool from the `6.0.0-alpha` release.
# It wraps around `cargo build` to build contracts with optimal
# flags for blockchains. It also allows for deploying + interacting
# with contracts.
$ rustup component add rust-src
$ cargo install cargo-contract@6.0.0-alpha
# Create a simple contract.
$ cargo contract new flipper && cd flipper
$ cargo contract build --release
# Start your local development node in a separate shell session
$ chmod +x ink-node (makes the node's binary executable)
$ ink-node (starts the node, try `./ink-node` if the previous command doesn't work)
# Instantiate this contract on-chain.
$ cargo contract instantiate --suri //Alice --args true -x
# Dry-run a call of it.
$ cargo contract call --suri //Alice --contract 0x… --message get
# Execute a contract call, as a transaction on-chain.
$ cargo contract call --suri //Alice --contract 0x… --message flip -x
Using the Contracts UI
The Contracts UI for ink! v6 uses an alpha version of the interface: https://inkv6alpha.netlify.app/.
-
Upload your contract:
Follow the steps in Deploy your Contract Using the Contracts UI.
-
Interact with your contract:
Learn how in Call your Contract Using the Contracts UI
Where to Deploy your Ink!v6 Contracts
Coming soon
To deploy a contract to the Westend Asset Hub, you must get WND tokens. To do so, you can use the Westend Faucet. You need to specify the address where you want to receive the tokens from the faucet.
For an overview of all currently supported chains, check the supported chains here.
Please see the chapter Getting started of this documentation for a deeper introduction.
Smart Contract Examples
You can find many contract examples in
the v6 branch of our ink-examples
repository.
Our "Hello, World!".
» view example
An ERC-20 implementation.
» view example
An upgradeable contract.
» view example
A multi-signature wallet.
» view example
Allow runtime access.
» view example