executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
token-scoring4-category composite token scoring engine (11 factors, max 100) for exchange listing intelligence — evaluates market metrics, safety audits, social signals, and quality indicators with dual-gate verification. Supports Solana, Base, BSC, and Stacks (SIP-010).
Independent GitHub snapshot · Automated classification · Original documentation governs
Scores any token across Solana, Base, BSC, or Stacks on a 0-100 composite scale using 4 scoring categories with 11 weighted factors. Data sources: DexScreener (market data, pairs), CoinGecko (project metadata, supply data), RugCheck (contract safety audits), and Hiro API (Stacks SIP-010 tokens). Applies dual-gate verification where fundamentals (safety + holder + quality factors, max 70) and market (social + market factors, max 30) must each independently clear 60% before a token can advance. Auto-classifies tokens as HOT (85+), QUALIFIED (70-84), WATCH (50-69), or SKIP (<50).
| Factor | Max | How it's scored |
|---|---|---|
| market_cap | 10 | Tiered by MCap range ($100K-$50M = full marks, penalizes extremes) |
| liquidity | 10 | Liquidity-to-MCap ratio (3%+ with $100K+ liq = full marks) |
| volume | 10 | Volume-to-MCap ratio (10%+ = full marks) |
| Factor | Max | How it's scored |
|---|---|---|
| contract_safety | 15 | RugCheck verdict + score (Good/80+ = full, Warning = 10, <30 = 2) |
| holder_dist | 15 | Circulating/total supply ratio from CoinGecko (80%+ = full) |
| Factor | Max | How it's scored |
|---|---|---|
| team_identity | 10 | CoinGecko project listing as proxy for team visibility (listed = 6, not = 3) |
| social_presence | 10 | CoinGecko project listing as proxy for community (listed = 6, not = 3) |
| Factor | Max | How it's scored |
|---|---|---|
| token_age | 5 | Days since pair creation (90d+ = 5, 30d+ = 4, 7d+ = 3, <1d = 1) |
| deployer_history | 5 | Default 3/5. Pump.fun tokens receive -10 composite penalty |
| web_footprint | 5 | CoinGecko listing = 4, not listed = 2 |
| momentum | 5 | 24h price change direction (positive = 4, negative = 2) |
Both gates must pass independently:
If either gate fails, classification is capped at WATCH regardless of composite score.
Any agent evaluating tokens for trading, listing, or portfolio decisions needs systematic due diligence beyond price action. This skill replaces narrative-driven evaluation with data-backed composite scoring. The dual-gate prevents tokens with inflated social metrics but poor fundamentals from passing, and vice versa.
Checks API connectivity to all data sources and reports readiness.
bun run token-scoring/token-scoring.ts doctor
Scores a token by contract address. Pulls data from all sources, computes composite score, applies dual-gate, and returns classification.
bun run token-scoring/token-scoring.ts run --address <contract_address> --chain <solana|base|bsc|stacks>
Without arguments, scores the top trending token from DexScreener:
bun run token-scoring/token-scoring.ts run
All outputs are JSON to stdout.
{
"status": "success | error | blocked",
"action": "review score and classification for trading/listing decision",
"data": {
"address": "contract address",
"chain": "solana",
"composite_score": 67,
"classification": "watch",
"dual_gate": {
"pass": true,
"fundamentals": { "score": 45, "max": 70, "threshold": 42, "pass": true },
"market": { "score": 22, "max": 30, "threshold": 18, "pass": true }
},
"components": {
"safety": { "score": 15, "max": 15 },
"holder_dist": { "score": 10, "max": 15 },
"market_cap": { "score": 10, "max": 10 },
"liquidity": { "score": 8, "max": 10 },
"volume": { "score": 5, "max": 10 },
"team_identity": { "score": 6, "max": 10 },
"social_presence": { "score": 6, "max": 10 },
"token_age": { "score": 4, "max": 5 },
"deployer_history": { "score": 3, "max": 5 },
"web_footprint": { "score": 4, "max": 5 },
"momentum": { "score": 4, "max": 5 }
},
"flags": ["pump_fun_detected", "low_liquidity"],
"verdict": "PROCEED | MONITOR | REJECT"
},
"error": null
}