Skip to content

Commit

Permalink
Updates to naming of EVM on Flow (#635)
Browse files Browse the repository at this point in the history
* doc: update EVM naming

* doc: update naming for using evm

* dco: mor naming updates

* doc: nit
  • Loading branch information
Greg Santos authored Mar 5, 2024
1 parent 307e304 commit f98d19d
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 88 deletions.
71 changes: 22 additions & 49 deletions docs/evm/about.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,60 @@
---
title: About FlowEVM
title: About EVM On Flow
sidebar_label: About
sidebar_position: 1
---

# About FlowEVM
# About EVM On Flow

FlowEVM is a secure, performant, highly scalable EVM-equivalent L1 which is natively integrated into the Flow
blockchain. It inherits Flow's [decentralization](https://flow.com/decentralization) and its multi-node
distributed consensus and transaction model. Specifically, Flow EVM benefits from Flow's
[horizontally scaled transaction linearization](https://flow.com/core-protocol-vision#scaling-transactions) design
which has solved proposer builder separation, separation of compute, and settlement – all without sharding.
Flow is a secure, performant, highly scalable EVM-equivalent L1. With EVM on Flow all of Flow's native protocol benefits of fast transactions, low costs, and mainstream scalability are available without any code changes.
It inherits Flow's [multi-node distributed consensus](https://flow.com/decentralization) and transaction model. Specifically, EVM on Flow benefits from Flow's [horizontally scaled transaction linearization](https://flow.com/core-protocol-vision#scaling-transactions) design which has solved proposer builder separation, separation of compute, and settlement – all without sharding.

## Seamless Integration for Ethereum Developers

FlowEVM is designed to work out-of-the-box with the Ethereum toolchain or other clients and will run existing Solidity
contracts as-is without any changes. Developers can get their existing applications up and running on day one! With
your core application running you can begin to explore how to leverage Flow's powerful feature set for your application.
To achieve this will require implementing a minimal transaction script in Cadence, Flow's smart contract language, to
integrate Flow features to FlowEVM. This is made possible because EVM transactions are composed and executed within a
Cadence transaction, enabling novel use-cases and patterns for integration.
EVM on Flow is designed to work out-of-the-box with the Ethereum toolchain or other clients, and will run existing Solidity contracts as-is without any code changes. Developers can get their existing applications up and running on day one! With your core application running you can begin to explore how to leverage Flow's powerful feature set for your application.
To achieve this will require implementing a minimal transaction script in Cadence, Flow's smart contract language, 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.

Native EVM transactions continue to be supported when using Metamask and other EVM-compatible clients.
Native EVM transactions continue to be supported when using Metamask and other EVM-compatible clients.

## Best-In-Class UX

Account Linking is built on Flow's account abstraction model and enables users to immediately use an app without
wallet authentication. On-chain accounts can be created as needed by the application which custodies their use for an
anonymous user. At some later point these users may choose to link the custodied account to their self-custodial wallet
taking full ownership of the account. FlowEVM apps can also leverage Account Linking to handle creation of EVM accounts
and achieve a similarly smooth onboarding user experience.
wallet authentication. On-chain accounts can be created as needed by the application which custodies their use for an anonymous user. At some later point these users may choose to link the custodied account to their self-custodial wallet taking full ownership of the account. EVM apps on Flow can also leverage Account Linking to handle creation of accounts and achieve a similarly smooth onboarding user experience.

## Instant Cross-VM Token Transfers

FlowEVM and Flow environments both use $FLOW token as the gas currency for transactions, sharing a singular token
supply across both environments. A few lines Cadence can transfer FLOW tokens in the Flow environment to FlowEVM,
or vice versa. Other fungible and non-fungible tokens can also be seamlessly transferred between environments using the
native cross-VM token bridge, taking place instantly in a single atomic transaction
EVM and Cadence environments both use FLOW token as the gas currency for transactions, sharing a singular token
supply across both environments. A few lines Cadence can transfer FLOW tokens in the Cadence environment to EVM, or vice versa. Other fungible and non-fungible tokens can also be seamlessly transferred between environments using the native cross-VM token bridge, taking place instantly in a single atomic transaction

## Scalability, Performance and Low Gas Fees

Flow’s state space is extensible to the petabyte scale and is the reason why Cadence contracts have standardized on
storing application data on-chain. This benefit translates directly to FlowEVM which allowing contracts to maintain a full
working dataset - including metadata - together with contract logic, all at low gas rates. Flow's state scalability sets
the foundations for significant throughput optimization yet to come.
Flow’s state space is extensible to the petabyte scale and is the reason why Cadence contracts have standardized on storing application data on-chain. This benefit translates directly to EVM on Flow allowing contracts to maintain a full working dataset - including metadata - together with contract logic, all at low gas rates. Flow's state scalability sets the foundations for significant throughput optimization yet to come.

Flow's transaction throughput peaked to 2M daily transactions during 2023 sustaining a similar average transaction
volume as Ethereum. Unlike Ethereum, Flow has always operated well under its maximum throughput ceiling which is
presently scalable to 5x more transactions with further performance optimizations to come when parallel execution is
released.
Flow's transaction throughput peaked to 2M daily transactions during 2023 sustaining a similar average transaction volume as Ethereum. Unlike Ethereum, Flow has always operated well under its maximum throughput ceiling which is presently scalable to 5x more transactions with further performance optimizations to come when parallel execution is released.

## MEV Resilience

Since EVM on Flow transactions are composed and executed within a Cadence transaction block production is handled by
Flow’s multi-role architecture. The heterogeneity between node roles ensures that visibility into block proposal,
assembly, asserting block validity and other correctness checks during the block processing cycle expose only the
limited information that a given node type requires to perform its function. These differences in node and consensus
design results in strong economic disincentives for collusion because no individual node has full visibility into the
state of block processing for the chain. FlowEVM's robust MEV resilience is a significant difference from other EVMs
and will help to ensure gas fees are reasonably priced at all times. The impracticality of frontrunning or other attacks
improves the user experience by eliminating failed transactions and invisible fees.
Since EVM on Flow transactions are composed and executed within a Cadence transaction block production is handled by Flow’s multi-role architecture. The heterogeneity between node roles ensures that visibility into block proposal, assembly, asserting block validity and other correctness checks during the block processing cycle expose only the limited information that a given node type requires to perform its function. These differences in node and consensus design results in strong economic disincentives for collusion because no individual node has full visibility into the state of block processing for the chain. This robust MEV resilience is a significant difference from other EVMs and will help to ensure gas fees are reasonably priced at all times. The impracticality of frontrunning or other attacks improves the user experience by eliminating failed transactions and invisible fees.

# Key Advantages
## Key Advantages

- **Access New Markets**: Easily tap into Flow's user base and unique IPs without any implementation risk
- **Simplified Multi-Chain Experience**: Ideal for applications without a multi-chain approach or those wanting to ensure cross-chain compatibility
- **Leverage Flow’s Protocol**: Expand EVM capabilities and transcend EVM limitations using Cadence, which offers a powerful new account model, programmable resources, and hybrid ownership
- **No Miner Extractable Value (MEV)**: Leading to a more fair and secure environment for all participants and minimizing the risk of front running transactions
- **Enhanced Functionality**:
- Compose assets and functionality using a shared world state and [Cadence contracts](https://cadence-lang.org/).
- Conduct multiple contract interactions atomically.
- Tap in to [Capabilities](https://cadence-lang.org/docs/tutorial/capabilities) for zero-transfer access ([Account Linking](../build/guides/account-linking/index.md)).
- **Gas Fees**: Transactions are extremely low-cost and denominated in FLOW.
- Compose assets and functionality using a shared world state and [Cadence contracts](https://cadence-lang.org/).
- Conduct multiple contract interactions atomically.
- Tap in to [Capabilities](https://cadence-lang.org/docs/tutorial/capabilities) for zero-transfer access ([Account Linking](../build/guides/account-linking/index.md)).
- **Gas Fees**: Transactions are extremely low-cost and denominated in FLOW. see [Fees](./build/fees)

# Learn More and Join the Conversation
## Learn More and Join the Conversation

Users and developers are welcome to chat with us in the FlowEVM [Discord](https://discord.com/channels/613813861610684416/1167476806333513800).
Users and developers are welcome to chat with us in the Flow [Discord](https://discord.com/channels/613813861610684416/1167476806333513800).

## Interested in Partnering or Co-marketing?

Are you interested in launching an EVM project on FlowEVM or partnering? Visit our weekly FlowEVM office hours for
discussions on project development and other opportunities for collaboration.
Are you interested in launching an EVM project on Flow or partnering with us? Visit our weekly Flow office hours for discussions on project development and other opportunities for collaboration.

## Further Reading and Discussions

Expand All @@ -89,8 +63,7 @@ discussions on project development and other opportunities for collaboration.

## Flow Improvement Proposals (FLIPs)

Those wishing to understand the technical specifics of how FLowEVM is integrated with Flow we recommend reviewing the
following improvement proposals.
Those wishing to understand the technical specifics of how EVM on Flow works we recommend reviewing the following improvement proposals.

- Understanding [EVM Support on Flow](https://github.com/onflow/flips/pull/225)
- Exploring the [Flow VM Bridge](https://github.com/onflow/flips/pull/233/files/d5bc46c4b13f0b9b168a94f994c77a5a689f6b24..122e938b7acae7e774246b1b66aaf5979ca21444)
Expand Down
14 changes: 3 additions & 11 deletions docs/evm/advanced/vm-bridge.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,8 @@ sidebar_position: 1

# Cross-VM Bridge

Flow provides the cross-VM bridge which enables Cadence to interact with FlowEVM in order to bridge tokens, fungible and
non-fungible, from one VM environment to the other. Specifically, the cross-VM bridge is contract-based, trustless
protocol enabling the automated bridging of tokens from Cadence into FlowEVM into the corresponding ERC-20 and ERC-721
token types. In the opposite direction, it supports bridging of arbitrary FlowEVM ERC-20 and ERC-721 tokens into
the corresponding Cadence FT or NFT token types. The cross-VM bridge internalizes the capabilities to deploy new token
contracts in either VM state as needed and resolves access to, and maintains links between, contracts. It additionally
automates account and contract calls to enforce source VM asset burn or lock, and target VM token mint or unlock.
Flow provides the cross-VM bridge which enables Cadence to interact with EVM on Flow in order to bridge tokens, fungible and non-fungible, from one VM environment to the other. Specifically, the cross-VM bridge is contract-based, trustless protocol enabling the automated bridging of tokens from Cadence into FlowEVM into the corresponding ERC-20 and ERC-721 token types. In the opposite direction, it supports bridging of arbitrary EVM ERC-20 and ERC-721 tokens into the corresponding Cadence FT or NFT token types. The cross-VM bridge internalizes the capabilities to deploy new token contracts in either VM state as needed and resolves access to, and maintains links between, contracts. It additionally automates account and contract calls to enforce source VM asset burn or lock, and target VM token mint or unlock.

Developers wishing to use the cross-VM bridge will be required to use a Cadence transaction of contract. Cross-VM bridge
functionality is currently not available natively in EVM.
Developers wishing to use the cross-VM bridge will be required to use a Cadence transaction of contract. Cross-VM bridge functionality is currently not available natively in EVM.

The Flow VM bridge outlines the architecture and implementation of the VM bridge. Read the FLIP
[here](https://github.com/onflow/flips/pull/233).
The Flow VM bridge outlines the architecture and implementation of the VM bridge. Read the FLIP [here](https://github.com/onflow/flips/pull/233).
4 changes: 2 additions & 2 deletions docs/evm/tools/bridges.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ sidebar_position: 3
:::info
## Coming Soon

Details on bridges connecting FlowEVM with other networks are currently in the works and will be shared soon. These bridges will facilitate seamless asset transfers and interoperability between FlowEVM and various blockchains, enhancing the utility and reach of Flow's ecosystem.
Details on bridges connecting EVM on Flow with other networks are currently in the works and will be shared soon. These bridges will facilitate seamless asset transfers and interoperability between EVM on Flow and various blockchains, enhancing the utility and reach of Flow's ecosystem.

For real-time updates and discussions, please join the [Flow Discord](https://discord.gg/flow) and check the #evm channel.
:::
:::
10 changes: 5 additions & 5 deletions docs/evm/tools/clients/ethers.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ sidebar_position: 1

# ethers.js

:::info
:::info

## Coming Soon

Documentation on using [ethers.js](https://docs.ethers.org/v5/) to interact with smart contracts deployed on the FlowEVM network is currently under development and will be available shortly.
Documentation on using [ethers.js](https://docs.ethers.org/v5/) to interact with smart contracts deployed on Flow network is currently under development and will be available shortly.

ethers.js is a prominent JavaScript library for interacting with EVM-compatible blockchain networks, and its integration with FlowEVM is eagerly anticipated.
ethers.js is a prominent JavaScript library for interacting with EVM-compatible blockchain networks, and its integration with EVM on Flow is eagerly anticipated.

Stay tuned for detailed guides on installing, setting up, and utilizing ethers.js within the FlowEVM environment, including connecting to the network, reading and writing data on the blockchain, and interacting with smart contracts.
Stay tuned for detailed guides on installing, setting up, and utilizing ethers.js within the EVM environment on Flow, including connecting to the network, reading and writing data on the blockchain, and interacting with smart contracts.

For the latest updates, please check back soon or join the [Flow Discord](https://discord.gg/flow) and visit the #evm channel.
:::
:::
2 changes: 1 addition & 1 deletion docs/evm/tools/data-indexers.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sidebar_position: 4

## Coming Soon

Information on Data Indexers for FlowEVM are currently under development and will be available shortly. Stay tuned for updates on tools and services.
Information on Data Indexers for EVM on Flow are currently under development and will be available shortly. Stay tuned for updates on tools and services.

For the latest updates, please join the [Flow Discord](https://discord.gg/flow) and check the #evm channel.

Expand Down
15 changes: 7 additions & 8 deletions docs/evm/tools/faucets.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
---
title: Faucets
sidebar_label: Faucets
sidebar_position: 2
sidebar_position: 1
---

# Faucets

A faucet is a way to distribute small amounts of a token to users for testing and development purposes.
Token faucets are essential for developers to test and deploy smart contracts without using real assets.

## Previewnet
If you would like to run your EVM app on Flow Previewnet or Testnet you must fund it with some FLOW using a faucet or supporting wallet.

The Crescendo Previewnet network, part of the Flow ecosystem, also offers a faucet for developers. Access the Crescendo Previewnet faucet at: [Previewnet Faucet](https://previewnet-faucet.onflow.org/fund-account)
## Flow Faucet

## Testnet (FlowEVM Support Coming Soon)
The Flow Faucet is a fast and reliable network faucet that allows you to create an account on the specified network as well as fund small amounts of test Flow to any Cadence or EVM address on these networks.

FlowEVM supports developers with a testnet faucet, facilitating the testing and development of smart contracts in a risk-free environment. Access the testnet faucet at: [FlowEVM Testnet Faucet](https://testnet-faucet.onflow.org/fund-account)
Access the **Flow Faucet** at the following links:

## Mainnet

FlowEVM does not have a faucet for mainnet. You can get FLOW token through an exchange or receiving FLOW from a 3rd party or receiving FLOW token as staking rewards. Learn more [here](https://flow.com/use-flow/flow-token).
- [**Previewnet Faucet**](https://previewnet-faucet.onflow.org/fund-account)
- [**Testnet Faucet**](https://testnet-faucet.onflow.org/fund-account) (EVM Support Coming Soon)
Loading

0 comments on commit f98d19d

Please sign in to comment.