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:
- Accepts ETH deposits
- Mints an equal amount of WETH (ERC-20 token)
- Holds your ETH in escrow
- 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:
- Buy 1 ETH for $1,500
- Wrap to WETH (basis stays $1,500)
- Bridge to Arbitrum (basis stays $1,500)
- 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
Built for people who'd rather track than guess.
Moonscape β your crypto, your taxes, fully decoded.
Follow us on X (@MoonscapeHQ)
Related Reading
- What Are Smart Contracts? (The Addresses That Control Your DeFi)
- What is Layer 2? (And Why Your ETH Lives on 5 Different Chains)
- Cost Basis Across Chains: The One Rule That Saves Thousands
Tags: #WETH #WrappedTokens #StakedETH #Lido #CryptoTax #DeFi