Summary
EVM `NativeBalanceDelta` extraction is intentionally unimplemented (documented in `adapters/src/evm_parser.rs:513-530`). The current workaround infers ETH transfers from the transaction-level `value` field, which is unreliable:
- Failed transactions: A tx with `value=1 ETH` that reverts is still recorded as transferred
- Internal transfers: Contract-to-contract ETH transfers are invisible without traces
- Wrapped ETH: Sending ETH to WETH contract is recorded as a transfer, not a mint
- Gas refunds and self-destructs: Not captured
Impact
- No accurate ETH balance change tracking for any EVM chain
- Tax software cannot compute correct ETH positions
- Internal contract interactions (flashloans, DEX routing) are invisible
Recommended Approach
- Implement Bronze-layer trace ingestion (`debug_traceTransaction` or `trace_transaction`)
- Create `raw_evm_traces` table
- Extract pre/post balances from trace data for NativeBalanceDelta materialization
- Add E2E tests against mainnet fork with complex contract interactions
🤖 Generated with Claude Code
Summary
EVM `NativeBalanceDelta` extraction is intentionally unimplemented (documented in `adapters/src/evm_parser.rs:513-530`). The current workaround infers ETH transfers from the transaction-level `value` field, which is unreliable:
Impact
Recommended Approach
🤖 Generated with Claude Code