GuruWatcher Guides · Crypto watches

Watch crypto — majors & tokens

GuruWatcher can alert on crypto too. The everyday majors — Bitcoin, Ethereum, and a few others — work exactly like any other newsletter level: extract → price lookup → Discord. Tokens are an advanced CLI option keyed to a contract, with a liquidity floor and a preview step before anything is written. Alert-only — no orders.

All guides Getting started

What it does / doesn’t do

It watches concrete levels and pings your Discord when a check sees a hit — the same alert-only behavior as the rest of GuruWatcher. It does not place orders, does not stream brokerage ticks, and does not tell you what to trade. Like every price GuruWatcher looks up, crypto is a last traded price on a timer, so an alert can arrive up to one price-check interval after the market moved.

Majors — from your newsletter

If your newsletter prints a level for a major, the extractor turns the common name into the yfinance-style pair automatically:

Newsletter printsWatched as
Bitcoin / BTCBTC-USD
Ethereum / ETHETH-USD
Solana / SOLSOL-USD
XRPXRP-USD
Dogecoin / DOGEDOGE-USD

Prices come from Yahoo (via yfinance) by default — the same free public source the equity side uses. Not a brokerage stream and not the exchange official close.

Optional CoinGecko: CoinGecko is a second source for majors — tried first with prefer_over_yfinance: true, otherwise used as a failover when Yahoo fails. New kits and the live operator config ship with crypto_price.enabled: true, so the failover is already armed. If you add an API key it is read from the COINGECKO_API_KEY environment variable, never from a config file, and a small per-coin throttle (min_seconds_between_calls, default 6s) protects free-tier rate limits.

Tokens — CLI only (advanced)

The Control Panel does not add token watches. Tokens are keyed to a chain + contract rather than a ticker, so they are priced from DexScreener by the contract. This path is manual-only: newsletter extractors never emit token watches.

  1. Tokens are enabled in new kits and on live ops. A fresh kit and the live operator config ship with token_watch.enabled: true. Without that flag, a token watch fails closed and is never priced.
  2. Run the add command with --asset-class token:
    python3 -m guru_watcher add \
      --asset-class token \
      --symbol MYTOKEN \
      --op gt \
      --level 0.0012 \
      --chain solana \
      --contract <mint address> \
      --band-lo 0.0005 \
      --band-hi 0.005
  3. Check the preview. Without --confirm this only prints the watch id and writes nothing to watches.json — the level, chain, contract, and band are shown for you to check.
  4. Re-run with --confirm to arm it for real:
    python3 -m guru_watcher add \
      --asset-class token \
      --symbol MYTOKEN \
      --op gt \
      --level 0.0012 \
      --chain solana \
      --contract <mint address> \
      --band-lo 0.0005 \
      --band-hi 0.005 \
      --confirm

Chains & contracts: --chain accepts solana (base58 mint address) and the EVM chains ethereum, base, and bsc (0x + 40 hex contract). The level must sit inside the band — add rejects a level outside [--band-lo, --band-hi].

The liquidity floor

Token prices come from DexScreener, and GuruWatcher only prices pairs whose base token is your contract on that chain. Quote-side pairs are skipped, so a USDC/other pair can never be priced as your token. A pair must also clear a liquidity floordefault_min_liquidity_usd, default $25,000 — to avoid stale or barely-tradeable pools.

If no pair clears the floor, the check fails loud: the watch records a price failure and no alert fires. You can opt into an unfloored CoinGecko simple-price failover with token_watch.allow_unfloored: true, but that is off by default — GuruWatcher prefers no alert over a wrong one.

Token watches also carry a sanity band: at check time a price outside the band is treated as a price failure, so one bad tick cannot fire an alert.

How the alert fires

On each Keep checking pass, GuruWatcher looks up the last traded price and compares it to the armed level. Discord fires on the next check after the price has moved through the level — often within a few minutes, depending on your price-check interval. The card is the same alert-only shape as every other watch.

Crypto alerts need the same basics as any watch: Keep checking on, and — for real alerts — a saved Discord webhook and Live mode.

Next

Prices and sourcing in the FAQ · Price-check timing in Keep checking.