Binance.US CSV export format
parser liveThis is the format reference for Binance.US tax-report CSV (Export Reports statement) — where the file comes from, what each column means, and the export quirks that matter. Our parser reads the layout(s) below and converts it in your browser.
Layout evidence: Both header generations verified on real export rows from BittyTax issue #349 plus Koinly community samples — see research/parser-fixture-validation-2026-10.md.
How to export the file
- Binance.US → Wallet → Export Reports.
- Pick the annual or quarterly statement covering your tax year.
- Download the CSV report — that single file is what the parser reads.
Column reference
Export Reports tax statement
Current header is space-separated ("User ID, Time, Category, …"); the 2021–2023 generation used snake_case ("User_Id, Primary_Asset, …"). Both parse — column lookup is name-normalized.
| Column | What it means |
|---|---|
User ID | Account id. |
Time | Event timestamp; fractional seconds ("05:47:15.941") are normal. |
Category | Top-level event class: Deposit, Withdrawal, Distribution, Spot Trading, Buy, Sell, Quick Buy, Convert, … |
Operation | Sub-type within the category, e.g. Staking Rewards, Referral Commission, Buy, Sell. |
Order ID / Transaction ID | Order and ledger ids (alphanumeric ids are normal). |
Primary Asset | Asset the row is denominated in for single-leg events. |
Realized Amount For Primary Asset | Signed amount of the primary-asset leg. |
Realized Amount for Primary Asset in USD | USD valuation of the primary leg at event time. |
Base Asset | Traded asset on Spot Trading rows. |
Realized Amount For Base Asset (+ In USD) | Base-leg quantity and its USD value. |
Quote Asset | Counter-asset (USD, USDT, BUSD, BTC, …). |
Realized Amount for Quote Asset (+ In USD) | Quote-leg quantity — often EMPTY when the quote is a fiat-like asset (see quirks). |
Fee Asset | Asset the fee was charged in. |
Realized Amount for Fee Asset (+ In USD) | Fee quantity and USD value. |
Payment Method / Withdraw Method | Funding rail labels on fiat legs. |
Additional Note | Free-text note. |
Format quirks
- One row per event with legs already paired in dedicated Base/Quote/Fee columns — unlike the binance.com statement, no row-pairing is needed.
- Realized Amount for Quote Asset is legitimately EMPTY on Spot Trading rows when the quote is USD, USDT, or BUSD — the per-row "…in USD" column carries the quote amount. Verified on real rows (BittyTax #349); the parser reads it the same way.
- Two header generations exist — the current space-separated header and the older snake_case one — and both parse.
- Category + Operation together decide the row type: "Distribution/Staking Rewards" is reward income, "Spot Trading/Buy" is a trade, "Convert" is a trade.
- Negative Distribution amounts (staking service fees) are preserved as signed rewards rather than retyped.
⚠ Deposit/Withdrawal row vocabulary (Operation and Payment/Withdraw Method values) is the least publicly-verified part — NEEDS-LIVE-VERIFICATION against a fresh Export Reports file.
Convert this file (1)
| Convert a Binance.US CSV to the Koinly format | live |
All Binance.US CSV converters · Format reference index · All converters