{"id":30199776,"url":"https://github.com/codingwithmanny/telegram-evm-faucet-bot","last_synced_at":"2026-02-13T09:17:50.797Z","repository":{"id":262634407,"uuid":"841212303","full_name":"codingwithmanny/telegram-evm-faucet-bot","owner":"codingwithmanny","description":"A telegram faucet bot for evm blockchains using Cloudflare Workers","archived":false,"fork":false,"pushed_at":"2025-03-12T14:40:17.000Z","size":5883,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T01:36:48.236Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/codingwithmanny.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":"2024-08-11T23:51:41.000Z","updated_at":"2025-03-12T14:40:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"0781b93d-2d24-4a7e-b0ca-30ca5ab72bec","html_url":"https://github.com/codingwithmanny/telegram-evm-faucet-bot","commit_stats":null,"previous_names":["codingwithmanny/telegram-evm-faucet-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codingwithmanny/telegram-evm-faucet-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ftelegram-evm-faucet-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ftelegram-evm-faucet-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ftelegram-evm-faucet-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ftelegram-evm-faucet-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codingwithmanny","download_url":"https://codeload.github.com/codingwithmanny/telegram-evm-faucet-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ftelegram-evm-faucet-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29400512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2025-08-13T08:41:56.802Z","updated_at":"2026-02-13T09:17:50.792Z","avatar_url":"https://github.com/codingwithmanny.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Telegram EVM Faucet Bot\n\nA Telegram bot using Cloudflare Workers and Upstash to give users either native gas tokens or erc20 tokens.\n\n## Architecture Diagram\n\n![Telegram EVM Faucet Bot Diagram](./README/telegram-evm-faucet-bot.png)\n\n## Requirements\n\n- NVM or NodeJS `v20.14.0` or greater\n- [Cloudflare Worker](https://workers.cloudflare.com) account\n- [Upstash Redis](https://upstash.com/docs/redis/overall/getstarted) account\n- [Upstash Qstash](https://upstash.com/docs/qstash/overall/getstarted) account\n\n## Setup \u0026 Deployment\n\nMake sure after the bot is deployed to go through the [Initial Bot Configuration](#initial-bot-configuration).\n\nSteps to get up and running:\n\n### Step 1 - Install Dependencies\n\n```bash\n# FROM: ./telegram-evm-faucet-bot\n\npnpm install;\n\n# [Expected Output]:\n# Scope: all 3 workspace projects\n# Lockfile is up to date, resolution step is skipped\n# Already up to date\n# Done in 1.9s\n```\n\n### Step 2 - Login To Cloudflare With Wrangler\n\n```bash\n# FROM: ./\n\npnpm cf:login;\n\n# [Expected Equivalent Output]:\n# \u003e telegram-evm-faucet-bot@ cf:login /path/to/# telegram-evm-faucet-bot\n# \u003e wrangler login\n#\n#  ⛅️ wrangler 3.67.1 (update available 3.74.0)\n# -------------------------------------------------------\n#\n# Attempting to login via OAuth...\n# Opening a link in your default browser: https://dash.cloudflare.com/oauth2/...\n```\n\nDouble check that you are successfully logged in with the following command:\n\n```bash\n# FROM: ./\n\npnpm cf:whoami;\n\n# [Expected Equivalent Output]:\n# \u003e telegram-evm-faucet-bot@ cf:whoami /path/to/telegram-evm-faucet-bot\n# \u003e wrangler whoami\n#\n#  ⛅️ wrangler 3.67.1 (update available 3.74.0)\n# -------------------------------------------------------\n#\n# Getting User settings...\n# 👋 You are logged in with an OAuth Token, associated with the email \u003cYOUR_CF_EMAIL\u003e!\n# ┌────────────────────────┬──────────────────────────────────┐\n# │ Account Name           │ Account ID                       │\n# ├────────────────────────┼──────────────────────────────────┤\n# │ \u003cYOUR_CF_ACCOUNT_NAME\u003e │ \u003cYOUR_CF_ACCOUNT_ID\u003e             │\n# └────────────────────────┴──────────────────────────────────┘\n# 🔓 Token Permissions: If scopes are missing, you may need to logout and re-login.\n# Scope (Access)\n# - account (read)\n# - user (read)\n# - workers (write)\n# - workers_kv (write)\n# - workers_routes (write)\n# - workers_scripts (write)\n# - workers_tail (read)\n# - d1 (write)\n# - pages (write)\n# - zone (read)\n# - ssl_certs (write)\n# - ai (write)\n# - queues (write)\n# - offline_access\n```\n\n### Step 3 - Configure Environment Variables\n\nFollowing the environments variables defined in `./apps/bot/.dev.vars` and `./apps/queue/.dev.vars` you will need run commands in both app folders.\n\n\u003e **HELP:** Where do I get these environment variables?\n\u003e\n\u003e - See [TELEGRAM_API_TOKEN.md](./README/TELEGRAM_API_TOKEN.md)\n\u003e - See [UPSTASH_REDIS.md](./README/UPSTASH_REDIS.md)\n\u003e - See [UPSTASH_QSTASH.md](./README/UPSTASH_QSTASH.md)\n\u003e - See [CLOUDFLARE_WORKER.md](./README/CLOUDFLARE_WORKER.md)\n\n#### Bot Environment Variables / Secrets\n\n```bash\n# FROM: ./apps/bot\n\n# Enter values for prompts for each:\npnpm dlx wrangler secret put TELEGRAM_API_TOKEN;\n\npnpm dlx wrangler secret put UPSTASH_REDIS_REST_URL;\n\npnpm dlx wrangler secret put UPSTASH_REDIS_REST_TOKEN;\n\npnpm dlx wrangler secret put UPSTASH_QSTASH_TOKEN;\n\npnpm dlx wrangler secret put UPSTASH_QSTASH_QUEUE;\n\npnpm dlx wrangler secret put CLOUDFLARE_WORKER_QUEUE_URL;\n# NOTE: `CLOUDFLARE_WORKER_QUEUE_URL` can only be set after the cloudflare workers are deployed\n\n# In case of mistake, you can always run:\n# pnpm dlx wrangler secret delete \u003cKEY\u003e;\n```\n\n#### Queue Environment Variables / Secrets\n\n```bash\n# FROM: ./apps/queue\n\n# Enter values for prompts for each:\npnpm dlx wrangler secret put TELEGRAM_API_TOKEN;\n\npnpm dlx wrangler secret put UPSTASH_REDIS_REST_URL;\n\npnpm dlx wrangler secret put UPSTASH_REDIS_REST_TOKEN;\n\npnpm dlx wrangler secret put UPSTASH_QSTASH_CURRENT_SIGNING_KEY;\n\npnpm dlx wrangler secret put UPSTASH_QSTASH_NEXT_SIGNING_KEY;\n```\n\n#### Webhook Environment Variables\n\n```bash\n# FROM: ./packages/webhook\n\ncp .env.example .env;\n\n# Then add `TELEGRAM_API_TOKEN` and `CLOUDFLARE_WORKER_BOT_URL` to the file\n# NOTE: `CLOUDFLARE_WORKER_BOT_URL` can only be set after the cloudflare workers are deployed\n```\n\n#### Commands Environment Variables\n\n```bash\n# FROM: ./packages/commands\n\ncp .env.example .env;\n\n# Then add `TELEGRAM_API_TOKEN` to the file\n```\n\n### Step 4 - Deploy\n\nThis will deploy all the following:\n\n- `bot` needed to handle admin and commands\n- `queue` the queued service to handle processing wallet transactions\n\n```bash\n# FROM: ./\n\n# Important to add `run` because `deploy` by itself it reserved\npnpm run deploy;\n```\n\n### Step 5 - Set Telegram Bot Webhook\n\nRemember you need the following environment variables in `./packages/webhook/.env` set before hand.\n\nSet the Telegram Bot Webhook URL with the following command:\n\n```bash\n# FROM: ./\n\npnpm webhook;\n```\n\n### Step 6 - Set Telegram Bot Commands\n\nRemember you need the following environment variables in `./packages/commands/.env` set before hand.\nThis will update the Telegram Bot Menu for easy commands.\n\n```bash\n# FROM: ./\n\npnpm commands;\n```\n\n## Initial Bot Configuration\n\nOnce the setup and deployment is complete, this will walk you through the steps that will be needed to first setup your telegram faucet bot.\n\n### Step 1 - Start Activating Superadmin\n\nStart a conversation with your bot and send a `/start` command.\n\nThis will set your username as the Superadmin.\n\n### Step 2 - Set RPC Details\n\nMake sure you have a wallet private key handy before configuring this and run a similar command.\n\n```bash\n# 1 = e.g. chain ID\n# chainName = e.g. Berachain\n# http://rpcurl.com = Main RPC endpoint e.g. https://bartio.rpc.berachain.com\n# $abdc = native gas token e.g. $bera\n# 18 = native gas token decimals e.g. 18\n# http://blockexplorerurl.com = Main block explorer e.g. https://bartio.beratrail.io\n# 0x1234567890abcdef = Wallet private key e.g. 0x...\n/rpc set 1 chainName http://rpcurl.com $abcd 18 http://blockexplorerurl.com 0x1234567890abcdef\n```\n\n### Step 3 - Set Drip Configuration\n\nSet the default faucet drip for the native gas token and/or erc20 token.\n\n```bash\n# $token = native gas token or erc20 e.g. $bera or $honey\n# 0.1 = amount to drip e.g. 0.1 $bera\n# 5m = interval time before a user can make another request e.g. 10m or 4h\n/drip set $token 0.1 5m;\n```\n\nConfirm the settings with the following:\n\n```bash\n/drip settings\n```\n\n### Step 4 - Add Tokens (Optional)\n\nYou can optionally add more erc20 to support dripping.\n\n```bash\n# $token = an erc20 token e.g. $honey\n# 0xAddress = erc20 address e.g. 0x1234...\n# 18 = number of decimals for the token e.g. 18\n/tokens add $token 0xAddress 18\n```\n\nConfirm the tokens with the following:\n\n```bash\n/tokens\n```\n\n## Local Development\n\n(Coming Soon)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwithmanny%2Ftelegram-evm-faucet-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodingwithmanny%2Ftelegram-evm-faucet-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwithmanny%2Ftelegram-evm-faucet-bot/lists"}