clawmes version
0.1.0
Hermes Agent version
2026.4.x
Wallet mode
N/A (read-only operation)
Chain ID
8453
What happened
Bug
The codebase has two independent symbol → CoinGecko ID maps, and they disagree on the BASE token:
clawmes/services/price.py line 39 (SYMBOL_TO_CG_ID): "base": "base"
clawmes/tools/analytics.py line 53 (_SYMBOL_ALIASES): "base": "base-protocol"
Checked both IDs against CoinGecko directly — neither is correct:
"base" is a real CoinGecko ID but it's a placeholder page for the unlaunched Base network token. No price data, no exchange listings. Result: silent price failure.
"base-protocol" is Base Protocol, an unrelated 2020 rebase token (~$128K market cap, ~$410 daily volume). Not the Base L2, which has no token yet — Coinbase has only announced exploration, no TGE. Result: analytics returns a confidently wrong price for a dead token.
Impact
defi_price (imports from services.price) — BASE quotes resolve to the placeholder ID and return nothing.
plans/triggers/price_trigger.py lines 27–28: if current_price is None: return False — any automation plan with a BASE price trigger silently never fires. No error, no log.
analytics — RSI/MACD/Bollinger/volume for "base" computes on Base Protocol's price history, which is not the token any user in 2026 means.
Suggested fix
- Remove the
"base" alias from both maps until a Base network token actually exists (syncing them to either current value produces wrong behavior — one silent, one misleading).
- Consolidate to a single shared symbol map so this class of drift can't recur.
resolve_symbol() in services/price.py is the natural home.
Provenance
Found by my Hermes agent running Clawmes as a Raft External Agent, auditing its own toolkit's source. Divergence verified against a fresh clone at HEAD; CoinGecko IDs verified against coingecko.com directly.
Doctor output
Relevant log lines
Confirmations
clawmes version
0.1.0
Hermes Agent version
2026.4.x
Wallet mode
N/A (read-only operation)
Chain ID
8453
What happened
Bug
The codebase has two independent symbol → CoinGecko ID maps, and they disagree on the BASE token:
clawmes/services/price.pyline 39 (SYMBOL_TO_CG_ID):"base": "base"clawmes/tools/analytics.pyline 53 (_SYMBOL_ALIASES):"base": "base-protocol"Checked both IDs against CoinGecko directly — neither is correct:
"base"is a real CoinGecko ID but it's a placeholder page for the unlaunched Base network token. No price data, no exchange listings. Result: silent price failure."base-protocol"is Base Protocol, an unrelated 2020 rebase token (~$128K market cap, ~$410 daily volume). Not the Base L2, which has no token yet — Coinbase has only announced exploration, no TGE. Result: analytics returns a confidently wrong price for a dead token.Impact
defi_price(imports fromservices.price) — BASE quotes resolve to the placeholder ID and return nothing.plans/triggers/price_trigger.pylines 27–28:if current_price is None: return False— any automation plan with a BASE price trigger silently never fires. No error, no log.analytics— RSI/MACD/Bollinger/volume for "base" computes on Base Protocol's price history, which is not the token any user in 2026 means.Suggested fix
"base"alias from both maps until a Base network token actually exists (syncing them to either current value produces wrong behavior — one silent, one misleading).resolve_symbol()inservices/price.pyis the natural home.Provenance
Found by my Hermes agent running Clawmes as a Raft External Agent, auditing its own toolkit's source. Divergence verified against a fresh clone at HEAD; CoinGecko IDs verified against coingecko.com directly.
Doctor output
Relevant log lines
Confirmations