Awesome
Awesome Foundry
Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust. Install Foundry here.
<img align="center" src="https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2Fkt99mFtZZ1Gl2ZbWGNI3J.png&w=3840&q=90" alt="awesome-foundry" title="awesome-foundry" />A curated list of awesome Foundry resources, tutorials, tools and libraries. Inspired by awesome-go.
Contributing
Please take a quick view at the contribution guidelines first.
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
Content
Tools
Frameworks, plugins and utilities for Foundry.
- Audit_Helper - audit_helper is a Python3 helper script for Linux to automate some Foundry boilerplate set up in audit repositories.
- Blacksmith - Blacksmith generates a simple frontend for interacting with smart contracts.
- Chisel - Chisel is a fast, utilitarian, and verbose solidity REPL. It is heavily inspired by the incredible work done in soli and solidity-shell!
- Foundryup - Update or revert to a specific Foundry branch with ease.
- Foundry Hardhat - Hardhat plugins to use foundry tools in hardhat environments.
- Forge Deploy - A cli and associated contracts to keep track of deployments by name and reuse them in solidity. It tries to keep compatibility with hardhat-deploy as far as possible (work in progress).
- Forge Standard Library - Collection of helpful contracts for use with forge and foundry.
- Forge GHA - Simple Github Actions workflow to run forge test.
- Forge Replit - Run Forge in the browser, vanilla setup.
- Forge Safe - Forge Safe lets Forge users build Gnosis Safe batch transactions using Forge scripting in Solidity.
- Forge Safer - Safer lets users to create transactions on a Safe without relying on Safe's backend, improving resiliency of Safe multisigs.
- Forge Snippets - VS Code Snippets for Forge.
- ForGePT - AI bot to provide support and answer foundry related questions.
- Foundrydeploy - Limited scripting (declarative?) language to implement a basic deployment pipeline using foundry.
- Foundry Docgen - A basic tool for generating markdown docs for a Foundry project using existing NatSpec comments in the contracts.
- Foundry Gas Diff Reporter Github Action to easily compare gas reports generated by Foundry automatically on each of your Pull Requests.
- Foundry toolchain Action - This GitHub Action installs Foundry, the blazing fast, portable and modular toolkit for Ethereum application development.
- Foundry Canary - A minimal foundry repo setup for examples and finding bugs.
- Forge Proposal Simulator - A tool to write, simulate and test governance proposals.
- Foundry zkSync Era - This repository provides Foundry functionality in Solidity for compiling, deploying, and interacting with smart contracts on zkSync Era.
- Femplate - Robust Template for Foundry Projects.
- Halmos - Symbolic Bounded Model Checker for Ethereum Smart Contracts Bytecode
- Hardhat Foundry - This plugin makes it easier to use Hardhat and Foundry in the same project. You can use it both for adding Foundry to an existing Hardhat project, and to add Hardhat to an existing Foundry project.
- Paradigm CTF Template - Template for efficient paradigm ctf testing & scripts.
- Quick POC - easy POC template generation from the command line.
- Solplot - A Foundry plugin that enables you to plot charts within solidity.
- Vulcan - Development framework for Foundry projects, with a focus on developer experience and readability.
Templates & Libraries
Solidity templates, libraries or utilities that use Foundry.
- Zefram's Foundry Template - @ZeframLou's Foundry template.
- Paul's Foundry Template - @PaulRBerg's Foundry template.
- Frankie's Forge Template - @FrankieIsLost's template for quickly getting started with Forge.
- Immunefi's PoC Templates - @Immunefi-team's templates for quickly getting started with a proof of concept for testing vulnerabilities.
- Foundry Hardhat Template - Template repository for getting started quickly with Hardhat and Foundry in one project.
- Foundry Vyper - A Foundry template to compile and test Vyper contracts.
- Foundry Starter Kit - Foundry Starter Kit is a repo that shows developers how to quickly build, test, and deploy smart contracts with one of the fastest frameworks out there.
- Foundry Hardhat TypeScript Template - A fully-fledged Hardhat project template based on TypeScript that includes the Foundry toolkit.
- Foundry Vulcan Template - This repository is a template for smart contract projects based on Foundry. It includes Vulcan to make your life easier when writing tests and scripts.
- Foundry <> Python Differential Fuzz Testing template - A lot of financial quant work gets modelled in Python and sometimes these models needs to be implemented in Solidity to be used in a protocol.
- Solady - Gas optimized Solidity Libraries.
- Solidify - solidify is a golang + solidity library aimed to make storing arbitrary data on EVM blockchains as easy and efficient as possible.
- Solmate - Modern, opinionated, and gas optimized building blocks for smart contract development.
- Chain Claim - Solidity lib and helper scripts for providing claim code generation and on chain verification of a claim.
- Playpen - Set of modern, gas optimized staking pool contracts.
- TokenMigrator - A simple contract for migrating from an old ERC20 token to a new ERC20 token.
- VestedERC20 - A wrapper ERC20 token that linearly vests an underlying ERC20 token to its holders.
- forge-gas-snapshot - A flexible gas snapshotting library for forge tests.
- lil web3 - Small, focused, utility-based smart contracts.
- RollCall - Rollup Governance Libraries.
- Forge Optimism - Forge Optimism is a collection of helpful contracts for use with forge and foundry on Optimism.
- Yearn Strategy Foundry Mix - Basic Solidity Smart Contract for creating your own Yearn Strategy.
- Foundry-Hardhat-Diamonds- Sleek EIP2535 Diamond deployments on the go with foundry
- Foundry Lens Protocol - Lens Protocol fork that supports Foundry.
- XChain - Cross chain call library for Solidity & Foundry.
- Solenv - A dotenv parser for Solidity & Foundry.
- surl - HTTP library for Foundry tests in Solidity based on curl.
- unix - A lightweight, extensible Foundry library for shell scripting.
- Chainlink Brownie Contracts - This repository is a slimmed down version of Chainlink's official repo. It clones only the Chainlink contracts folder and the repo automatically updates every time there is a new NPM release.
- Upgradeable Contracts With OpenZeppelin and Foundry - A minimal set of contracts showing how to implement UUPS and Transparent Upgradeable Proxy contracts using foundry, along with testing and deployment with Forge Script.
- Foundry Upgrades - Helper smart contracts to deploy and manage upgradeable contracts on Ethereum.
- PRBMath - Solidity library for advanced fixed-point math that operates with signed 59.18-decimal fixed-point and unsigned 60.18-decimal fixed-point numbers.
- ChugSplash Foundry - A Foundry library for deploying and managing upgradeable smart contracts.
- Invariant Examples - This repository functions as an accessible example for Foundry developers to experiment and learn about invariant testing.
- Foundry Multichain - This repo provides an example of a multichain Solidity Deployment/Upgradability script pattern.
- Foundry Safer Log - The safelog library provides a foundry/hardhat like console logging interface whereby the individual log functions do not modify the state of memory.
- Diamond-Foundry - Foundry implementation of EIP2535 Diamond standard.
- balance-snapshot - A Solidity library to improve balance change check in Foundry tests.
- Cannon - Continuous configuration automation & development cli multi-tool. Like Terraform, Docker and NPM for Ethereum.
Tutorials
- Getting Started by Crisgarner - Short intro tutorial for getting started.
- Getting Started by Wilson - Extended tutorial with information about testings and logging.
- Getting Started by What The Func? - Video tutorial.
- How to Foundry with Brock Elmore - YouTube live code tutorial on how to get started with Foundry.
- Foundry Book - A book on all things Foundry.
- Learn Solidity, Blockchain Development, & Smart Contracts - Full introduction course into all of the core concepts related to blockchain, smart contracts, Solidity, ERC20s, full-stack Web3 dapps, decentralized finance (DeFi), Chainlink, Ethereum, upgradable smart contracts, DAOs, aave, IPFS, and more; everything build with Foundry. Video 1 out of 3.
- Mainnet Forking - This article teaches how to run a locally simulate a swap on Uniswap.
- Ethernaut x Foundry - Ethernaut puzzles solved & tested with foundry.
- Damn Vulnerable Defi - Foundry Version - The Damn Vulnerable Defi CTF using Foundry.
- Getting Started (Chinese) - Getting started tutorial on Chinese.
- Foundry vs Hardhat - Differences in performance and developer experience.
- Smart Contract Development with Foundry - Extended video tutorial on Foundry covering tests, deployments, cast usage, deploying to a live network.
- DeFiHackLabs - Reproduce DeFi hack incidents using Foundry.
- DeFiVulnLabs - To learn common smart contract vulnerabilities using Foundry.
- How to test a contract function a million times - Tutorial about testing a function of OpenZeppelin Contracts library using foundry fuzzing.
- forge inspect $CONTRACT Tweetstorm by @w1nt3r_eth - Twitter thread about how to use forge inspect $CONTRACT ir-optimized.
- Fork testing with Foundry against a specific block number? - pro tip by @PaulRBerg.
- Using Foundry to Explore Upgradeable Contracts (Part 1) - Using Foundry tests to illustrate the various techniques used to make contracts upgradeable.
- Foundry Best Practices - This guide documents the suggested best practices when developing with Foundry. In general, it's recommended to handle as much as possible with forge fmt, and anything this doesn't handle is below.
- Invariant Testing WETH With Foundry - In this short guide, we'll write invariant tests from the ground up for Wrapped Ether, one of the most important contracts on mainnet.
- Tic Tac Token - Tic Tac Token will teach you Foundry from the ground up while you create Tic Tac Toe and learn how to write and test Solidity smart contracts using Foundry.
Projects Using Foundry
- 0xHacked - A trustless bug bounty platform built on zero-knowledge proof, where the whitehat can submit the proof of exploit to claim a bug bounty without disclosing any details. We referred to the implementation of Foundry.
- Art Gobblers - Contracts for Art Gobblers, the self-sustaining art factory, with custom ERC721 implementation with VRGDAs, GOO integration and differential fuzzing.
- OpenSea Seaport - Seaport is a new marketplace protocol for safely and efficiently buying and selling NFTs.
- Optimism Contracts Bedrock - This package contains the smart contracts that compose the on-chain component of Optimism's upcoming Bedrock upgrade.
- MapleLoan - Set of contracts to facilitate on-chain Loans between Maple Finance Pools and institutional borrowers.
- Cryptex Finance - Index token that tracks the total cryptocurrency market capitalization. (Optimism version uses Foundry tests).
- Gov of Venice - Governance of Venice is a new paradigm in DAO governance, attempting to standardise the existence of functional groups within DAOs (Guilds) in terms of how they participate in the Governance process of different DAOs.
- Beefy Finance - Official repo for strategies and vaults from the Beefy yield optimizer.
- DeFi Hacks Reproduce - Foundry - Reproduce DeFi hack incidents using Foundry.
- Tokenlon - Tokenlon is a decentralized exchange and payment settlement protocol.
- Uniswap V3 Development Book - Development book about Uniswap V3 built using Foundry.
- Uniswap Permit - Permit2 introduces a low-overhead, next generation token approval/meta-tx system to make token approvals easier, more secure, and more consistent across applications.