Imagine a holder — call her Sam — with about $80,000 across a couple of Solana wallets. Half in Ondo's USDY. The rest spread across a few of Backed's xStocks (TSLAx, AAPLx, NVDAx) and a slice of Homebase fractional property. She's done the boring thing: held for over a year. At tax time she connects her wallets to Koinly and runs the FY25 report.
Three numbers in the report don't add up. USDY shows zero interest income for the year, even though the token quietly accrued more than $1,800 of daily coupons. AAPLx shows a phantom cost-basis increase of several hundred dollars and zero dividend income, despite Apple paying two real dividends that hit the on-chain balance via Backed's Token-2022 multiplier. Every monthly Homebase rent distribution lands as a generic "Unknown" line item.
Sam isn't doing anything wrong. Koinly isn't broken. The problem is bigger than both of them: every popular crypto tax tool — Koinly, CoinTracker, CoinLedger, TaxBit, ZenLedger — was designed around a mental model that doesn't fit tokenized real-world assets at all.
The Mental Model They Were Built For
Every mainstream crypto tax tool assumes the same thing about a token. It's a static-balance, fungible asset. You acquire it via a swap or a transfer. You hold it. You eventually dispose of it through another swap or transfer. Cost basis minus proceeds equals your capital gain or loss. Done.
That model works fine for BTC, ETH, SOL, and the long tail of memecoins. It doesn't survive contact with tokens whose balance grows on-chain without a transfer. It doesn't handle tokens that pay coupons in a separate stream of inflows. It has no notion of accrual on a token whose redemption price simply rises. It has zero concept of depreciation. And it treats jurisdiction-specific rules as cosmetic settings rather than first-class differences in how tax actually gets calculated.
Tokenized RWAs break every one of those assumptions. Sometimes all of them at once, in the same wallet.
Blind Spot #1 — Yield-Bearing Treasuries
Ondo's USDY accrues interest by raising its on-chain redemption price daily. There's no on-chain transfer when you "earn" a coupon — the token just becomes more valuable. From the perspective of Koinly's transaction log, nothing happened. In reality, you earned ordinary interest income that's taxable annually in every jurisdiction we serve (AU, US, UK, CA).
Generic tools see USDY's value climb and quietly treat the rise as unrealized capital gain. When you eventually sell, they report the entire delta as a capital gain. That's wrong twice over. The income should have been declared in the year it accrued, taxed at marginal income rates, not lumped into capital gains on disposal. And the cost basis on disposal should reflect the accrued portion as already-taxed income, not new capital appreciation.
BUIDL, OUSG, ACRED, and most of the Securitize-issued instruments handle it differently — they pay coupons via separate on-chain transfers. Generic tools log those as random USDC inflows with no categorisation. The user is left to manually pull out every coupon transfer, identify which RWA it relates to, classify it as interest income, and re-enter it. Most people don't, which means the income just doesn't get declared.
Blind Spot #2 — Token-2022 Multiplier Dividends
This is the most expensive blind spot because the dollar amounts get big.
Backed Finance's xStocks (TSLAx, AAPLx, NVDAx, MSTRx, GOOGLx, AMZNx and more) use the SPL Token-2022 ScaledUiAmount extension. When the underlying stock pays a dividend, Backed updates a single on-chain multiplier on the mint account. Every wallet holding the token instantly shows a larger balance. There's no transfer, no signed transaction, no fresh acquisition — just a multiplier change. Ondo Global Markets equities work the same way.
Let's walk through what a generic tool does when it encounters this. Option A: it reads the old balance and never re-scans. The dividend is completely invisible — underreported income. Option B: it reads pre- and post-dividend balance and treats the new tokens as a fresh acquisition at the current market price. Cost basis silently inflates. Now imagine 100 AAPLx with a $25,000 cost basis, where the multiplier moves from 1.000 to 1.048 over a year of dividend reinvestments — your balance is now 104.8 AAPLx. The generic tool reads the extra 4.8 shares as a new buy at, say, $260 each, and silently raises your cost basis to roughly $26,248. When you sell the position for $31,440, the report shows a $5,192 capital gain. The real picture: about $1,248 of that should have been dividend income across the year at ordinary rates, and the remaining $6,440 is the capital gain. If your jurisdiction taxes ordinary income higher than long-term capital gains — which is most of them — the generic tool has under-reported your tax bill.
Blind Spot #3 — Tokenized Real Estate
Homebase, Parcl, and similar protocols tokenize fractional property ownership. Each one distributes rent in USDC, pro-rata to token holders, monthly. Generic tools see the monthly USDC inflow and either drop it into a catch-all "Income" bucket with no asset linkage, classify it as "Unknown", or skip it entirely if the value is below their import dust threshold.
None of those match the real tax treatment. Rental income is ordinary income in every jurisdiction we cover. In the US it lands on Schedule E. In Australia it goes through the property schedule with deductions for property-related expenses. In the UK it goes through SA105. Mis-classifying it means either over-paying tax or carrying audit risk on a return that looks tidy but is materially wrong.
The bigger miss is depreciation. Real estate generally depreciates against taxable income — 27.5 years for residential property in the US (MACRS), 40 years at 2.5% diminishing value in Australia, similar schedules in the UK and Canada. Crypto tax tools have zero concept of a depreciation schedule. Every year you hold tokenized property and don't claim the deduction, you're leaving real money on the table.
Blind Spot #4 — Jurisdiction Rules That Actually Differ
Even where generic crypto tools do something, they default to a US-shaped model and apply it to every other jurisdiction with a hand-wave.
Australia: the 50% CGT discount on assets held more than 12 months is a defining feature of AU capital gains. Generic tools rarely apply it correctly for tokens that have been held across multiple chains or wallets, and the holding-period reset semantics they use were built for crypto-as-property — they may not survive an ATO review of tokenized equities, which arguably look more like crypto-as-securities.
United Kingdom: HMRC requires Section 104 pooling. Average cost across all units of the same security, with bed-and-breakfast rules for same-day and 30-day reacquisitions. Crypto tax tools default to FIFO. Filing on FIFO when HMRC expects pool accounting is a real audit flag at meaningful volume.
Canada: the superficial loss rule on disposals within 30 days, Adjusted Cost Base maintained across wallets, and T1135 for foreign assets above CAD $100,000. Tokenized real estate that's economically a US property held via a Solana wrapper raises a real classification question. The CRA has no public guidance. Crypto tax tools don't even try.
United States: short-term vs long-term capital gains is straightforward, but tokenized equities are an edge case. Wash sale rules apply to securities. The IRS hasn't formally classified xStocks as securities for tax purposes — but they walk and quack like ones. Generic tools simply skip the question.
What SolanaRWA Does Differently
We built SolanaRWA specifically because we hit every one of these blind spots in our own portfolios. The short version of what the platform does about them:
Auto-detection across 19 protocols. Connect a wallet and the dashboard finds your Ondo bonds, xStocks equities, rStocks, PreStocks pre-IPO equities, Homebase fractional property, Etherfuse stablebonds, Maple credit, Securitize products (BUIDL, ACRED), VanEck VBILL, Superstate USTB and USCC, Hashnote USYC, WisdomTree fund suite, Franklin Templeton BENJI, Figure PRIME, OnRe ONyc, Centrifuge deJTRSY. No manual entry needed.
Token-2022 multiplier-aware dividend detection. The portfolio service tracks the on-chain multiplier per mint and writes a dividend income event the moment it changes — across all linked wallets, automatically. Cost basis stays flat; the dividend is recorded as ordinary income, dated to when it accrued.
Depreciation schedules for real estate and commodities. Pick your jurisdiction (AU, US, UK, CA), enter useful life, and the system handles MACRS, diminishing value, reducing balance, or CCA correctly. Schedules appear in your tax report year by year.
Multi-jurisdiction tax exports. CSV and PDF, structured to match the relevant tax form for your region. Cost basis methods configurable per asset: FIFO, LIFO, or weighted average. Multi-wallet aggregation across linked addresses so a split portfolio consolidates into one report.
We also just landed on Google Play, so the dashboard now runs as an Android app. The in-app swap remains web-only for the moment — we're going through the Play Store financial-features re-declaration before bringing it into the mobile build.
The Bottom Line
If you hold tokenized RWAs and you're filing taxes through a generic crypto tax tool, the math is almost certainly wrong somewhere. Whether it's wrong in your favour (underreported income, audit risk) or against you (depreciation you didn't claim, gains you over-reported, exemptions you didn't apply) is a roll of the dice depending on which blind spots affected which assets.
The crypto tax tooling space was built for a different category of asset. Tokenized RWAs need their own category and their own rules. That's the bet behind SolanaRWA — and the longer we run it the more the bet pays off, because the alternative is each user becoming their own accountant for assets that didn't exist five years ago.
Try the dashboard at solanarwa.app, or grab the Android app from Google Play. Portfolio tracking is free. Tax exports are a one-time purchase; Pro unlocks unlimited history and analytics. If your accountant has been asking "what does this monthly USDC inflow from address X mean" — this is the fix.