FREE · BROWSER-LOCAL · NO ACCOUNT · NO WALLET

Is your crypto amount buried inside a CSV description?

Some historical cryptocurrency statement exports include text like “Purchase of 1.4324467000 SOL” instead of separate asset and amount columns. This tool identifies review-only buy/sell, exact quantity and asset ticker candidates, keeping your CSV on your device.

No affiliation with Koinly, Wealthsimple, or any exchange. Not an automatic import, tax reconciliation or verified trade record. This page's Content Security Policy explicitly disables outgoing API requests.

EXPLICIT GRAMMAR ONLY

Inspect descriptions without uploading.

Looks for a strict “Purchase of N SYMBOL”, “Sale of N SYMBOL”, “Bought N SYMBOL” or “Sold N SYMBOL” prefix. Recognized trailing price/reference text is ignored and explicitly marked for manual review; reversals or second actions are rejected. Never guesses cost basis, fiat spent, date/timezone or a token contract. Limited to 32KB, 500 data records and 40 columns. Ambiguous rows remain unparsed; source row order is retained.

Usually Description. Only header names are shown in summaries, not original values.

No account, wallet connect, analytics, remote processing, cookies or localStorage. File bytes remain in this browser's memory.

OPTIONAL LOCAL CSV EXPORT · NO CHARGES

Download includes only derived row number, candidate direction, exact decimal quantity, unverified ticker and REVIEW REQUIRED. It does not include original descriptions, account references, dates or unrelated columns. Not a Koinly-compatible CSV file.

Safe summary (no source cells)

No candidate analysis yet.

First 100 source records — local candidates or explicit rejection

RecordStatusCandidate typeQuantitySymbolReason

THREE DISTINCT OPTIONS · ONE REAL OWNER

Get a candidate, then verify its facts.

01 · FREE, LOCAL

Understand a narrative

Get exact decimal and uppercase ticker candidates for explicit purchase or sale prefixes, even when an extra “for CAD” note follows. Trailing details are ignored and flagged, while reversals, formulas, duplicate headers and unsupported narratives are rejected instead of inventing missing fields.

02 · FREE, LOCAL

Build a real import candidate

Separately verify original transaction dates, gross quote amounts, fees and asset identity. The same owner's free Koinly column mapper and independent format preflight can help once complete source fields are available. Neither is tax advice.

03 · OPTIONAL, ONE OWNER

Start with a small human-reviewed mapping.

5 Base Circle USDC · one buyer-authorized, fully deidentified CSV source, up to 10 example records: the same owner has a genuine HashN agent-services offer ↗ for an agreed header-to-Koinly candidate map, row integrity review and explicit unresolved exceptions. HashN is an agent contact directory, not an instant checkout or escrow; a registered agent buyer may knock there. Human buyers can ask about the 5 USDC pilot by email instead ↗ using only source header names and a fictional issue example, not private CSV data. Either route requires separately agreed written scope/payment/refund terms, source-data rights, exact deliverables and the pinned Base Circle USDC token/network before any work or transfer. No buyer order is claimed.

Before contacting us, inspect the genuinely generated, 100% fictional 10-row mini-review deliverable ↗ (6 review-only candidates, 4 explicitly unparsed rows). Source, parser-derived JSON, sanitized candidate CSV, and all limitations are visible; it is not a real paid customer case.

For a larger, separately scoped problem, there is also a nonbinding 49 Base Circle USDC technical CSV rescue hypothesis for up to 50 lawfully sanitized records. Inquire through the existing one-owner optional buyer inquiry form or email public column names plus a fictional error, not private account exports. Both services are optional; free local inspection remains free and neither paid offer is tax advice or importer acceptance certification.

A REALISTIC USE CASE · FICTIONAL VALUES ONLY

When an export embeds “Purchase of … SOL” in Description.

Some crypto exports use a narrative description instead of a separate asset and quantity column. A historical public user question about Wealthsimple-style crypto CSVs describes this exact obstacle. The example below is fictional; no official Wealthsimple schema, platform endorsement, current import restriction or user relationship is claimed.

A · SOURCE ON YOUR DEVICE

Find the narrative column

Open a copy of your own authorized CSV in this browser. Choose the description header and run local inspection. Nothing is sent to the site's server.

B · DERIVED CANDIDATE ONLY

Review every suffix

“Purchase of 1.4324467000 SOL for CAD 300” yields a BUY_CANDIDATE of 1.4324467000 SOL, but the CAD phrase is ignored and flagged, not taken as price or fees. Reversals and second actions are NOT_PARSED.

C · ORIGINAL RECORDS DECIDE

Complete the real import elsewhere

Review source date/timezone, original paid and received quantities, fees, transfers and token identity with authentic exchange records. Only then use the official Koinly import template and independent format checks. This tool does not produce a complete trade or tax form.

This is a demonstration of one technical parsing issue only, not a prediction about the current support status of any exchange. Use vendor-maintained official instructions as the source of import requirements.

Read the independently published AI-assisted technical walkthrough on DEV Community ↗ — includes source-data failure cases, why a candidate is not a trade, and reproducible source links. Publication is not a third-party endorsement or proof of a paying customer.

WHAT THIS DOES NOT DO

No false transactions, tax basis or verified deposits.

A description like “Purchase of 1 SOL” does not prove a real purchase, finalized transaction, chain, ticker identity, date, quote currency, amount paid, fees, ownership or tax classification. Multiple cryptoassets can share a ticker. Decimal strings are preserved exactly rather than converting through floating-point arithmetic. Unmatched records stay visible as rejected, never silently deleted or reclassified. Found a different description pattern? Share a completely fictional example and desired behavior for optional feedback, not a real private CSV.

Official vendor reference: Koinly custom CSV Simple, Trades and Universal templates. AI-assisted code, not affiliated with Koinly or any exchange, not a certified auditor, financial adviser or accountant.