{"id":22082945,"url":"https://github.com/evelynnmimijae/web3-plugin-faucettestnet","last_synced_at":"2025-06-11T05:38:04.043Z","repository":{"id":230122750,"uuid":"778551798","full_name":"evelynnmimijae/web3-plugin-faucettestnet","owner":"evelynnmimijae","description":"A web3.js Faucet Plugin for Testnets using web3.js, Tableland, and smart contracts","archived":false,"fork":false,"pushed_at":"2024-05-29T06:01:37.000Z","size":764,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T21:26:49.860Z","etag":null,"topics":["blockchain","faucet","web3js"],"latest_commit_sha":null,"homepage":"https://msha.ke/faucetplugin","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evelynnmimijae.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-03-27T23:44:25.000Z","updated_at":"2024-05-29T06:01:40.000Z","dependencies_parsed_at":"2024-05-01T01:31:51.072Z","dependency_job_id":"8ffe8d68-d09f-48e3-8908-b2b465fe2398","html_url":"https://github.com/evelynnmimijae/web3-plugin-faucettestnet","commit_stats":null,"previous_names":["evelynnmimijae/web3-plugin-faucettestnet"],"tags_count":0,"template":false,"template_full_name":"web3/web3.js-plugin-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evelynnmimijae%2Fweb3-plugin-faucettestnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evelynnmimijae%2Fweb3-plugin-faucettestnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evelynnmimijae%2Fweb3-plugin-faucettestnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evelynnmimijae%2Fweb3-plugin-faucettestnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evelynnmimijae","download_url":"https://codeload.github.com/evelynnmimijae/web3-plugin-faucettestnet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evelynnmimijae%2Fweb3-plugin-faucettestnet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259209972,"owners_count":22822279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["blockchain","faucet","web3js"],"created_at":"2024-12-01T00:08:43.663Z","updated_at":"2025-06-11T05:38:04.017Z","avatar_url":"https://github.com/evelynnmimijae.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A web3.js Faucet Plugin for Testnets\n===========\n\nThis repository contains a Faucet Plugin for Testnets built using Web3.js, Tableland, and smart contracts. The plugin allows users to request Ether for testing purposes on Ethereum testnets. It leverages the power of Web3.js to interact with the Ethereum blockchain, Tableland to manage data, and smart contracts to automate the distribution of Ether.\n\nFeatures\n----------\nUser request handling: Request validation—Validates user requests to ensure they meet the criteria for receiving Ether (e.g., valid Ethereum address format). Rate limiting—Implements rate limiting to prevent abuse of the faucet and ensure fair distribution of Ether.\n\nDatabase integration with Tableland: Address Verification—Checks the Tableland database to verify if a user's address has already claimed Ether, preventing double-spending. Claim Record Management—Updates the Tableland database to mark an address as having claimed Ether after a successful transaction.\n\nEthereum Blockchain Interaction: Transaction Sending—Uses web3.js to send transactions from the faucet's Ethereum address to the user's address, transferring the requested amount of testnet Ether. Gas Management—Automatically sets appropriate gas prices and gas limits for transactions to ensure they are processed efficiently.\n\nSmart Contract Support (Optional): Contract Interaction—If the faucet uses smart contracts for more complex logic (e.g., time-locked claims), the plugin can interact with these contracts using web3.js. Event Listening—The plugin listens for specific events emitted by the smart contracts to trigger actions (e.g., updating the database when a user claims Ether).\n\nUser feedback and Error handling: Confirmation Messages—Provides feedback to the user upon successful Ether distribution, including the transaction hash for verification. Error Handling— Gracefully handles and communicates errors to the user, including issues with the Ethereum network, insufficient funds, or problems with the Tableland database.\n\nSecurity Measures: Secure Storage of Private Keys—Ensures that the faucet's private key is securely stored and not exposed, protecting the faucet's funds. Encryption—Uses encryption for sensitive data, such as API keys for Tableland, to enhance security.\n\nCustomization and Extensibility: Customizable Rules allow for customization of rules, such as the amount of Ether distributed per request or the eligibility criteria. Extensibility should be designed to be easily extended with additional features or integrations as needed.\n\n*This is still a work in progress, but feel free to tinker around, make notes, and contribute (see \"Contributing\" below).*\n\nHow to use\n------------\n\n1. Clone the repository.\n`git clone https://github.com/evelynnmimijae/web3-plugin-faucettestnet.git` in the Command Line. \n\n2. Navigate to the project directory\n`cd web3-faucet-plugin`\n\n3. Install dependencies.\n`npm install`\n\n4. Import, initiate, and use.\n```\nimport { FaucetPlugin } from './src/FaucetPlugin';\n\nasync function main() {\n const faucetPlugin = new FaucetPlugin();\n await faucetPlugin.init();\n\n // Request 1 Ether to the specified address\n await faucetPlugin.requestEther('0xYourEthereumAddress', 1);\n}\n\n// Run the main function\nmain().catch(console.error);\n```\n\nContributing\n------------\nPull requests are welcome here https://github.com/evelynnmimijae/web3-plugin-faucettestnet\n\nLicense\n-------\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevelynnmimijae%2Fweb3-plugin-faucettestnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevelynnmimijae%2Fweb3-plugin-faucettestnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevelynnmimijae%2Fweb3-plugin-faucettestnet/lists"}