Crypto clients, without the reconstruction hours.
The work that makes a crypto client unprofitable is not the return. It is reconstructing a cost basis that lives in four files, none of which agree, before you can sign anything. This page is about the part of that an engine can take, what it costs you today (nothing), and the part we have not built yet, named as such.
Your client runs the free scan and saves it — an email address, not a card — and sends you the read-only link. You get every figure, every decision still open, and the source file and row underneath each number, with the answer controls switched off so nothing you look at changes their file. You do not create an account. Your firm does not buy anything.
It is a capability link: whoever holds the URL can open it, the way a shared document works. That is the point — it means your client's accountant is never asked to sign up before they can look — and it is why the link belongs in your inbox and not in a public channel. The page it opens says the same thing.
See what your client would send you → And the free signed basis file →
Three workflows, and what happens to each
by hand The client has an exchange CSV, a second exchange CSV, a wallet, and a migration export from whatever tool they gave up on. The coins moved between them. Done by hand this is the whole job — matching a withdrawal in one file to a deposit in another so the cost carries across the move, and noticing when it does not.
the engine The engine matches transfers ACROSS files, carries the basis, and tolerates the shrinkage: one ETH leaves and 0.995 arrives, and the difference is named as an inferred network fee and disposed at basis rather than silently swallowed or left as a hole. Where an acquisition genuinely is not in any file, that is reported as a gap with the wallet and the asset named — not absorbed into a plausible number.
by hand The broker's form has a blank cost box for anything that arrived from somewhere it cannot see, which tells the IRS the whole proceeds were gain. Checking that line by line against the client's history is the work, and the summary figure a tool hands you is worth nothing if you cannot rebuild it from the rows.
the engine Every form line comes back with one of five verdicts and a different action behind each: it agrees, the basis is blank, the basis differs, the proceeds differ, or the line is not in the client's ledger at all. The headline ties out arithmetically — the per-line differences, plus form lines we could not find, minus the client's own sales that are on no form — and each of those four terms is printed so you can add them up yourself.
by hand The fear is not the arithmetic. It is signing a number whose provenance you cannot show, for an asset class the client understands better than the engagement letter does.
the engine Every figure carries the source file and row it came from; filled-in prices carry the source and the date; the ruleset is versioned and dated on the run. The country reports print the statute beside each disposal in the language of the office that reads it — § 23 EStG per disposal for Germany, s 102-5(1) step by step for Australia, box 20 against box 58 for Denmark. And where we will not compute, we say so: there is no UK report, because SA108 wants sterling at each transaction's own date and we will not convert a dollar ledger at one rate and call it a British return.
What we will not do
On-chain history is read from public addresses and extended PUBLIC keys only. An extended private key is refused on sight, with an instruction to treat it as compromised. There is no credential for your client to hand over and none for us to lose.
Where an acquisition is missing we hold a conservative zero and report the gap, naming the wallet and the asset. That overstates the gain rather than understating it — the safe direction to be wrong in — and it keeps the hole visible instead of filling it with something that looks like an answer.
You get the rows, the totals and the line each one carries to — not a rendered image of an IRS form with your client's numbers typed into it.
An unsaved scan is deleted — raw bytes and computed result — seven days after it is created. That is a default in the database schema, not a sentence in a policy.
The white-label platform in our build plan: this engine under your letterhead, at $399 a month per firm plus $99 per client engagement, with your firm billing its own client whatever it decides. It is not built and it is not for sale. Payments are switched off until the entity, counsel and an enrolled agent are in place, and we would rather print that sentence than run a checkout for something in a plan.
If it is useful to you when it opens, leave an address. One email, when it opens, and nothing else — not a newsletter, not a drip.
Common questions
What can I actually use today, and what does it cost?
The read-only client link, and nothing. Your client runs the free scan, saves it — which costs an email address, not a card — and sends you the link. You see every figure, every decision still open, and the source file and row behind each number, with the answer controls switched off so nothing you look at changes their file. There is no account for you to make and no software for your firm to buy. The Basis Passport, a signed portable JSON of the whole basis history, is free the same way.
Is the link secure enough to send by email?
It is a capability link: possession of the URL is the permission, the way a shared document link works. That is deliberate — the alternative is making your client's accountant create an account before they can look at anything — but it means the link should go to you and not into a public channel. We say the same thing on the page the link opens, rather than only here.
Can I use this in a workpaper I sign?
That is your call and your engagement letter, and we will not pretend otherwise. What we can tell you is what is under each figure: the source file and row number, the price source and date where a price was filled in, the statute cited per disposal in the country reports, and a ruleset version stamped on the run. Where an acquisition is missing we report the gap and hold a conservative zero rather than inventing a basis — so the number you are looking at is either supported or visibly not, and never quietly in between.
What happens to a client's data if they do not continue?
An unsaved scan is deleted — raw bytes and computed result — seven days after it is created. That is a default in the database schema rather than a sentence in a policy. Saving attaches an email and keeps it.
Do you ever ask for exchange API keys?
No. On-chain history is read from PUBLIC ADDRESSES and extended PUBLIC keys only, and an extended private key is refused on sight with an instruction to treat it as compromised. There is no key for your client to hand over and therefore none for us to lose.
What is Workbench, and when can I buy it?
The white-label platform in our build plan: our engine under your letterhead, at $399 a month per firm plus $99 per client engagement, with your firm billing its own client whatever it decides. It is NOT open. Payments are switched off until the entity, counsel and an enrolled agent are in place, and we would rather say that than run a checkout that collects money for something in a build plan. Leave an address and you will hear once — when it opens.
How many clients can it handle?
The published scale run is reproducible rather than asserted: a fixed-seed 134,648-transaction ledger across three sources computes end to end in about six seconds on two 2.1 GHz cores, and the harness checks the answer as well as the clock — every disposal fully allocated to lots, gain equal to proceeds minus basis on every 8949 row, totals equal to the sum of the rows to the cent. The commands are in the comparison pages.
The fastest way to judge this is to run a client's file through it yourself. It is free to look at, in the browser, with no account.
Run a scan How we compare, honestly → Does a client ledger add up? → Where client data goes, and what we never hold →