You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: scraped_docs/developers_flow_com/blockchain_development_tutorials_cadence_getting_started_building_a_frontend_app.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ Search
44
44
45
45
On this page
46
46
47
-
# Building a Frontend App
47
+
# Building a frontend app
48
48
49
49
This tutorial builds on the `Counter` contract you deployed in [Cadence Environment Setup](/blockchain-development-tutorials/cadence/getting-started/cadence-environment-setup) and [Smart Contract Interaction](/blockchain-development-tutorials/cadence/getting-started/smart-contract-interaction). It shows you how to create a simple `Next.js` frontend that interacts with the `Counter` smart contract deployed on your local Flow emulator. Instead of using FCL directly, you'll leverage [**@onflow/react-sdk**](/build/tools/react-sdk) to simplify authentication, querying, transactions, and to display real-time transaction status updates using convenient React hooks.
50
50
@@ -980,7 +980,7 @@ For additional details and advanced usage, refer to the [@onflow/react-sdk docum
980
980
981
981
[Edit this page](https://github.com/onflow/docs/tree/main/docs/blockchain-development-tutorials/cadence/getting-started/building-a-frontend-app.md)
982
982
983
-
Last updated on **Oct 30, 2025** by **cshannon1218**
983
+
Last updated on **Nov 14, 2025** by **0xLisanAlGaib**
Copy file name to clipboardExpand all lines: scraped_docs/developers_flow_com/blockchain_development_tutorials_cadence_getting_started_production_deployment.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ Search
44
44
45
45
On this page
46
46
47
-
# Production Deployment
47
+
# Production deployment
48
48
49
49
You've developed locally with the emulator, integrated external dependencies, built sophisticated transactions, implemented comprehensive testing, and created a frontend interface. Now it's time to take your application live and deploy it to Flow's public networks.
50
50
@@ -752,7 +752,7 @@ npm run build`
752
752
753
753
[Edit this page](https://github.com/onflow/docs/tree/main/docs/blockchain-development-tutorials/cadence/getting-started/production-deployment.md)
754
754
755
-
Last updated on **Oct 30, 2025** by **cshannon1218**
755
+
Last updated on **Nov 14, 2025** by **0xLisanAlGaib**
Copy file name to clipboardExpand all lines: scraped_docs/developers_flow_com/blockchain_development_tutorials_cross_vm_apps_batched_evm_transactions.md
Copy file name to clipboardExpand all lines: scraped_docs/developers_flow_com/blockchain_development_tutorials_evm_development_tools_foundry.md
+25-25Lines changed: 25 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,14 +44,14 @@ On this page
44
44
45
45
# Using Foundry with Flow
46
46
47
-
Foundry is a suite of development tools that simplifies the process of developing and deploying Solidity contracts to EVM networks. This guide will walk you through the process of deploying a Solidity contract to Flow EVM using the Foundry development toolchain. You can check out the official Foundry docs [here](https://book.getfoundry.sh/).
47
+
Foundry is a suite of development tools that simplifies the process to develop and deploy Solidity contracts to EVM networks. This guide will walk you through thow to deploy a Solidity contract to Flow EVM with the Foundry development toolchain. You can check out the official Foundry docs [here](https://book.getfoundry.sh/).
48
48
49
49
In this guide, we'll deploy an ERC-20 token contract to Flow EVM using Foundry. We'll cover:
50
50
51
-
*Developing and testing a basic ERC-20 contract
52
-
*Deploying the contract to Flow EVM using Foundry tools
53
-
*Querying Testnet state
54
-
*Mutating Testnet state by sending transactions
51
+
*How to develop and test a basic ERC-20 contract
52
+
*Deploy the contract to Flow EVM with Foundry tools
53
+
*How to query the Testnet state
54
+
*How to mutate Testnet state by sending transactions
55
55
56
56
## Overview[](#overview"Direct link to Overview")
57
57
@@ -62,17 +62,17 @@ To use Flow across all Foundry tools you need to:
62
62
`_10
63
63
64
64
--rpc-url https://testnet.evm.nodes.onflow.org`
65
-
2. Use the `--legacy` flag to disable[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) style transactions. Flow will support EIP-1559 soon and this flag won't be needed.
65
+
2. Use the `--legacy` flag to turn off[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) style transactions. Flow will support EIP-1559 soon and this flag won't be needed.
66
66
67
-
As an example, we'll show you how to deploy a fungible token contract to Flow EVM using Foundry. You will see how the above flags are used in practice.
67
+
As an example, we'll show you how to deploy a fungible token contract to Flow EVM with Foundry. You will see how the above flags are used in practice.
68
68
69
69
## Example: Deploying an ERC-20 Token Contract to Flow EVM[](#example-deploying-an-erc-20-token-contract-to-flow-evm"Direct link to Example: Deploying an ERC-20 Token Contract to Flow EVM")
70
70
71
71
ERC-20 tokens are the most common type of tokens on Ethereum. We'll use [OpenZeppelin](https://www.openzeppelin.com/) starter templates with Foundry on Flow Testnet to deploy our own token called `MyToken`.
72
72
73
73
### Installation[](#installation"Direct link to Installation")
74
74
75
-
The best way to install Foundry, is to use the `foundryup` CLI tool. You can get it using the following command:
75
+
The best way to install Foundry, is to use the `foundryup` CLI tool. You can get it with the following command:
76
76
77
77
`_10
78
78
@@ -90,7 +90,7 @@ You may need to reload your shell after `foundryup` installation.
90
90
91
91
Check out the official [Installation](https://book.getfoundry.sh/getting-started/installation) guide for more information about different platforms or installing specific versions.
92
92
93
-
### Wallet Setup[](#wallet-setup"Direct link to Wallet Setup")
93
+
### Wallet setup[](#wallet-setup"Direct link to Wallet setup")
94
94
95
95
We first need to generate a key pair for our EVM account. We can do this using the `cast` tool:
96
96
@@ -106,7 +106,7 @@ You can verify the balance of the account after funding. Replace `$YOUR_ADDRESS`
### Project Setup[](#project-setup"Direct link to Project Setup")
109
+
### Project setup[](#project-setup"Direct link to Project setup")
110
110
111
111
First, create a new directory for your project:
112
112
@@ -132,9 +132,9 @@ forge test`
132
132
133
133
The tests should pass.
134
134
135
-
### Writing the ERC-20 Token Contract[](#writing-the-erc-20-token-contract"Direct link to Writing the ERC-20 Token Contract")
135
+
### Write the ERC-20 token contract[](#write-the-erc-20-token-contract"Direct link to Write the ERC-20 token contract")
136
136
137
-
We'll use the OpenZeppelin ERC-20 contract template. We can start by adding OpenZeppelin to our project:
137
+
We'll use the OpenZeppelin ERC-20 contract template. To start, we'll add OpenZeppelin to our project:
138
138
139
139
`_10
140
140
@@ -176,7 +176,7 @@ _10
176
176
177
177
The above is a basic ERC-20 token with the name `MyToken` and symbol `MyT`. It also mints the specified amount of tokens to the contract deployer. The amount is passed as a constructor argument during deployment.
178
178
179
-
Before compiling, we also need to update the test file.
179
+
Before we comnpile, we also need to update the test file.
180
180
181
181
### Testing[](#testing"Direct link to Testing")
182
182
@@ -422,7 +422,7 @@ _65
422
422
423
423
}`
424
424
425
-
You can now make sure everything is okay by compiling the contracts:
425
+
To make sure everything is okay, compile the contracts:
426
426
427
427
`_10
428
428
@@ -436,9 +436,9 @@ forge test`
436
436
437
437
They should all succeed.
438
438
439
-
### Deploying to Flow Testnet[](#deploying-to-flow-testnet"Direct link to Deploying to Flow Testnet")
439
+
### Deploy to Flow Testnet[](#deploy-to-flow-testnet"Direct link to Deploy to Flow Testnet")
440
440
441
-
We can now deploy `MyToken`using the `forge create` command. We need to provide the RPC URL, private key from a funded account using the faucet, and constructor arguments that is the initial mint amount in this case. We need to use the `--legacy` flag to disable EIP-1559 style transactions. Replace `$DEPLOYER_PRIVATE_KEY` with the private key of the account you created earlier:
441
+
We can now deploy `MyToken`with the `forge create` command. We need to provide the RPC URL, private key from a funded account with the faucet, and constructor arguments that is the initial mint amount in this case. We need to use the `--legacy` flag to turn off EIP-1559 style transactions. Replace `$DEPLOYER_PRIVATE_KEY` with the private key of the account you created earlier:
442
442
443
443
`_10
444
444
@@ -462,9 +462,9 @@ _10
462
462
463
463
The above will print the deployed contract address. We'll use it in the next section to interact with the contract.
464
464
465
-
### Verifying a Smart Contract[](#verifying-a-smart-contract"Direct link to Verifying a Smart Contract")
465
+
### Verify a smart contract[](#verify-a-smart-contract"Direct link to Verify a smart contract")
466
466
467
-
Once deployed, you can verify the contract so that others can see the source code and interact with it from Flow's block explorer. You can use the [`forge verify-contract`](https://book.getfoundry.sh/reference/forge/forge-verify-contract) command:
467
+
After you deploy the contract, you can verify it so that others can see the source code and interact with it from Flow's block explorer. You can use the [`forge verify-contract`](https://book.getfoundry.sh/reference/forge/forge-verify-contract) command:
468
468
469
469
`_10
470
470
@@ -488,9 +488,9 @@ src/MyToken.sol:MyToken`
488
488
489
489
info
490
490
491
-
When verifying a Mainnet contract, be sure to use the Mainnet [RPC](/build/evm/networks) and block explorer URLs.
491
+
When you verify a Mainnet contract, be sure to use the Mainnet [RPC](/build/evm/networks) and block explorer URLs.
492
492
493
-
### Querying Testnet State[](#querying-testnet-state"Direct link to Querying Testnet State")
493
+
### Query Testnet state[](#query-testnet-state"Direct link to Query Testnet state")
494
494
495
495
Based on the given constructor arguments, the deployer should own `42,000,000 MyT`. We can check the `MyToken` balance of the contract owner. Replace `$DEPLOYED_MYTOKEN_ADDRESS` with the address of the deployed contract and `$DEPLOYER_ADDRESS` with the address of the account you funded earlier:
496
496
@@ -510,7 +510,7 @@ _10
510
510
511
511
$DEPLOYER_ADDRESS`
512
512
513
-
This should return the amount specified during deployment. We can also call the associated function directly in the contract:
513
+
This will return the amount specified during deployment. We can also call the associated function directly in the contract:
514
514
515
515
`_10
516
516
@@ -544,7 +544,7 @@ _10
544
544
545
545
### Sending Transactions[](#sending-transactions"Direct link to Sending Transactions")
546
546
547
-
Let's create a second account and move some tokens using a transaction. You can use `cast wallet new` to create a new test account. You don't need to fund it to receive tokens. Replace `$NEW_ADDRESS` with the address of the new account:
547
+
Let's create a second account and move some tokens with a transaction. You can use `cast wallet new` to create a new test account. You don't need to fund it to receive tokens. Replace `$NEW_ADDRESS` with the address of the new account:
548
548
549
549
`_10
550
550
@@ -588,7 +588,7 @@ _10
588
588
589
589
$NEW_ADDRESS`
590
590
591
-
The deployer should also own less tokens now:
591
+
The deployer will also own fewer tokens now:
592
592
593
593
`_10
594
594
@@ -608,7 +608,7 @@ $DEPLOYER_ADDRESS`
608
608
609
609
[Edit this page](https://github.com/onflow/docs/tree/main/docs/blockchain-development-tutorials/evm/development-tools/foundry.md)
610
610
611
-
Last updated on **Aug 26, 2025** by **Felipe Cevallos**
611
+
Last updated on **Nov 12, 2025** by **cshannon1218**
612
612
613
613
[Previous
614
614
@@ -623,7 +623,7 @@ Build a Fully-Onchain Image Gallery](/blockchain-development-tutorials/evm/image
623
623
Copy as Markdown
624
624
625
625
*[Overview](#overview)*[Example: Deploying an ERC-20 Token Contract to Flow EVM](#example-deploying-an-erc-20-token-contract-to-flow-evm)
626
-
+[Installation](#installation)+ [Wallet Setup](#wallet-setup)+ [Project Setup](#project-setup)+ [Writing the ERC-20 Token Contract](#writing-the-erc-20-token-contract)+ [Testing](#testing)+ [Deploying to Flow Testnet](#deploying-to-flow-testnet)+ [Verifying a Smart Contract](#verifying-a-smart-contract)+ [Querying Testnet State](#querying-testnet-state)+ [Sending Transactions](#sending-transactions)
626
+
+[Installation](#installation)+ [Wallet setup](#wallet-setup)+ [Project setup](#project-setup)+ [Write the ERC-20 token contract](#write-the-erc-20-token-contract)+ [Testing](#testing)+ [Deploy to Flow Testnet](#deploy-to-flow-testnet)+ [Verify a smart contract](#verify-a-smart-contract)+ [Query Testnet state](#query-testnet-state)+ [Sending Transactions](#sending-transactions)
Copy file name to clipboardExpand all lines: scraped_docs/developers_flow_com/blockchain_development_tutorials_evm_development_tools_hardhat.md
+21-21Lines changed: 21 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,15 +44,15 @@ On this page
44
44
45
45
# Flow Hardhat Guide
46
46
47
-
Hardhat is an Ethereum development tool designed to facilitate the deployment, testing, and debugging of smart contracts. It provides a streamlined experience for developers working with Solidity contracts.
47
+
Hardhat is an Ethereum development tool designed to facilitate the deployment, testing, and debugging of Solidity smart contracts. It provides a streamlined experience for developers who work with with Solidity contracts.
48
48
49
49
## Prerequisites[](#prerequisites"Direct link to Prerequisites")
50
50
51
51
### Node[](#node"Direct link to Node")
52
52
53
53
Node v18 or higher, available for [download here](https://nodejs.org/en/download).
54
54
55
-
For those new to Hardhat, we recommend exploring the [official documentation](https://hardhat.org/tutorial/creating-a-new-hardhat-project) to get acquainted. The following instructions utilize`npm` to initialize a project and install dependencies:
55
+
For those new to Hardhat, we recommend that you exploare the [official documentation](https://hardhat.org/tutorial/creating-a-new-hardhat-project) to get acquainted. The following instructions use`npm` to initialize a project and install dependencies:
56
56
57
57
### Wallet[](#wallet"Direct link to Wallet")
58
58
@@ -86,13 +86,13 @@ npx hardhat init`
86
86
87
87
> When prompted, select TypeScript and to use `@nomicfoundation/hardhat-toolbox` to follow along with this guide.
88
88
89
-
### Fund Your Wallet[](#fund-your-wallet"Direct link to Fund Your Wallet")
89
+
### Fund Your wallet[](#fund-your-wallet"Direct link to Fund Your wallet")
90
90
91
-
To deploy smart contracts, ensure your wallet has **$FLOW**. Obtain funds by navigating to the Flow [Faucet](https://faucet.flow.com/fund-account) and entering your wallet address.
91
+
To deploy smart contracts, ensure your wallet has **$FLOW**. To obtain funds, navigate to the Flow [Faucet](https://faucet.flow.com/fund-account) and enter your wallet address.
92
92
93
-
## Deploying a Smart Contract with Hardhat[](#deploying-a-smart-contract-with-hardhat"Direct link to Deploying a Smart Contract with Hardhat")
93
+
## Deploy a smart contract with Hardhat[](#deploy-a-smart-contract-with-hardhat"Direct link to Deploy a smart contract with Hardhat")
94
94
95
-
This section guides you through the process of deploying smart contracts on the Flow network using Hardhat.
95
+
This section guides you through the process of how to deploy smart contracts on the Flow network with Hardhat.
96
96
97
97
### Configuration[](#configuration"Direct link to Configuration")
98
98
@@ -154,11 +154,11 @@ _15
154
154
155
155
export default config; ``
156
156
157
-
To keep this example straightforward, we've included the account's private key directly in `hardhat.config.ts`. However, it is crucial to avoid committing private keys to your Git repository for security reasons. Instead, opt for using environment variables for safer handling of sensitive information.
157
+
To keep this example straightforward, we've included the account's private key directly in `hardhat.config.ts`. However, it is crucial to not commit private keys to your Git repository for security reasons. Instead, use environment variables to safely handle sensitive information.
158
158
159
-
### Deploying HelloWorld Smart Contract[](#deploying-helloworld-smart-contract"Direct link to Deploying HelloWorld Smart Contract")
159
+
### Deploy HelloWorld smart contract[](#deploy-helloworld-smart-contract"Direct link to Deploy HelloWorld smart contract")
160
160
161
-
## HelloWorld Smart Contract[](#helloworld-smart-contract"Direct link to HelloWorld Smart Contract")
161
+
## HelloWorld smart contract[](#helloworld-smart-contract"Direct link to HelloWorld smart contract")
162
162
163
163
`_25
164
164
@@ -252,7 +252,7 @@ _25
252
252
253
253
}`
254
254
255
-
Deploying:
255
+
Deploy:
256
256
257
257
1. Create a file named `HelloWorld.sol` under `contracts` directory.
258
258
2. Add above `HelloWorld.sol` contract code to new file.
You can now search for your deployed contract on the [Flowscan block explorer](https://evm-testnet.flowscan.io/)!
342
342
343
-
### Get HelloWorld Contract Greeting[](#get-helloworld-contract-greeting"Direct link to Get HelloWorld Contract Greeting")
343
+
### Get HelloWorld contract greeting[](#get-helloworld-contract-greeting"Direct link to Get HelloWorld contract greeting")
344
344
345
345
Now, we want to get the greeting from the deployed `HelloWorld` smart contract.
346
346
@@ -435,9 +435,9 @@ _23
435
435
Steps:
436
436
437
437
1. Create a `getGreeting.ts` file in the `scripts` directory.
438
-
2. Paste contents of script above. Make sure to update the contract address with the one from deployment in earlier step.
438
+
2. Paste contents of script above. Make sure to update the contract address with the one from deployment in an earlier step.
439
439
3. Call script to get the greeting, `npx hardhat run scripts/getGreeting.ts --network testnet`
440
-
4. The output should be as follows:
440
+
4. The output will be as follows:
441
441
442
442
`_10
443
443
@@ -447,7 +447,7 @@ _10
447
447
448
448
The greeting is: Hello, World!`
449
449
450
-
### Update Greeting on HelloWorld Smart Contract[](#update-greeting-on-helloworld-smart-contract"Direct link to Update Greeting on HelloWorld Smart Contract")
450
+
### Update greeting on HelloWorld smart contract[](#update-greeting-on-helloworld-smart-contract"Direct link to Update greeting on HelloWorld smart contract")
451
451
452
452
Next, we'll add a script to update the greeting and log it.
453
453
@@ -592,7 +592,7 @@ Here are the steps to follow:
592
592
1. Create an `updateGreeting.ts` script in the `scripts` directory.
593
593
2. Paste in the TypeScript above, make sure to update the contract address with the one from deployment in earlier step.
594
594
3. Call the new script, `NEW_GREETING='Howdy!' npx hardhat run ./scripts/updateGreeting.ts --network testnet`
595
-
4. The output should be
595
+
4. The output will be:
596
596
597
597
`_10
598
598
@@ -614,9 +614,9 @@ _10
614
614
615
615
The greeting is: Howdy!`
616
616
617
-
### Verifying Contract[](#verifying-contract"Direct link to Verifying Contract")
617
+
### Verify contract[](#verify-contract"Direct link to Verify contract")
618
618
619
-
To verify your contract on [Flowscan](https://evm-testnet.flowscan.io/), you can update your Hardhat config file as such including the correct chainID, apiURL and browserURL:
619
+
To verify your contract on [Flowscan](https://evm-testnet.flowscan.io/), you can update your Hardhat config file. To do this, include the correct chainID, apiURL and browserURL:
+[Node](#node)+ [Wallet](#wallet)+ [Fund Your Wallet](#fund-your-wallet)*[Deploying a Smart Contract with Hardhat](#deploying-a-smart-contract-with-hardhat)
0 commit comments