https://github.com/thpani/fuzz-pb25
Fuzzing Workshop at Protocol Berg Berlin, June 2025
https://github.com/thpani/fuzz-pb25
evm fuzzing solidity
Last synced: 14 days ago
JSON representation
Fuzzing Workshop at Protocol Berg Berlin, June 2025
- Host: GitHub
- URL: https://github.com/thpani/fuzz-pb25
- Owner: thpani
- Created: 2025-05-08T08:42:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-10T13:51:05.000Z (7 months ago)
- Last Synced: 2025-12-10T21:48:35.441Z (7 months ago)
- Topics: evm, fuzzing, solidity
- Language: Python
- Homepage: https://blltprf.xyz/blog/25-min-solidity-fuzzer/
- Size: 20.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Smart Contract Fuzzing Workshop
This repository contains materials for the workshop ["25-Minute Solidity Fuzzer:
Fuzzing Smarter, Not Harder"][Fuzzing talk] workshop presented at [Protocol Berg
v2][].
The workshop is designed to introduce participants to the basics of smart
contract fuzzing, focusing on how to create a simple fuzzer using Python. The
goal is to provide a practical understanding of fuzzing techniques and their
application in the context of Ethereum smart contracts.
## 🎥 Workshop Recording
[](https://www.youtube.com/watch?v=Z7oMWser1JU)
## Repository Structure
- `pbfuzz.py`: The main fuzzer implementation.
- `contract/`: Directory containing the example smart contract to be fuzzed.
⚠️ The contract is intentionally vulnerable to demonstrate the fuzzer's capabilities.
Do **not** use this contract in production or with real funds.
## Follow Along
To follow along with the workshop, you can start at the `start_here` tag and
step through the commits to see the development of the fuzzer. Each commit
represents a step in building the fuzzer — though explanations are provided in
the workshop talk, not in the commit messages.
## Requirements
To run the fuzzer, you only need Python 3.x and the `py-evm` package installed.
To build the sample contract, you will need Foundry installed.
A fully-configured environment is available via the devcontainer in this
repository. You can use it with Visual Studio Code or any compatible editor that
supports devcontainers.
[Protocol Berg v2]: https://protocol.berlin/
[Fuzzing talk]: https://blltprf.xyz/blog/25-min-solidity-fuzzer/