diff --git a/developer-guide/smart-contract-development/ides-and-tools/foundry.md b/developer-guide/smart-contract-development/ides-and-tools/foundry.md
new file mode 100644
index 0000000..4750011
--- /dev/null
+++ b/developer-guide/smart-contract-development/ides-and-tools/foundry.md
@@ -0,0 +1,167 @@
+# Foundry
+This section will guide smart contracts development on Viction network using Foundry tool.
+
+## Installations
+You will need the Rust compiler and Cargo, the Rust package manager. Install both with command:
+```shell
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+```
+
+Foundry generally only supports building on the latest stable Rust version. If you have an older Rust version, you can update with `rustup`:
+```shell
+rustup update stable
+```
+
+Install Foundryup:
+```shell
+curl -L https://foundry.paradigm.xyz | bash
+```
+
+Install Foundry:
+```shell
+foundryup
+```
+
+## Creating a Foundry Project
+Run following commands:
+```shell
+forge init hello_foundry
+cd hello_foundry
+```
+
+## Configurations
+We will need some configs in the `foundry.toml` to work with Viction network.
+```
+[profile.default]
+src = "src"
+out = "out"
+libs = ["lib"]
+optimizer = true
+optimizer_runs = 200
+
+[rpc_endpoints]
+viction_mainnet = "https://rpc.viction.xyz/"
+
+[etherscan]
+viction_mainnet = { key="", url = "https://vicscan.xyz/api/" }
+
+# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
+```
+
+## Load environment variables
+Setup `.env` file:
+```
+PRIVATE_KEY=
+```
+Substitute with the private key for your wallet.
+
+***Note:*** Requires prefixing with `0x`.
+
+## Compile the smart contract
+In a Foundry project, contracts will be placed at the `src/` folder. Create a simple token contract `MyToken.sol` for example:
+
+```solidity
+pragma solidity 0.8.19;
+
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+
+contract MyToken is ERC20 {
+ constructor() ERC20("My Token", "MYT") {}
+
+ function mint(address recipient, uint256 amount)
+ external
+ returns (uint256)
+ {
+ _mint(recipient, amount);
+ return amount;
+ }
+}
+```
+
+The Solidity code above defines a smart contract named MyToken. The code uses the ERC20 interface provided by the OpenZeppelin Contracts library to create a token smart contract. OpenZeppelin allows developers to leverage battle-tested smart contract implementations that adhere to official ERC standards.
+
+To add the OpenZeppelin Contracts library to your project, run:
+```shell
+forge install OpenZeppelin/openzeppelin-contracts --no-commit
+```
+
+The Openzeppelin Contracts library is already in the `lib/openzeppelin-contracts` folder. In order to simple import contracts with alias `@openzeppelin/contracts`, add remappings to assign the library directiory with the `alias` in `foundry.toml`:
+```
+[profile.default]
+...
+remappings=[
+ "@openzeppelin=lib/openzeppelin-contracts/"
+]
+...
+
+```
+To compile `ERC20` contract, run:
+```shell
+forge build
+```
+
+## Deploy the smart contract
+Once your contract has been successfully compiled, you can deploy the contract to the Viction networks.
+
+To deploy the contract to the Viction mainnet, you'll need to add the `script/MyToken.s.sol` in the project:
+```solidity
+// SPDX-License-Identifier: UNLICENSED
+pragma solidity ^0.8.0;
+
+import {Script} from "forge-std/Script.sol";
+import "../src/MyToken.sol";
+
+contract MyTokenScript is Script {
+ function run() public {
+ uint256 privateKey = vm.envUint("PRIVATE_KEY");
+
+ vm.startBroadcast(privateKey);
+ new MyToken();
+ vm.stopBroadcast();
+ }
+}
+```
+
+Finally, ensure your wallet has enough fund to cover gas fee and run script with command:
+```shell
+forge script script/MyToken.s.sol:MyTokenScript --rpc-url viction_mainnet --legacy --broadcast
+```
+
+***Note:***
+- Deployment requires flag `--legacy` because the Viction RPC currently not supported EIP-1559 transactions. Reference.
+
+The transaction informations will appear after running script likes this:
+```
+## Setting up 1 EVM.
+
+==========================
+
+Chain 88
+
+Estimated gas price: 2 gwei
+
+Estimated total gas used for script: 676986
+
+Estimated amount required: 0.001353972 ETH
+
+==========================
+##
+Sending transactions [0 - 0].
+⠁ [00:00:00] [#################################################################################################################] 1/1 txes (0.0s)##
+Waiting for receipts.
+⠉ [00:00:07] [#############################################################################################################] 1/1 receipts (0.0s)
+##### viction
+✅ [Success]Hash: 0x3e2ff561e92a99e35cbd72ec707ae7642d2a87ef9c3213afbfc9544f37ee8b8f
+Contract Address: 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0
+Block: 78881479
+Paid: 0.001041822 ETH (520911 gas * 2 gwei)
+
+
+
+==========================
+
+ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.
+Total Paid: 0.001041822 ETH (520911 gas * avg 2 gwei)
+```
+
+We got the success deployment with `txnHash` is `0x3e2ff561e92a99e35cbd72ec707ae7642d2a87ef9c3213afbfc9544f37ee8b8f` and the `MyToken` contract address is `0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0`. We can check its on VicScan.
\ No newline at end of file