Uniswap V4: tax classification of its transactions
How Uniswap V4 transactions classify for US tax: 30 verified contract-level rules across 5 chains, covering transfer, liquidity add, fee payment, each resolving to a category, a treatment, and a confidence score.
Example last verified 2026-08-04 against the live engine. CryptoTaxEdge Team.
What Uniswap V4 does on-chain
Uniswap V4 moves pools into a single contract with hooks that let pools customize behavior. Swaps remain dispositions; hook-driven shapes vary by pool, so selector-level rules matter more here than on earlier versions.
Categories and house treatments
Verified Uniswap V4 rules map to these categories from the closed classification taxonomy. Categories flagged as grey areas expose a documented house default and the alternative position, configurable per firm.
| Category | House treatment | Rules |
|---|---|---|
transfer | non_taxable | 15 |
liquidity_add Grey area | disposal | 10 |
fee_payment | expense | 5 |
Liquidity legs: house default disposal Grey area
Across the 10 verified Uniswap V4 liquidity rules, the house default treats each add or remove as a disposition of the assets exchanged for the pool position. The continuity-of-position alternative, under which nothing is realized because the depositor keeps the same economic exposure through Uniswap V4, is exposed next to every liquidity verdict and the firm's chosen position is applied consistently across the book.
A real classification
{
"api_version": "v1",
"hash": "0x3a7cfcdde9b713064dbab7e9ba094c432e9be259fefadf62b55aa0ec3c8782bf",
"chain": "ethereum",
"category": "needs_review",
"treatment": "needs_review",
"taxable": null,
"confidence": 0,
"needs_review": true,
"ledger_action": "Review",
"protocol": "Uniswap V4",
"description": "Low-confidence transfer verdict (45%), routed to manual review instead of asserting a non-taxable treatment, because a wrong call here can hide a taxable disposal or income event. Confirm the user-level asset flow.",
"review_note": null,
"grey_area": null,
"assets": {
"sent": [],
"received": [
{
"symbol": "NES",
"amount": "484.137987",
"decimals": 18,
"action": "on-behalf-of",
"from": "0x278d858f05b94576c1e6f73285886876ff6ef8d2",
"to": "0x000000000004444c5dc75cb358380d2e3de08a90",
"token_address": "0x230f1e241c621d5af670dad83ebcdd18971e2995",
"token_name": "Nesa"
},
{
"symbol": "USDC",
"amount": "99.90657",
"decimals": 6,
"action": "on-behalf-of",
"from": "0x000000000004444c5dc75cb358380d2e3de08a90",
"to": "0x278d858f05b94576c1e6f73285886876ff6ef8d2",
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
],
"gas": null
}
}
Verbatim wire response, replayed 2026-08-04 against the live engine as part of the canonical example pack (replayed daily). Policy version us-default-2026-08. Check any transaction yourself in the Classification Explorer.
Verified rules
Behind this page sit 30 verified rules for Uniswap V4. Each one binds a specific contract interaction on a specific chain to a category and treatment, with a confidence band earned from repeated on-chain observation and cross-source agreement. Rule coverage by chain: arbitrum (6), base (6), ethereum (6), optimism (6), polygon (6). A small illustrative sample:
| Chain | Category | Confidence |
|---|---|---|
| polygon | transfer | high |
| arbitrum | transfer | high |
| ethereum | transfer | high |
| optimism | transfer | high |
| base | transfer | high |
Illustrative sample of the 30 verified rules behind this page: the full mappings are served through the API.
Limitations
What this page does not decide. Coverage reflects the verified Uniswap V4 contract set on the chains shown; deployments or peripheral contracts outside that set route to review rather than being guessed. Confidence is a corroboration signal, not an accuracy percentage, and grey-area categories are positions to be set at the firm level, not settled law. Chains: arbitrum, base, ethereum, optimism, polygon.
Frequently asked questions
What tax treatment does this page document?
House treatment follows the CryptoTaxEdge Classification Standard. Categories with no fixed mapping (GAP-3) tell you to read the treatment field on the record rather than infer it from the category name.
Where is the closed vocabulary published?
The versioned Classification Standard at https://cryptotaxedge.com/standard/ enumerates emitted categories and the five-treatment enum. This encyclopedia page is a worked example on top of that Standard.
Are the wire examples still current?
Yes. Each example is verbatim engine output, re-verified on a daily replay against the live engine.
Not tax advice. CryptoTaxEdge is software, not a licensed tax advisor. Classifications and the treatments described here are informational only; verify results and consult a qualified tax professional before filing. IRC section references are general framing. Uniswap V4 is a third-party protocol; CryptoTaxEdge is not affiliated with it.