Verifiable crypto market infrastructure

Crypto market data, with the evidence attached.

Ask every venue the same question in DQL, see one instrument on every venue side by side, get told when a condition becomes true, and place orders through a Runner on your own infrastructure — without hiding the source, age or absence of the underlying data.

Explore live data
Live market proof

One instrument across the venues that quote it, with three clocks per row.

Ticker, open interest and depth arrive by different calls at different rates, so the table shows an age for each group — never one age per row. Freshness is judged per call against that call's expected cadence.

DQL · DEBYKO Query Language In development

Stop coding the same market checks differently for every exchange.

Write the condition once. DQL handles the rest — across every venue.

In every plan, from €0 · one key covers Studio, the API and Agent · monthly, no annual plan · API v1 free today, no key

What you mean

BTC on Kraken and Hyperliquid more than 35 bps apart, both books holding $100,000 within 25 bps, every price under half a second old, and hourly funding more than 1 bps apart.

What you write · DQL
(max(venues, mark) - min(venues, mark)) / min(venues, mark) > 35bps
  and all(venues where age(mark) < 500ms
          and depth_bid_value(25bps) > 100000
          and depth_ask_value(25bps) > 100000)
  and max(venues, funding) - min(venues, funding) > 1bps
  where instrument = BTC-PERP and venue in (KRAKEN-FUTURES, HYPERLIQUID)
KRAKEN-FUTURES · PF_XBTUSDHYPERLIQUID · BTC
MatchBTC-PERP2 of 2 venues
KRAKEN-FUTURES85,421.20mark · USD · 0.21 s old
HYPERLIQUID85,760.40mark · USD · 0.13 s old
39.7 bps
  • Depth within 25 bps · $2.3M / $2.1M · $0.9M / $1.2M ✓
  • Freshness · every price under 500 ms ✓
  • Funding per hour · +0.2 vs +1.4 bps ✓
APIJSON to your code
AgentWebhook on match
Runner · optionalOr let Runner place the order with your keys

You define the market condition. We deal with the exchanges.

One query, every venueNo Binance branch. No Hyperliquid branch. No Bybit branch. One condition against every venue that lists the instrument.
Stale data can’t trigger your botage(funding) < 2s is part of the condition. A venue that stopped answering does not silently keep yesterday’s value alive.
Backtest the same questionAdd as of 2026-09-22T08:00:00Z. The condition is evaluated against only what DEBYKO had actually received by that instant.
Send the result to your botJSON through the API. A webhook on match through Agent. Or let Runner place the order with your own keys — DEBYKO never sees them.
Or screen every venue at once

Every ETH perp where funding is above 5 bps on at least three venues, each reading under two seconds old.

count(venues where funding_8h > 5bps
             and age(funding) < 2s) >= 3
  order by max(venues where age(funding) < 2s, funding_8h) desc
MatchETH-PERP3 of 4 venues
HYPERLIQUID ETH+7.2 bps0.29 s old
BINANCE-USDM ETHUSDT+6.1 bps0.60 s old
BYBIT-PERP ETHUSDT+5.8 bps0.19 s old
OKX-PERP ETH-USDT-SWAP+9.4 bps14 s oldSTALE · not counted

The highest reading is fourteen seconds old, so it is shown with its age and counted for nothing.

Raw answer
{ "instrument": "ETH-PERP", "result": "true",
  "venues": [
    { "venue": "HYPERLIQUID", "symbol": "ETH", "values": { "funding_8h":
      { "value": 0.00072, "unit": "fraction", "received_at": "2026-09-22T09:30:04.712Z",
        "age_ms": 288, "status": "present" } } },
    { "venue": "BINANCE-USDM", "symbol": "ETHUSDT", "values": { "funding_8h":
      { "value": 0.00061, "unit": "fraction", "received_at": "2026-09-22T09:30:04.402Z",
        "age_ms": 598, "status": "present" } } },
    { "venue": "BYBIT-PERP", "symbol": "ETHUSDT", "values": { "funding_8h":
      { "value": 0.00058, "unit": "fraction", "received_at": "2026-09-22T09:30:04.815Z",
        "age_ms": 185, "status": "present" } } },
    { "venue": "OKX-PERP", "symbol": "ETH-USDT-SWAP", "values": { "funding_8h":
      { "value": 0.00094, "unit": "fraction", "received_at": "2026-09-22T09:29:51.020Z",
        "age_ms": 13980, "status": "stale" } } } ] }
What a condition can read
Price & spreadFundingOpen interestBook depth in a bandMark · index · basisCandlesEMA · RSI · ATRData ageVenue countany · all · countmin · max · sumas of

Registry, read from the platform: requesting…. A venue or market added on the platform appears here on its own.

A venue that did not answer is unknown, not false and not zero.

No buy, sell or signal anywhere in the language. It describes the market; what to do stays with you.

Draft syntax · illustrative values

For bot builders

Why did my bot do that at 14:03:07? Ask the API. It answers with what your bot could have known then.

Your market-data layer becomes an HTTP client and a where clause. Every value with its venue, receive time, age and unit; the venue's raw fields next to ours; nothing invented when a venue goes quiet.

A bot's loop · API v2In development
# every cycle
POST /v2/snapshots          where venue = KRAKEN-FUTURES     → ticker, mark, funding, oi, band depth
POST /v2/candles            timeframe 15m · price_type mark  → the venue's own mark candles, closed only

# on restart
POST /v2/snapshots/history  at [your last 30 cycle instants] → what was known at each instant, gaps explicit

# at 3 a.m.
POST /v2/snapshots/history  at [2026-09-22T14:03:07Z]        → what your bot could have known then,
                                                               byte-identical once settled
Try it now · API v1 · no key
curl -s "https://cryptosmithx.blynai.eu/v1/snapshot?exchange=hyperliquid&symbols=BTC"
Leave out symbols and the whole venue comes back in one request.
Responserequesting
Requesting the live response…
Today: this, no key. Tomorrow: the same values, in one condition.
26 msKraken Futures trades, p50 from the venue’s timestamp to our receipt · tickers 74 ms
≈3 / sKraken Futures ticker
≈8 / sHyperliquid ticker
≈1 / smark, open interest, stats
every 1 sdepth bands from the full WebSocket book, stored per second

Measured on the v2 collectors, 2026-09-21/22; receipt times over a 20-second sample of the live stream, 2026-09-22.

  • include_raw — the venue's own field names next to ours. Swap the source, keep your formulas.
  • units: base | published, and every value says its unit. kPEPE is base×1000, not a surprise in production.
  • present / stale / missing / not published / off — a dead websocket cannot feed you yesterday's price as today's.
  • items_sha256 — settled history is byte-identical on replay. Your backtest is reproducible, and you can prove it.
View API v1 documentation

In every plan, from €0 · one key covers Studio, the API and Agent · monthly, no annual plan · API v1 free today, no key

Principles

Nothing is shown as more than it is.

Six rules the product is held to. The page above is held to the same rules.

  1. 01Every value keeps its source venue and instrument.
  2. 02Every value shows when it was received, and its age.
  3. 03Missing data stays missing. It is never turned into zero.
  4. 04Stale data is never presented as live.
  5. 05Derived values say what they were computed from.
  6. 06Coverage limits stay visible.
01 / Market data Free · Live Subscription · Pre-launch
Studio

One instrument on every venue that quotes it, side by side.

Live values, history with its gaps left in, and what each venue showed at any past moment. When you act, the order goes to your own Runner and is placed with your keys.

A missing observation is empty, not zero. The age and origin of every value stay visible.

Trade candles · 1 h · UTCStructure
Gap · 6 h · not a zero
00:0012:0000:0012:00
Hollow: close above open · filled: close below · hatched: no candles stored for this interval
  • Free: the live comparison, with an age on every figure
  • Subscription: full history — candles, funding, open interest, trades, liquidations, order books
  • Subscription: point-in-time replay
  • DQL screening: ten queries a minute on Free, more on every paid plan
  • Orders go to your own Runner, never through DEBYKO
Free€0 · live now Mini€9 / month · pre-launch Standard€29 / month · pre-launch Pro€79 / month · pre-launch
02 / Data for your code v1 · Live v2 · In development
API

The same data as Studio, for your code.

v1 serves facts: coverage, snapshots, order books, candles, trades and a live stream. v2 adds DQL, one query language for screening and point-in-time questions across venues.

One key will cover Studio, API and Agent. Until keys ship, v1 is open.

Registry, read from the platform: requesting….

Pricev1 open · no key yet
APIField names per /scalar/v1 · waiting for the live response
GET /v1/snapshot?exchange=okx-perp
    &symbols=BTC-USDT-SWAP&include=quote,depth,instrument
Three clocks in one row: receivedAt, openInterestAt, depthAt. null means the venue does not provide the field — never 0.
03 / Alerts Planned
Agent

Write what to watch. Hear when it becomes true.

Write a condition in DQL. Agent evaluates it on your schedule and tells you by Telegram or webhook when it becomes true, with the values and their sources attached.

It receives your Runner's execution reports and publishes how often each rule fired — never whether it was right.

PriceNot available yet
Sample alert · illustrative valuesAgent · rule r_funding_eth
09:30:05.112 UTCr_funding_ethTRUEETH-PERP · 3 of 4 venues above 5 bps · condition met
09:30:04.712 UTCHYPERLIQUIDVALUEfunding_8h 7.2 bps · age 0.29 s · present
09:30:04.402 UTCBINANCE-USDMVALUEfunding_8h 6.1 bps · age 0.60 s · present
09:30:04.815 UTCBYBIT-PERPVALUEfunding_8h 5.8 bps · age 0.19 s · present
09:29:51.020 UTCOKX-PERPSTALEfunding_8h 9.4 bps · age 14 s · not counted
09:30:05.180 UTCr_funding_ethSENTwebhook to your bot, with your tag
Every alert carries the values it fired on, with venue, received time and age. A stale venue is shown, not counted.
Concept · not a working productStudio · order ticket
BTC perpetual · venue not selectedAccount · not connected
Mark USD Age — · no venue selected, so nothing is shown
Bid
Ask
Buy and Sell send a webhook to your Runner, which places the order with your keys. Controls are inactive in this concept; there is no one-click order.
04 / Execution In development
Runner

Your orders, placed with your keys, on your infrastructure.

Runner runs on your infrastructure, not ours. It takes a webhook from Agent or Studio, places the order on the exchange with your own API keys and reports the execution back.

DEBYKO never sees your keys or your funds.

  • Docker service · .NET
  • Cloudflare Worker · TypeScript
  • Webhook in, order out
  • Execution report back
PriceNot available yet
05 / Agent board Closed beta
Arena

A public board of agents, built from their execution reports.

Expectancy, drawdown, share of losing trades, venues traded. Every row says whether its figures are self-reported or verified. Opt-in, under a pseudonym.

Today it shows the first two agents, self-reported. Reports from other Runners come with Runner.

For CASPs, brokers and execution teams

Reconstruct what other venues showed when an order was executed.

For a given execution time and instrument, Debyko assembles what it had observed on alternative venues: bid and ask, spread, depth bands, and the age of each observation at that moment — with coverage limits stated in the report.

Sample layout — not a client report Report reference · EE-[assigned at issue]
Execution time2026-09-14 14:02:11.480 UTC
Executed venue · instrument[venue] · [venue symbol]
Executed side · size · price[from client order record]
Alternative venues in reportthose collected at that time
Alternative venueInstrumentObserved bidObserved askSpread Depth ±25 bps · bid / askAge at execution · T / DCoverage
BINANCE-FBTCUSDT77,354.177,355.00.12 bps412.816 / 398.104 BTC0.12 s / 0.4 scollected · no gap
OKXBTC-USDT-SWAP77,353.977,355.30.18 bps190.220 / 184.650 BTC0.21 s / 0.8 scollected · no gap
BYBIT-PERPBTCUSDT77,353.877,355.10.17 bps96.412 / 101.337 BTC0.09 s / 0.3 scollected · no gap
GMX-V2BTC/USD [WBTC]0.30 s / oracle/vault · no book
Table scrolls sideways · the age-at-execution column is the one that matters
Method notes
Observations are the last received before the execution time on each venue; their age at that moment is printed, not hidden.
Coverage and gaps
Venues not collected at the time are listed as not covered. Gaps in collection are stated per venue and per call.
Derived values
Spread = (ask − bid) / mid × 10,000 bps. Depth bands measured against the stated reference price.
OfferScopeTypical scope
Execution Evidence PilotA bounded set of executions reconstructed against the venues collected at the time, to test the method on real orders.€500 – €2,000
One-off Execution AuditA defined period and instrument set, delivered as a report with coverage limits stated per venue.€1,000 – €5,000
Continuous Execution MonitoringRecurring reconstruction for an execution desk, with the same coverage statements every period.€500 – €3,000 / month
Venue Comparison ReportSpread, depth and funding across venues for one instrument over one period, with ages and gaps shown.€1,000 – €5,000

Scope and final price depend on venues, instruments, history, order volume and reporting requirements. Reconstruction covers only periods and venues Debyko was collecting at the time.

Data and engineering services

Need a dataset, connector or analysis that does not fit a standard plan?

Scoped engagements, priced by scope. Ranges are typical, not quotes.

Custom historical dataset or exportA defined slice of stored observations, with collection start and gaps documented.€500 – €5,000
Market microstructure researchAnalysis of spread, depth, funding or liquidation behaviour over collected history.€1,000 – €5,000
Exchange or protocol connectorA collector for a venue not yet covered, with its cadence and fields stated.€1,500 – €10,000
+ €200 – €1,000 / month maintenance
White-label Studio widget or APIThe comparison table or its API under another name, with provenance intact.€2,000 – €10,000
+ €300 – €2,000 / month
Enterprise API and infrastructureDedicated capacity, retention and support terms agreed per engagement.Custom
Methodology

The method is part of the product.

Two timestamps exist. Age is the difference to now.
Venue timeif supplied · 17:15:52.299
Receivedalways · 17:15:52.301
Agenow − received · 0.2 s
There is no stored "written" or "available" time, so none is shown.
  • Ticker, open interest and depth arrive by separate calls; each keeps its own received time and age.
  • A gap inside collection and a period before collection began are named differently. Neither is a zero.
  • BEST and WORST rank only values that are present, live and from an order book.
Status and quality

Data quality is public system state.

Per venue and per collector, with ages. There is no single "all systems operational" badge: a degraded depth feed on one venue is shown as exactly that.

Collectors · GET /v1/health Requesting
View data status
Pricing

Monthly. No annual toggle, no discounts.

One key covers Studio, the API and Agent. Whatever a plan includes in Studio, it includes in the API under the same key. Products that do not exist yet are listed as such.

Free €0

Two venues, ten instruments each. Live comparison, seven days of history, one live stream. No card, no time limit.

Mini €9 / month

Four venues, fifty instruments each, thirty days of history, two live streams, DQL screening.

Standard €29 / month

Every venue, every instrument, one year of history, full order books, five live streams, CSV export.

Pro €79 / month

Everything in Standard, all history, twenty live streams, higher limits for bots and screens.

Team and enterprise By scope

Several keys under one account, dedicated capacity, retention and support terms agreed per engagement.

A card is taken at the start of the trial and nothing is charged before day eight. Cancel any time from your account.

Trials run seven days with a card on file and nothing charged until day eight; cancel before that and nothing is charged at all. Every plan renews monthly and can be cancelled at any time from your account — access runs to the end of the paid month. Checkout, invoices and VAT are handled by Paddle, our merchant of record; VAT is added at checkout where it applies. Refunds: see the refund policy.

Everything that is not a plan
DQLIn the subscription, API v2 and AgentIn development
API v1€0 · no key yetLive · v2 in developmentView documentation
AgentNot available yetPlanned
RunnerNot available yetIn development
ArenaBy invitationClosed beta
Execution Evidence and servicesTypical scope rangesContact sales
Compare plans

The same data on every plan. Plans differ in how much of it, and how fast.

One key covers Studio, the API and Agent. Whatever a plan includes in Studio, it includes in the API under the same key.

Included Free€0Anyone · no card Mini€9 / monthOne person Standard€29 / monthOne person · every venue Pro€79 / monthBots and screens
Price per month€0€9€29€79
Venues24allall
Instruments per venue10top by volume50allall
Live comparison, with the age of every figure
History back7 days30 days1 yearall
Order booktop 5 levelstop 25fullfull
Point-in-time replay (as of)within historywithin historywithin historywithin history
DQL screening10 / min60 / min600 / minunlimited
API requests per second252050
API requests per day5,00050,000500,0005,000,000
Live stream connections12520
CSV export
Card requirednotrialtrialtrial
Get a key Start the 7-day trial Start the 7-day trial Start the 7-day trial

Which two venues and ten instruments are in Free is published on Coverage and recomputed daily from traded volume; the list can change, and the change is dated there.

Monthly prices, VAT added at checkout where it applies. No annual plan, no discounts.
Product interest

Join the waitlist for DQL, Agent and Runner.

One address, one product of interest. Nothing else is asked.

Scoped work

Contact sales about Execution Evidence, datasets or connectors.

Describe the venues, instruments and period. Scope comes back before price.