5/5
_Follow along with this video:_ --- ### More setup Make sure we are in the folder we created in the previous lesson. **Reminder**: We ran the following commands ``` mkdir foundry-f23 cd foundry-f23 ``` Now type the following commands: ``` mkdir foundry-simple-storage-f23 cd foundry-simple-storage-f23 ``` You can always make the `cd` command faster by pressing the `Tab` key after you type the first couple of letters from the destination name. `Tab` lets you autocomplete a lot of commands/paths. If you type `code .` a new instance of VS Code will open, having the `foundry-simple-storage-f23` as the default path. You can see the contents of this folder on the left sidebar. Try the following command: ``` touch randomFile.txt ``` This will create a `randomFile.txt` If you want to delete it type: ``` rm randomFile.txt ``` The terminal is pretty slick when it comes to moving/opening/creating directories/files, changing paths and generally running things. I recommend going through [this tutorial](https://ubuntu.com/tutorials/command-line-for-beginners#1-overview) if you want to learn how to move extra fast. ### Creating a New Project The way you [create a new Foundry project](https://book.getfoundry.sh/projects/creating-a-new-project) is by running the `forge init` command. This will create a new Foundry project in your current working directory. If you want Foundry to create the new project in a new folder type `forge init nameOfNewFolder`. Keep in mind that by default `forge init` expects an empty folder. If your folder is not empty you must run `forge init --force .` Be sure to configure your username and email if you encounter errors related to Git configuration. ``` git config --global user.email "yourEmail@provider.com" git config --global user.name "yourUsername" ``` And that's it, your folder should look as follows:  **But what does all this mean?** `lib` is the folder where all your dependencies are installed, here you'll find things like: - `forge-std` (the forge library used for testing and scripting) - `openzeppelin-contracts` is the most battle-tested library of smart contracts - and many more, depending on what you need/install `scripts` is a folder that houses all your scripts `src` is the folder where you put all your smart contracts `test` is the folder that houses all your tests `foundry.toml` - gives configuration parameters for Foundry More on these folders and files later. Please right-click `src`, click on `New File` and name it `SimpleStorage.sol`. Copy the code available [here](https://github.com/Cyfrin/foundry-simple-storage-f23/blob/main/src/SimpleStorage.sol). One last thing, please delete `Counter.s.sol`, `Counter.sol` and `Counter.t.sol`. These files are a set of basic smart contracts that Foundry provides as a default when you create a new Foundry project.
Follow along with this video:
Make sure we are in the folder we created in the previous lesson.
Reminder: We ran the following commands
Now type the following commands:
You can always make the cd
command faster by pressing the Tab
key after you type the first couple of letters from the destination name. Tab
lets you autocomplete a lot of commands/paths.
If you type code .
a new instance of VS Code will open, having the foundry-simple-storage-f23
as the default path.
You can see the contents of this folder on the left sidebar. Try the following command:
This will create a randomFile.txt
If you want to delete it type:
The terminal is pretty slick when it comes to moving/opening/creating directories/files, changing paths and generally running things. I recommend going through this tutorial if you want to learn how to move extra fast.
The way you create a new Foundry project is by running the forge init
command. This will create a new Foundry project in your current working directory.
If you want Foundry to create the new project in a new folder type forge init nameOfNewFolder
.
Keep in mind that by default forge init
expects an empty folder. If your folder is not empty you must run forge init --force .
Be sure to configure your username and email if you encounter errors related to Git configuration.
And that's it, your folder should look as follows:
But what does all this mean?
lib
is the folder where all your dependencies are installed, here you'll find things like:
forge-std
(the forge library used for testing and scripting)
openzeppelin-contracts
is the most battle-tested library of smart contracts
and many more, depending on what you need/install
scripts
is a folder that houses all your scripts
src
is the folder where you put all your smart contracts
test
is the folder that houses all your tests
foundry.toml
- gives configuration parameters for Foundry
More on these folders and files later.
Please right-click src
, click on New File
and name it SimpleStorage.sol
. Copy the code available here.
One last thing, please delete Counter.s.sol
, Counter.sol
and Counter.t.sol
. These files are a set of basic smart contracts that Foundry provides as a default when you create a new Foundry project.
A foundational guide to Setting Up Your Foundry Project - Initialize your first professional smart contract environment using `forge init` and understand the standard Foundry project structure. Learn to add contracts and troubleshoot common Git configuration issues during setup.
Previous lesson
Previous
Next lesson
Next
Give us feedback
Course Overview
About the course
Foundryup, Foundry Forge, and Anvil
Blockchain Oracles
How to create local Blockchain testnets
How to verify a smart contract
How to write and run smart contract tests
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Last updated on June 10, 2025
Duration: 2h 55min
Duration: 2h 56min
Duration: 26min
Duration: 5h 22min
Course Overview
About the course
Foundryup, Foundry Forge, and Anvil
Blockchain Oracles
How to create local Blockchain testnets
How to verify a smart contract
How to write and run smart contract tests
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Last updated on June 10, 2025