Skip to main content

← Guides

NFTs and DeFi Tax in Portugal: What's Cat G vs Cat B

PT tax treatment for NFTs, DeFi yield, LPs, airdrops, hard forks, and wrapped tokens. Where the law is clear and where it's still murky.

By Andrew Kovalenko · · 8 min read
Contents
  1. NFTs
  2. Airdrops and hard forks
  3. Liquidity pool positions
  4. DeFi yield (Aave, Compound, Yearn, etc.)
  5. Wrapped tokens (ETH ↔ WETH)
  6. Swaps and bridges
  7. Yield farming strategies
  8. Stablecoin yield
  9. Practical recordkeeping
  10. Related reading

The 2023 PT crypto reform was written for spot-trading and staking. NFTs and DeFi fit awkwardly into a framework designed for “buy BTC, hold, sell BTC.” Some of this is settled; some isn’t. This guide explains both.

NFTs

PT treats NFTs as crypto-assets for tax purposes. Buying and selling them follows the same Cat G capital-gains framework as fungible tokens:

  • Hold 365+ days, sell at gain: 0% tax (exempt under Cat G long-term rule)
  • Hold under 365 days, sell at gain: 28% flat or englobamento
  • Sell at loss: deductible against other Cat G gains in the same year (carry forward 5 years)

The cost basis is what you paid in EUR (including gas fees, marketplace fees) to acquire the NFT.

NFT royalties (creator perspective)

If you minted an NFT collection and earn ongoing royalty income from secondary sales, that’s Cat B income, not Cat G. You’re operating a business, even if you also enjoy the art. CAE codes 90.03 (artistic creation) or 74.10 (specialized design) often apply.

Free / airdropped NFTs

Receiving an NFT as a giveaway, promotional drop, or community reward establishes a cost basis equal to fair market value at the time of receipt. If the NFT was effectively worthless (no liquid market at receipt), the cost basis is €0 and any later sale is a 100% gain.

If the airdrop was tied to activity you performed (early protocol use, social media engagement, beta testing), AT could potentially classify it as Cat B income at receipt - though no published guidance addresses this specifically. The conservative position for promotional drops: treat as €0 cost basis Cat G asset.

Airdrops and hard forks

This is where AT’s guidance gets thin. Possible characterizations:

Promotional airdrop (free tokens to drive adoption, no action required from you):

  • Conservative: treat as Cat G asset with €0 cost basis, taxable on disposal
  • Aggressive: argue it’s a gift (non-taxable receipt under PT inheritance/gift tax rules, then full capital gain on disposal)

Yield-based airdrop (tokens distributed to liquidity providers, stakers, governance participants):

  • Treat as Cat B income at receipt-day EUR value (it’s effectively yield)
  • Establishes a cost basis for the future Cat G calculation

Hard fork (you held BTC, now you hold BTC + BCH after a chain split):

  • Conservative: treat the forked token as a Cat G asset with €0 cost basis
  • The original BTC retains its original cost basis and acquisition date

No PT-specific case law has settled these definitively. If the amounts involved are meaningful (>€10k), get tailored advice from a contabilista who specifically handles crypto.

Liquidity pool positions

When you deposit two tokens into a liquidity pool (Uniswap, Curve, Balancer), you receive LP tokens representing your share. The PT tax treatment depends on what economic event is happening.

Adding liquidity

The conservative position: the deposit itself is a disposal event for the underlying tokens, even though you control the LP token. The disposed tokens hit Cat G; the new LP token gets a fresh cost basis and a new 365-day clock.

The aggressive position: it’s a non-taxable wrapping (like ETH → WETH). No disposal occurred.

AT hasn’t published clear guidance. The aggressive position is defensible because no value left your control - but if audited you may need to argue it.

Earning LP rewards

Trading fees earned from your share of pool activity: Cat B (it’s yield from a position you operate).

Token incentives (CRV, COMP, AAVE distributed to LPs as rewards): Cat B at receipt-day EUR value.

Removing liquidity

Definitely a taxable event. You’re disposing the LP token in exchange for the underlying tokens at current pool composition. Calculate gain/loss on the LP token vs your basis (the value when you added liquidity, adjusted for any rewards already taxed).

Impermanent loss

Treated as a realized loss only when you actually exit the position. The drift in LP token value while you’re still in the pool isn’t a taxable event.

DeFi yield (Aave, Compound, Yearn, etc.)

Lending stablecoins on Aave, depositing into Yearn vaults, supplying collateral to Compound - all of these generate yield, and yield is Cat B income from euro 1.

The bookkeeping headache: interest typically compounds continuously. Most contabilistas accept monthly snapshots of yield earned (use the protocol’s reported APY × principal × time, or actual on-chain receipt events if you can extract them).

Borrowing against deposited collateral isn’t a taxable event - it’s a loan. The borrowed funds aren’t income. But:

  • If you sell the borrowed asset (typical use case: borrow USDC against ETH), the original ETH deposit still has its cost basis and unrealized position
  • If you get liquidated, the forced disposal of your collateral is a Cat G event at the liquidation price

Wrapped tokens (ETH ↔ WETH)

When you wrap ETH into WETH (or any analogous 1:1 wrapper), no economic disposal has occurred. You still control the same underlying asset; you’ve just changed its technical form.

The conservative position: AT could argue wrapping is a disposal of ETH and acquisition of WETH (both at the same price, so €0 gain - but it resets the 365-day clock).

The reasonable position: wrapping is not a disposal because no economic event occurred. Preserve the original acquisition date for the underlying.

In practice, the EUR amounts are usually identical at the wrap/unwrap moments, so the conservative interpretation only matters for the 365-day clock. If you’ve held ETH 350 days and wrap it to use in DeFi, the conservative reading restarts the clock - meaning you’d need to hold WETH for another 365 days to claim long-term exemption. Most contabilistas treat wrapping as non-taxable, but document the position.

Swaps and bridges

Token swaps (ETH for USDC, BTC for ETH): each swap is a disposal of the outgoing token and acquisition of the incoming token. Capital gain/loss at swap date in EUR.

Cross-chain bridges (ETH on Ethereum mainnet to ETH on Arbitrum): conservative position is non-taxable transfer (same asset, same control). Aggressive position would treat it as a swap. AT hasn’t ruled. Most contabilistas: not a taxable event.

Yield farming strategies

A typical yield farm involves: deposit asset → receive LP token → stake LP token → receive reward tokens → sell reward tokens. Each step has tax consequences:

  1. Deposit to LP: conservative = Cat G disposal; aggressive = non-taxable
  2. Stake LP: non-taxable (you still control the LP token)
  3. Receive rewards: Cat B income at receipt-day EUR value
  4. Sell rewards: Cat G disposal (gain/loss vs receipt-day basis)
  5. Exit LP: Cat G disposal (gain/loss vs LP token basis)

Steps 2-5 are uncontroversial. Step 1 is where you’ll need to choose your interpretation - and be consistent across years.

Stablecoin yield

Depositing USDC on Aave to earn 5% APY: Cat B income from euro 1. Even though USDC doesn’t fluctuate in EUR terms much, the yield itself is Cat B.

If the yield is paid in a non-stable token (CRV, COMP), value it at receipt-day EUR rate.

Practical recordkeeping

For NFT/DeFi taxpayers, manual tracking breaks down quickly. Use:

  • Koinly or CoinTracker for automated transaction import (most major chains and exchanges)
  • Manual EUR FX conversions at AT-published daily rates for non-EUR-denominated transactions
  • Per-position spreadsheets for DeFi strategies with multiple steps
  • CSV exports from every protocol you use, kept for 4+ years

Hand the cleaned-up data to your contabilista. They’ll often charge €100-€300 extra for crypto-heavy returns vs straight Cat A salary filings.

Try the numbers for your situation

Run your own scenario in the calculator.

Free, no signup. Same engine that powers the examples in this article.

Open calculator

Related guides