Skip to main content

How do I label my transactions?

A quick guide to which labels we offer, and when you should use each.

Written by Andrew Duca

This article is not tax advice. Talk to a tax professional about your own situation. Email team@awaken.tax and we can connect you with a crypto CPA. Questions about anything below? Email us. We are happy to help.


How do labels work?

A label tells Awaken what a transaction is. Awaken then decides three things:

  1. Did you sell anything? If yes, we calculate a capital gain or loss on what you sent.

  2. Did you earn anything? If yes, we record income at the USD value on that day.

  3. What is the cost basis of what you received? Cost basis is the price you "paid". We use it later when you sell.

Most transactions are labeled for you automatically. You only need to label the ones marked Needs Review, or ones we got wrong.

Quick rules:

  1. Awaken sees a transaction as sent tokens and received tokens. Labels describe what happened to each side.

  2. A label with Swap in the name always means: you sent one thing and received another, and we treat the sent thing as sold.

  3. A label with Deposit or Withdraw in the name means: you moved a token into or out of a protocol, and we do not treat it as sold. Your cost basis carries over.

  4. Network fees (gas) are handled automatically. You do not need a separate label for them.


What labels are available?

Reading the examples:

Each label below has a small example in this format:

sent: 1 ETH → received: 2,000 USDC

What this means: "sent" is what left your wallet. "received" is what came in.


TRADING

🪙 Trade / Swap

You exchanged one coin for another.

  • Tax: Capital gain/loss on the coin you sent. Fees are added to the cost basis of the coin you received.

  • Example: sent: 1 ETH → received: 3,000 USDC. If you bought that ETH for $2,000, you have a $1,000 gain. Your 3,000 USDC now has a cost basis of $3,000 plus fees.

  • Use it when: any DEX or exchange trade, coin to coin.

🪙 Coin Buy

You received a coin, but the payment is not in this transaction (for example, you paid by card or bank).

  • Tax: No gain/loss. The coin you received needs a cost basis. Set it to what you actually paid (in USD), plus any fee.

  • Example: received: 1 ETH from MoonPay. You paid $2,050 by card. Edit the cost basis of the ETH to $2,050.

  • Use it when: on-ramps, or when only one half of a trade is imported.

🪙 Coin Sell

You sent a coin, but the payment you got is not in this transaction.

  • Tax: Capital gain/loss on the coin you sent, at market price.

  • Example: sent: 1 ETH. You received $3,000 to your bank. We record a sale of 1 ETH at $3,000.

  • Use it when: off-ramps, or when only one half of a trade is imported.

🖼️ NFT Swap

You sent an NFT and received an NFT in the same transaction. This includes burn-and-mint upgrades.

  • Tax: Capital gain/loss on the NFT you sent. Fees are added to the cost basis of the NFT you received.

  • Example: sent: NFT A → received: NFT B.

🖼️ NFT Buy / Mint

You bought or minted an NFT with a regular token.

  • Tax: Capital gain/loss on the token you sent. Token value plus fees becomes the cost basis of the NFT.

  • Example: sent: 2 ETH → received: 1 NFT. If your ETH cost $1,500 each and is now $2,000 each, you have a $1,000 gain. The NFT has a $4,000 cost basis (plus fees).

🖼️ NFT Sell / Burn

You sold an NFT for a regular token, or burned it.

  • Tax: Capital gain/loss on the NFT. Fees are added to the cost basis of what you received.

  • Example: sent: 1 NFT → received: 3 ETH.

🖼️ NFT Bid, 🖼️ NFT List, 🖼️ NFT List/Bid Cancel

Placing a bid, listing an NFT, or cancelling either.

  • Tax: None. These are bookkeeping labels. Nothing is sold or earned.

  • Important: Only use NFT Bid if you later cancelled the bid. If the bid won, the escrow payment is a purchase. Label it NFT Buy / Mint (or Coin Sell if the NFT arrives in a separate transaction).

  • Example: sent: 10 ETH to a bid escrow (NFT Bid) … later received: 10 ETH back (NFT List/Bid Cancel).

🔄 Wrapping / Unwrapping

You used a wrapping contract directly (ETH ↔ WETH, HYPE ↔ WHYPE).

  • Tax: By default this is a swap and realizes gain/loss. Turn on Settings → Advanced Tax Features → Wrapping Non-Taxable to carry your cost basis over instead.

  • Example: sent: 10 ETH → received: 10 WETH.

  • Do not use it for: trading ETH for WETH on a DEX. That is a normal Trade / Swap.

🤝 OTC Trade

You bought or sold a token off-exchange, directly with another party.

  • Tax: Same as Trade / Swap. Gain/loss on what you sent.

  • Example: sent: 1,000 HYPE → received: 10,000 USDC.


STAKING

🥩 Staking Deposit

You put a token into a protocol and did not get a token back.

  • Tax: Not a sale. Your cost basis waits in the protocol. Any fee goes to Rewards Expenses, which offsets staking income later.

  • Example: sent: 100 SOL to a validator. Nothing received.

  • Also use it for: liquidity deposits that do not give you an LP token (some Uniswap V3 pools, Meteora, and similar).

  • Do not use it when: there are many sends and receives. Pick a Swap label instead.

🥩 Unstaking Withdraw

You took back a token you had deposited. No token was sent.

  • Tax: The amount you originally deposited comes back with its old cost basis. Anything extra is income at that day's price. Fees go to Rewards Expenses.

  • Example: you deposited 500 LOOKS. You withdraw 1,000 LOOKS at $10. The first 500 keep their old basis. The other 500 are $5,000 of income.

  • Also use it for: liquidity withdrawals that did not give you an LP token.

🥩 Claim Rewards

You claimed staking rewards.

  • Tax: Income at the USD value on that day. Fees go to Rewards Expenses.

  • Example: received: 50 LOOKS at $10 = $500 of income.

  • Setting: turn on Automated Staking Rewards Non-Taxable to give the rewards a $0 basis and no income instead.

🥩 Staking Swap / 🥩 Unstaking Swap

You deposited a token and got a different token back that represents the position, or you returned that token.

  • Tax: By default a full sale of the token you sent. Turn on Staking Swaps Non-Taxable in Advanced Tax Features to carry basis over.

  • Example: sent: 1 ETH → received: 1 cbETH (Staking Swap). Later, sent: 1 cbETH → received: 1.05 ETH (Unstaking Swap).

  • Compare with LST Mint: if you minted directly through the LST's own contract, use LST Mint instead.

⚗️ LST Mint / ⚗️ LST Redeem

You minted a liquid staking token by depositing the native asset directly through the LST's contract, or you redeemed it back. Examples: SOL ↔ jitoSOL, mSOL; ETH ↔ stETH, rETH.

  • Tax: By default a sale. Turn on LSTs Non-Taxable in Advanced Tax Features to carry basis from SOL into jitoSOL and back.

  • Example: sent: 100 SOL → received: 92 jitoSOL (LST Mint). Later, sent: 92 jitoSOL → received: 105 SOL (LST Redeem).

  • Do not use it for: buying jitoSOL on Jupiter or another DEX. That is a Trade / Swap.

🔓 Position Release

A system label. Awaken creates it when you use Release virtual account on a protocol position (staking, lending, LP) that was closed without a transaction from your wallet, for example a liquidator or keeper closed it.

  • Tax: Non-taxable. It moves what the position still held back into your wallet, keeping the cost basis.

  • You cannot pick this label by hand. Use the release flow on the position instead.


LIQUIDITY PROVIDING

🧬 Add Liquidity Swap

You added tokens to a pool and received an LP token that represents your share.

  • Tax: By default a sale of every token you sent. Turn on Liquidity Non-Taxable in Advanced Tax Features to carry basis into the LP token instead.

  • Example: sent: 1 ETH + 3,000 USDC → received: 1 UNI-V2 ETH/USDC.

🧬 Remove Liquidity Swap

You returned your LP token and got the underlying tokens back.

  • Tax: Sale of the LP token. Gain = value of tokens received − cost basis of the LP token.

  • Example: sent: 1 UNI-V2 → received: 1 ETH + 3,200 USDC. If the LP token's basis was $6,000 and you received $6,400 of tokens, you have a $400 gain.

🧬 Deposit Liquidity / 🧬 Withdraw Liquidity

You added or removed liquidity but there was no LP token.

  • Tax: Same as Staking Deposit / Unstaking Withdraw. Not a sale. Basis waits in the pool. Extra tokens on withdrawal are income.

  • Example: sent: 1 ETH + 3,000 USDC (Deposit Liquidity). Later received: 0.9 ETH + 3,400 USDC (Withdraw Liquidity).

  • Use it when: Uniswap V3 NFTs, Meteora DLMM, Raydium CLMM, and other pools that track your position without a fungible token.


LOANS

🤝 Lend Deposit

You lent a token and received nothing back (or only a small reward).

  • Tax: Not a sale. It is collateral. Basis returns to you on withdrawal. Any reward received is income.

  • Example: sent: 1,000 USDC to Morpho. Nothing received.

🤝 Lend Swap

You lent a token and received a receipt token.

  • Tax: Sale of the token you sent.

  • Example: sent: 1,000 USDC → received: 1,000 aUSDC.

🤝 Lend & Borrow

You deposited collateral and borrowed in the same transaction.

  • Tax: Collateral is not sold. Borrowed tokens are not income. We record a loan liability.

  • Example: sent: 1 ETH → received: 1 aETH and 1,500 DAI (borrowed).

🤝 Borrow

You borrowed tokens against collateral.

  • Tax: No gain, no income. The tokens come in at market value and we record a Loan Liability for that amount.

  • Example: received: 1,500 DAI after posting an NFT as collateral.

🤝 Repay

You paid back a loan.

  • Tax: No gain/loss on the tokens you sent. Awaken does not calculate interest. If you paid interest, note the amount on the transaction and ask your tax advisor.

  • Example: sent: 1,500 DAI.

🤝 Repay & Withdraw

You paid back a loan and got your collateral back in the same transaction.

  • Tax: No gain/loss on the repayment. Collateral returns with its original basis.

  • Example: sent: 1,500 DAI → received: 1 ETH (your collateral).

🤝 Withdraw

You took your lent tokens back. No receipt token was sent.

  • Tax: Original basis comes back. Any extra (interest) is income.

  • Example: received: 1,013 USDC after lending 1,000 USDC. The 13 USDC is income.

🤝 Withdraw Swap

You returned a receipt token and got the underlying back.

  • Tax: Sale of the receipt token.

  • Example: sent: 1,000 aUSDC → received: 1,013 USDC.


PAYMENTS & TRANSFERS

🔁 Wallet Transfer

You moved tokens between your own wallets or exchanges.

  • Tax: None. Cost basis moves with the tokens.

  • Only use it when you cannot import the other account. If both accounts are in Awaken, we match the transfer for you.

  • Rule: the transaction must have only a send or only a receive, not both.

  • Example: sent: 1 ETH from MetaMask to Coinbase.

🌉 Bridging

You sent tokens to a bridge, or received them on the other chain.

  • Tax: Non-taxable by default. Basis carries across chains.

  • If both sides are imported they sync automatically. If not, select both transactions and click Bridge. See how to edit bridging transactions: https://help.awaken.tax/en/articles/13393399

  • Example: sent: 1 ETH on Arbitrum … received: 0.999 ETH on Base.

⬇️ Receive

Someone sent you tokens that are not income. A refund, a repayment from a friend, or a move between your business and personal wallet.

  • Tax: None.

  • Example: received: 0.05 ETH from a friend who owed you for dinner.

  • Do not use it for: payment for work. That is Income.

💳 Payment

You paid for goods or services with crypto.

  • Tax: Sale of the tokens you sent at market value.

  • Example: sent: 0.01 BTC for a laptop. If you bought that BTC for $300 and it is worth $600 today, you have a $300 gain.

🤲 Donation

You donated to a qualified non-profit.

  • Tax: No gain/loss. We record a Donation Expense for the USD value on that day.

  • Example: sent: 1 ETH worth $2,000 to Gitcoin Grants = $2,000 donation expense.

🎁 Gift

You gave crypto to a friend or family member.

  • Tax: Not a sale. Check with a tax advisor. There are yearly gift limits.

  • Example: sent: 0.5 ETH to your sibling.

  • German users: also use this for gifts you received, including unsolicited airdrops.

🌱 Investment Delivery

You sent funds to a private investment (for example a startup round through Echo).

⏭️ Token Migration

A token was replaced by a new one (contract upgrade, rebrand, redenomination).

  • Tax: None. All tax lots of the old token move to the new token.

  • Example: sent: 100 OLD … received: 100 NEW.

  • Compare with Trade / Swap: a normal swap sells the old token. A migration keeps every lot and its purchase date.


INCOME

All labels in this section record ordinary income at the USD value on the day you received the tokens. That value also becomes the cost basis.

🪂 Airdrop

Tokens dropped into your wallet by a protocol.

  • Example: received: 500 LOOKS at $5 = $2,500 income.

  • Setting: turn on Airdrops Non-Taxable to receive them at $0 basis with no income.

  • Worthless token you did not ask for? Use Spam instead.

💸 Income

You were paid in crypto for work, goods, or services.

  • Example: received: 1,000 USDC for a contract job = $1,000 income.

💸 Rewards

Rewards that are not from staking. Protocol incentives, exchange rewards, referral bonuses.

  • Example: received: 100 LDO from a liquidity incentive program.

  • Compare with Claim Rewards: use Claim Rewards when the tokens come from staking. Use Rewards for everything else.

⛏ Mining Income

Tokens you received from mining.

  • Example: received: 0.1 ETH from a mining pool.

👑 NFT Royalties

Royalty income from a collection you created.

  • Example: received: 0.5 ETH royalty on a secondary sale.

✍️ Income Expense

An expense that reduces your income. Electricity for mining, contractor payments for your business, fees paid to claim income.

  • Tax: The USD value you sent is recorded as an expense against income. The tokens sent are also treated as sold.

  • Example: sent: 100 USDC to a contractor.


PERPETUALS / FUTURES

These labels are only for perpetual and futures trading. Do not use them for spot DCA or limit orders.

🚀 Open Position

You opened a position or added collateral.

  • Tax: Not a sale. Collateral basis is held.

  • Example: sent: 1,000 USDC to Hyperliquid.

🚀 Close Position

You closed a position, fully or partly, or removed collateral.

  • Tax: The difference from what you deposited is a futures gain or loss.

  • Example: received: 1,200 USDC after depositing 1,000 = $200 gain.

🏦 Funding Payment

You received (or paid) a funding payment.

  • Tax: Income by default. Ask us to enable funding payments as perps gains to book positive funding as futures gains instead.

  • Example: received: 12 USDC funding.

💧 Liquidation

Your position was liquidated.

  • Tax: The asset is treated as sold. The loss is recorded under Liquidation Expenses.

  • Example: sent: 1 ETH (collateral taken by the protocol).


OTHER

🗑 Spam

A worthless token you did not ask for.

  • Tax: Cost basis $0, no income. The transaction is hidden from your history.

  • Example: received: 1,000,000 FREE_MONEY_TOKEN.

🔥 Burn

You sent tokens to a burn address or they became unrecoverable.

  • Tax: Each token you send is treated as disposed of at its market value at that moment. Your gain or loss is that value minus your cost basis. A token with no market price is disposed of at $0, so you realize a capital loss equal to your cost basis.

  • Example: you send 500 RUGGED that you paid $1,000 for. If it has no price, you realize a $1,000 loss. If it was still worth $200, you realize an $800 loss.

  • Do not use it for: tokens you sold or swapped for something. Use Coin Sell or Swap.

  • NOTE: if you want it to write off the asset completely, edit the sell price to $0. Or you can label it as a "Fee Expense Deduction" will will write-off the full value against your capital gains.

🦹 Theft

Crypto was stolen from you.

  • Tax: Awaken records no gain, no loss, and no income. The tokens leave your balance and their basis is removed. Theft losses are usually not deductible for individuals, so talk to a CPA. See the Tax Help page.

  • Example: sent: 5 ETH to a drainer contract.

❓ Save for later

You do not know what this is yet.

  • Tax: None for now. The transaction stays in Needs Review so you can come back to it.

🙌 Non-Taxable

You want zero gain, zero loss, and zero income on this transaction.

  • Tax: Tokens received get a $0 basis. Tokens sent leave without a sale.

  • Use with care. This is a manual override. It is not the same as Wallet Transfer, which carries basis.

✍️ Fee Expense Deduction

Advanced. A cost that should reduce your capital gains directly. Token approvals, failed transactions, protocol fees paid separately.

  • Tax: Everything you sent is recorded as a deductible fee against capital gains.

  • Example: sent: 0.002 ETH for a token approval.

📈 Investment Capital Gain

Tokens you received are a capital gain in full, with no cost basis to subtract.

  • Tax: The full USD value is added to short-term capital gains.

  • Example: received: 500 USDC profit share from a trading vault.

💳 Credit Card Rewards

Crypto cashback from a card.

  • Tax: Non-taxable. The tokens come in at market value with no income.

  • Example: received: 15 USDC from Coinbase Card.


MISCELLANEOUS

🎰 Gambling Winnings

You won crypto from a game or casino.

  • Tax: Income. Fees are recorded as an expense against that income.

  • Example: received: 1 SOL from a coin flip.

🎰 Gambling Losses

You lost a bet.

  • Tax: The tokens sent are treated as sold at market value, and the same amount is recorded as a gambling loss. Deductible up to your winnings.

  • Example: sent: 1 SOL on a coin flip.


FUND (FUND ACCOUNTS ONLY)

These labels are shown only to fund clients. They track private investments that do not live on-chain.

🏦 Capital Deployment

Cash sent into a fund investment.

  • Tax: Not a sale. Creates the investment's cost-basis lot.

  • Example: sent: 250,000 USD to a portfolio company.

🏦 In-Kind Contribution

Tokens contributed to a fund interest instead of cash.

  • Tax: Not a sale. The tokens' basis carries into the fund interest.

  • Example: sent: 50,000,000 W → received: fund interest.

🏦 Distribution

Money your fund received from a portfolio company or fund interest.

  • Tax: Reduces cost basis dollar-for-dollar. Once basis is $0, the rest is gain. A final (liquidating) distribution closes the position.

  • Example: received: 25,000 USD.

🏦 Return of Capital

An investment gave capital back.

  • Tax: Same as Distribution. Reduces basis first, then gain. A final payment realizes any remaining loss.

  • Example: received: 100,000 USD.

🏦 Exit

An investment was sold for cash or other consideration.

  • Tax: Gain/loss = proceeds − remaining cost basis.

  • Example: received: 1,000,000 USD.

🏦 Write-off

An investment is worthless.

  • Tax: The full remaining cost basis is realized as a loss. Position closed.

  • Example: no proceeds.


CHOOSING BETWEEN SIMILAR LABELS

You did this

Received a token back?

Use

Staked a coin

No

Staking Deposit

Staked a coin

Yes, a receipt token (cbETH, aUSDC)

Staking Swap / Lend Swap

Minted an LST through its own contract

Yes (jitoSOL, stETH)

LST Mint

Bought an LST on a DEX

Yes

Trade / Swap

Added liquidity

Yes, an LP token

Add Liquidity Swap

Added liquidity

No LP token (V3 NFT, DLMM)

Deposit Liquidity or Staking Deposit

Moved coins to your own other wallet

Wallet Transfer (or let Awaken match it)

Moved coins to another chain

Bridging

Got a worthless token

Spam

Sent a worthless token away

Burn

Got tokens from staking

Claim Rewards

Got tokens from a promo, not staking

Rewards

Wrapped ETH → WETH via the contract

Wrapping / Unwrapping

Old token → new token migration

Token Migration


How do the advanced tax setting work?

Go to Account Settings → Advanced Tax Features. Each toggle makes that label carry cost basis instead of realizing gain/loss or income:

  • Wrapping Non-Taxable (Wrapping / Unwrapping)

  • Staking Swaps Non-Taxable (Staking Swap / Unstaking Swap)

  • LSTs Non-Taxable (LST Mint / LST Redeem)

  • Airdrops Non-Taxable

  • Automated Staking Rewards Non-Taxable (Claim Rewards)

  • Bridging Non-Taxable (on by default)

  • Liquidity Non-Taxable (Add / Remove Liquidity Swap)

After you change a toggle, Awaken recalculates your transactions with the new treatment.


How do I add labels to CSVs I upload?

When you upload a CSV, you can pre-label a row by putting one of these values in the tag column. Use the exact text on the right (lowercase, underscores). Rows with an unknown tag import as unlabeled.

Label

CSV Tag

Trade / Swap

swap

Coin Buy

coin_buy

Coin Sell

coin_sell

NFT Swap

nft_swap

NFT Buy / Mint

nft_buy

NFT Sell / Burn

nft_sell

NFT Bid

nft_bid

NFT List

nft_list

NFT List/Bid Cancel

nft_cancel

Wrapping / Unwrapping

wrapping

OTC Trade

otc_trade

Staking Deposit

staking

Unstaking Withdraw

unstaking

Claim Rewards

claim_rewards

Staking Swap

staking_swap

Unstaking Swap

unstaking_swap

LST Mint

lst_mint

LST Redeem

lst_redeem

Add Liquidity Swap

add_liquidity

Remove Liquidity Swap

remove_liquidity

Deposit Liquidity

liquidity_deposit

Withdraw Liquidity

liquidity_withdraw

Lend Deposit

lend

Lend Swap

lend_swap

Lend & Borrow

lend_borrow

Borrow

borrow

Repay

repay

Repay & Withdraw

repay_withdraw

Withdraw

withdraw

Withdraw Swap

withdraw_swap

Wallet Transfer

internal_transfer

External Transfer

external_transfer

Bridging

bridging

Receive

receive

Payment

payment

Donation

donation

Gift

gift

Investment Delivery

investment

Token Migration

transfer_cost_basis

Airdrop

airdrop

Income

income

Rewards

rewards_income

Mining Income

mining_income

NFT Royalties

nft_royalty_income

Income Expense

income_expense

Gambling Winnings

gambling_winnings

Gambling Losses

gambling_losses

Open Position

open_position

Close Position

close_position

Funding Payment

funding_payment

Liquidation

liquidation

Spam

spam

Burn

burn

Theft

theft

Save for later

save_for_later

Non-Taxable

non_taxable

Fee Expense Deduction

fee_expense_deduction

Investment Capital Gain

investment_capital_gain

Credit Card Rewards

credit_card_rewards

Fund labels (Exit, Return of Capital, Write-off, Distribution, Capital Deployment, In-Kind Contribution) and the system label Position Release cannot be set from a CSV.


Did this answer your question?