Phase 4 · 2029 · planned, subject to a data agreement

dYdX

dYdX is planned for Phase 4, 2029, subject to a data agreement with dYdX. The plan covers USDC-margined perpetuals at every depth from L2 to L4.

Phase42029
StatusPlannedsubject to agreement
Capture2regions
Matrix5of 6 columns

What we plan to offer on dYdX.

Coverage of dYdX begins once a data agreement with dYdX is in place, and the final scope follows that agreement.

SPOT · NOT PLANNEDSpot markets

Not part of the planned coverage for this venue.

PERP · PLANNEDPerpetuals & futures

All USDC-margined perpetual markets, including isolated markets.

FUND · PLANNEDFunding

Hourly funding with the premium samples behind each payment.

L2 · PLANNEDL2 depth

Full-depth snapshots and deltas, every block.

L3 · PLANNEDL3 order events

Order placements, cancels and fills, keyed by order id.

L4 · PLANNEDL4 attributed flow

L3 plus the subaccount on every order, if the data agreement includes participant-level data.

How we plan to capture dYdX.

Once a data agreement with dYdX is in place, we capture dYdX independently from two regions and merge the two streams by venue sequence number, as we do for every venue. Production capture starts at least 90 days before early access, so depth history covers three months or more on day one.

Venue type
On-chain perpetuals exchange
Funding interval
Every hour (interval_s = 3600)
Integrity
Venue sequence numbers, and book checksums where the feed includes them, verified at capture
Snapshots
A full-depth book snapshot at the top of every UTC hour (the 00:00 snapshot opens each daily file), plus the venue's own snapshots on reconnect, flagged with is_snapshot and snapshot_reason
Timestamps
Milliseconds (block time) in ts_exchange. ts_capture is int64 nanoseconds from a PTP-disciplined clock.
Regions
Two independent regions, assigned once the data agreement is in place
Participant id
Subaccount (address plus subaccount number), if the data agreement includes participant-level data
Marketvenue_symbolsymbol
PerpetualBTC-USDBTC-PERP
PerpetualETH-USDETH-PERP
PerpetualSOL-USDSOL-PERP

dYdX names markets BTC-USD; they are USDC-margined perpetuals. The single linear contract per asset resolves to BTC-PERP, with BTC-USDC-PERP as an alias. The full rules are in symbology.

  • Fills and liquidations are attributed to the subaccount that made them.
  • Funding premium samples are kept in funding next to the settled rate.
  • Block height plus the event's index inside the block gives each event its seq.

Where history starts.

The history available for dYdX depends on the agreement with dYdX. Data we capture ourselves starts on the first day of production capture, which begins once that agreement is in place.

TableOfferedHistory fromsourceNote
trades●Per agreementfdc_capture
candles●Per agreementfdc_capture
quotes●Per agreementfdc_capture
book_l2●Per agreementfdc_capture
book_l3●Per agreementfdc_capture
book_l4●Per agreementfdc_captureIf the agreement includes participant-level data
funding●Per agreementfdc_capture
open_interest●Per agreementfdc_capture
liquidations●Per agreementfdc_capture
mark_index●Per agreementfdc_capture
extended●Per agreementcomputed from fdc_capture
instruments●Per agreementvenue reference data
gaps●Per agreementfdc_capture

History for dYdX follows the agreement with dYdX. Gaps that survive the two-region merge are listed in the gaps table and never filled. See data quality.

Derived fields on dYdX.

Extended fields are computed on ts_capture and published on a 100 ms grid. A field is available on a venue when its source data is.

KeyNameFromOffered
ofi_mlOFI-MLL2●
vpinVPINtrades●
queueQUEUEL3●
cxl_fillCXL/FILLL3●
resilRESILL2●
lambdaLAMBDAtrades●
markoutMARKOUTtrades●
partPARTL4●

Query it.

The same calls work on every venue; only venue and symbol change. Endpoints go live with Phase 1, and the v1 spec is a draft until then.

from fdc import Client

fdc = Client(api_key="fdc_live_...")

# L4 order events with participant ids
book = fdc.book(
    venue="dydx",
    symbol="BTC-PERP",
    depth="L4",
    start="2029-06-04",
    end="2029-06-04T01:00:00",
)
df = book.to_polars()

# funding at every settlement, then live
funding = fdc.funding(venue="dydx", symbol="BTC-PERP",
                      start="2029-06-04", live=True)

Compare with.

All 12 venues

Shape what ships next.

Pre-registered partners vote on which venues and datasets ship first. Add dYdX to your pre-registration to register your interest.

EARLY ACCESS · PRE-SALE PRICINGPre-register for early access → DANIEL GARCIA · CEO & FOUNDERdaniel@financedatacloud.com →