Skip to content

FaucETH is a community-funded faucet for Ethereum testnets. It's designed to provide developers with a fast and reliable source of testnet ETH for their work on all EVM test networks.

License

Notifications You must be signed in to change notification settings

AjayiMike/fauceth

FaucETH Logo

FaucETH

A community-funded and reliable Ethereum testnet faucet.

License: MIT PRs Welcome


FaucETH is a high-performance, community-funded faucet for Ethereum testnets. It's designed to provide developers with a fast and reliable source of testnet ETH for their dApps, smart contracts, and other blockchain projects. Our goal is to create a community-driven resource that is easy to use, easy to contribute to, and supports a wide range of EVM-compatible test networks.

✨ Key Features

  • Multi-Network Support: Get testnet funds on 400+ test networks and counting.
  • Progressive Network Discovery: The UI loads instantly and validates network health in the background, so you're never left waiting.
  • IP and wallet address Rate Limiting: Request funds from up to 3 different networks within a 24-hour period.
  • Anti-sybil protection Requires a reasonable Gitcoin Passport score to protect against bots
  • Community Funded: Anyone can donate to the faucet to help other developers.
  • Real-time Updates: See donation leaderboard, recent transactions and faucet statistics update live.
  • Automatically Extensible: Add your testnet to ethereum-lists/chains and see it show up in FaucETH network list instantly

🛠️ Tech Stack

🚀 Getting Started

Follow these steps to set up FaucETH on your local machine.

1. Prerequisites

2. Clone the Repository

git clone https://github.com/ajayimike/fauceth.git
cd fauceth

3. Configure Environment Variables

Copy the example environment file:

cp .env.example .env

Now, open the .env file and configure it with your own values

4. Install Dependencies

Install the necessary packages.

pnpm install

5. MongoDB Setup (If you are connecting to a local mongodb instance)

macOS/Linux
  1. Clean Up (If Needed)

    If you have an existing MongoDB instance running:

    # Stop any running MongoDB instances
    pkill mongod
    
    # Wait for processes to stop
    sleep 2
  2. Create MongoDB data directory:

    mkdir -p ~/mongodb/data/rs0
  3. Start MongoDB with replica set:

    mongod --replSet rs0 --port 27017 --dbpath ~/mongodb/data/rs0 --fork --logpath ~/mongodb/data/rs0/mongodb.log
  4. Initialize replica set:

    mongosh --eval 'rs.initiate({_id: "rs0", members: [{_id: 0, host: "localhost:27017"}]})'

    To stop MongoDB:

    pkill -f "mongod.*rs0"
Windows

Requirement: Proper installation of MongoDB and MongoSh

  1. Create MongoDB data directory:

    mkdir C:\mongodb\data\rs0 C:\mongodb\data\rs1
  2. Start MongoDB with replica set each on different terminals:

    mongod --port 27018 --dbpath "C:\mongodb\data\rs0" --logpath "C:\mongodb\data\rs0\mongodb.log" --replSet rs0 --storageEngine=wiredTiger
    mongod --port 27019 --dbpath "C:\mongodb\data\rs1" --logpath "C:\mongodb\data\rs1\mongodb.log" --replSet rs0 --storageEngine=wiredTiger
  3. Initialize replica set:

     mongosh --port 27019 --eval 'rs.initiate({_id: "rs0", members: [{ _id: 0, host: "localhost:27018" }, { _id: 1, host: "localhost:27019" },]})'
     mongosh --port 27019 --eval  'rs.status()'

    To stop MongoDB on each running terminal:

    Press Ctrl + C on every terminal server instance instance

    PS: Set the MONGO_URI on your .env to mongodb://localhost:27018

6. Run the Development Server

You're all set! Start the app by running:

pnpm dev

Open http://localhost:3000 in your browser to see the running application.

🙌 Contributing

We welcome contributions of all kinds! Whether you're a developer, a designer, or just have an idea for a new feature, we'd love to have your input. Please check out our Contributing Guide to get started.

📄 License

FaucETH is open-source software licensed under the MIT License.

About

FaucETH is a community-funded faucet for Ethereum testnets. It's designed to provide developers with a fast and reliable source of testnet ETH for their work on all EVM test networks.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6

Languages