I have old smart contracts written in ink! v3.x, and I need to update the substrate version (including pallet-contracts) to >= polkadot-v0.9.37. After the update, I'll need to redeploy my smart contract again.

My question is, can I just compile and deploy the smart contract from old v3.x sources, or is it required to migrate it to v4.x at first in order to deploy it on pallet-contracts >= polkadot-v0.9.37 ?

1 Answer 1


You can deploy old ink! contracts to newer versions of pallet-contracts. The pallet is backwards compatible.

Note that you will have to use a cargo-contract version from before 2.0:

cargo install cargo-contract --version 1.5 --force

The 2.0 version of cargo-contract is incompatible with ink! 3.x contracts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.