Data & methodology
Where our numbers come from, how often they refresh, how the AI text is written, and what can go wrong.
Last updated: October 5, 2026
CryptoGuide is an information service. Almost everything you see here is pulled from public third-party sources and reassembled — we do not run an exchange, hold funds, or produce a price feed of our own. This page explains, in plain terms, what each feature is built on, how fresh it is, how the automated text is produced, and the limits to keep in mind. It is written to match the code that actually runs; when we change a source or a schedule, we update this page.
Where the data comes from
Each feature reads from one or more public sources, in a fixed order. If the first source fails or rate-limits us, we try the next one.
Crypto prices (dashboard, ticker, watchlist, portfolio)
USD prices for BTC, ETH and SOL on the dashboard, and for the 8-coin ticker (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX), come from CoinGecko first, then CoinPaprika, then Binance. While your browser can reach Binance, the ticker also streams live updates over Binance's public WebSocket; where it can't (from US networks, for example), the ticker falls back to polling our snapshot every 30 seconds. Watchlist and portfolio valuations use Binance USDT spot prices with CoinPaprika as the fallback; when several coins share a ticker symbol, the highest-ranked one wins.
Global markets
NASDAQ, S&P 500, KOSPI, gold, WTI crude and the US Dollar Index come from the Yahoo Finance chart endpoint, with a mirror host as fallback. The daily change is the current price against the previous close.
Fear & Greed
The crypto Fear & Greed index is the one published by Alternative.me; we show its value and classification unchanged. The provider updates the index about once a day.
News
Headlines are collected from six RSS feeds, balanced across regions: CoinDesk and Cointelegraph (US), BeInCrypto and CryptoNews (Europe), AMBCrypto and TokenPost (Asia). We take at most 8 items per source per run so no single outlet dominates, de-duplicate by link, and store the headline, link, source and publish time. The summary under each headline is written by us automatically (see “How the AI text is produced”). The “market sentiment (news tone)” gauge aggregates the per-article tone over the last 24 hours — it reflects how headlines read, not where the market is going.
Chart patterns
Pattern and support/resistance detection runs on Binance candle (OHLC) data, 200 candles per symbol and interval. The detection itself is a set of fixed geometric rules, not an AI model. The confidence score measures how well the candles fit the shape; it says nothing about where price goes next.
On-chain
The whale tracker lists recent Bitcoin transactions of $5M or more from Blockchair (the 15 most recent), falling back to the largest transactions in blockchain.info's unconfirmed-transaction sample when Blockchair is unavailable. Exchange inflow/outflow is an estimate: we take that sample and match inputs and outputs against a public list of known exchange wallets, so it reflects a sample, not total flows. Network activity (active addresses, transactions, hash rate, miner revenue, 30 days) comes from blockchain.info charts; stablecoin supply (USDT, USDC and DAI market caps) comes from CoinGecko, with DefiLlama's circulating-supply figures as the fallback.
Crypto Map
Merchants and ATMs come from BTCMap, which is built on OpenStreetMap data contributed by volunteers. We import the location, name, address, category and payment tags (on-chain / Lightning); where an entry has no explicit payment tag we assume Bitcoin. The list of online services and the per-country regulation status are curated by us (see the map notes below).
AI brief and reports
The daily brief and the weekly, monthly and quarterly reports are written from the inputs above: the current BTC/ETH/SOL quotes, the Fear & Greed reading, the last 24 hours of published headlines and, for reports, the on-chain series. Nothing else goes in.
Coin Screener · whole-market aggregates
The screener's top-100 table (price, 1h/24h/7d change, volume, market cap) comes from CoinGecko coins/markets in a single call, with CoinPaprika tickers as fallback. The Market Score's total-market-cap change and BTC dominance come from CoinGecko /global (fallback: CoinPaprika /global). All are keyless public APIs.
Coin pages (price, chart, supply)
Detail pages for the top 100 coins by market cap read price, changes, volume, market cap, supply and all-time high from the same table as the screener (CoinGecko, fallback: CoinPaprika). One call covers every field, so the pages add no extra lookups. Chart candles come from Coinbase, then the Binance public market-data mirror, then CoinGecko, and the source that actually answered is named under the chart. Related news is the latest headlines from our own feed matched by coin name (and by ticker when there are few), each linking to the original article at its publisher.
Korean won conversion (USD/KRW)
Choosing KRW at the top of the page shows prices, market caps and volumes on the home dashboard, the screener, coin pages and the watchlist converted to Korean won. The rate is Yahoo Finance’s USD/KRW quote, falling back to the European Central Bank’s daily reference rate (served by Frankfurter). Converted figures are the USD price times that reference rate; they are not prices from Korean exchanges. If no rate can be loaded, figures stay in USD. Charts, the portfolio, on-chain amounts and plan prices are always USD. The choice is stored only in your browser and is never sent to our servers.
How often things refresh
Two things matter: how often we ask the source, and how often your screen asks us. The figures below are the ones in the code.
| Feature | Refresh |
|---|---|
| Crypto prices (dashboard) | Server keeps a quote for 20 seconds; the page refetches every 30 seconds. |
| Live ticker | Real-time over WebSocket where Binance is reachable from your browser; otherwise our snapshot, refreshed every 15 seconds on the server and polled every 30 seconds by the page. |
| Watchlist & portfolio prices | Server keeps the price list for 15 seconds. |
| Global markets | Every 60 seconds. |
| Fear & Greed | Checked every 5 minutes; the index itself changes about once a day. |
| News | New headlines are collected every 30 minutes; summaries are written in the same run (up to 20 per run), with a follow-up job for anything left over. |
| AI market brief | Once a day, in the morning (Korea Standard Time), in a standard and a detailed version. |
| Research reports | Weekly, monthly and quarterly. |
| Whale transactions | Server keeps the list for 60 seconds. |
| Network activity & stablecoin supply | Every 10 minutes. |
| Chart patterns | Candles are cached for 5 minutes. |
| Alerts | Conditions are evaluated about once a minute, so an alert normally arrives within a few minutes of the event — not second by second. |
| Crypto Map | Merchant and ATM data is synced from BTCMap about once a day (only entries changed since the last sync). Regulation status changes when we edit it. |
| Coin Screener | The server keeps the table for 2 minutes and the page refetches every 2 minutes. |
| Market Score | The server holds the score for 60 seconds and the page refetches every 60 seconds; inputs follow their own cadences. |
| Coin page: price | Real-time over WebSocket when your browser can reach Binance; otherwise the same 2-minute cycle as the screener. The badge next to the price says which. |
| Coin page: chart candles | The server keeps a series for 20 seconds (1-minute bars) up to 10 minutes (weekly bars), and the page refetches on the same rhythm. |
| Exchange rate (USD/KRW) | The server keeps the rate for 10 minutes. Only browsers showing won refetch it, every 10 minutes. |
What happens when a source is down
Every market call has a short timeout and one retry. If a source answers with a rate limit, we leave it alone for 60 seconds and move on to the next one. If every source fails, we show the last value we did get and mark it stale (the API returns stale: true; the dashboard keeps the last value on screen). We never fill a gap with an invented number — if we have never received a value, the section simply stays empty until we do.
How the AI text is produced
News summaries, the daily market brief, research reports and the portfolio commentary are written automatically by a large language model (Anthropic's Claude when configured). The model only sees the inputs listed above — it has no web access and no memory of you — and every piece of generated text is labeled with the model that produced it.
Rules the text must follow
- It must be grounded in the data and headlines it was given. No invented facts, numbers or events.
- No definitive predictions. It may say a move “could” or “appears to” be happening; it may not say that a price will reach a level.
- No instructions to buy, sell, enter, exit or rebalance, and no entry, target or stop levels.
- No profit guarantees or “risk-free” claims.
- Non-personalized: the brief and reports are generated once and shown identically to everyone. Portfolio commentary explains diversification metrics only — the model receives percentages and index values, never amounts, holdings tied to you, or identifiers — and is discarded after it is shown.
Automatic checks
Before anything is published, the output goes through automatic checks: length, formatting artifacts, and a list of banned phrases in Korean and English (definitive predictions, trade directives, profit guarantees). If a check fails we retry once; if it still fails the item is held back and shown as “withheld” rather than published. There is also a daily cap on model calls; when it is reached, pending items wait for the next day.
When the model is unavailable
Summaries and briefs are generated automatically. When the language model is not available, a rule-based template fallback writes the text from the same numbers and headlines, and the AI label shows “mock-v1” instead of a model name. Treat these the same way as any other automated text: a starting point for your own reading, not a conclusion.
None of this is a recommendation. The tone is deliberately descriptive; if a sentence reads like advice, that is a bug and we would like to hear about it.
How the Market Score is computed
The Market Score is a weighted average of the six inputs below, each normalized to 0–100 (v1). It is a fixed formula with no AI in the loop; when an input is missing, the score uses the remaining weights and the page says "partial data". With fewer than three inputs, no score is produced.
| Input | Data | Normalization | Weight |
|---|---|---|---|
| BTC 24h change | Same feed as the dashboard (CoinGecko → CoinPaprika → Binance) | 50 + change × 8 (saturates at ±6.25%) | 20% |
| Total market cap 24h change | CoinGecko /global → CoinPaprika /global | 50 + change × 10 (saturates at ±5%) | 15% |
| Share of majors up | 24h change of the 8 ticker coins | share up × 100 | 15% |
| Fear & Greed | Alternative.me | index value as-is | 20% |
| News tone | Our news pipeline, 24h headline tone | 50 ± confidence ÷ 2 (bullish +, bearish −) | 20% |
| Volatility calm | Size of the BTC 24h move | 100 − |change| × 12.5 (an 8% move scores 0) | 10% |
Bands: 0–19 cold · 20–39 risk-off · 40–59 neutral · 60–79 risk-on · 80–100 overheated. The score is held for 60 seconds and otherwise follows the refresh cadence of its inputs.
The Market Score is a reference gauge that summarizes market conditions; it is not a trading recommendation. "BTC 24h change" and "Volatility calm" derive from the same raw number (the BTC 24h move), so 30% of the weight rests on one input. When an input is missing the remaining weights are rescaled proportionally, and the "contribution" shown uses the rescaled weights. Derivatives (funding, open interest) and on-chain metrics are not part of v1.
How news tone (market sentiment) is calculated
News tone turns how headlines read into a number. It is not a prediction of where prices will go.
- Per article: the model sees only the headline, the outlet and the category, never the article body, and returns a tone (bullish, neutral or bearish) with a confidence from 0 to 100.
- Sample: only articles published in the last 24 hours whose summary passed our checks. Pending and withheld articles are left out.
- Aggregate: each article is weighted by its confidence, and we compute (sum of bullish weights − sum of bearish weights) ÷ sum of all weights. The result lies between −1 and +1.
- Label: above +0.15 reads bullish, below −0.15 bearish, anything between neutral. The number shown beside it is the average confidence of the sample, along with the sample size.
- The Market Score takes this in as 50 ± (average confidence ÷ 2) points, and marks it delayed when the newest article in the sample is more than 6 hours old.
Because only headlines are read, context from the article body is missing, and the mix of outlets we collect can lean one way. With zero articles in the sample we show no data instead of inventing a value.
How on-chain figures are defined
The on-chain screen counts things as follows. Everything is for the Bitcoin network, and estimates are labeled as estimates.
Whale transactions
The 15 most recent Bitcoin transactions whose outputs total $5M or more (Blockchair). When that source is down we show the largest transactions in blockchain.info’s unconfirmed-transaction sample instead.
Exchange inflow and outflow (estimate)
We take blockchain.info’s sample of unconfirmed transactions and match it against a public list of known exchange wallets. Outputs going to exchange wallets are inflow, inputs coming from exchange wallets are outflow, and inflow minus outflow is the net figure. It counts only that sample and only known wallets, so it is not total exchange flow. The screen shows the sample size and the number of matched transactions.
Network activity (30 days)
Active addresses (unique addresses used in a day), daily transactions, hash rate and miner revenue from blockchain.info chart data. The change shown compares the latest value with the one before it.
Stablecoin supply
Market caps of USDT, USDC and DAI with their 24-hour change (CoinGecko). Market cap is used as an approximation of circulating supply.
Coin charts and indicators
The chart on a coin page is drawn by us from candle data our server fetched, using TradingView’s open-source Lightweight Charts library. No external chart widget is embedded, so there are no third-party cookies.
Candle sources, in order
Coinbase (USD markets), then the Binance public market-data mirror (USDT markets), then CoinGecko. For coins neither exchange lists, only CoinGecko’s fixed bar sizes (30 minutes, 4 hours, 4 days) are available, and the chart says so whenever that differs from the interval you picked. If every source fails the chart stays empty with a notice.
Moving averages (MA20, MA50)
Simple averages of the last 20 and 50 closing prices. They are not drawn when there are fewer bars than that.
RSI(14)
Wilder’s method: start from the average gain and average loss over the first 14 bars, smooth them bar by bar, and compute 100 − 100 ÷ (1 + average gain ÷ average loss). The 70 and 30 lines are conventional reference marks, not buy or sell levels.
Live price badge
Live connected appears only while your browser is actually receiving that coin’s price from Binance’s public WebSocket. When the connection fails, or Binance does not list the coin, the badge reads periodic refresh and the price updates about every 2 minutes. Latency is the gap between the exchange’s timestamp and when your browser received it; it is hidden when your device clock makes the figure implausible.
Supply
Circulating, total and max supply are the values CoinGecko reports (on the CoinPaprika fallback, circulating supply is computed as market cap ÷ price). Token unlock schedules are not shown because no free source is reliable enough.
Known limitations
Delays
Prices can be up to about 30 seconds behind the market, global market quotes up to a minute, news up to 30 minutes, and the Fear & Greed index a day. Nothing here is suitable for timing trades.
Third-party accuracy
We pass sources through; we do not audit them. An error upstream — a bad print, a mis-tagged merchant, a stale RSS item — will appear here too.
Coverage
The dashboard tracks 3 coins and the ticker 8; the watchlist and portfolio support whatever Binance or CoinPaprika lists. Global markets are 6 instruments. News is 6 English- and Korean-language outlets. The map shows what BTCMap contributors have mapped, which in many regions is a fraction of the places that actually accept crypto.
Regional differences
Binance is unreachable from some networks (the US, for example). There the ticker polls instead of streaming, and chart patterns may show “candle data unavailable” until another source is added.
Symbol collisions
Many coins share a ticker symbol. For watchlist and portfolio prices we resolve a symbol to the highest-ranked coin with that ticker — usually, but not always, the one you mean.
Estimates
Exchange inflow/outflow is computed from a sample of unconfirmed transactions matched against a public wallet list; actual totals differ. Pattern confidence is a shape score, not a probability.
AI text
Even when grounded and checked, model output can misread a headline, over-weight a detail, or phrase things awkwardly. Held items are not shown; published items can still be wrong. The template fallback is a further step down in nuance.
Availability
Scheduled jobs (news, brief, map sync, alerts) can run late. When they do, the timestamps on each page tell you how old the data is.
Crypto Map: extra notes
- Merchant data is community-maintained. A pin means someone added the place to OpenStreetMap/BTCMap and said it accepts Bitcoin — not that we checked. Places close, stop accepting crypto, or move. Where a “verified” date is shown, that is the last survey date recorded by contributors.
- From the map data we show Bitcoin on-chain and Lightning acceptance only; coins listed for online services come from our own curated list.
- Country regulation status is our summary, in five coarse labels (friendly / regulated / restricted / banned / unclear), for a limited set of countries, and is edited by hand. It is a starting point for reading, not legal advice: rules differ inside a country, change often, and our label may lag a change by weeks or more.
- The map does not broker, verify or guarantee any transaction, and we are not a party to anything you do at a listed place.
What we store about you
The full version is the Privacy Policy; this is the short, practical list based on what the database actually holds.
Account
Email, name and profile image (managed by Clerk), plus your language, time zone and country code.
Consent records
Which document version you agreed to, when, and the IP address and browser string at that moment — kept as evidence of consent.
Subscription
Stripe customer and subscription identifiers. Card details never touch our servers.
Your content
Portfolios and holdings, watchlists, saved articles and reports, notifications, alert rules, alert channel settings (a Telegram chat ID or email address you give us) and delivery history.
Referral
Your referral code, who referred whom, and a salted hash of the signup IP (the raw address is not kept).
API (Whale plan)
A hash and a short prefix of each API key (the full key is shown once and not stored), per-day call counts per key and endpoint, and webhook URLs and secrets.
Usage signal
One row per hour per feature noting that you used the service — kept to determine refund eligibility, not for analytics.
Security log
Account deletion, data export, admin actions and blocked requests, with IP and browser string. This log is append-only and survives account deletion: the link to your user record is removed, but the entry keeps the acting email address.
Forms
Paid-plan waitlist sign-ups (email, plan, language) and enterprise inquiries (work email, organization, team size, intended use).
Product events
Lightweight events (event name, page, locale) used to understand which features are used.
What we do not keep
- Card numbers (Stripe holds them).
- Raw signup IP addresses (only a salted hash).
- Portfolio AI commentary (generated on request, returned, discarded).
- Full API keys or the contents of webhook deliveries.
From your profile you can export everything stored on your account as JSON and delete the account. Deletion cascades to all of the above except the security log.
Corrections and questions
If a number looks wrong, a merchant pin is out of date, a regulation label is behind, or an AI sentence reads like advice, tell us. Include the page, roughly when you saw it and, if you can, a screenshot. We fix what is ours and report upstream what isn't.
Email cryptoguidesbs@gmail.comFor merchant pins, the fastest route is often to fix the entry on BTCMap/OpenStreetMap directly; we pick the change up on the next sync.