{"id":29564304,"url":"https://github.com/sidojain/sepolia-faucet","last_synced_at":"2026-04-13T21:31:07.185Z","repository":{"id":302682017,"uuid":"1013297609","full_name":"SidoJain/Sepolia-Faucet","owner":"SidoJain","description":"Simple Sepolia Faucet","archived":false,"fork":false,"pushed_at":"2025-07-04T07:52:31.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-18T22:36:45.234Z","etag":null,"topics":["ethereum","ethereum-contract","ethereum-dapp","hardhat","sepolia","serverless","solidity"],"latest_commit_sha":null,"homepage":"https://sepolia-faucet-five.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SidoJain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-03T17:02:22.000Z","updated_at":"2025-07-04T07:54:56.000Z","dependencies_parsed_at":"2025-07-03T17:58:56.961Z","dependency_job_id":null,"html_url":"https://github.com/SidoJain/Sepolia-Faucet","commit_stats":null,"previous_names":["sidojain/sepolia-faucet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SidoJain/Sepolia-Faucet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SidoJain%2FSepolia-Faucet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SidoJain%2FSepolia-Faucet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SidoJain%2FSepolia-Faucet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SidoJain%2FSepolia-Faucet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SidoJain","download_url":"https://codeload.github.com/SidoJain/Sepolia-Faucet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SidoJain%2FSepolia-Faucet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31771786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","ethereum-contract","ethereum-dapp","hardhat","sepolia","serverless","solidity"],"created_at":"2025-07-18T19:36:41.187Z","updated_at":"2026-04-13T21:31:07.176Z","avatar_url":"https://github.com/SidoJain.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Sepolia Faucet\n\nThis is a fully functional testnet faucet for the Sepolia network, built with Solidity and JavaScript. The project demonstrates a full-stack dApp architecture, including a smart contract, a backend server (as a serverless function), and a simple web interface.\n\nThe faucet is designed to distribute a small, fixed amount of Sepolia ETH (0.01 ETH) to users, with a 24-hour cooldown period to prevent abuse.\n\n## Table of Contents\n\n- [How It Works](#how-it-works)\n- [Tech Stack](#tech-stack)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n  - [Deploying the Contract](#deploying-the-contract)\n  - [Running Tests](#running-tests)\n\n---\n\n## How It Works\n\nThe system consists of three main components:\n\n1. **Smart Contract (`Faucet.sol`):** A Solidity contract deployed on the Sepolia testnet. It holds the pool of Sepolia ETH, enforces the 24-hour cooldown, and handles the logic for sending funds.\n2. **Serverless Backend (`/api`):** A Node.js serverless function that acts as a secure intermediary. It holds a private key to pay for gas fees on behalf of the users. When it receives a request from the frontend, it calls the `requestTokens` function on the smart contract.\n3. **Frontend (`/public`):** A simple HTML, CSS, and vanilla JavaScript interface that allows users to enter their wallet address and request funds.\n\nThis architecture is crucial because users requesting testnet ETH often have none to begin with, meaning they cannot pay for the gas fees to interact with the contract. The backend pays the gas, providing a true faucet experience.\n\n## Tech Stack\n\n- **Blockchain:** Solidity, Ethereum (Sepolia Testnet)\n- **Smart Contract Development:** Hardhat, Ethers.js\n- **Frontend:** HTML, CSS, Vanilla JavaScript\n- **Backend:** Node.js (as a Serverless Function)\n- **Deployment:** Vercel\n\n## Getting Started\n\nFollow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v18 or later recommended)\n- A wallet like [MetaMask](https://metamask.io/) with some Sepolia ETH for deployment.\n- An [Infura](https://infura.io/) or [Alchemy](https://www.alchemy.com/) account to get a Sepolia RPC URL.\n\n### Installation\n\n1. **Clone the repository:**\n\n    ```sh\n    git clone https://github.com/SidoJain/sepolia-faucet.git\n    cd sepolia-faucet\n    ```\n\n2. **Install the dependencies:**\n\n    ```sh\n    npm install\n    ```\n\n## Configuration\n\n1. Create a `.env` file in the root of the project by copying the example file:\n\n    ```sh\n    cp .env.example .env\n    ```\n\n2. Open the newly created `.env` file and add your secret credentials:\n\n    ```sh\n    # Your Sepolia RPC URL from Infura or Alchemy\n    SEPOLIA_URL=\"https://sepolia.infura.io/v3/YOUR_PROJECT_ID\"\n\n    # The private key of the wallet you will use to deploy the contract and pay for gas.\n    # IMPORTANT: This wallet must be funded with Sepolia ETH.\n    PRIVATE_KEY=\"YOUR_WALLET_PRIVATE_KEY\"\n\n    # This will be filled in after you deploy the contract.\n    CONTRACT_ADDRESS=\"\"\n    ```\n\n## Usage\n\n### Deploying the Contract\n\n1. Run the deployment script, targeting the Sepolia network:\n\n    ```sh\n    npx hardhat run scripts/deploy.js --network sepolia\n    ```\n\n2. After a successful deployment, the script will print the new contract address to the console.\n\n3. **Copy this address** and paste it into your `.env` file for the `CONTRACT_ADDRESS` variable.\n\n4. **Fund the contract:** Send a desired amount of Sepolia ETH (e.g., 1 ETH) to the newly deployed contract address. This is the pool of funds the faucet will distribute.\n\n### Running Tests\n\nTo ensure the smart contract logic is sound, run the automated tests:\n\n```sh\nnpx hardhat test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsidojain%2Fsepolia-faucet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsidojain%2Fsepolia-faucet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsidojain%2Fsepolia-faucet/lists"}