What actually goes on the form
Form 8949 is a per-disposal ledger. Each row needs: a description of the property, date acquired, date sold or disposed, proceeds, cost basis, and the resulting gain or loss. For a Hyperliquid account the disposals are position closes — each closed lot is a row.
The hard part is upstream of the form. Proceeds and basis per lot require a lot engine over the complete fill history — a position opened before your report window still has real cost, and a tool that only sees the window will report that basis as zero or missing. On a real return that inflates the gain by the entire acquisition cost.
Boxes and holding periods
Hyperliquid issues no 1099-B, so nothing is 'reported to the IRS' by the venue. In practice that points at box C (short-term, no 1099-B) and box F (long-term, no 1099-B) — but the box is a filing decision between you and your preparer, not something software should decide silently.
Holding period runs from lot open to close. A disposal held over a year is long-term; anything at or under a year is short. Rows whose acquisition can't be established — opened before ingested history — can't be boxed at all; a correct report marks them undetermined instead of guessing.
What our export gives you
The disposals CSV is one row per closed lot: description (qty, market, long/short), dates, proceeds and basis net of allocated fees, gain, holding days, and the trade ids of both legs so every row is auditable back to raw fills.
A companion summary file totals the same disposals by holding-period and basis-status buckets — the totals your 8949 Part I and Part II need. Unknown basis is surfaced as its own bucket with proceeds shown and basis left blank, not estimated. Open positions at window end export separately, with their basis carried forward.
Venue perps are not presented as Section 1256 contracts and wash-sale adjustments are not applied — both are flagged in the report's disclosure annex for your preparer to decide.
Common questions
?Do perp trades go on Form 8949?
Perp disposals are typically reported as property dispositions on 8949 — each closed lot is a row. Whether your positions qualify as anything else (Section 1256, straddles) is a determination for your tax professional.
?Short or long term — which box?
Holding ≤1 year is short-term (commonly box C without a 1099-B), over a year long-term (box F). The export buckets rows by holding period and marks the candidate box; the choice itself stays with your preparer.
?What about rows with unknown basis?
They are reported as unknown — proceeds visible, basis blank, never invented. Uploading exchange CSVs (Kraken/Coinbase) to a paid report carries real basis in where the transfers match.
8949 rows from your own fills
The paid report emits the per-disposal file, the box summary, TurboTax and Koinly imports, and the PDF — every row auditable back to raw fills.