{"id":20996012,"url":"https://github.com/jimmygchen/staker-notifier","last_synced_at":"2025-05-14T21:31:50.519Z","repository":{"id":37026676,"uuid":"483983450","full_name":"jimmygchen/staker-notifier","owner":"jimmygchen","description":"📲 A simple notification tool for Ethereum stakers to track validator health and statuses","archived":false,"fork":false,"pushed_at":"2022-12-31T15:25:26.000Z","size":192,"stargazers_count":3,"open_issues_count":8,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-09T13:21:30.953Z","etag":null,"topics":["alerting","ethereum","notification","sms","staker","staking","validator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jimmygchen.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}},"created_at":"2022-04-21T09:13:47.000Z","updated_at":"2022-07-07T19:07:49.000Z","dependencies_parsed_at":"2023-01-31T19:30:34.362Z","dependency_job_id":null,"html_url":"https://github.com/jimmygchen/staker-notifier","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimmygchen%2Fstaker-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimmygchen%2Fstaker-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimmygchen%2Fstaker-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimmygchen%2Fstaker-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jimmygchen","download_url":"https://codeload.github.com/jimmygchen/staker-notifier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225312376,"owners_count":17454542,"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":["alerting","ethereum","notification","sms","staker","staking","validator"],"created_at":"2024-11-19T07:27:23.256Z","updated_at":"2024-11-19T07:27:27.239Z","avatar_url":"https://github.com/jimmygchen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Staker Notifier\n\nA simple notification tool for Ethereum stakers to track validator health and statuses.\n\nThe ultimate goal of this tool is to make the stakers' lives easier and better by reducing the amount of manual effort and stress from looking after validators and keeping up with changes to the clients and network.\n\n## Table of Contents\n\n- [Alert types](#alert-types)\n- [Notification Channels](#notification-channels)\n- [Prerequisite](#prerequisite)\n- [Quick Start](#quick-start)\n- [Contribute](#contribute)\n\n## Alert types\n\nStaker Notifier currently tracks the following events:\n- **Balance**: when the balance of one or more validators has decreased for a few consecutive epochs\n- **Status**: when the validator status has changed or when a new validator has been added to the beacon chain\n\n### Example messages:\n- *\"2022-05-24T10:18:47Z Validator 82 has transitioned from pending_queued to active_ongoing.\"*\n- *\"2022-05-24T10:21:11Z 1 out of 3 validators have balance reduced since last epoch. Please check validator(s) 81\"*\n\nPlease see additional alert types that are being considered in [issue list](https://github.com/jchen86/staker-notifier/labels/alert%20type)\n\n## Notification channels\n\nCurrently, **SMS** and **Telegram** notifications are supported - This is the original idea that started this project, to be notified without installing a mobile app and without needing Internet access.\n\nHowever, additional notification channels are being considered and may be implemented depending on demand. See issue list [here](https://github.com/jchen86/staker-notifier/issues?q=is%3Aissue+is%3Aopen+label%3A%22notification+channel%22)\n\n## Prerequisite\n\n1. **A [Twilio](https://www.twilio.com/messaging) account \u0026 number**: Staker Notifier requires the usage of a third-party SMS provider, however the usage will be minimal unless a large number of notifications are sent. A free trial credit is currently being offered to new users that should last for quite a while.\n\n2. **Access to one or multiple Beacon node API endpoints**, such as [Infura](https://infura.io) or your own Beacon node. **[Infura](https://infura.io) is an ethereum node provider and is optional for using Staker Notifier, as you can also choose to use your own node. However, it could come handy as a fallback ([issue](https://github.com/jchen86/staker-notifier/issues/17) to be implemented) when there are issues with the beacon node. \n\n## Quick start\n\n1. Set up a [Twilio](https://www.twilio.com/messaging) account. In the Twilio console:\n   - Copy the 'Account SID' and 'Auth Token'. This will be used in step 3. \n   - Buy a number. This will be the 'From' number for sending the SMS.\n   - Add a verified caller ID to use it as the 'To' number for outbound calls/messages.\n\n2. Create an [Infura](https://infura.io) account (Optional if connecting to your own Beacon node). In the Infura dashboard:\n   - Create new project and select 'ETH2' Product.\n   - Once created, got to 'Project Settings' and copy the https endpoint. This will be used in step 3.\n\n3. Create a `.env` file at the current working directory with the following contents (See [example here](.env.template)):\n\n   | Name                                   | Description                                                     |\n   | -------------------------------------- | --------------------------------------------------------------- |\n   | VALIDATOR_PUBKEYS                      | Comma separated list of validator public keys with 0x prefixes. |\n   | BEACON_API_LIST                        | Beacon node url from step 2. Currently only one url is used.    |\n   | TWILIO_ACCOUNT_SID                     | 'Account SID' from step 1.                                      |\n   | TWILIO_AUTH_TOKEN                      | 'Auth Token' from step 1.                                       |\n   | SMS_FROM                               | 'From' number from step 1.                                      |\n   | SMS_TO                                 | 'To' number from step 1.                                        |\n   | BALANCE_REDUCED_NOTIFY_INTERVAL_EPOCHS | Optional. Number of epochs before resending alert. Default: 20. |\n   | TELEGRAM_BOT_TOKEN                     | You need to create a new bot in Telegram.                       | \n   | TELEGRAM_CHAT_ID                       | You need to create a new chat and invite the bot to it.         |\n\n\n4. Run one of the following commands:\n   - with Docker:\n     ```\n     docker run --env-file .env jchen86/staker-notifier\n     ```\n   - with Node (\u003e=16):\n     ```\n     npm install \u0026\u0026 npm start\n     ```\n\n## Contribute\n\nContributions welcome. Please check out [the issues](https://github.com/jchen86/staker-notifier/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimmygchen%2Fstaker-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjimmygchen%2Fstaker-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimmygchen%2Fstaker-notifier/lists"}