OatsAI

OatsAI

TOKEN RISK INDEX

Most token risk tools look at one thing. OatsAI looks at five - holder concentration, liquidity depth relative to market cap, how long the contract has been live, whether transfers show organic or artificial patterns, and how much supply the dev wallets still control. Each one is scored independently, then combined into a single index.

The output is a number, the oats index, and one of five grades:

CriticalRiskyModerateSafePristine
020406080100
CRITICALRISKYMODERATESAFEPRISTINE

INSTALL

Get started with OatsAI in seconds. Clone, install, analyze.

git clone
git clone https://github.com/OatsAIthedev/OatsAI
cd OatsAI
pip install -e .
pytest
# Run all 138 tests across 7 files
PYTHONPATH=. pytest tests/ -v
quick_start.py
from oats import OatsEngine, TokenRiskSnapshot

engine = OatsEngine()

snap = TokenRiskSnapshot(
    timestamp=1700000000.0,
    top10_holder_pct=25.0,
    liquidity_to_mcap=0.08,
    contract_age_days=150.0,
    transfer_pattern_score=70.0,
    dev_wallet_pct=4.0,
)

result = engine.analyze(snap)
print(result.oats_index)  # e.g. 74.5
print(result.grade)       # e.g. SAFE
docker
docker build -t oatsai .
docker run --rm oatsai
Structure
oats/
Core Engine
engine.py
Data Models
models.py
Risk Signals
signals.py
138 Tests
tests/

SIGNALS

Five on-chain behavior layers. Each scores 0-100. The engine weights and combines them into the oats index.

30%

Concentration

Well-distributed supply = manipulation resistance. Top-10 whales controlling 80%+ = rug risk.

top10_holder_pct: 0-20% → 80-100, >80% → 0-5
25%

Liquidity Health

Liquidity/market cap ratio. Low ratio = easy to dump, high slippage.

score = clamp(liquidity_to_mcap / 0.10 × 100, 0, 100)
20%

Contract Maturity

Older contracts have survived longer without exit events. New = unproven.

0d → 0, 30d → 30, 90d → 60, 365d+ → 100
15%

Transfer Quality

Organic transfer patterns indicate real user adoption vs bot-inflated activity.

0 → wash trading detected, 100 → organic distribution
10%

Dev Exposure

Dev wallet holdings = single point of failure. Above 20% = critical rug-pull risk.

dev_pct: 0% → 100, 20%+ → 0 (critical)
architecture
TokenRiskSnapshot
       ↓
 OatsEngine
   ├── ConcentrationSignal    (0.30)
   ├── LiquidityHealthSignal  (0.25)
   ├── ContractMaturitySignal (0.20)
   ├── TransferQualitySignal  (0.15)
   └── DevExposureSignal      (0.10)
       ↓
 OatsAnalysis
   • oats_index (0-100)
   • grade (OatsGrade)
   • signals (list[SignalResult])
   • dominant_signal
   • risk_confidence