MEME={"robinhood-memes","memes","animal-memes","ip-memes","political-memes","celebrity-memes","cat-themed","doggone-doggerel","ai-memes","ton-meme-coins","stock-memes","startup-memes"}
AI={"ai-big-data","ai-agents","ai-memes","defai","ai-applications","generative-ai","ai-agent-launchpad","virtuals-protocol-ecosystem"}
DEFI={"defi","dex","amm","derivatives","perpetuals","lending-borowing","decentralized-exchange-dex-token","yield-farming","dex-aggregator","cross-chain-dex-aggregator","real-world-assets-protocols","payments","depin","distributed-computing"}
GAMES={"gaming","tap-to-earn","telegram-bot","play-to-earn","communications-social-media","social-token","web3"}
def has(t,s): return bool(set(t)&s)
# id, chain, name, rule(tags)->bool, what it holds
CMC_BASKETS=[
 ("sol_pump","Solana","Pump.fun coins",lambda t:"pump-fun-ecosystem" in t,"coins born on pump.fun"),
 ("sol_bonk","Solana","Bonk.fun coins",lambda t:"bonk-fun-ecosystem" in t,"coins born on bonk.fun (letsbonk)"),
 ("sol_memes","Solana","Solana older memes",lambda t:has(t,MEME) and "pump-fun-ecosystem" not in t and "bonk-fun-ecosystem" not in t,"memes not from pump.fun or bonk.fun (BONK, WIF style)"),
 ("sol_ai","Solana","Solana AI",lambda t:has(t,AI),"AI and agent coins on Solana"),
 ("sol_defi","Solana","Solana apps (DeFi)",lambda t:has(t,DEFI) and not has(t,MEME) and not has(t,AI),"exchanges, perps, lending, infra on Solana"),
 ("base_memes","Base","Base memes",lambda t:has(t,MEME) and not has(t,AI),"meme coins on Base"),
 ("base_ai","Base","Base AI (incl. Virtuals)",lambda t:has(t,AI),"AI, agent and Virtuals coins on Base"),
 ("base_defi","Base","Base apps (DeFi)",lambda t:has(t,DEFI) and not has(t,MEME) and not has(t,AI),"exchanges, lending, infra on Base"),
 ("rh_memes","Robinhood Chain","Robinhood memes (point in time)",lambda t:has(t,MEME),"meme coins on Robinhood Chain as CoinMarketCap listed them each day"),
 ("ton_all","TON","Telegram (TON) coins",lambda t:True,"every liquid coin on TON: Telegram games and memes (NOT, DOGS, CATI style)"),
]
EXCLUDE={"sol_pump":{"PUMP"}}
TRADABLE={"sol_pump","sol_bonk","sol_memes","base_memes"}   # chain-2: only these get BUY/SELL (tested)
CHAIN_LABEL={"Robinhood Chain":"Robinhood"}
