← back to blog

Tax handling for 100 plus airdrop wallets across jurisdictions

Tax handling for 100 plus airdrop wallets across jurisdictions

Running airdrop farming at scale means you will eventually sit down in front of a spreadsheet with 140 wallet addresses, six jurisdictions, three different cost basis methods, and a tax deadline three weeks out. i’ve been there. the problem is not knowing that airdrops are taxable, everyone at this level knows that. the problem is operationalizing accurate reporting when you have hundreds of wallets receiving tokens across dozens of chains, each with their own quirks around recognition timing, fair market value, and local treatment.

this is not a beginner’s guide to crypto taxes. i’m assuming you already know what a taxable event is, what cost basis means, and roughly how your country treats airdrop income. what i want to get into is the production reality of managing this at scale: how to set up your tooling before the chaos hits, how jurisdictions diverge in ways that actually matter to your workflow, and the failure modes that cost real money when you get them wrong.

this is not legal or tax advice. every situation is different, tax law changes, and you should engage a qualified tax professional for anything you plan to file. what follows is how i approach the operational problem, not a prescription for your specific situation.

background and prior art

crypto tax software has existed in useful form since roughly 2017, when the IRS issued Notice 2014-21 and started making clear that virtual currency was property, not currency, and that every disposal was a taxable event. tools like CoinTracker, Koinly, and TokenTax were built to solve the problem for retail users with one or two exchange accounts. they work reasonably well for that use case.

the airdrop farming use case breaks most of those assumptions. retail tools are designed around the idea that you have a few wallets and your main complexity is reconciling exchange CSV exports with on-chain data. when you have 100+ wallets, the import problem alone is a multi-day project. and that is before you get into the jurisdictional layer. the HMRC Cryptoassets Manual treats airdrop income differently from the IRS approach. singapore’s IRAS has its own framework. germany’s BMF has issued guidance distinguishing staking from other forms of crypto income. none of these align perfectly, and if you or your entities span more than one jurisdiction, you are managing multiple rule sets simultaneously.

the community response to this has been mostly DIY: people building their own Google Sheets, exporting CSVs from explorers, using python scripts to pull on-chain data. that gets you part of the way. the gap is usually in fair market value (FMV) at the time of receipt, which is harder to source accurately for long-tail tokens, and in correctly classifying income versus capital events across jurisdictions.

the core mechanism

the fundamental problem is this: every airdrop you receive is potentially an income event at the moment of receipt, with the cost basis set to the FMV at that moment. when you later sell or swap that token, you have a capital gain or loss calculated against that cost basis. you need to track both legs of this for every wallet, every token, every chain.

at 100+ wallets, this means you are looking at potentially tens of thousands of individual events per tax year. the only way to handle this without losing your mind is to build the system before the volume hits, not after.

wallet labeling and tagging

the first thing i do with every new wallet is tag it immediately in my master registry. i keep a simple CSV with columns: wallet_address, chain, entity (which legal entity or natural person controls it), jurisdiction, created_date, purpose. this sounds obvious but it is the single most important piece of infrastructure you can build. six months from now, when you are trying to figure out which entity received a particular airdrop, you need this.

wallet_address,chain,entity,jurisdiction,created_date,purpose
0xabc123...,ethereum,Xavier_SG,SGP,2025-01-15,layerzero_farming
0xdef456...,arbitrum,Xavier_SG,SGP,2025-02-01,arb_ecosystem
0x789abc...,base,HoldCo_BVI,BVI,2025-03-10,base_farming

tool stack for import at scale

i use Koinly as my primary aggregation layer. at the time of writing, their API plan that supports unlimited wallets runs around $279/year. for 100+ wallets, you will be doing a mix of:

  1. automatic API sync for major chains (ethereum, arbitrum, base, optimism, solana via their Solana integration)
  2. manual CSV import for chains Koinly does not support natively
  3. custom scripts for edge cases like claiming events that show up as internal transactions

the CSV import format Koinly accepts is documented in their help center. a minimal row looks like:

Date,Sent Amount,Sent Currency,Received Amount,Received Currency,Fee Amount,Fee Currency,Net Worth Amount,Net Worth Currency,Label,Description,TxHash
2025-06-15 14:23:00 UTC,,,1000,ARB,0.002,ETH,1230,USD,airdrop,ARB airdrop claim,0x123...

the Net Worth Amount column is where FMV goes. for major tokens, Koinly sources this automatically. for long-tail tokens, you need to source it yourself. i use CoinGecko’s historical price API for this, which has a free tier sufficient for most lookups, or DeFiLlama’s price endpoint for tokens that are not on CoinGecko.

jurisdictional divergence matrix

this is the part that trips people up. here is how treatment differs across the four jurisdictions i deal with most:

united states (IRS): airdrops are ordinary income at FMV at the moment you have dominion and control. IRS FAQ on Virtual Currency makes this clear. cost basis is set to FMV at receipt. short-term vs long-term capital gains applies on disposal. FIFO is the default cost basis method but specific identification is allowed with adequate records.

united kingdom (HMRC): airdrops received without doing anything in return (i.e., passive airdrops for holding) may not be taxable as income but are still subject to CGT on disposal with a zero cost basis. airdrops where you did something (provided a service, interacted with a protocol) are treated as miscellaneous income. the distinction matters enormously for your effective tax rate.

singapore (IRAS): singapore does not have capital gains tax. for individuals, if you are not trading as a business, capital gains from token disposal are generally not taxable. however, income from mining, staking, and arguably some forms of airdrop farming may be treated as trading income. the IRAS e-Tax Guide on Digital Payment Tokens is the primary reference, though it focuses on GST. for income tax, IRAS has published guidance indicating tokens received as payment for services are taxable. where exactly farming activity falls is still somewhat gray, which is why you need professional advice on your specific setup.

germany (BMF): germany has a one-year holding period rule, after which disposal of private assets is tax-free. staking rewards and certain other yield events reset this clock, but the treatment of airdrops specifically has been the subject of BMF guidance in 2022 and subsequent updates. if you hold airdropped tokens for over a year without any intervening yield events, disposal may be tax-free. this creates strong incentives for german tax residents that do not exist elsewhere.

worked examples

example 1: the layerzero airdrop, us tax resident, 30 wallets

in june 2024, layerzero distributed ZRO tokens. a us-based operator i know received tokens across 30 wallets. the token launched at approximately $3.50 and the airdrop was received on a specific date. for us tax purposes, all 30 wallet receives are ordinary income events at $3.50 per token (or whatever the FMV was at the exact time of each claim transaction, which varied by a few cents depending on when they claimed).

the operator exported all 30 claim transactions from Etherscan, matched them to ZRO/USD prices from CoinGecko at the block timestamp, calculated income per wallet, and imported the CSV into Koinly with the airdrop label. total income: approximately $42,000 across the wallets. this goes on Schedule 1 as other income if filed personally, or as revenue if held in an entity.

when they later sold ZRO at $1.20 six months later, they had capital losses of roughly $2.30 per token. short-term losses (under one year) that offset other short-term gains or up to $3,000 of ordinary income.

example 2: UK-based operator, 50 wallets, passive vs active airdrop distinction

a UK operator running 50 wallets received two types of airdrops in the same tax year: one from a protocol they had simply held a legacy NFT on (passive), and one from a protocol where they had actively bridged and transacted (active/interactive).

for the passive NFT holder airdrop, HMRC guidance suggests this may be outside the scope of income tax, meaning no income event at receipt. cost basis on disposal would be zero, so the entire disposal proceeds would be a capital gain. for the active/interactive airdrop, it looks more like miscellaneous income at FMV at receipt, with cost basis set accordingly.

the operator’s accountant separated these into two buckets in their spreadsheet, applied different labels in Koinly, and filed them under separate heads of charge. the practical difference: on £50,000 of active airdrop income, they paid income tax. on £30,000 of passive airdrop gains, they paid CGT at the lower rate (20% vs up to 45% income tax at that income level). getting this classification right saved them a meaningful amount.

example 3: singapore entity structure, 100 wallets across multiple chains

i run a portion of my farming activity through a singapore private limited company. the company receives airdrops across 100 wallets on ethereum, arbitrum, base, and solana. for corporate tax purposes in singapore, if the company is deemed to be trading in tokens, the income is taxable at the corporate rate (17% flat, with partial exemptions for the first SGD 200,000). if it is investment activity, the position is more favorable.

the practical tracking challenge here is chain fragmentation. solana transactions do not import cleanly into Koinly for complex farming interactions. i maintain a separate solana tracking sheet using Helius RPC calls to pull transaction history, then map token transfers to USD values via Jupiter’s price API, then import the cleaned CSV into Koinly monthly. the entity has one Koinly workspace per jurisdiction so that the reports can be handed to the respective tax agent cleanly.

edge cases and failure modes

failure mode 1: unclaimed tokens and the recognition timing question

some airdrops sit unclaimed in a merkle tree for months. for us tax purposes, the IRS says you have income when you have dominion and control. there is genuine uncertainty about whether unclaimed tokens (where you have not taken any action to claim them) constitute income. some practitioners argue that tokens claimable but not claimed are not yet income. if you claim in a different tax year than the allocation, your income year may shift. i keep a log of every token i am eligible for, the allocation date, and the claim date, and let my tax preparer make the call on which year to recognize.

failure mode 2: tokens with zero or near-zero FMV at receipt

some airdropped tokens have no liquid market at the time of receipt. if you receive a governance token that is not yet trading, what is your income? the conservative position is to use whatever price exists, even from a thin DEX pool. the aggressive position is zero, recognizing all value as capital gain on disposal. the IRS has not given specific guidance on this scenario. in practice i document the market conditions at receipt (screenshot of the DEX, volume, price) and use the best available price, even if it is illiquid.

failure mode 3: chain reorganizations and failed transactions

on some chains (particularly early in their life), i have had transactions that appeared to succeed and tokens that appeared to land in my wallet, only for the transaction to be reorganized or reversed. if you have already recognized income on a receipt that later reverses, you need an offsetting entry. Koinly does not handle this natively. i track these manually and enter them as a return/refund event.

failure mode 4: airdrop spam and dust tokens

a significant operational problem at 100+ wallets is spam tokens. protocols and scammers airdrop worthless tokens to wallets constantly. if you are importing every incoming transfer as income, you will be overstating income massively. i use a filtering script that drops any incoming transfer where the token is not in a known allowlist or where the USD value at time of receipt was below $1. anything below that threshold i document as effectively zero-value and do not recognize as income, with the documentation kept in case of audit.

failure mode 5: cross-chain bridge transactions misclassified as taxable events

bridging ETH from ethereum mainnet to arbitrum is not a disposal in most jurisdictions, it is moving the same asset across different network representations. but naive CSV imports from block explorers will show a send on mainnet and a receive on arbitrum as two separate events, which Koinly may classify as a sale and a purchase unless you tag them correctly as a bridge/transfer. at scale, untagged bridge transactions inflate both your apparent gains and your apparent losses. i audit my Koinly workspace quarterly specifically for bridge transactions misclassified as disposals, using the transfer tag to correct them.

what we learned in production

the biggest lesson is that the tracking infrastructure has to be built before the farming activity, not after. when i started farming at 20 wallets i thought i could reconstruct the history at year end from block explorers. at 20 wallets that is painful but possible. at 100 wallets it is essentially impossible to do accurately in a reasonable amount of time. if you are reading this before you scale, set up your Koinly workspaces, your wallet registry CSV, and your FMV sourcing process now.

the second lesson is jurisdictional. if you have any flexibility in where you or your entities are tax resident, the after-tax economics of airdrop farming vary enormously. a german tax resident who holds airdropped tokens for twelve months and one day may pay zero tax on gains. a uk tax resident who receives an active airdrop pays income tax at their marginal rate. this is not tax advice, it is a factual observation about legal regimes, and the differences are significant enough that most operators at this scale have taken advice on entity and residency structure. for more on browser and identity management tooling relevant to multi-wallet operations, the team at antidetectreview.org/blog/ covers the operational security layer that complements the financial infrastructure.

i also learned that reconciliation errors compound. if you let your Koinly workspace fall six months behind and then try to catch up, every unreconciled bridge becomes a phantom gain, every untagged swap becomes a mystery disposal, and the errors cascade. i now do a monthly reconciliation pass: check all new wallet imports, tag bridges, tag farming deposits/withdrawals, and export a draft P&L. this takes about three hours a month. the alternative is a very expensive week in April.

for multi-account operators specifically, the operational patterns around wallet clustering and identity separation that apply to farming security also apply to tax entity separation. keeping clear lines between which wallets belong to which legal entity is not just a tax hygiene issue, it is also relevant to how regulators might characterize the activity. multiaccountops.com/blog/ has useful material on the operational side of maintaining clean wallet separation that intersects with the entity structure question.

one thing i have not fully solved: automated FMV sourcing for obscure tokens on non-EVM chains. for EVM chains, a Dune Analytics query or a CoinGecko API call usually gets me what i need. for some solana tokens or newer chain tokens, the historical price data simply does not exist in any reliable API. in those cases i screenshot the DEX price at time of receipt, note it in a documentation file linked to the transaction hash, and use that as my best available evidence. this is the kind of thing that matters in an audit.

you can find more tactical guides on wallet organization and farming setups in the airdropfarming.org blog index. if you are working through how to structure your tracking before a major snapshot, our multi-wallet airdrop tracking workflow is worth reviewing first. we also have a breakdown of DeFi protocol interaction tax implications that covers the income versus capital question in more depth for specific protocol types, and a walkthrough of cost basis methods for crypto at scale if you are deciding between FIFO, HIFO, or specific identification.

references and further reading

Written by Xavier Fok

disclosure: this article may contain affiliate links. if you buy through them we may earn a commission at no extra cost to you. verdicts are independent of payouts. last reviewed by Xavier Fok on 2026-05-19.

need infra for this today?