We’re excited to announce that Crescendo Previewnet is now live, introducing support for a fully equivalent EVM environment, which is low-cost, mainstream scalable, and fully composable with the rest of the Flow ecosystem. Start building with EVM on Flow using Previewnet today, and stay tuned for the upcoming mainnet launch.
Why are we adding support for EVM?
Flow was created with a clear mission: “Empower developers to easily and quickly build increasingly powerful composable apps that are mainstream-ready.” Accomplishing that requires us to solve a few key problems:
- Building a developer platform that enables world class mainstream experiences: Our north star is to have 1M+ developers building onchain experiences that can reach 1B+ people. This requires the creation of a technical foundation that supports the new experiences consumers desire. It involves overcoming existing limitations in scalability, security, and accessibility, necessitating breakthroughs in computing, networking, storage, consensus, and more.
- Enable a highly vibrant composable ecosystem: At the same time, those experiences need to act as network effects, adding value to each other through the seamless technical composability of assets, users, and services. It needs a technical foundation that enables builders to deploy their creativity onchain, build upon others' efforts seamlessly, and for users to discover new ways of transacting and ownership.
- Fostering a powerful onchain interconnected economy: A sustainable economic model is essential, one that empowers a diverse ecosystem of contributors - including developers, validators, token holders, and end-users. The network should be an enabling utility and not a monopolistic gatekeeper.
- Decentralize and set up practical governance: A governance model that is practical, community oriented and brings confidence to all network participants that their interests will be protected while also decentralizing appropriate parts of the network to bring the benefits of resilience and stability.
In pursuit of this goal since 2020, we have progressed through various stages, laying the foundation of a mainstream focused protocol, introducing Cadence a “resource oriented language,” and we’ve seen a vibrant ecosystem take shape from sports, entertainment, games, art, finance, digital communities which brought 50M+ users onchain to Flow. With the mission in hand and as we look towards our future, we’ve asked ourselves how we can help more builders fully realize the full potential of composability and powerful onchain experiences. As we talked with our own community (and external builders) to understand how we could do this, we saw that they were struggling with two seemingly simple questions:
1. How should they build on Flow?
While Cadence provides powerful benefits to developers, its biggest drawback has been the inability to take advantage of the apps and tooling already in existence on the Ethereum blockchain. Several developer toolkits exist for writing smart contracts, but EVM has the biggest and most successful community. Without EVM support, each multi-chain platform and product would have a bespoke integration with Flow, slowing down their product and development speed.
2. But what about liquidity and ecosystem interoperability?
Once they’d chosen to build on Flow, they weren’t sure how to leverage broader ecosystem liquidity and the full network effects of the Ethereum ecosystem. While they enjoyed Flow’s mainstream-focused features for onboarding and user experience as well as the unique capabilities of Cadence, they needed Flow to be “ not an island” with access to other products, users, and their assets on other chains. The lack of seamless interconnection to Ethereum L2s and other L1s made it difficult to build on Flow.
We found that these two questions often stopped teams before they started or fully recognized the potential of Flow. Over the last year, we focused on addressing the ecosystem interoperability gaps, beginning with EVM support.
As we were staring down this problem, we asked ourselves, in a world with so many EVM L1s/ L2s, how can we accelerate our long-term vision to create an environment that can push the limit of what's possible on-chain to reach over 1B+ users?
After extensive conversations and research, we aligned the project on two primary decisions:
1. EVM compatibility is not enough – achieve full EVM equivalence
When bringing EVM to a new network like Flow, simply targeting compatibility is insufficient. Existing smart contracts need to work directly on the new platform without any concerns about API compatibility, unexpected side effects, or alternate security concerns. Client-side tools, like wallets and indexers, need to function without adjustments. Bridges and client libraries want to depend on the same assumptions that hold true on Ethereum. If it’s not 100% compatible, we’re in danger of missing the point of providing EVM support. The goal is to lower the barrier and provide full equivalence for existing projects to support Flow with trivial code changes.
2. EVM equivalence is not enough – build a superior computational platform
Cadence is a resource-oriented programming language designed specifically for smart contracts and digital assets, with security and safety guarantees that greatly simplify the development of secure smart contracts. There are a truly remarkable number of features on Flow that are possible only because we undertook the effort of building up the Cadence execution environment.
- Native, protocol-level account abstraction, including account linking
- Support for standard hardware secure enclaves (such as those found in iPhones and most Android devices)
- Scripted transactions, allowing a single tx to interact with any number of smart contracts, with custom logic between calls
- Resource-oriented programming, providing a dramatically improved security model and better user experience
- Native multi-sig support
- Transactions with multiple signers, allowing direct, secure asset swaps without any smart contracts
- Prevent entire classes of bugs via a strong static type system, design by contract, and capability-based access control
- Permissionless composability enabled by the Attachments feature
- Secure source of on-chain randomness for Cadence smart contracts
While EVM equivalence is paramount, we must provide a better and superior programming environment to push the envelope of onchain innovation. The goal is an unmatched environment that provides the best of both worlds: EVM network effects and Flow’s mainstream-focused tooling. The proposed implementation of EVM on Flow will allow developers to easily compose with the capabilities of Cadence on top of existing tooling and smart contracts developed in Solidity for Ethereum and other EVM-compatible networks.
More information on the design proposal is available in this article - https://forum.flow.com/t/evm-on-flow-beyond-solidity/5260
Where do we go from here?
Our current focus is running a successful previewnet with builders who join the ecosystem. Our most important priorities are to ensure the safety and security of the network, followed by clear communication so developers can be onboarded. During this phase, we’ll focus on
- Auditing the code base to increase platform security
- Load testing the network to ensure we can support scale
- Iteratively introduce new capabilities and features
- Ensuring a high-quality developer experience
- Onboarding EVM multi-chain liquidity & developer infrastructure projects and solidifying DeFi primitives
We expect this to be an iterative process and look forward to working together to make this successful. Here are the deliverables of this first milestone
- Design Documentation: Design discussions around changes needed for implementing EVM inside Cadence VM.
- Previewnet: Exploratory developer testnet for onboarding early developers.
- Documentation: Initial documentation on how to use the previewnet.
- Block explorer: A blockchain explorer for reviewing transactions
- Faucet: A faucet enabling the community to get funds to test and deploy on the Previewnet.
- EVM Gateway with JSON RPC v1 hosted by Flow Foundation
“At Dynamic, we’re beyond excited for EVM compatibility on Flow. It’s a massive upgrade that unlocks liquidity, empowers DeFI, and brings more tooling - for both ecosystems. EVM developers can try Flow’s native features, and Flow developers can access all of Ethereums tooling options This is the key to a truly open, cross-chain, decentralized Web3, and we’re here for it.
Flow’s Crescendo upgrade, which includes EVM Equivalence, is a pivotal moment for the ecosystem. It not only unlocks significant liquidity and tooling for the Flow ecosystem, but also empowers us at Dynamic to enhance our wallet services. We can now offer more to our users, from increased security to seamless transactions across chains. This is the future we’ve been working towards, and we’re excited to see it come to life.”
Itai, Dynamic founder/CEO
“At Doodles we started our journey of bridging EVM and Flow in early 2023. EVM on Flow is a game-changer for us and our community as we will now be able to seamlessly bridge Flow collectibles to EVM, opening up larger liquidity pools for our community and new users through the top-tier UX provided by working on the Flow blockchain. As we continue to build out our Play Layer on Flow, EVM on Flow helps us further bridge the gap between various chains and helps drive Doodles toward a true multi-chain future.”
Noah Davis, Doodles
Flow is what it is today because of the builders worldwide who have contributed to getting us to this point. We are so excited to keep building with you. If you have ideas, thoughts, comments, or suggestions, please reach out to us. In the days ahead, we’ll share our roadmap for future milestones with a path to mainnet and provide more developers resources for building — stay tuned.
Start Building with Crescendo on Previewnet today