Core concepts
What is not a sale
Most of what happens to a self-custodied position is not a taxable disposal. Treating it as one invents gains you never had.
A generic crypto tax tool sees a token leave your address and books a disposal. For tokenized stocks that is wrong more often than it is right, because the position spends most of its life moving between places you control.
#The rules Accuren applies
| Event | Disposal? | What happens |
|---|---|---|
| Transfer between your own labelled addresses | No | Basis carried, acquisition date unchanged |
| Posting as loan collateral | No | Basis carried, position flagged encumbered |
| Withdrawing that collateral | No | Flag cleared |
| Bridging to another chain | No | Basis carried across |
| Wrapping / unwrapping | No | Basis carried |
| Entering a liquidity pool | Usually yes | Basis split across the pool assets |
| Swapping for another token | Yes | Realised, new lot opened |
| Liquidation of collateral | Yes | Realised at the liquidation price |
| Redemption for cash | Yes | Usually the largest event you will have |
It costs you in both directions
Calling a transfer a sale invents a gain. Calling a swap a transfer hides one. The first overpays; the second is the one that gets found.
#How the call is made
- Counterparty. Is the destination one of your labelled addresses, a known lending contract, a known bridge, or a pool?
- Shape. Did anything come back in the same transaction, and was it economically the same asset?
- Control. Do you still direct the position — collateral you can withdraw is still yours.
- Fallback. Anything unmatched is labeled by the model, flagged
ai_labeled, and surfaced for confirmation.
Label your own addresses
The self-transfer rule only works for addresses Accuren knows are yours. An unlabelled address of your own is indistinguishable from a stranger's.
#Overriding a call
curl -X PATCH https://api.accuren.xyz/v1/events/evt_9f21 \
-H "Authorization: Bearer $ACCUREN_API_KEY" \
-d '{ "disposal": false, "reason": "self_transfer", "note": "moved to new hardware wallet" }'Overrides are kept with the event, carried into every export, and shown to your accountant with the reason attached — so a human decision stays visible as a human decision.