Learn/Staking Fees and Taxes: Gross vs Net, and Why Your Exchange Makes It Confusing
Guide7 min readMarch 30, 2026

Staking Fees and Taxes: Gross vs Net, and Why Your Exchange Makes It Confusing

Should you report the gross staking reward or the net amount after fees? Why some exchanges create phantom sells. And a simpler alternative most people don't know about.

The gross vs net question

You stake SOL on Kraken. The network pays out 0.36 SOL, Kraken takes a 30% commission (0.11 SOL), and 0.25 SOL lands in your account. Which number do you report as income?

This trips up almost everyone doing crypto taxes for the first time. And it gets worse, because different exchanges handle the fee differently behind the scenes, which changes the tax answer.

It depends on how the exchange processes the fee

There are two patterns exchanges use, and they have different tax treatments.

Pattern 1: Net reward (fee deducted before you receive anything)

The exchange takes its cut from the network reward before crediting your account. You never see, touch, or control the fee portion. Only the net amount hits your wallet.

In this case, you report the net amount as income. The fee portion was never yours. You had no "dominion and control" over it, which is the IRS standard for taxable income.

Your cost basis for the received tokens is the fair market value of the net amount at the time of receipt.

Pattern 2: Gross credit + immediate sell (what Kraken does)

Some exchanges, including Kraken's Auto Earn program, do something different. They credit the full gross reward to your account and then immediately sell a portion to cover the fee. Your transaction history shows two entries: a reward for the full amount, and an immediate sell.

In this case, the gross amount is technically income (you briefly had control of it), and the immediate sell is a separate taxable event, though usually with zero gain since the sell happens at the same price as the reward.

This creates extra transactions in your records and makes everything look more complicated than it is. The net tax effect is roughly the same, but you have more line items to deal with.

How to figure out which pattern your exchange uses

Download your transaction history CSV and look at the staking reward entries.

If you see a single line per reward with just the net amount, your exchange uses Pattern 1. Report the net as income.

If you see a reward line for the gross amount AND a corresponding sell/fee line, your exchange uses Pattern 2. Report the gross as income. The immediate sell is a separate disposal with approximately zero gain. Your tax software should handle both entries automatically.

If you're unsure, check the exchange's support docs for how they calculate the "earnings total" on your tax summary page. If the total matches the gross (before fees), they're using Pattern 2.

The Kraken Auto Earn example

Here's what actually happens with Kraken Auto Earn, because it confuses a lot of people.

Say you're staking SOL and a reward comes in:

Network reward: 0.3664 SOL

Kraken commission: 0.1099 SOL (30%)

You receive: 0.2565 SOL

But in your Kraken transaction history, you'll see:

Staking reward: +0.3664 SOL (the gross amount)

Fee/sell: -0.1099 SOL (immediately sold to cover commission)

Net balance change: +0.2565 SOL

Kraken's tax summary page shows the gross total as "earnings." If Kraken issues a 1099-MISC, it will likely report the gross amount. This means if you only reported the net, the IRS will see a mismatch.

The safest approach: report the gross as income, record the immediate fee sell as a zero-gain disposal, and your net tax liability works out correctly.

The fee is not "lost" for tax purposes

Here's the part that makes people feel better. Whether you report gross or net, the total tax you pay over the life of the asset is the same.

If you report the gross (0.3664 SOL) as income, your cost basis for those tokens is the full gross value. When you eventually sell, the higher cost basis means a smaller capital gain.

If you report the net (0.2565 SOL) as income, your cost basis is lower, so your capital gain when you sell is larger.

Same total tax. Different timing. The gross approach gives you a larger income hit now but a smaller capital gain later. The net approach is the opposite.

A simpler alternative: liquid staking tokens

One reason staking taxes are so painful is that every reward creates a taxable income event. If you're staking SOL and getting rewards every 2 days, that's roughly 180 taxable events per year per asset.

Liquid staking tokens (like mSOL, jitoSOL, or pSOL for Solana) work differently. Instead of receiving periodic rewards, the token itself appreciates in value. You buy mSOL, its price goes up relative to SOL as staking rewards accrue, and you only have a taxable event when you sell.

This means:

No income events from staking (rewards are baked into the token price)

One taxable event when you sell (capital gain, not ordinary income)

Capital gains rates are usually lower than income tax rates

Way fewer transactions to track

The catch: converting SOL to mSOL is itself a taxable swap. And the IRS has signaled it may change the tax treatment of wrapped tokens in the future. Talk to a tax professional before making this switch.

How CryptoTaxPilot handles staking fees

CryptoTaxPilot imports staking rewards from your exchange CSV and records them as income at fair market value. For exchanges like Kraken that split rewards into a gross credit and an immediate fee sell (Pattern 2), we detect the paired entries and handle them correctly: the gross amount is recorded as income, the immediate sell is recorded as a zero-gain disposal, and the cost basis is set for when you eventually sell the remaining tokens.

For Pattern 1 exchanges where only the net reward appears, the net amount is recorded as income with the correct cost basis.

Ready to calculate your crypto taxes?

Import your data, compare FIFO vs HIFO, and download Form 8949 in minutes.

Get Started Free

More Articles