Austria's gleitender Durchschnittspreis is struck per wallet, not across all a user's holdings. Here's how the moving-average basis actually works for KESt.

If you're withholding Austrian KESt on crypto, the rate is the easy part. The hard part is the number you apply it to. The gain turns entirely on cost basis, and Austria won't let you pick a method. It mandates the moving-average price, the gleitender Durchschnittspreis. One detail decides whether your engine is right from the very start: the average is struck per wallet, not across everything a user holds.
The gleitender Durchschnittspreis is a running average cost for a given crypto asset. Buy more of that asset and the new purchase blends into a fresh average. When the user later disposes, the gain gets measured against that average, not against any particular lot. It's the same continuous-average logic Austria uses for securities. You never choose which coins were sold; every sale happens at the running average.
This is where a naive build goes wrong. The average isn't computed across the whole of a user's holdings. It's computed per wallet, meaning per address or custodial account. Hold the same asset in two wallets and you've got two separate moving averages, tracked independently. Pool everything a person owns into one universal average and you're not doing the Austrian method, you're producing the wrong gain.
For a provider, this is the more workable rule. You compute the average inside each account you actually custody, from data you already hold, instead of reaching into wallets you can't see. You're not expected to fold a user's external self-custody into your average. And you shouldn't.
Moving crypto between a user's own wallets isn't a disposal and realises no gain. It does carry cost, though. The basis on the moved coins travels to the receiving wallet and folds into that wallet's running average. Transfers trigger no tax, yet they reshape the per-wallet averages on both sides, and your records have to show it.
Per-wallet beats universal pooling, but it's not free. Inside each wallet the average has to be recomputed on every acquisition, in the right order, in euro, and only realising events may lower it. And remember, crypto-to-crypto swaps are tax-neutral in Austria, so a swap inside a wallet isn't a disposal and must not disturb the gain the way a sale to fiat does. Get the ordering or the event classification wrong in one wallet and every withheld amount after it drifts.
Withholding happens at the moment of disposal, and it's final under Endbesteuerung. There's no annual reconciliation to catch a mistake later, so the per-wallet average has to be right in real time. Our tax withholding solution keeps the gleitender Durchschnittspreis per wallet per asset across the accounts you custody, treats swaps as tax-neutral, and carries basis correctly on internal transfers. The gain you withhold on is the gain Austria actually recognises. It shares a data layer with our CARF and DAC8 reporting, and the Austrian Federal Ministry of Finance publishes the underlying rules.
Per wallet. The gleitender Durchschnittspreis is struck per address or custodial account, so the same asset in two wallets has two separate running averages. There's no single universal average across everything a user owns.
No. A transfer between your own wallets isn't a disposal and realises no gain. The cost basis rides along with the coins and folds into the receiving wallet's running average, so the per-wallet averages shift even though no tax is due.
It's the method Austrian law mandates for crypto, mirroring how it treats securities. Gains are measured against a continuously updated average cost, per asset, per wallet, instead of matching disposals to specific purchase lots.
Since the 2022 reform, a swap of one crypto asset for another is tax-neutral in Austria, so it realises no gain. It changes what you hold. But it must not be treated as a disposal that reduces the running average the way a sale to fiat would.

Kryptos 2.0 is a full platform rebuild for the AI-agent era of finance and institutional scale: organizations and workspaces, roles, lock periods, audit history, reconciliation, and a documented API and MCP.

Kryptos 2.0 rebuilds the platform for every investor: faster corrections, room for millions of transactions, live sync, easier reconciliation, and API and MCP access.

FASB's August 2026 proposal on digital assets and cash equivalents, explained. What it changes, the three criteria that matter, and the November 19 comment deadline.
Generate an audit-ready report aligned to your jurisdiction. No credit card required.