Analyze token holder concentration, detect whales, and assess centralization risk β from your terminal or via REST API.
| Feature | Description |
|---|---|
| π Whale Detection | Top holders & their concentration |
| π Concentration Metrics | HHI Index, Gini Coefficient, Top-N % |
| π¨ Risk Assessment | HIGH / MODERATE / LOW centralization |
| π Charts | Pie chart, bar chart, Lorenz curve |
| π Live Data | Fetch real holder data via Etherscan API |
| π Compare | Cross-token comparison table |
| π Web API | FastAPI server with auto-generated docs |
pip install -r requirements.txt
python main.py UNI# Analyze any token (sample data)
python main.py UNI
python main.py SHIB
python main.py PEPE
# Use live Etherscan data
python main.py UNI --live
# Generate charts
python main.py UNI --charts
# Compare multiple tokens
python main.py --compare UNI SHIB PEPE
# List available tokens
python main.py --list# Start FastAPI server
python main.py --server
# or via uvicorn directly
uvicorn tokenvision.api:app --reload
# Open http://localhost:8000/docs for interactive API docsAPI Endpoints:
| Endpoint | Description |
|---|---|
GET / |
Service info & links |
GET /analyze/{symbol} |
Analyze a token (?live=true&charts=true) |
GET /compare?symbols=UNI,SHIB |
Compare multiple tokens |
GET /tokens |
List available tokens |
GET /health |
Health check |
GET /docs |
Swagger UI |
docker-compose up -d
# β http://localhost:8000Set your Etherscan API key in .env:
ETHERSCAN_API_KEY=your_api_key_herefrom tokenvision import TokenVision
tv = TokenVision(use_live=True) # use_live requires ETHERSCAN_API_KEY
report = tv.analyze("UNI")
print(report["metrics"]["gini"])======================================================================
π’ TOKENVISION β UNI (π΅ SAMPLE)
======================================================================
Token : Uniswap (UNI)
Supply : 1,000,000,000
ββββββββββββββββββββββββββββββββββββββββ
CONCENTRATION
ββββββββββββββββββββββββββββββββββββββββ
Top 1 : 11.16%
Top 5 : 51.73%
Top 10 : 71.07%
HHI : 0.0646
Gini : 0.6853
Eff. Holders: 15.5
Risk : π’ LOW CONCENTRATION
TOP 10:
Rank Address Hold Label
βββββ ββββββββββββββββββββββββββββββββββββββββββββ ββββββββ ββββββββββ
1. 0x0000...b95e 11.16% π Whale
2. 0x0000...eded 10.94% Whale
3. 0x0000...9a1e 10.43% π³ Mega Whale
4. 0x0000...3820 10.05% Whale
5. 0x0000...8b26 9.15% π¦ Shark
6. 0x0000...2b4f 4.95%
7. 0x0000...9521 4.72%
8. 0x0000...407c 4.04%
9. 0x0000...aeaf 2.91%
10. 0x0000...1f92 2.73%
======================================================================
β
Well distributed. Low centralization risk.
======================================================================
Symbol Name Holders Top 1 Top 5 Top 10 HHI Gini Risk
βββββββ ββββββββββββββ ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ ββββββββββββββββ
UNI Uniswap 17 11.16% 51.73% 71.07% 0.0646 0.6853 π’ LOW
SHIB Shiba Inu 24 44.20% 88.21% 95.31% 0.2157 0.9204 π΄ HIGH CONC.
PEPE Pepe 19 25.16% 67.98% 82.44% 0.1032 0.6518 π‘ MODERATE
With --charts, generates:
| Chart | Description |
|---|---|
| π₯§ Pie | Top 10 holders vs others |
| π Bar | Top 20 holders comparison |
| π Lorenz | Wealth distribution curve |
Charts are saved as PNG (also supports PDF, SVG programmatically).
TokenVision/
βββ main.py
βββ tokenvision/
β βββ __init__.py
β βββ cli.py # CLI entry point
β βββ analyzer.py # Core analytics engine
β βββ charts.py # matplotlib visualization
β βββ config.py # Configuration & env vars
β βββ cache.py # File-based JSON cache
β βββ fetcher.py # Etherscan API integration
β βββ comparison.py # Cross-token comparison
β βββ api.py # FastAPI web service
βββ tests/
β βββ test_tokenvision.py # 20+ tests
βββ Dockerfile
βββ docker-compose.yml
βββ requirements.txt
βββ .env.example
βββ .gitignore
βββ README.md
Set via environment variables or .env file:
| Variable | Default | Description |
|---|---|---|
ETHERSCAN_API_KEY |
β | Etherscan API key for live data |
BSCSCAN_API_KEY |
β | BscScan API key |
POLYGONSCAN_API_KEY |
β | PolygonScan API key |
CACHE_TTL |
3600 |
Cache time-to-live (seconds) |
PORT |
8000 |
Web server port |
HOST |
0.0.0.0 |
Web server host |
Copy .env.example β .env and fill in your keys.
USDC, USDT, LINK, UNI, AAVE, MATIC, SHIB, PEPE, WETH, CRO
pytest tests/ -v| Skill | Shown |
|---|---|
| Python | Clean package structure, OOP |
| Data Analysis | HHI, Gini, concentration metrics |
| Visualization | matplotlib charts (dark theme) |
| API Design | FastAPI, OpenAPI docs |
| CLI Design | argparse, clean output |
| Web Scraping | Etherscan API integration |
| Caching | TTL-based JSON cache |
| Docker | Containerized web service |
| Testing | pytest, comprehensive coverage |
| Crypto | Tokenomics, whale analysis |
This project is part of a 5-repo analytics & AI ecosystem by crwz46:
| Repo | Focus |
|---|---|
| π WallTrack | Multi-chain wallet tracking, gas alerts, flash loans |
| π TokenVision | Token holder concentration, HHI/Gini, whale detection |
| πͺ AirDropScanner | Multi-protocol airdrop eligibility checker |
| π TradeLens | Market intelligence, risk engine, portfolio tracker |
| π§ DocuMind | RAG-powered Document Q&A with LLMs |
MIT β see LICENSE
Built by crwz46 β Data Scientist & AI Engineer