Solana Wash Trades Detector
This project fetches on-chain Solana DEX trades data from Bitquery, labels potential wash-trades based on a set of defined rules, trains an XGBoost model, and deploys an interactive Streamlit dashboard to visualize suspicious trades and compute risk metrics.
How It Works
Data Collection: Live Solana DEX trades are fetched from Bitquery using GraphQL APIs.Trade Labeling: A set of defined rules (e.g., self-trading, repeated trading loops, price spoofing) is applied to label trades as potentially suspicious (wash trades).Model Training: A machine learning model (XGBoost) is trained on the labeled data to learn patterns indicative of wash trading.Visualization: A clean and interactive dashboard built with Streamlit displays incoming trades, volume metrics, risk concentration, and predicted suspicious activity in real time.
Project Structure
├── get_data.py # Fetches trades from Bitquery
├── label.py # Rule-based labeling functions
├── main.py # Preprocesses data, trains XGBoost, saves model + features
├── app.py # Streamlit app for live inference & visualization
├── requirements.txt # List of pip packages required for the project
├── model_features.json # Saved feature list used during training
├── xgb_wash_model.pkl # Trained XGBoost model
└── .streamlit/secrets.toml # To store secret keys such as Bitquery Access Token
You can checkout the entire codebase of the project here.
Build with Bitquery
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.