Wrapped Tokens Explained: Why ETH Becomes WETH (And Why It Matters for Taxes)

You're looking at your portfolio and see:

  • ETH
  • WETH
  • wstETH
  • cbETH
  • rETH

All of these show an ETH logo. Are they the same? Different? Is this taxable?

Welcome to the confusing world of wrapped tokens.

The Problem: Native Tokens vs. ERC-20

Ethereum has a unique quirk that creates this confusion.

ETH (Native Token)

  • Built into Ethereum at the protocol level
  • Can't interact with smart contracts the same way other tokens can
  • Predates the ERC-20 standard (created before token standards existed)

Every Other Token (ERC-20)

  • Follows a standard interface that all contracts expect
  • Can be easily traded, deposited, approved by smart contracts
  • Works seamlessly in DeFi

The problem: ETH is the most valuable asset on Ethereum, but it can't interact with DeFi protocols as smoothly as other tokens.

Enter WETH: Wrapped Ether

WETH = Wrapped ETH = ERC-20 version of ETH

It's a smart contract that:

  1. Accepts ETH deposits
  2. Mints an equal amount of WETH (ERC-20 token)
  3. Holds your ETH in escrow
  4. Always allows 1:1 redemption

WETH Contract: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

How Wrapping Works

Wrap (ETH β†’ WETH):

You: Send 1 ETH to WETH contract
Contract: Lock your 1 ETH
Contract: Mint 1 WETH to your wallet
You: Now have 1 WETH (can use in DeFi)

Unwrap (WETH β†’ ETH):

You: Send 1 WETH to WETH contract
Contract: Burn your 1 WETH
Contract: Release 1 ETH to your wallet
You: Now have 1 ETH

Always 1:1. Always redeemable.

When Wrapping Happens (Often Automatically)

You might wrap/unwrap without realizing:

Uniswap:

  • You try to swap ETH for USDC
  • Uniswap automatically wraps your ETH β†’ WETH
  • Then swaps WETH for USDC

OpenSea:

  • You bid on an NFT with WETH
  • When you accept an offer for your NFT, you receive WETH
  • You unwrap to ETH if you want

Aave, Compound, etc.:

  • Most lending protocols use WETH, not ETH

You see the wrap/unwrap in your transaction history:

Deposit 1 ETH (wrap)
Swap 1 WETH for 1200 USDC

[Visual suggestion: Diagram showing ETH ↔ WETH conversion at 1:1]

Types of Wrapped Tokens

Not all "wrapped" tokens are the same. There are 3 distinct categories:

Category 1: Protocol Wrappers (Like WETH)

Purpose: Make native tokens compatible with DeFi

Examples:

  • WETH: Wrapped ETH (Ethereum)
  • WBTC: Wrapped Bitcoin (Bitcoin on Ethereum)
  • WMATIC: Wrapped MATIC (Polygon)
  • WAVAX: Wrapped AVAX (Avalanche)

Key characteristic: 1:1 backing, always redeemable, generally same asset

Tax treatment: Most tax pros treat ETH/WETH as the same asset (though IRS hasn't given clear guidance)


Category 2: Bridge-Wrapped Tokens

Purpose: Represent assets from another blockchain

Examples:

  • ETH on Arbitrum (technically bridge-wrapped)
  • ETH on Optimism
  • ETH on Base
  • USDC.e (Bridged USDC on Arbitrum)

How they work:

  • Lock ETH on Ethereum
  • Mint "ETH" on Arbitrum
  • That Arbitrum ETH is backed 1:1 by locked Ethereum ETH

Tax treatment: Non-taxable transfer (cost basis carries over)

Learn more: How Bridge Contracts Work


Category 3: Derivative/Staked Tokens (NOT Simple Wraps)

Purpose: Represent staked or interest-bearing versions of assets

Examples:

  • wstETH: Wrapped Staked ETH (Lido)
  • cbETH: Coinbase Staked ETH
  • rETH: Rocket Pool Staked ETH
  • stETH: Lido Staked ETH
  • aUSDC: Aave interest-bearing USDC

Key characteristic: NOT 1:1. Price can fluctuate. Different asset.

Tax treatment: Acquiring these is likely a taxable swap (you're exchanging ETH for a derivative)

This is the critical distinction most people miss.

The Tax Confusion: Same Asset vs. Different Asset

βœ… ETH ↔ WETH (Likely Non-Taxable)

Transaction: Wrap 1 ETH into 1 WETH

IRS Guidance: None (unclear)

Most tax professionals' view:

  • This is like exchanging a $100 bill for five $20 bills
  • Same value, same underlying asset
  • Non-taxable event

Conservative approach: Some CPAs argue it's technically a disposal/acquisition, but in practice, most treat it as the same asset for cost basis tracking.

Moonscape's approach: We treat ETH/WETH as the same asset by default, with option to override if your tax pro disagrees.


⚠️ ETH β†’ wstETH (Likely Taxable)

Transaction: Stake 1 ETH, receive 0.9 wstETH

What's different:

  • Not 1:1: You get 0.9 wstETH for 1 ETH (ratio changes over time)
  • Different value: wstETH price β‰  ETH price
  • Earns rewards: wstETH represents staked ETH that earns staking yields
  • Different asset: This is a derivative, not a wrapper

Tax treatment:

  • Disposition: You "sold" 1 ETH
  • Acquisition: You "bought" 0.9 wstETH at market value
  • Capital gain/loss: If ETH went up since you bought it, you owe capital gains tax

Example:

You bought 1 ETH for $1,500 (your cost basis)
ETH is now worth $2,000
You stake with Lido, receive 0.9 wstETH (worth ~$2,000)

Taxable event:
  - Disposed 1 ETH (basis $1,500, value $2,000)
  - Capital gain: $500
  - New asset: 0.9 wstETH (new basis $2,000)

This is a taxable swap.


⚠️ ETH β†’ cbETH (Likely Taxable)

Transaction: Stake ETH on Coinbase, receive cbETH

Same logic as wstETH:

  • Not 1:1 (cbETH represents your staked ETH + rewards)
  • Different price
  • Different asset
  • Likely taxable

⚠️ stETH (Rebasing Token - Even More Complex)

What it is: Lido Staked ETH (older version, before wstETH)

How it works:

  • Stake 1 ETH, receive 1 stETH
  • stETH balance increases daily as you earn staking rewards
  • Today: 1 stETH
  • Tomorrow: 1.00027 stETH
  • Next year: 1.04 stETH

Tax treatment (debated):

Option 1 (Conservative):

  • Daily rebases = income (every day you receive more stETH)
  • Nightmare to track

Option 2 (Aggressive):

  • Defer until you sell/unwrap
  • Only recognize gain when you exit

IRS hasn't given clear guidance.

This is why Lido created wstETH (wrapped stETH) - it doesn't rebase, making taxes simpler.

Real-World Scenario

Let's walk through a typical DeFi user's journey:

Starting Point

  • Buy 2 ETH for $1,500 each = $3,000 cost basis

Transaction 1: Uniswap Swap

  • Swap 1 ETH for USDC on Uniswap
  • Behind the scenes: ETH auto-wraps to WETH, then swaps to USDC

Tax treatment:

  • ETH β†’ WETH: Non-taxable (same asset)
  • WETH β†’ USDC: Taxable swap
    • Disposed 1 WETH (value $2,000, basis $1,500)
    • Capital gain: $500

Transaction 2: Bridge to Arbitrum

  • Bridge 1 ETH to Arbitrum

Tax treatment:

  • Non-taxable transfer
  • Cost basis on Arbitrum ETH: $1,500 (carries over)

Transaction 3: Stake with Lido

  • Stake 1 ETH (Arbitrum), receive wstETH

Tax treatment:

  • Taxable swap
  • Disposed 1 ETH (value $2,100, basis $1,500)
  • Capital gain: $600
  • New asset: wstETH (basis $2,100)

Summary

Total taxable gains: $500 + $600 = $1,100

Common mistakes:

  • ❌ Treating all ETH variants as the same
  • ❌ Not recognizing staking as a taxable event
  • ❌ Not tracking cost basis across wrapped versions

How to Tell if a Wrap is Taxable

Ask These Questions:

1. Is it 1:1 redeemable?

  • βœ… Yes β†’ Likely same asset (WETH, WMATIC)
  • ❌ No β†’ Different asset (wstETH, cbETH)

2. Does the ratio change over time?

  • βœ… Changes β†’ Different asset (wstETH appreciates vs ETH)
  • ❌ Fixed β†’ Likely same asset (WETH always 1:1)

3. Does it earn yield or rewards?

  • βœ… Yes β†’ Different asset (staking derivatives)
  • ❌ No β†’ Likely same asset (WETH)

4. Can you trade it separately?

  • βœ… Yes at different price β†’ Different asset
  • ❌ Same price as underlying β†’ Likely same asset

Quick Reference Table

Token 1:1? Yield? Tax Treatment
WETH βœ… ❌ Same as ETH (non-taxable wrap)
WBTC βœ… ❌ Same as BTC (non-taxable wrap)
ETH (Arbitrum) βœ… ❌ Same as ETH (non-taxable bridge)
wstETH ❌ βœ… Different asset (taxable swap)
cbETH ❌ βœ… Different asset (taxable swap)
rETH ❌ βœ… Different asset (taxable swap)
stETH βœ… βœ… Different asset (taxable, rebasing)
aUSDC ❌ βœ… Different asset (taxable)

Common Wrapped Token Contracts

Moonscape recognizes these automatically:

Protocol Wrappers

  • WETH: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  • WBTC: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  • WMATIC: 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270

Staking Derivatives (Taxable)

  • wstETH: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  • stETH: 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84
  • cbETH: 0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  • rETH: 0xae78736Cd615f374D3085123A210448E74Fc6393

Interest-Bearing Tokens (Taxable)

  • aUSDC (Aave): 0xBcca60bB61934080951369a648Fb03DF4F96263C
  • cUSDC (Compound): 0x39AA39c021dfbaE8faC545936693aC917d5E7563

How Moonscape Handles Wrapped Tokens

Auto-Detection

When you wrap/unwrap, we detect it:

Instead of:

Sent 1 ETH to 0xC02aaA...
Received 1 WETH from 0xC02aaA...

You see:

Wrapped 1 ETH β†’ 1 WETH (non-taxable)

Smart Classification

WETH/WMATIC/WBTC:

  • Treated as same asset as underlying
  • Cost basis preserved
  • No taxable event

wstETH/cbETH/rETH:

  • Treated as different asset
  • Flagged as taxable swap
  • Calculates capital gain/loss

Cost Basis Tracking

Example flow:

  1. Buy 1 ETH for $1,500
  2. Wrap to WETH (basis stays $1,500)
  3. Bridge to Arbitrum (basis stays $1,500)
  4. Swap to USDC (recognize $500 gain if sold at $2,000)

Moonscape tracks your cost basis across all ETH variants automatically.

Staking Detection

When you stake with Lido, Rocket Pool, or Coinbase:

Alert:

⚠️ Staking Event Detected
You exchanged 1 ETH for 0.9 wstETH
This is likely a taxable swap. Capital gain: $600

[Review Transaction] [Override if Needed]

We flag these for review since tax treatment varies by jurisdiction and tax professional opinion.

Best Practices

1. Know What You're Getting

Before wrapping/staking:

  • WETH, WMATIC: Safe, likely non-taxable
  • wstETH, cbETH: Taxable swap, be prepared for tax implications

2. Track Everything

Even if ETH/WETH are the same for tax purposes, you need to track:

  • When you wrapped
  • Original cost basis
  • Any swaps while in WETH form

3. Consult a Tax Pro for Staking

Staking derivatives (wstETH, etc.) are complex and IRS guidance is unclear. Get professional advice.

4. Use Software That Understands the Difference

Most tax software sees:

  • WETH = different asset than ETH
  • Requires manual merging

Moonscape knows:

  • WETH = same asset as ETH (auto-handled)
  • wstETH = different asset (auto-flagged)

The Bottom Line

Not all "wrapped" tokens are the same:

Simple wrappers (WETH):

  • 1:1 backing
  • Same asset
  • Non-taxable (most tax pros agree)

Staking derivatives (wstETH):

  • NOT 1:1
  • Different asset
  • Taxable swap

Bridge-wrapped (ETH on Arbitrum):

  • 1:1 backing
  • Same asset on different chain
  • Non-taxable transfer

The key: Understanding which is which prevents tax mistakes and overpayment.


Auto-Classify Wrapped Token Transactions

Moonscape recognizes 20+ wrapper contracts and automatically:

βœ… Treats WETH/WMATIC as same asset
βœ… Flags wstETH/cbETH as taxable swaps
βœ… Preserves cost basis across ETH variants
βœ… Alerts you to staking events

Try Moonscape β†’

Built for people who'd rather track than guess.
Moonscape β€” your crypto, your taxes, fully decoded.

Follow us on X (@MoonscapeHQ)


Related Reading


Tags: #WETH #WrappedTokens #StakedETH #Lido #CryptoTax #DeFi