FILE to the name of the file you download.
The ordering and download steps are the same for every data type. Other data types have different columns, so the code in steps 3 to 5 does not apply to them; their layouts are on File columns.
You need a 0xArchive account; you can build the order signed out and sign in at checkout. Orders have a $10 minimum; the quote shows the price for the day you pick.
1. Order the file
1
Choose the market and data type
Open the Data Catalog, search for
BTC, and open the Hyperliquid perpetual market’s catalog page. Under Select data schemas, keep Trades selected and clear the others.2
Choose one UTC day
Under Select date range, choose Custom and pick the same day as start and end, for example 2026-10-01. A day runs from 00:00 to 24:00 UTC. Pick a day before today so the file holds the whole day.
3
Add it to the cart
The Add to Cart button shows the price for your selection. Add the line, then select Review order in the cart.
4
Pay or use export credits
The Review export order page shows the order and its Total today, after export credits and any discount. Select Confirm & Pay. If you are signed out, the button reads Sign in to continue and brings you back to the order afterwards. When export credits cover the total, there is no payment step; otherwise you pay by card in Stripe Checkout.
5
Wait for Ready to Download
You land on the order page in your dashboard, titled Export Order, at
/dashboard/exports/<order ID>. It shows Queued, then Processing with a percentage, then Ready to Download. You also get an email when the files are ready.2. Download the files
Under Download Files, the order page lists two files:BTC_trades_2026-10-01_to_2026-10-01.parquet, the trades.README.md, which lists the files and describes every column with its type and meaning.
3. Read the rows
Pick one library and use it for the rest of this guide. Each tab installs what it needs and setsFILE to the name of the file you downloaded; change it if you chose another market or range. The later steps reuse it in the same Python session.
- Each row is one fill. A trade appears twice, once for each side, and both rows share the same
trade_id. sideisBfor a buy andSfor a sell, from the point of view of the row’s account. Export files writeSwhere the REST API and WebSocket returnA, so mapStoAbefore joining this file to API data.crossedisTrueon the taker’s row.timestampis UTC with millisecond precision.priceandsizeare floating-point numbers.
4. Count each trade once
Keep the taker rows to count each trade once. This sums the day’s taker buy and sell size, in the same session as step 3:5. Check what you bought
Every Parquet file carries a description of itself, so a file keeps its context after it leaves the download folder. Read it in the same session:exported_at), the order ID (export_job_id), the license, and a column.<name>.description entry for each column.
Large files
DuckDB reads only the columns a query uses and streams through the file, so it can aggregate files larger than memory without loading them. In the same session, this computes taker size and the volume-weighted price for each hour:'{FILE}' with a pattern such as 'BTC_trades_*.parquet'.
If something goes wrong
- The quote says no data is available. The market has no rows of that data type on those dates. Choose dates inside the range the Data Catalog shows for the data type.
- You left Stripe Checkout without paying. The order stays on its order page as Awaiting Payment. Open the page again later to resume payment. Unpaid orders expire, so if the page no longer offers payment, build the order again in the Data Catalog.
- The order page shows Unavailable. No file was produced, for one of two reasons:
- You never paid, so the order expired. Build it again in the Data Catalog.
- You paid and the export failed. Export credits it used return to your balance automatically; for a card payment, contact support.
Next step
Choose data types for your own dataset
See which data types each venue offers, what each file contains, and how prices are worked out.