Insider-Monitor
Insider-Monitor copied to clipboard
Solana Wallet Monitor: Track wallet activities, detect insider trading & balance changes with real-time alerts. Open-source blockchain monitoring tool.
Solana Insider Monitor
A tool for monitoring Solana wallet activities, detecting balance changes, and receiving real-time alerts.
Community
Join our Discord community to:
- Get help with setup and configuration
- Share feedback and suggestions
- Connect with other users
- Stay updated on new features and releases
- Discuss Solana development
Features
- ๐ Monitor multiple Solana wallets simultaneously
- ๐ฐ Track token balance changes
- โก Real-time alerts for significant changes
- ๐ Discord integration for notifications
- ๐พ Persistent storage of wallet data
- ๐ก๏ธ Graceful handling of network interruptions
โ ๏ธ Important: RPC Endpoint Setup
The most common setup issue is using the default public RPC endpoint, which has strict rate limits and will cause scanning failures. Follow this guide to get a proper RPC endpoint:
๐ Recommended RPC Providers (Free Tiers Available)
| Provider | Free Tier | Speed | Setup |
|---|---|---|---|
| Helius | 100k requests/day | โกโกโก | Get Free Account |
| QuickNode | 30M requests/month | โกโกโก | Get Free Account |
| Triton | 10M requests/month | โกโก | Get Free Account |
| GenesysGo | Custom limits | โกโก | Get Account |
โ Avoid These (Rate Limited)
โ https://api.mainnet-beta.solana.com (default - gets rate limited)
โ https://api.devnet.solana.com (only for development)
โ https://solana-api.projectserum.com (rate limited)
โ How to Set Up Your RPC
- Sign up for any provider above (they're free!)
- Get your RPC URL from the dashboard
- Update your config.json:
{ "network_url": "https://your-custom-rpc-endpoint.com", ... }
Quick Start
Prerequisites
- Go 1.23.2 or later
- A dedicated Solana RPC endpoint (see RPC Setup above - this is crucial!)
Installation
# Clone the repository
git clone https://github.com/accursedgalaxy/insider-monitor
cd insider-monitor
# Install dependencies
go mod download
Configuration
- Copy the example configuration:
cp config.example.json config.json
- โ ๏ธ IMPORTANT: Edit
config.jsonand replace the RPC endpoint:
{
"network_url": "YOUR_DEDICATED_RPC_URL_HERE",
"wallets": [
"YOUR_WALLET_ADDRESS_1",
"YOUR_WALLET_ADDRESS_2"
],
"scan_interval": "1m",
"alerts": {
"minimum_balance": 1000,
"significant_change": 0.20,
"ignore_tokens": []
},
"discord": {
"enabled": false,
"webhook_url": "",
"channel_id": ""
}
}
- Get your RPC endpoint from the providers listed above and update
network_url
Configuration Options
network_url: Your dedicated RPC endpoint URL (see RPC setup section above)wallets: Array of Solana wallet addresses to monitorscan_interval: Time between scans (e.g., "30s", "1m", "5m")alerts:minimum_balance: Minimum token balance to trigger alertssignificant_change: Percentage change to trigger alerts (0.20 = 20%)ignore_tokens: Array of token addresses to ignore
discord:enabled: Set to true to enable Discord notificationswebhook_url: Discord webhook URLchannel_id: Discord channel ID
scan:scan_mode: Token scanning mode"all": Monitor all tokens (default)"whitelist": Only monitor tokens ininclude_tokens"blacklist": Monitor all tokens except those inexclude_tokens
include_tokens: Array of token addresses to specifically monitor (used withwhitelistmode)exclude_tokens: Array of token addresses to ignore (used withblacklistmode)
Scan Mode Examples
Here are examples of different scan configurations:
- Monitor all tokens:
{
"scan": {
"scan_mode": "all",
"include_tokens": [],
"exclude_tokens": []
}
}
- Monitor only specific tokens (whitelist):
{
"scan": {
"scan_mode": "whitelist",
"include_tokens": [
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC
"So11111111111111111111111111111111111111112" // SOL
],
"exclude_tokens": []
}
}
- Monitor all tokens except specific ones (blacklist):
{
"scan": {
"scan_mode": "blacklist",
"include_tokens": [],
"exclude_tokens": [
"TokenAddressToIgnore1",
"TokenAddressToIgnore2"
]
}
}
Running the Monitor
go run cmd/monitor/main.go
Custom Config File
go run cmd/monitor/main.go -config path/to/config.json
Alert Levels
The monitor uses three alert levels based on the configured significant_change:
- ๐ด Critical: Changes >= 5x the threshold
- ๐ก Warning: Changes >= 2x the threshold
- ๐ข Info: Changes below 2x the threshold
Data Storage
The monitor stores wallet data in the ./data directory to:
- Prevent false alerts after restarts
- Track historical changes
- Handle network interruptions gracefully
Building from Source
make build
The binary will be available in the bin directory.
๐ง Troubleshooting
Common Issues & Solutions
โ "Rate limit exceeded" / "Too Many Requests" Error
Problem: Using the default public RPC endpoint which has strict rate limits
โ Rate limit exceeded after 5 retries
Solution:
- Get a free RPC endpoint from one of the providers above
- Update your
config.jsonwith the new endpoint:{ "network_url": "https://your-custom-rpc-endpoint.com", ... }
โ "Invalid wallet address format" Error
Problem: Incorrect wallet address format in config.json
โ invalid wallet address format at index 0: abc123
Solution: Ensure wallet addresses are valid Solana base58 encoded addresses (32-44 characters)
{
"wallets": [
"CvQk2xkXtiMj2JqqVx1YZkeSqQ7jyQkNqqjeNE1jPTfc" โ
Valid format
]
}
โ "Configuration file not found" Error
Problem: config.json doesn't exist
โ Configuration file not found: config.json
Solution:
cp config.example.json config.json
โ "Connection check failed" Error
Problem: Network or RPC endpoint issues
Solution:
- Check your internet connection
- Verify your RPC endpoint URL is correct
- Try a different RPC provider
- Test your RPC endpoint manually:
curl -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}' \ YOUR_RPC_ENDPOINT_URL
Getting Help
If you're still having issues:
- Check our Discord community for help
- Review the logs for specific error messages
- Ensure you have the latest version of the monitor
- Try the troubleshooting steps above
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.