Docs
Submit an issue
Smart Contracts
Smart Contracts
  • WELCOME
    • Smart Contracts
    • Installing Pop CLI
    • How to contribute
  • GUIDES
    • Get tokens on Pop (Testnet)
    • Set up your development environment
    • Create a new contract
    • Build your contract
    • Run your unit tests
    • Deploy your contract locally
      • Deploy locally on a Solochain
      • Deploy locally on Pop
    • Call your contract
    • Running E2E tests
    • Deploy on Pop
    • Securely Sign Transactions from CLI
    • Getting Started with ink! v6
  • TUTORIALS
    • Your first ink! smart contract
    • Mint a PSP22 token on Pop
  • POP CLI
    • welcome
    • install
    • new
    • build
    • call
    • up
    • test
    • clean
Powered by GitBook
On this page
  • What's new in ink! v6?
  • Installing Pop CLI for ink! v6 support
  • Getting started with ink! v6
  • Resources

Was this helpful?

Edit on GitHub
  1. GUIDES

Getting Started with ink! v6

This guide will walk you through getting started with ink! v6.

PreviousSecurely Sign Transactions from CLINextYour first ink! smart contract

Last updated 23 days ago

Was this helpful?

Pop CLI introduces experimental support for ink! v6 smart contracts running on via pallet-revive. This guide helps you transition from ink! v5 (WebAssembly) and start experimenting with ink! v6.

What's new in ink! v6?

  • ink! v5: Version of the ink! that can be compiled into WebAssembly byte code and can be executed on virtual machine.

  • ink! v6: Version of ink! that can be compiled into RISC-V byte code and can be executed on PolkaVM ().

For more information about the benefits of RISC-V and pallet-revive, see .

Installing Pop CLI for ink! v6 support

Pop CLI supports ink! v6 through the polkavm-contracts feature flag.

To install it from the experimental branch, run:

cargo install pop-cli --no-default-features --locked -F polkavm-contracts,parachain,telemetry

⚠️ Note: Make sure you're using Rust 1.85 or higher, older versions will fail to compile. You can check your version with rustc --version.

Getting started with ink! v6

The workflow for developing smart contracts remains similar to ink! v5. To get started, see our guide:.

Migrating existing ink! smart contracts

If you already have an ink! smart contract, update your dependencies as follows: Update your Cargo.toml

[dependencies]
ink = { version = "6.0.0-alpha", default-features = false }

[dev-dependencies]
ink_e2e = { version = "6.0.0-alpha" }

Account Mapping

pallet_revive enables the deployment and execution of PolkaVM smart contracts. It introduces support for 20-byte accounts (like EVM), while most Polkadot-based chains use 32-byte accounts (AccountId32). To ensure compatibility, pallet_revive provides a mapping feature that lets 32-byte accounts seamlessly interact with the VM.

When first interacting with pallet_revive, you must map your Polkadot account ID (32 bytes) to an Ethereum-compatible 20-byte address. This registration enables your account to interact with contracts.

Pop CLI will prompt you automatically:

Resources

Learning Resources

Technical Support

For a complete example, check the .

Alternatively, you can interact on :

For further information about account mapping, including native EVM contract integration with Asset Hub, see .

in the ink! docs.

⭕ Detailed .

technical documentation.

Create a question and tag it with ""

Share the StackExchange question in our

PolkaVM (RISC-V)
pallet-contracts
pallet-revive
RISC-V + pallet-revive
Create a new contract
ink! flipper example
Polkadot JS Apps
Native EVM Contracts
Migrate from ink! v5 → v6
ink! v6 Changelog
pallet_revive
Polkadot Stack Exchange
pop
Pop Support Telegram channel
Map Account Pop CLI
Map Account Polkadot UI