Footprint
Traded volume per price bin, split by aggressor side — see where buyers and sellers actually transacted, bar by bar.
A free explorer that shows, historically, footprint, order-book heatmap, liquidation map and funding/OI divergence — one data-driven core folds a recorded dataset into render frames, drawn in the browser.
An XraySpec names the symbol and the panels to build — each with its own binning (price_bin, bucket_ms). The core folds the recorded dataset into a frame of render data-models.
{
"dataset_ref": "m",
"symbol": "BTCUSDT",
"panels": [
{ "kind": "footprint", "price_bin": 1.0, "bucket_ms": 60000 },
{ "kind": "book_heatmap", "price_bin": 1.0, "bucket_ms": 60000 },
{ "kind": "liquidation_map", "price_bin": 1.0, "bucket_ms": 60000 },
{ "kind": "funding_oi_divergence", "bucket_ms": 60000 }
]
}Because the spec is data, the same frame crosses the C ABI and WASM unchanged, and comes back byte-for-byte in every language.
The same explorer from every language — native Rust, Python, Node.js and WASM, plus a C ABI for C, C++, C#, Go, Java and R.
pip install wickra-xrayBuild an X-ray from a spec, load a recorded dataset, then pull the frame. The command API returns the same bytes in every binding — the web renderer (Vue + Canvas) is just another consumer of these frames.
import json
from wickra_xray import Xray
spec = json.dumps({
"dataset_ref": "m",
"symbol": "BTCUSDT",
"panels": [{"kind": "footprint", "price_bin": 1.0, "bucket_ms": 60000}],
})
xray = Xray(spec)
xray.command(json.dumps({"cmd": "load", "dataset": dataset}))
frame = json.loads(xray.command(json.dumps({"cmd": "frame"})))
print(len(frame["panels"]), "panels")Wickra X-Ray is part of the Wickra ecosystem. Its panels are computed from the same typed microstructure feeds that wickra-core and wickra-exchange produce, so an X-ray shows exactly the numbers a backtest or a live chart would see.
Wickra X-Ray is a software library, not a trading system, and gives no financial advice — use at your own risk.