Staking, lending, and AMM accounting: getting classification right
How DeFi activity types map into subledger accounts, and where the classification rules tend to break.
DeFi activity does not map cleanly to traditional accounting categories. Staking rewards are not interest, lending positions are not loans, and AMM liquidity is not a financial instrument in any standard sense. The classification work is half judgment and half discipline.
Staking
Treat rewards as income at the time of receipt, valued at the fair market value of the token at receipt. The staked principal stays on the balance sheet as the underlying asset. Slashing — if it happens — is a loss event at the time of slashing. The classification rule has to identify each reward receipt as a discrete economic event.
Lending
Lending positions on protocols like Aave or Compound are economically loans-out from the depositor's perspective. Interest accrued is income; the principal sits as an asset (often represented as an interest-bearing token like aUSDC). The wrap into the interest-bearing token is not a disposal of the underlying — the rule set has to know that, or it generates spurious gains on every deposit.
AMM liquidity provision
Providing liquidity to a Uniswap V2 or V3 pool is, accounting-wise, a contribution of two assets in exchange for a representational LP token. Gains and losses are realized at withdrawal, not at the moment of impermanent loss. Fee income accrues continuously and gets reflected at withdrawal. Each of these needs its own rule.
Where the rules break
- Rebasing tokens (stETH, aTokens) — the supply changes silently, which is not a normal accounting event.
- Yield-bearing wrappers — wrapping is not always a disposal, but the rule set might treat it as one.
- Multi-token pools — the proportional allocation of value across two assets is a judgment call.
- Bridge-and-deposit flows — the bridge leg and the deposit leg may classify independently if the rule set does not chain them.
Most classification debt accumulates because the team configured the easy rules early and accepted defaults on the hard ones. Periodic review pays for itself.