Cadence 1.0
Migration Hub
Cadence 1.0
Crescendo introduces Cadence 1.0, the latest version of the Cadence smart contract language.
The stable release of Cadence 1.0 marks a significant milestone in the language's development, introducing a comprehensive suite of improvements to enhance speed, security, and efficiency. Cadence 1.0 equips developers with powerful new methods for transforming the experience of EVM applications. It enables the creation of gasless experiences that users love and allows for the bundling of subsequent transactions, which reduces the number of approvals users need to sign, all while maintaining world class security standards.
With Cadence 1.0, developers will also have access to more than 20 new features and enhancements. The updates optimize workflows, minimize duplication, and enhance code readability. This makes writing and understanding smart contracts significantly easier.
Seamlessly Transition to Cadence 1.0
The Cadence VSCode Plugin instantly identifies every line of code that needs to be updated to Cadence 1.0. It creates automatic fixes and references additional learning resources, making the process of updating your code straightforward, swift and simple.
applied in under a minute
Steps to Upgrade
Understand the Changes
Start by familiarizing yourself with the changes to identify how they might affect your code. The most complex changes are to Capabilities and Entitlements.
Modify Your Code
Update your contracts, transactions, and scripts in accordance with the new changes. Ensure that they conform to the new FT/NFT Standards.
Test Your Code
The latest emulator release includes all features, standards and core contracts updated for Cadence 1.0.
Stage
Get your updated code ready to replace your live code when the upgrade occurs. To do this you need to stage your contracts and ensure they are working as expected along with their staged dependencies and state.
Resources
Understand
Learn about the changes.
Guides
Access in-depth information and tutorials on how to update your contracts.
Support
Looking for more support or guidance through your migration? Access our support option bellow.
Roadmap
Emulator Cadence 1.0 Support
The Flow Emulator now supports Cadence 1.0. This includes integration of a new Cadence 1.0 type checker and the full suite of language features. Developers can start updating their contracts, transactions, and scripts to the new version right on their local machines.
Emulator EVM Support
The Flow Emulator now enables local deployment of Solidity contracts and simulation of transactions.
Crescendo Previewnet Live
An early access version of the upgraded Crescendo network that supports both EVM and Cadence 1.0. This is the perfect place for developers to test their updated applications, supporting Flow Reference Wallet, Flowdiver and more. Please note that Previewnet does not support data or state migration.
Cadence 1.0 Contract Staging Enabled
Release of a new staging process. This allows developers to map their updated and rewritten Cadence 1.0 code to their existing pre-Cadence 1.0 deployed code. When the upgrade occurs, your staged code will automatically replace the live contracts. Staging is available on both Testnet and Mainnet and will replace contracts on both respectively.
Testnet Migration Environment Live
A specialized test environment that mimics the Testnet, including staged contracts and data migration. Please be aware that the state will be reset weekly. This environment is ideal for ensuring your updates function as expected on the network, offering a close simulation of their post-upgrade functionality.
Mainnet Migration Environment Live
Specialized network that includes all staged Mainnet contracts and data migration.
Crescendo Upgrade on Flow Testnet
All staged contracts on Testnet replace live contracts.
Crescendo Upgrade on Flow Mainnet
All staged contracts on Mainnet replace live contracts.
Connect
with the Community
FAQ
How does this affect me?
I am a developer
Immediate actions
- Learn & ReviewLearn about what is changing in Cadence 1.0: Update on Cadence 1.0,
- Start working on upgrading your dappYou can use Emulator release based on Cadence 1.0 RC1 now!
❗ IMPORTANT NOTE ABOUT AVOIDING CHANGES IN BUSINESS LOGIC
Cadence 1.0 introduces breaking changes. Updating your Cadence contracts, transactions and scripts to Cadence 1.0 is required to ensure your app continues to work when Crescendo is released. The on-chain data migration logic relies on assumption that the updated contracts uploaded by dapp developers limits updates to the minimum changes required by the Cadence 1.0 version - in other words, the updated contract should be behaviour-preserving.
If the contract upgrade to Cadence 1.0 also includes changes to business logic, the on-chain data migration won’t work as expected and might result in security vulnerabilities in the migrated on-chain data.
Immediate actions
- Learn & Review. Learn about what is changing in Cadence 1.0: Update on Cadence 1.0, start working on upgrading your dapp using Emulator release based on Cadence 1.0 RC1.
Soon
Decide if you want to wait until Flow completes the upgrade to Cadence 1.0, or if you want to deploy sooner, on Cadence version 0.42 (currently running on Testnet and Mainnet).
Future actions
- If you plan to deploy your dapp to Testnet / Mainnet before it is upgraded to Cadence 1.0, make sure you are prepared to upgrade it to Cadence 1.0.
I am a node operator
The network upgrade to Cadence 1.0 will follow the usual process and will include a migration of execution state. For that reason it is likely to require a longer network outage than usual.
Future actions
- (ETA) 1st May 2024 Mainnet network upgrade to Cadence 1.0.
I am not (yet) a developer/builder, but I am interested in building on Flow
You can start learning about Cadence 1.0: and start building with Cadence 1.0 using Emulator release based on Cadence 1.0 RC1.
I am a user of a app on Flow
We expect that in almost all cases, you won’t need to do anything! The dapp team should handle everything without a need for an end user to move their assets or sign transactions. But, if you’re not sure, you can reach out to the team behind the dapp and ask them about their plans to upgrade to Cadence 1.0.