Books your CPA can follow.
Professional bookkeeping for crypto traders. Wallets and exchange accounts come in as evidence. What you decide about each row is the books. Every gain, lot and report is a calculation you can trace back to both — then you close the year, lock it, and release it to your CPA the way a bank releases a statement.
Public wallet addresses only — we never ask for private keys. Informational software, not tax or legal advice.
| When (UTC) | Account | Asset | Qty | Evidence | Your books | State |
|---|---|---|---|---|---|---|
| 2025-03-01 10:00 | Ledger cold | ETH | −1.5 | chain scan | transfer_out ⇄ to Coinbase | locked |
| 2025-03-01 10:20 | Coinbase | ETH | 1.499 | coinbase csv | transfer_in ⇄ from Ledger cold | locked |
| 2025-05-01 00:00 | Coinbase | SOL | 0.5 | coinbase csv | income_staking | locked |
| 2026-02-10 14:02 | Ledger cold | BTC | −0.25 | chain scan | sell · rule proposed — not posted | drafted |
| 2026-02-11 09:30 | Ledger cold | ETH | −0.0021 | chain scan | — nothing decided yet | unreviewed |
Hand over the year
like a bank hands over a statement.
Tax documents are the most sensitive thing most people ever email. KŌINIbōōks doesn't email them. When a year is closed you release it to your CPA — or a lender, or anyone who needs it — and the documents are handed over inside a vault, not as attachments.
You release, they get a link
Pick the closed year, type the recipient's email. They receive a link — no account, no password, no PDF in the message.
They prove it's them
A six-digit code goes to that address and only that address. Five tries, ten minutes, then it's dead.
Every download works once
Each file link is signed, lives ten minutes and burns on first use. A forwarded link is worthless.
You hold the receipt
Every open, every download, every failed code — logged with time and address. Revoke in one click; the link dies instantly.
| Mar 06 14:02 | owner | released | |
| Mar 06 16:41 | recipient | code verified | |
| Mar 06 16:42 | recipient | downloaded | Closing Ledger (PDF) |
| Mar 06 16:43 | recipient | downloaded | CPA bundle (ZIP) |
| Mar 21 00:00 | system | expired |
Included with Pro. Recipient email encrypted at rest. Documents are rendered from the locked year at the moment of download — nothing sits in storage waiting to leak.
Three things, kept apart.
Tax tools guess a category for every row and ask you to trust the total. Books work the other way round: the software records what it saw, you record what it was, and the arithmetic is something anyone can check.
Imports are what we saw — nothing more.
Chain scans (Bitcoin, Ethereum, Base, Arbitrum, Optimism, Polygon, Solana), Coinbase exports, any CSV, manual entries. Every row keeps its raw record and is never edited. A re-sync can add rows or flag a change; it can never rewrite what you decided.
Your decisions are the books.
Categories, transfer matches, funding sources, cost-basis overrides, lot picks and "ignore" flags are yours (or your CPA's). Rules you write can propose — or post for you only when you switch that on. Every change is audited: who, what, when, old value, new value.
Every number is a function of the two.
FIFO, HIFO, LIFO or Specific-ID, per wallet or universal — deterministic, no judgement, no model in the math. Where the books are incomplete you get a warning, never a guess. Close a year and its figures freeze; corrections are dated adjustments in the open books.
How it works
A client file holds one set of books. Most people are through the first year in an afternoon.
Bring in the evidence
Name your wallets and exchange accounts, group them (personal, trading, cold), sync the chains, drop in exports. Every row lands unreviewed with its price on the day as evidence.
Post the books
Categorize in bulk, accept transfer matches so a wallet-to-wallet move is one movement, not two taxable events, record where money came from, override a basis when you know better — with a reason.
Run the numbers
Lots, gains by holding period, income by type, fees, P&L by account and by token — recomputed from posted books only, with every gap called out.
Close the year, hand it over
A checklist blocks the close until nothing is left unreviewed. Then the year locks. Your CPA gets the Closing Ledger PDF, the country's forms, and one bundle where every line ties to its evidence, lots and audit trail.
Built for the person who has to sign it.
Invite your CPA into the file. They see the same books, can post alongside you, and get an export that reads like a working-paper file — not a tax dump.
- Ledger with provenance. Every posted line next to its evidence id and key, the lots it opened or consumed, its links, who posted it, and the line version.
- Locked years. A closed period can't be changed in place — the database refuses. Corrections are append-only adjustments with before, after, reason and date.
- Audit log on everything. Categories, matches, lot picks, rules, closes, reopens — with source: manual, a client rule, an import refresh, or a close.
- Form 8949 / Schedule D for the US; country statements for 34 jurisdictions; a local-currency statement for 100 more. Country rules are shown as labelled steps, never hidden inside a total.
- DRAFT on every page until the period is closed — so nobody files from an open year by mistake.
├─ closing-ledger.pdf
├─ ledger.csv — every posted line + evidence id + lot ids
├─ disposals-8949.csv
├─ income.csv · fees.csv · pnl.csv
├─ lots-open.csv · country-lines.csv
├─ adjustments.csv · audit.csv
└─ README.txt — how the ids tie together
Country statements for 34 jurisdictions.
Tax-year calendars, holding thresholds, exemptions and inclusion rates for each, computed in your reporting currency. Everywhere else, a clear local-currency statement.
Digital-asset tax rules are still settling in some countries. Where a country's official method isn't supported yet (average-cost pooling, for instance) the report says so plainly and recommends a local specialist.
Pricing
One payment per client file, per tax year. Nothing renews by itself. Every plan keeps the whole trust layer — append-only evidence, the audit log, locked years, adjustments, and a seat for your CPA.
- Generic local-currency statement
- Evidence, audit log, locked years
- Trader + CPA seats
- Generic local-currency statement
- CSV exports
- Rules that propose
- Form 8949 / Schedule D and 34 country statements
- Closing Ledger PDF + CPA bundle
- Analytics
- Rules that auto-post
- Everything in Core
- Nightly wallet re-sync
- Multi-year history in one file
Secure delivery
Release a closed year's Closing Ledger and CPA bundle the way a bank releases a statement: emailed link, one-time code, single-use downloads, a receipt of every open. How it works ↑
A posted line is a row you (or your CPA) have categorised — evidence you haven't reviewed doesn't count. Upgrading mid-year charges only the difference. KŌINItax customers get 25% off their first year of Pro with code KOINITAX. Refunds: full refund within 7 days if no PDF or CPA bundle was downloaded for that year. Prices in US dollars; payment by card via Stripe. Plans are bought inside the app, from the Plan tab of a client file.