Skip to content

Two symbol maps disagree on "base" → CoinGecko ID; neither ID is correct (silent price failures + never-firing price triggers) #48

Description

@ddfp777

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

  1. defi_price (imports from services.price) — BASE quotes resolve to the placeholder ID and return nothing.
  2. 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.
  3. 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

  1. 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).
  2. 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

  • I read SECURITY.md and confirmed this is not a security issue
  • I redacted any secrets from the logs/doctor output above

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions