Bitcoin usually costs more in Indian rupees on India-facing exchanges than the global dollar price converted at the reference exchange rate. This index measures that gap every trading day from live order books, pairing every rupee quote with the dollar price of Bitcoin at that moment. Sister indices: USDT and USDC.
| Exchange | Mid (₹) | Best bid / best ask (₹) | Spread | vs index fix |
|---|---|---|---|---|
| loading… | ||||
Methodology v0.1.0 · DRAFT pending calibration and Owner sign-off. Values marked TO BE SET are filled from calibrate.py after roughly 44 hours of live capture; the version number does not change when they are filled, because filling them does not change how a fix is computed.
The Crypto Times India Bitcoin Premium Index (CTPI-BTC-SPOT-INR) measures how much more (or less) Bitcoin costs in Indian rupees on India-facing exchange order books than at the global dollar price, every trading day. The published number is a percentage premium: positive means Bitcoin is dearer in India than the world price converted at the reference exchange rate; negative means cheaper.
Fix window 11:30–12:30 IST (12:00 ± 30 minutes), the family standard shared with the USDT and USDC indices. The fix is published at 12:31 IST by a systemd timer with Persistent=true; if the host is off through the window, the timer runs on boot, finds no samples in the window and refuses to publish. No estimate is ever published in place of a missed fix; a missed or late fix is recorded in the corrections log as a publication-timing entry.
Official fixes are computed every Monday to Friday (IST). Local public holidays do not pause the index: crypto trades every day, so a Indian public holiday is an ordinary fix day, priced against the ECB reference rate by the usual rule below. Weekend runs store an indicative point at the same fix time, measured against the last business day’s USD/INR and marked distinctly on the chart.
Bitcoin can move 1% inside the one-hour window. Dividing an hour of rupee quotes by a single dollar price would put Bitcoin’s own move into the “premium”. Instead, each venue sample is paired with the BTC/USD reference captured nearest to it in time (within 120 seconds; unpaired samples are counted and dropped, never estimated), and the premium is aggregated from those pairs.
r = venue_mid_inr ÷ btcusd_ref — the USD/INR rate implied by that venue’s Bitcoin quote.r across its paired samples is the venue observation; the median two-sided rupee depth resting within ±TO BE SET bps of mid (stored bands: 50, 100) is the venue weight.TO BE SET two-sided. Exclusions are recorded in the fix’s provenance with the venue’s would-be value.R. A venue must supply real resting depth, not just a printed price, to move the fix.premium_pct = (R ÷ USDINR − 1) × 100.value = R × btcusd_ref, where btcusd_ref is the median of the BTC/USD references actually paired in the window, so that value ÷ (btcusd_ref × USDINR) − 1 reproduces the premium exactly from the figures shown on the page. The depth-weighted median of observed rupee mids is recorded in provenance as a descriptive alternate.An official fix requires at least TO BE SET eligible venues (target: one fewer than the number of constituents, so that losing one venue never ends the series), a publishable USD/INR reference within the carry ceiling, at least one paired BTC/USD reference, and no existing official fix for that time. Officials are immutable once written; restatements go only through governance tooling and appear in the corrections log.
two_venue_aggregate; high_venue_dispersion when the spread between venue observations exceeds TO BE SET bps; unpaired_samples(n); insufficient_venues on indicative fixes only.
Candidate venues at launch: CoinDCX, ZebPay, KoinBX, Giottus and Coinbase Exchange (its BTC-INR book was confirmed on 23 September 2026; it counts on the same terms as every venue — its book is thinner than the Indian venues’, and the same depth floor applies to it). Constituent status (candidate, constituent, shadow, excluded) is set from measured data during calibration and reviewed against these rules; every change appears in the changelog.
Between fixes the page shows a 5-minute indicative reading computed with the same pairing and aggregation, against the USD/INR rate in force at the sample. Past 15 minutes without a usable sample the live block shows STALE rather than a stale number. Indicative readings are never part of the daily fix series.
Besides the daily fix, the engine records one reading a day at 12:00 UTC — the same moment for every index in the family (17:30 IST here) — computed exactly as above over 11:55–12:05 UTC (17:25–17:35 IST), against the latest ECB reference captured before the window closes, which is always the prior business day’s rate. It exists so that a future multi-country composite can combine markets observed at the same instant rather than hours apart. It is not this index’s official value and is never part of its fix series; a day on which it cannot be computed is recorded as INVALID with its reason. Around that window the collector samples every 60 seconds whatever the local hour. The series is published at /v1/sync on the engine host.
The methodology version changes only when the way a fix is computed changes — never for display, documentation or the filling of calibration values above. Package versions are separate.
Coinbase Exchange counts on the same terms as every venue: the same depth floor applies to its thinner rupee book. Local public holidays do not pause the index: a holiday is an ordinary fix day, priced against the ECB reference rate by the usual rule; weekends stay indicative. No change to how the fix is computed. Official fixes remain switched off.
Venue discovery (run 23 September 2026): CoinDCX, ZebPay, KoinBX, Giottus and the Kraken and ECB references answered as documented. Coinbase Exchange now serves a BTC-INR book, so Coinbase moves from pending to an enabled candidate; its book is thinner than the Indian venues’ and the depth floor set at calibration decides whether it counts. Official fixes remain switched off.
Fix engine, public API and this page added to the Bitcoin engine. Methodology v0.1.0 drafted: per-sample pairing of venue quotes with the BTC/USD reference (120-second rule), depth-weighted median of venue-implied USD/INR, ECB USD/INR denominator, published price level defined so that the page’s figures reconcile exactly. Official fixes remain switched off ([fix].official_enabled = false) until calibration values are set from live data and the methodology is signed; the daily timer stores indicative (shadow) fixes meanwhile.
Collector-first package: order-book capture from CoinDCX, ZebPay, KoinBX and Giottus (Coinbase Exchange pending confirmation of a BTC-INR book); Kraken BTC/USD reference sampled on every pass; ECB USD/INR cross every 15th pass. No fix methodology existed at this point; stored passes record methodology_version = 0.0.0-collector.
No corrections, restatements or publication-timing entries yet. Entries are added here, inside this document, never on a separate page: a missed or late fix is recorded as a publication-timing entry; a change to a published value is a restatement, with the old value, the new value, the reason and the date.
| Date | Type | Fix date | Detail |
|---|---|---|---|
| none recorded | |||