Why Flow is the best for consumer apps and Web3 development
Flow is the blockchain designed to be the best platform for consumer apps and Web3 as a whole. Built by consumer-facing, onchain app developers to solve the problem of building consumer-facing, onchain apps, Flow supports two powerful programming languages: Cadence and Solidity.
Dieter Shirley, Chief Architect of Flow and co-author of the ERC-721 NFT standard, calls Flow:
A computer that anyone can use, everyone can trust, and no one can shut down
Much of the protocol design is based on lessons learned from building Web3 applications while working at Dapper Labs, particularly CryptoKitties — the first onchain game to reach widespread popularity. The game went viral, then struggled under its own success when it caused so much traffic that the Ethereum network itself was overwhelmed by the load.
The design of Flow was guided by the need to alleviate this burden while creating the best experience possible for both developers and users. The blockchain network of the future must be able to handle millions of users while upholding the key pillars of decentralization:
- Verifiability
- Predictability/Reliability
- Equitable Access for All
- Permissionless Composability
- Interoperability
- Security
Flow solves the blockchain trilemma and represents the next generation of blockchain technology. It's built to enable seamless consumer-scale apps without compromising decentralization or user experience, and is the chosen blockchain network for NBA Top Shot, NFL All Day, Mattel Creations, and Disney Pinnacle.
Flow's dual language architecture
Flow is unique in supporting two powerful programming languages for smart contract development:
- Cadence: Flow's native smart contract language, designed specifically for the Flow blockchain.
- Solidity: The industry-standard language for EVM development, fully supported on Flow.
Understanding Flow's Virtual Machine architecture
Flow operates with two virtual machines working in harmony:
- Flow Virtual Machine (FVM): Runs Cadence smart contracts with native Flow features.
- Ethereum Virtual Machine (EVM): Runs Solidity compiled smart contracts with full EVM equivalence.
The beauty of Flow's architecture is the native bridge that allows seamless and cheap communication between these VMs. This means developers can choose the language that best fits their needs while maintaining full interoperability between both environments.
What makes Flow unique
Flow is a fast, decentralized, and developer-friendly blockchain designed to be the foundation for a new generation of games, apps, and the digital assets that power them. It is based on a unique multi-role architecture and designed to scale without sharding, allowing for massive improvements in speed and throughput while preserving a developer-friendly, ACID-compliant environment.
Flow blockchain core features
- Multi-role architecture: The multi-role architecture of Flow allows the network to scale without sharding to serve billions of users without reducing the decentralization of consensus and verification.
- True, fast finality: For most other networks, it takes minutes, a day, or even a week to reach hard finality — the point at which a transaction cannot be reversed. On Flow, the median time for finality is under 10 seconds, without compromising security.
- Native VRF: Flow provides onchain randomness at the protocol level. Instead of implementing a complex setup and paying $10+ USD per number, simply call the built-in function.
- MEV resistance: Flow is designed to ensure equitable access by resisting MEV. Maximum Extractable Value, also know as Miner-Extractable Value (MEV), is a practice common in other blockchains in which the builder of a block can profit at your expense by manipulating where and how your transaction is included.
- Consumer onboarding: Flow was designed for mainstream consumers, with payment onramps catalyzing a safe and low-friction path from fiat to crypto.
- Efficient gas costs: The Flow blockchain is extremely efficient, allowing apps to do more computation at lower costs.
Cadence development on Flow
Cadence is Flow's native smart contract language, offering unique advantages for developers:
- Native account abstraction: Flow has protocol-native account abstraction. All accounts are smart accounts, supporting scripting, multiple keys, multi-signature transactions, and walletless onboarding with social logins.
- Gasless transactions: Flow has multiple signing roles for each transaction. Most notably, the payer can be set independently of the authorizer. In other words, having one account sign a transaction and another pay for that transaction is a built-in feature.
- Security: Smart contracts on Flow are natively written in Cadence, an easier, safer, and more secure programming language for crypto assets and apps. It's the first high-level, resource-oriented programming language.
- Developer ergonomics: The Flow network is designed to maximize developer productivity. Examples range from upgradeable smart contracts to built-in logging support to the Flow Emulator.
Solidity development on Flow EVM
Flow EVM provides the best EVM experience available anywhere:
- Speed, cost, and compatibility: Flow EVM can already run all of your audited Solidity contracts at an average of less than 1 cent per transaction (usually way less!). Unlike L2 solutions, Flow EVM reaches true finality in seconds — not in a week.
- Bridge from Other EVM networks: You can bridge hundreds of assets from dozens of chains to Flow.
- VM token bridge: Assets can be bridged between Flow Cadence and Flow EVM easily and atomically with the VM token bridge. Assets can even be bridged and used in a single transaction, allowing full composability between the EVM and Cadence environments.
- Access to Cadence features: Access Cadence features and contracts from Flow EVM to take advantage of native VRF, higher computation for lower cost, and any asset on Cadence Flow. You can also build cross-vm apps on top of the wagmi/viem/RainbowKit stack, enabling batched transactions and more.
- EVM equivalence: Flow EVM is truly EVM Equivalent, not just EVM Compatible. It runs exactly the same as EVM mainnet, which means builders won't run into minor variances or endless 'quirks' when they try to integrate. If it works on Ethereum Mainnet, it will work with Flow EVM.
Seamless integration for Ethereum developers
Flow EVM is designed to work out-of-the-box with the Ethereum toolchain or other clients. Native EVM transactions continue to be supported when using Metamask and other EVM-compatible clients.
EVM-equivalency on Flow works behind-the-scenes by implementing a minimal transaction script in Cadence to integrate Flow features with EVM. This is made possible because EVM transactions are composed and executed within Cadence transactions, enabling novel use-cases and patterns for integration.
Best-in-class user experience
Flow allows for the creation of app on-boarding experiences that meet every type of user exactly where they are at, from Web3 beginners to ecosystem veterans. This is possible through account linking, which utilizes the account abstraction model on Flow and enables users to immediately use an app without wallet authentication.
With Flow, builders can choose to expand EVM capabilities and transcend limitations using Cadence, which offers a powerful new account model, programmable resources, and hybrid ownership.
Instant cross-VM token transfers
EVM and Cadence environments both use FLOW as gas for transactions, sharing a singular token supply across both environments. Fungible and non-fungible tokens can also be seamlessly transferred between environments using the native VM token bridge, taking place instantly in a single atomic transaction.