smrr is a small CLI that separates fresh smart-money rotation from structural holdings.
Many "smart money is buying" takes confuse 30d+ holdings with fresh rotation.
smrr separates them automatically and pushes obvious false positives into a guard list.
python3 -m pip install -r smrr/requirements.txtOptional:
- Install the official Nansen CLI and make it available on
PATH - Export
NANSEN_API_KEYor keep it in~/.crypto-intel.env - Set
SMRR_SYMBOL_REGISTRYwhen usingsmrroutside this repo
python3 -m smrr scan --seed top-tokens --profile balanced --output /tmp/smrr_report.md
python3 -m smrr report
python3 -m smrr explain SOL
python3 -m smrr versionCurrent fresh-run call budget with N=5 tokens:
1call: seed universe intop-tokensmode5calls:token_flows(24h)5calls:token_flows(7d)5calls:token_who_bought_sold(24h)5calls:token_who_bought_sold(7d)5calls:smart_money_balances10calls:token_info + token_indicators5calls:wallet_pnl(top holder)
Total fresh-run budget:
41calls intop-tokensmode40calls with an explicit 5-token seed
smrr reports both the fresh-run budget and the live calls used in the current run, so cached runs do not overclaim call usage.
Breadth scoring uses a fixed reference of 10 wallets for demo readability:
2 wallets -> 205 wallets -> 5010+ wallets -> 100
Breadth is capped by the query limit:
who-bought-soldis queried with--limit 20- tokens with
20+buyers are indistinguishable by breadth score alone
Absolute inflow floors are profile-based:
conservative:$100kbalanced:$25kaggressive:$10k
This keeps the floor explainable in demos without pretending one threshold fits every token size.
If the CLI is unavailable, smrr falls back to REST for the endpoints it knows how to call and then to the local symbol registry for seed resolution.
SMRR_STATE_DIR: override local state/cache directorySMRR_SYMBOL_REGISTRY: point to asymbol_registry.jsonoutside this repo
smrr is a research prioritization tool, not financial advice.