- Use curveStepAfter for the balance river so step transitions happen
exactly at transaction dates (curveBasis didn't pass through data points,
causing waterfall shapes to disconnect from the river edges)
- Update hardcoded USD estimates to current CoinGecko prices (2026-03-25)
- Add SAFE, COW, ENS, LDO, BAL to the price estimate table
- Fix BigInt→Number precision for large token balances (>2^53 wei) in
both price-feed enrichment and transfer value parsing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reads COINGECKO_API_KEY from env (injected via Infisical) and appends
x_cg_demo_api_key param. Enables batch lookups + spam filtering.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Single-token wallets get CoinGecko verification + spam filtering.
Multi-token wallets attempt batch (works with Pro/Demo keys), degrade
gracefully on free tier — Safe API trusted+exclude_spam handles most spam.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Revert per-address batching (rate limit cascade). Track cgAvailable flag
in cache — only apply spam filter when CoinGecko successfully returned data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CoinGecko free tier now limits to 1 contract address per request.
Process in batches of 3 concurrent single-address requests with 1.5s delay.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ERC-20 tokens not recognized by CoinGecko and valued < $1 by Safe API
are now stripped from balance responses, removing fake ETH and airdrop spam.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Simplify rWallet from 5 internal tabs to 3: Token Balances, Budget Visualization
(default), and Flows (Sankey + timeline scrubber with play/pause). Remove Yield
shell-level outputPath and route. Budget view auto-loads transfer data on entry.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>