inventory_deltas contains every asset balance change for every address involved in the transaction. These are the raw token flows that underlie the economics summary — where economics gives you a curated financial view of the elected actor, inventory_deltas gives you the full, unfiltered picture of what moved and where.
Each entry in the array represents a single directional change for a single address and a single asset. A two-sided swap between addresses A and B will produce at least four entries: an outflow and an inflow for each party.
Example Entry
Fields
string
required
Checksummed Ethereum address whose balance changed. This may be any address involved in the transaction — the signer, the elected actor, a protocol contract, a liquidity pool, or an intermediate router.
string
required
Opaque, stable identifier for the asset lane. This value is stable across transactions and safe to use as a grouping or deduplication key — for example, to aggregate all flows of the same token across multiple calls.
string
required
Human-readable label for the asset, typically the token symbol (e.g.
"USDC", "WETH", "UNI-V3-LP"). Suitable for display in tables and tooltips.Note that labels are best-effort and sourced from on-chain metadata — they are not guaranteed to be unique across different contracts. Use asset_lane as the stable identifier for any logic that needs to distinguish assets.string
required
Direction of the balance change from the
subject’s perspective. One of:string
required
Human-formatted token quantity, adjusted for the asset’s decimals and expressed as a decimal string. Always positive — use
direction to determine sign.Example: "11044.505802" (not -11044.505802 for an outflow)string
required
Signed integer quantity before decimal adjustment — the raw on-chain unit count. Positive for inflows, negative for outflows. Use this field when you need precise arithmetic without floating-point rounding.Example:
"11044505802" for 11044.505802 USDC (6 decimals)DisplayMoney
required
USD value of this delta expressed as a
DisplayMoney object — { text, available, reason? }. Always check available before parsing text. Will be unavailable when the asset could not be priced.See the economics page for the full DisplayMoney shape.string | null
The data source used to price this asset (e.g.
"coingecko", "on_chain_oracle", "uniswap_v3_twap"). null when the asset was not priced or the source is unknown.This field is intended for audit trails and debugging — it should not be surfaced in consumer-facing UIs.string | null
Confidence in the price used for this delta —
"High", "Medium", or "Low". null when the asset was not priced.Consider surfacing this when "Low" to indicate that a USD figure may not be reliable. Hide it entirely for "High" and "Medium" in standard UIs.Client Guidance
Display formatting
Usedirection and quantity together to render signed display values. Never rely on signed_quantity for display — it is a raw integer before decimal adjustment and will confuse users.
Using asset_lane as a stable ID
asset_lane is the right key for any grouping or deduplication logic. asset_label alone is not unique:
Hiding internal fields
price_source and price_confidence are diagnostic fields. Keep them out of consumer-facing UIs unless you are building a dedicated analytics or debugging surface:
Common Patterns
Per-address summary
Group bysubject to build a wallet-level view of who gained and who lost in the transaction:
Per-token flow
Group byasset_lane (not asset_label) to see the net movement of each token across all addresses:
Received-assets list
Filter to the elected actor’s inflows to reconstruct what they received — equivalent toeconomics.token_in but machine-parseable:
Largest movements first
Sort by USD value descending to surface the most significant flows at a glance. Sinceusd.text is a formatted string, parse the numeric portion first: