A tool for monitoring Solana wallet activities, detecting balance changes, and receiving real-time alerts.
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
- π 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
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:
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 |
β 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)
- 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", ... }
- Go 1.23.2 or later
- A dedicated Solana RPC endpoint (see RPC Setup above - this is crucial!)
# Clone the repository
git clone https://github.com/accursedgalaxy/insider-monitor
cd insider-monitor
# Install dependencies
go mod download
- Copy the example configuration:
cp config.example.json config.json
β οΈ IMPORTANT: Editconfig.json
and 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
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 withwhitelist
mode)exclude_tokens
: Array of token addresses to ignore (used withblacklist
mode)
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"
]
}
}
go run cmd/monitor/main.go
go run cmd/monitor/main.go -config path/to/config.json
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
The monitor stores wallet data in the ./data
directory to:
- Prevent false alerts after restarts
- Track historical changes
- Handle network interruptions gracefully
make build
The binary will be available in the bin
directory.
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.json
with the new endpoint:{ "network_url": "https://your-custom-rpc-endpoint.com", ... }
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
]
}
Problem: config.json doesn't exist
β Configuration file not found: config.json
Solution:
cp config.example.json config.json
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
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
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.