Skip to content

Solana Wallet Monitor: Track wallet activities, detect insider trading & balance changes with real-time alerts. Open-source blockchain monitoring tool.

Notifications You must be signed in to change notification settings

AccursedGalaxy/Insider-Monitor

Repository files navigation

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

πŸ‘‰ Join the Discord Server

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

  1. Sign up for any provider above (they're free!)
  2. Get your RPC URL from the dashboard
  3. 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

  1. Copy the example configuration:
cp config.example.json config.json
  1. ⚠️ IMPORTANT: Edit config.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": ""
    }
}
  1. 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 monitor
  • scan_interval: Time between scans (e.g., "30s", "1m", "5m")
  • alerts:
    • minimum_balance: Minimum token balance to trigger alerts
    • significant_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 notifications
    • webhook_url: Discord webhook URL
    • channel_id: Discord channel ID
  • scan:
    • scan_mode: Token scanning mode
      • "all": Monitor all tokens (default)
      • "whitelist": Only monitor tokens in include_tokens
      • "blacklist": Monitor all tokens except those in exclude_tokens
    • include_tokens: Array of token addresses to specifically monitor (used with whitelist mode)
    • exclude_tokens: Array of token addresses to ignore (used with blacklist mode)

Scan Mode Examples

Here are examples of different scan configurations:

  1. Monitor all tokens:
{
    "scan": {
        "scan_mode": "all",
        "include_tokens": [],
        "exclude_tokens": []
    }
}
  1. Monitor only specific tokens (whitelist):
{
    "scan": {
        "scan_mode": "whitelist",
        "include_tokens": [
            "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",  // USDC
            "So11111111111111111111111111111111111111112"     // SOL
        ],
        "exclude_tokens": []
    }
}
  1. 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:

  1. Get a free RPC endpoint from one of the providers above
  2. Update your config.json with 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:

  1. Check your internet connection
  2. Verify your RPC endpoint URL is correct
  3. Try a different RPC provider
  4. 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:

  1. Check our Discord community for help
  2. Review the logs for specific error messages
  3. Ensure you have the latest version of the monitor
  4. 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.

About

Solana Wallet Monitor: Track wallet activities, detect insider trading & balance changes with real-time alerts. Open-source blockchain monitoring tool.

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •