moonpay-watcher
v1.0.0
Published
Monitor Solana wallets and send real-time Telegram notifications
Maintainers
Readme
MoonPay Watcher
Monitor Solana wallets and receive real-time Telegram notifications for wallet activity — SOL transfers, SPL tokens, NFTs, sales, and swaps.
Read-only. No private keys. No seed phrases. Ever.
Telegram Bot: @moonpay_watcher_bot
Quick Start (5 minutes)
npm install -g moonpay-watcher
moonpay-watcher setup
moonpay-watcher add-wallet <wallet-address>
moonpay-watcher test
moonpay-watcher startInstallation
Global install (recommended)
npm install -g moonpay-watcherFrom source
git clone <repo-url>
cd moonpay-watcher
npm install
npm run build
npm linkTelegram Bot Setup
MoonPay Watcher sends alerts through Telegram. You need two things: a bot token and your chat ID.
Option A — Use the existing bot (recommended)
The project is pre-configured to work with the official bot:
| | | |---|---| | Bot name | Solana Wallet Watcher | | Username | @moonpay_watcher_bot |
Step 1 — Start the bot
- Open Telegram on your phone or desktop.
- Search for
@moonpay_watcher_botor tap this link. - Press Start so the bot can message you.
Step 2 — Get your Chat ID
Your chat ID tells MoonPay Watcher where to send notifications.
Personal chat (DMs to yourself):
- Open @userinfobot in Telegram.
- Press Start — it replies with your numeric ID, e.g.
123456789. - Copy that number. This is your Telegram Chat ID.
Group or channel:
- Add @getidsbot to the group.
- It posts the group's chat ID (negative number, e.g.
-1001234567890). - Remove the bot afterward if you like.
Step 3 — Get the bot token
If you are using the official @moonpay_watcher_bot, ask the bot owner for the token, or create your own bot (Option B below) and use that token instead.
Step 4 — Enter credentials in MoonPay Watcher
moonpay-watcher setupYou will be prompted for:
Helius API Key: ********
Telegram Bot Token: ********
Telegram Chat ID: 123456789Secrets are masked as you type and are never shown again after saving.
Step 5 — Verify the connection
moonpay-watcher testYou should receive this message in Telegram:
🚀 MoonPay Watcher is connected successfully.
Option B — Create your own bot
Use this if you want full control over the bot instance.
- Open @BotFather in Telegram.
- Send
/newbotand follow the prompts:- Choose a display name (e.g.
My Wallet Watcher) - Choose a username ending in
bot(e.g.my_wallet_watcher_bot)
- Choose a display name (e.g.
- BotFather replies with your bot token — copy it immediately.
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Open a chat with your new bot and press Start.
- Get your Chat ID using @userinfobot (see Step 2 above).
- Run
moonpay-watcher setupand paste the token and chat ID.
Tip: Keep your bot token secret. Anyone with the token can send messages as your bot.
Helius Setup
Helius provides enhanced Solana transaction parsing (NFT sales, swaps, marketplace detection).
- Sign up at helius.dev
- Create a project and copy your API Key
- Enter it during
moonpay-watcher setup
Without a Helius key, the watcher falls back to standard Solana RPC with basic parsing.
Commands
| Command | Description |
|---------|-------------|
| moonpay-watcher setup | Configure API keys and Telegram credentials |
| moonpay-watcher add-wallet <address> | Add a Solana wallet to watch |
| moonpay-watcher remove-wallet <address> | Stop watching a wallet |
| moonpay-watcher list | Show all watched wallets |
| moonpay-watcher test | Send a test Telegram message |
| moonpay-watcher start | Begin monitoring all wallets |
Examples
# First-time setup
moonpay-watcher setup
# Watch a wallet
moonpay-watcher add-wallet 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin
# Verify Telegram works
moonpay-watcher test
# Start monitoring
moonpay-watcher startNotification Format
When activity is detected, you receive a formatted Telegram alert with the event type, amount, counterparty, transaction link, and timestamp:

Example fields in each alert:
| Field | Example |
|-------|---------|
| Event | SOL Sent |
| Amount | 0.0063 SOL |
| Counterparty | Haort...hkvNc |
| Details | Mint / transfer description from Helius |
| Transaction | Link to Solscan |
| Timestamp | Local time of the on-chain event |
Supported Event Types
- SOL received / sent
- SPL token received / sent
- NFT received / sent
- NFT sales (with marketplace detection)
- Swaps
- Unknown activity (fallback)
Configuration
Config is stored at:
~/.config/moonpay-watcher/config.jsonState (last processed signatures) is stored at:
~/.config/moonpay-watcher/state.jsonSecrets are saved locally and never printed after setup.
Architecture
Watched Wallet
↓
Solana RPC / Helius Enhanced API
↓
Transaction Parser
↓
Notification Engine
↓
Telegram BotThe ChainWatcher interface is designed for future multi-chain support (Ethereum, Base, Avalanche, Polygon) without architectural changes.
Screenshots
Telegram alert
Real notification from @moonpay_watcher_bot showing a SOL sent event with Solscan link preview:

Security Notice
MoonPay Watcher is a read-only monitoring tool.
- Never requests seed phrases or private keys
- Never signs or submits transactions
- Only reads public on-chain data via Solana RPC / Helius
- Stores credentials locally in
~/.config/moonpay-watcher/ - Does not transmit wallet secrets anywhere
Only add public wallet addresses you want to monitor. Treat your Helius API key and Telegram bot token as secrets.
Development
npm install
npm run dev -- setup # run without building
npm run build # compile TypeScript
npm start -- list # run compiled binaryLicense
MIT
