React and Vue hooks and TypeScript utilities for building Ethereum apps, built on top of viem.
pk910/PoWFaucet
A modular faucet for EVM testnets that uses proof-of-work mining, captchas, IP limits and other checks to deter bots from draining funds.
- Stars
- 5,655
- Forks
- 2,056
- Open issues
- 8
- Last commit
- 3 days ago
What is it?
PoWFaucet is a faucet for EVM-compatible chains that distributes funds from a wallet the operator controls. Its main purpose is to make automated, bot-driven requests expensive, so a low-reserve testnet faucet is not drained.
The faucet is built from pluggable protection modules. Available methods include captchas, a proof-of-work mining step, IP-based limits, a mainnet balance requirement, and Gitcoin Passport checks. Operators pick which modules to enable and configure them in a YAML file. The mining step does not create new coins; it only raises the cost of each request.
To run an instance, the operator must transfer the funds to distribute to the faucet wallet. Demo instances for Sepolia, Hoodi and Ephemery testnets are maintained by the author, and operator documentation is provided in the project wiki.
Key features
- 01Modular protection methods, including captcha, proof-of-work mining, IP limits and mainnet balance checks
- 02Gitcoin Passport integration as an additional sybil-resistance check
- 03Runs on EVM-compatible chains
- 04Configuration through a YAML file, with secrets injectable via environment variables
Use cases
- Operating a public testnet faucet that resists bot abuse
- Distributing test tokens to developers on a private or new EVM network
- Experimenting with proof-of-work or other sybil-resistance methods for token distribution
Quick start
- 1
Read the Faucet Operator Wiki for installation and configuration instructions
- 2
Optionally review the demo instances with different module combinations
Things to know
- The README points to the operator wiki for setup, so self-hosting requires configuring a wallet and secrets yourself.
- It is a faucet for testnets and does not generate coins; you must fund the faucet wallet yourself.
- Licensed under AGPL-3.0, which requires source disclosure for network-deployed modifications.
Topics
FAQ
- What is PoWFaucet?
- A modular faucet for EVM testnets that uses proof-of-work mining, captchas, IP limits and other checks to deter bots from draining funds. PoWFaucet is a faucet for EVM-compatible chains that distributes funds from a wallet the operator controls. Its main purpose is to make automated, bot-driven requests expensive, so a low-reserve testnet faucet is not drained.
- Is PoWFaucet free to use? What license does it have?
- PoWFaucet is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is PoWFaucet still maintained?
- Actively maintained. The last commit to PoWFaucet was on Nov 4, 2026.
- What can I use PoWFaucet for?
- Operating a public testnet faucet that resists bot abuse Distributing test tokens to developers on a private or new EVM network Experimenting with proof-of-work or other sybil-resistance methods for token distribution
- How do I install PoWFaucet?
- Read the Faucet Operator Wiki for installation and configuration instructions Optionally review the demo instances with different module combinations
- Where can I get PoWFaucet?
- The source code and installation instructions are on GitHub: https://github.com/pk910/PoWFaucet
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Taho is a community-owned, open-source Web3 browser extension wallet for Ethereum and Bitcoin, built as an alternative to MetaMask.
The second edition of "Mastering Ethereum", a book covering Ethereum development, smart contracts, and the network's underlying technology.
A React library that adds customizable wallet connection UI to Ethereum dapps, built on wagmi and viem.
An open internet payments protocol built on HTTP, letting servers charge per request via the 402 Payment Required status.
Open-source concentrated liquidity AMM smart contract on Solana, with Rust and TypeScript SDKs for interacting with it.