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 for Testnet:
NameValue
Network NameFlow 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/
  1. Tap the Save button to save Flow Testnet as a network.

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

Use the Flow Testnet Faucet to fund a new account for testing.

Flow Native Wallets

Flow Wallet (Coming Soon)

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

  • Flow EVM is a virtual EVM-based blockchain on Flow 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.