Python SDK for Quant Platform — Bitcoin on-chain analytics from the Arabic Bitcoin Academy
Project description
Obiko — Python SDK for Quant Platform
The official Python SDK for Quant by Bitcoin Academy — a research-driven Bitcoin on-chain analytics platform with pre-registered scientific methodology.
What makes Quant different
Quant is the only Bitcoin analytics platform that publishes its hypotheses before running the tests. Every indicator goes through a 5-phase protocol with SHA-256 hashed pre-registration, locked thresholds, and out-of-sample validation. We publish refutations as openly as we publish validations.
As of May 2026:
- 22 indicators with 100% real data sources (no proxies)
- 7 pre-registered research papers with reproducible methodology
- 1 validated finding (CBA — 5/5 + 6/6 sanity checks)
- Original methodological contribution: Phase 0 Protocol
Installation
pip install obiko
For DataFrame support:
pip install obiko[pandas]
Quick start
import obiko
client = obiko.Client(api_key="qnt_pro_xxxxxxxxxxxx")
# Get the validated CBA indicator
cba = client.cba()
print(cba.value, cba.data_date)
# Or fetch any indicator by name
mvrv = client.get_indicator("mvrv_z")
print(mvrv.value)
# Get the full dashboard snapshot
snap = client.dashboard()
print(f"Score: {snap.score}/100 Zone: {snap.zone} Price: ${snap.price:,.0f}")
API key
API keys are issued to Pro-tier subscribers. Subscribe at /pro to get yours.
You can also set the OBIKO_API_KEY environment variable to avoid passing the key in code:
export OBIKO_API_KEY="qnt_pro_xxxxxxxxxxxx"
import obiko
client = obiko.Client() # reads OBIKO_API_KEY automatically
Working with pandas
Every data-returning method supports df=True for direct DataFrame output:
import obiko
client = obiko.Client()
# All current indicators
df = client.indicators(df=True)
print(df.head())
# indicator value
# 0 cba 12.5
# 1 map 0.234
# 2 mvrv_z 2.1
# ...
# Full dashboard, flattened
df = client.dashboard(df=True)
print(df.head())
# section indicator value
# 0 top score 58.3
# 1 top zone تراكم ذكي
# ...
Research papers
Pro-tier keys can fetch the underlying data for all 7 pre-registered papers:
papers = client.papers()
for p in papers:
print(p)
# <Paper ⭐ CBA phase=D outcome=validated>
# <Paper MAP phase=D outcome=mixed>
# <Paper PPR phase=D outcome=refuted>
# ...
# Drill into the validated paper
cba = client.paper("cba")
print(cba.verdict) # 'VALIDATED: CBA U-shape variance pattern holds OOS'
print(cba.thresholds) # {'P10': 1.9081, 'P90': 20.3353}
print(cba.pre_registration_hash) # SHA-256 commit hash
Available indicators
print(client.info()["available_indicators"])
The SDK currently exposes 31 indicators across these groups:
- Price & valuation:
mayer_multiple,ma_200d,ma_200w,realized_price,mvrv_z,mvrv_ratio,nupl,puell_multiple,stock_to_flow - Cycle markers:
pi_cycle_ratio,pi_cycle_signal,nupl_phase,rhodl_ratio - Validated indicators:
map,cba(with their_zonecompanions) - Network health:
hash_health,active_addresses,rsi,bvol_30d - Premium (Pro tier):
hash_ribbons,hash_ribbons_buy,miner_position_index,fear_greed - Composite:
hybrid_index,price,zone
Error handling
Errors are typed for clean handling:
from obiko import Client, AuthenticationError, RateLimitError, TierError
try:
client = Client(api_key="qnt_pro_invalid")
client.cba()
except AuthenticationError:
print("Bad key — get a new one at /pro")
except TierError as e:
print(f"Need Pro tier: {e}")
except RateLimitError as e:
print(f"Slow down — retry after {e.retry_after}s")
Rate limits
| Tier | Requests / minute |
|---|---|
| Pro | 100 |
| Premium | 30 |
The client raises RateLimitError (with a .retry_after attribute) when limits are exceeded.
Context manager
Sessions are automatically reused. For explicit cleanup:
with obiko.Client() as client:
snap = client.dashboard()
# ... session closed automatically
Versioning
Obiko follows semantic versioning. The current major version is 1.x.
Links
- Platform: https://quant-btcacademy-online.onrender.com
- Bitcoin Academy: https://btcacademy.online
- Source code: https://github.com/Obi1Kn/quant-platform
- API docs: https://quant-btcacademy-online.onrender.com/v1/sdk/info
License
MIT — see LICENSE.
Made with conviction in London, UK by Obaida Kotainy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file obiko-1.0.0.tar.gz.
File metadata
- Download URL: obiko-1.0.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.15.0a8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e70c78f974b1d1e4835264380905b6bf224954d71b24be674ec62fb4ec53e0eb
|
|
| MD5 |
1630fcf82d377b8e394cbcb2e4150ab0
|
|
| BLAKE2b-256 |
ffd4645545aadb3ab0d1c96473dc6d145f1030b0f47ef5942c6d7dc2919160e7
|
File details
Details for the file obiko-1.0.0-py3-none-any.whl.
File metadata
- Download URL: obiko-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.15.0a8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f62f41ee367e2e12c78ed7335e9ad0de7c7e976d3d0f03f60b1d3f9d3233664a
|
|
| MD5 |
c9ec00a93ba9159b22dfbcb1120a62fe
|
|
| BLAKE2b-256 |
f5df55ac411528aeca6e20b5506153e4cb85af4a244708881a6609993aea3671
|