Skip to main content

Using EVM On Flow

EVM Wallets

Applications deployed to EVM on Flow will work with popular EVM-compatible wallets such as MetaMask, all you need to do is add the correct RPC endpoint as a custom network.

MetaMask

Manual method: Add EVM on Flow as a custom network to MetaMask:

  1. Open the MetaMask browser extension
  2. Open the network selection dropdown menu by clicking the dropdown button at the top of the extension
  3. Click the Add network button
  4. Click Add a network manually
  5. In the Add a network manually dialog that appears, enter the following information:
NameValue
Network NameEVM on Flow
DescriptionThe public RPC url for Flow Mainnet
RPC Endpointhttps://mainnet.evm.nodes.onflow.org
Chain ID747
Currency SymbolFLOW
Block Explorerhttps://evm.flowscan.io/
  1. Tap the Save button to save EVM on Flow as a network.

You should now be able to connect to the EVM on Flow by selecting it from the network selection dropdown menu.

To additionally add the EVM on Flow Testnet to MetaMask, follow the same steps as above, but use the following information:

NameValue
Network NameEVM on Flow Testnet
DescriptionThe public RPC url for Flow Testnet
RPC Endpointhttps://testnet.evm.nodes.onflow.org
Chain ID545
Currency SymbolFLOW
Block Explorerhttps://evm-testnet.flowscan.io

Use the Flow Testnet Faucet to fund your account for testing.

Flow Native Wallets

Flow Wallet

Flow Wallet is available on Android and iOS, with desktop support using the Flow Wallet Chrome extension. In addition to being able to transact in both EVM and Cadence environments, Flow Wallet will also allow you to view and move assets between EVM and Cadence, making it possible to manage all your assets in one place.

To use the Flow Wallet Chrome extension:

  1. Open the Flow Wallet browser extension and create your account.
  2. Connect to an app using Flow Wallet.

EVM Specification

  • EVM on Flow is a virtual EVM-based blockchain using the latest EVM byte-code interpreter Geth v1.13
  • Utilizes FLOW token for transactions, with balances denominated in Atto-FLOW (1 FLOW = 10^18 Atto-FLOW)
  • The EVM Gateway exposes the standard EVM API (Ethereum JSON-RPC)
  • Read more about the implementation in FLIP 223: EVM integration interface

JSON-RPC Methods

MethodStatusNotes
web3_clientVersion
web3_sha3
net_listening
net_peerCount
net_version
eth_accounts🚧Unsupported
eth_blockNumber
eth_call
eth_chainId
eth_coinbase
eth_estimateGas
eth_gasPrice
eth_getBalance
eth_getBlockByHash
eth_getBlockByNumber
eth_getBlockTransactionCountByHash
eth_getBlockTransactionCountByNumber
[eth_getBlockReceipts]
eth_getCode
eth_getFilterChanges
eth_getFilterLogs
eth_getLogs
eth_getProof🚧Unsupported
eth_getStorageAt🚧Unsupported
eth_getTransactionByBlockHashAndIndex
eth_getTransactionByBlockNumberAndIndex
eth_getTransactionByHash
eth_getTransactionCount
eth_getTransactionReceipt
eth_getUncleByBlockHashAndIndex
eth_getUncleByBlockNumberAndIndex
eth_getUncleCountByBlockHash
eth_getUncleCountByBlockNumber
eth_newBlockFilter
eth_newFilter
eth_newPendingTransactionFilter
eth_sendRawTransaction
eth_sendTransaction🚧Unsupported
eth_sign🚧Unsupported
eth_signTransaction🚧Unsupported
eth_syncing
eth_uninstallFilter
[eth_maxPriorityFeePerGas]
[eth_feeHistory]
[debug_traceTransaction]
[debug_traceBlockByNumber]
[debug_traceBlockByHash]

Legend: ❌ = not supported. 🚧 = work in progress. ✅ = supported.

Read more about the EVM Gateway on Flow and how it implements the Ethereum JSON-RPC API.