Skip to main content
Feature
Pool filtering for balance charts

Filter wallet balance charts by liquidity-pool / vault position

New filter[pool_addresses] and filter[exclude_pool_addresses] query parameters on the wallet and wallet-set balance chart endpoints scope the chart to specific liquidity-pool / vault positions by contract address — the Uniswap V2 LP-token or ERC-4626 vault (e.g. Morpho) address. Pass up to 25 addresses. filter[pool_addresses] charts only the matching protocol positions; filter[exclude_pool_addresses] removes them while keeping the rest of the portfolio. The two are mutually exclusive — combining them returns 400. These filters select complex (protocol) positions, so combining either with filter[positions]=only_simple also returns 400.Affected endpoints:
  • GET /v1/wallets/{address}/charts/{chart_period}
  • GET /v1/wallet-sets/charts/{chart_period}
Feature
DeFi position receipt tokens

Receipt tokens for DeFi positions

Wallet and wallet-set position responses now include an optional receipt for a token representing a DeFi position.Affected endpoints:
  • GET /v1/wallets/{address}/positions/
  • GET /v1/wallet-sets/positions/
Docs
Documentation

Chart point granularity documented for balance & price charts

Documented the sampling interval (spacing between points) for each chart_period on the chart endpoints. This is a documentation-only clarification — the cadence has always been emitted by these endpoints; it simply wasn’t described in the reference.Each period samples its time window at a fixed interval: hour → 10s, day → 5m, week → 30m, month → 2h, 3months → 6h, 6months → 12h, year → 1d, 5years → 4d. For max, the interval is derived from available history (so it varies by wallet or asset).Affected endpoints:
  • GET /v1/wallets/{address}/charts/{chart_period}
  • GET /v1/wallet-sets/charts/{chart_period}
  • GET /v1/fungibles/{fungible_id}/charts/{chart_period}
  • GET /v1/fungibles/by-implementation/charts/{chart_period}
Feature
New feature

Wallet balance charts — include DeFi protocol positions

Added filter[positions] to the wallet and wallet-sets balance chart endpoints, letting you include complex DeFi protocol positions (liquidity pools, vaults) alongside plain token balances:
  • only_simple (default) — token and native-coin balances held directly in the wallet. Matches previous behavior, so existing integrations are unaffected.
  • only_complex — complex DeFi protocol positions only.
  • no_filter — both.
Uniswap V2 LP positions are supported today, and support for more protocols is rolling out over time. Positions from protocols that aren’t yet supported are omitted from the chart.Affected endpoints:
  • GET /v1/wallets/{address}/charts/{chart_period}
  • GET /v1/wallet-sets/charts/{chart_period}
FeatureBreaking
Solana raw amounts

Raw on-chain amounts for Token-2022 ScaledUiAmount assets

For Token-2022 ScaledUiAmount (rebasing) assets such as SPYx, quantity.int is now the objective on-chain raw amount in base units. Use this value to build correct on-chain transactions, including max-balance (send-max) transfers, which fail on-chain when built from the scaled display amount.
  • quantity.int — objective on-chain raw amount in base units.
  • quantity.float / quantity.numeric — ready-to-display value = int / 10^decimals. For ScaledUiAmount assets, the display value is int × multiplier / 10^decimals.
Non-ScaledUiAmount assets are unaffected: their int already equals the on-chain amount.Affected endpoints:
  • GET /v1/wallets/{address}/positions/
  • GET /v1/wallet-sets/positions/
Breaking change: For ScaledUiAmount assets, quantity.int previously carried the scaled display amount and now carries the raw on-chain amount. Read the display value from quantity.float or quantity.numeric.
Improvement
Limit increase

Wallet NFT positions — page size cap raised to 500

GET /v1/wallets/{address}/nft-positions/ now accepts page[size] values up to 500 (previously capped at 100). This lets you fetch large NFT wallets in significantly fewer requests. Existing requests are unaffected — this only raises the maximum; the default page size is 50.Affected endpoint:
  • GET /v1/wallets/{address}/nft-positions/
Migration: No client changes required. To reduce round-trips on large wallets, raise page[size] up to 500 and keep following the links.next cursor to paginate.
Improvement
Limit increase

Find wallets within subscription — page size cap raised to 2000

GET /v1/tx-subscriptions/{subscription_id}/wallets now accepts page[size] values up to 2000 (previously capped at 100). The default page size remains 100, so existing clients are unaffected.Affected endpoint:
  • GET /v1/tx-subscriptions/{subscription_id}/wallets
Feature
New feature

Wallet balance charts — exclude fungibles

Added filter[exclude_fungible_ids] to the wallet and wallet-sets balance chart endpoints — drop a small set of tokens from the chart instead of enumerating everything you want to keep. Same shape as filter[fungible_ids]: comma-separated, capped at 25 ids. Combining it with filter[fungible_ids] returns 400 — pick one.Affected endpoints:
  • GET /v1/wallets/{address}/charts/{chart_period}
  • GET /v1/wallet-sets/charts/{chart_period}
Deprecation
Endpoint deprecation

Swap Offers API — deprecated

GET /v1/swap/offers/ is now deprecated and has been hidden from the API reference. Use GET /v1/swap/quotes/ instead, which covers the same use cases and adds native support for Solana and EVM ↔ Solana bridges.Sunset date: the endpoint will be permanently disabled on July 1, 2026. Requests after that date will fail.Migration:
  • Switch calls from GET /v1/swap/offers/ to GET /v1/swap/quotes/.
  • The response body shape differs: transactions are wrapped in chain-agnostic evm / solana envelopes, and fees are split into separate protocol_fee / bridge_fee / network_fee blocks. See the Swap Quotes reference for the full schema.
  • Quotes are returned best-first (sorted by output_amount_after_fees), matching the ordering you already get from /v1/swap/offers/.
Fix
Documentation clarifications

Reference docs — clarifications across PnL, swap, and wallet endpoints

Refreshed several reference-doc descriptions to better match how the API actually behaves. No behavior changes — every update describes behavior that’s already live in production.Clarifications:
  • PnL since / till is a hard limit, not a guideline (GET /wallets/{address}/pnl, GET /wallet-sets/pnl). PnL is pre-computed at standard marks (now, 1 day ago, 1 week ago, 1 month ago, 1 year ago, beginning of the year); other timestamps are accepted only when fewer than 3,000 transactions sit between your timestamp and the nearest mark, otherwise the request errors out.
  • Swap endpoints rewritten (GET /v1/swap/offers/, GET /v1/swap/fungibles/). /v1/swap/offers/ returns ready-to-sign transaction data in a single call (0.8% Zerion fee included in the quoted amounts) — not a multi-step quote-then-execute flow as previously documented. /v1/swap/fungibles/ is a token-picker helper for cross-chain swaps only.
  • Swap section reordered to quotesoffersfungibles, surfacing /v1/swap/quotes/ as the modern primary endpoint.
  • Wallet address validation documented (WalletAddress parameter, GET /wallets/{address}/transactions/). Addresses must be valid EVM or Solana; untracked addresses return 400 (API-1903).
  • filter[operation_types] duplicated enum removed (GET /wallets/{address}/transactions/, GET /wallets/transactions/, GET /wallet-sets/transactions/). The bulleted list was rendered twice and the inline copy was stale (missing bid); the schema $ref is now the single source of truth.
  • PATCH /v1/tx-subscriptions/{id}/wallets 100-address batch cap documented. The add and remove arrays accept at most 100 addresses per request; maxItems: 100 is now in the schema.
Migration: No client changes required. API responses and error behavior are unchanged — these updates only correct the reference documentation to match the limits the API has already been enforcing.
Fix
Documentation fix

Webhooks — payload example fix

Fixed two errors in the example payloads on the Webhooks page. No breaking changes — the production webhook payload format is unchanged; only the documentation examples were wrong.Corrections:
  • data.type is "callback" (the docs incorrectly showed "transaction_notification").
  • The rollback indicator deleted: true is on the transaction resource at included[0].attributes.deleted (the docs incorrectly showed it on data.attributes.deleted).
Migration: No client changes required. Verify your webhook handler reads the rollback flag from the transaction resource inside included, not from data.attributes.
Feature
New feature

Swap Quotes API — new endpoint

Added GET /v1/swap/quotes/ — returns swap quotes from multiple liquidity sources for both same-chain swaps and cross-chain bridges. Supports EVM chains and Solana, including EVM ↔ Solana bridges.
Differences from /v1/swap/offers/:
  • Native support for Solana wallets and bridges between EVM and Solana chains.
  • The response body has been restructured: transactions are wrapped in chain-agnostic evm/solana envelopes, fees are split into separate protocol_fee / bridge_fee / network_fee blocks.
The legacy /v1/swap/offers/ endpoint remains for backward compatibility.
Feature
New feature

Transactions API — fee acts

Transactions and acts may now carry the type fee, and a new fee_kind field on Act classifies fee acts. No breaking changes — this is an additive change.New fee type value: Both the transaction-level type enum and the per-act type (ActType) enum now include fee. A fee-typed act represents a fee charge that appears alongside existing acts in the transaction’s acts array; a transaction whose primary operation is a fee charge will surface type: fee at the top level.New fee_kind field on Act: Optional string that classifies a fee act. Only present on acts of type fee.
  • ui — fee charged by the UI / client application (e.g., a wallet or dApp frontend)
  • jito — Jito tip paid on Solana for priority inclusion
Affected endpoints:
  • GET /wallets/{address}/transactions/
  • GET /wallet-sets/transactions/
Migration: No client changes required. Clients that enumerate transaction or act types should be prepared to receive fee in addition to the previously documented values; unknown types should be handled gracefully. To surface fee acts to end users, render acts with type: fee and optionally distinguish them by fee_kind.
Feature
New feature

Wallet Sets API — new endpoints

Added five new endpoints for wallet sets — aggregated portfolio data across up to one EVM and one Solana address simultaneously.Pass one or two addresses via the addresses query parameter (at most one EVM and one Solana address):
New endpoints:
  • GET /wallet-sets/portfolio
  • GET /wallet-sets/positions/
  • GET /wallet-sets/transactions/
  • GET /wallet-sets/charts/{chart_period}
  • GET /wallet-sets/pnl
Feature
New feature

Fungibles API — sort by trading volume

Added 24-hour trading volume as a new sort option for GET /fungibles/.
  • -market_data.trading_volumes.volume_1d — highest volume first
  • market_data.trading_volumes.volume_1d — lowest volume first
Feature
New feature

Fungibles API — new fields

Added trading volume and deployment date fields to fungible data. No breaking changes.New fields in FungibleAttributes.market_data:
  • trading_volumes.volume_1d — total 24-hour trading volume across all chains
New fields in AttributesImplementation (new dedicated type for implementations array, backward compatible with all existing fields):
  • market_data.trading_volumes.volume_1d — 24-hour trading volume on this chain
  • deployment_date — ISO 8601 datetime when the token contract was deployed
Fix
Documentation fix

Transactions API — OpenAPI documentation fix

Fixed OpenAPI schema inconsistencies between documentation and implementation for the /transactions endpoints. No breaking changes — API responses remain unchanged, only the OpenAPI spec was corrected.Nullable fields corrected:
  • Fee: fungible_info, price, value marked as nullable
  • Refund: fungible_info, price, value marked as nullable
  • Transfer: price, value marked as nullable
  • Fungible Info: icon marked as nullable
Missing fields documented:
  • Transaction attributes: address, refund, delegations
  • Fungible Info: id
Migration: No client changes required. Clients using generated models should ensure they handle null values, as these were already nullable in practice.
Feature
New feature

Chart periods — new time values

Added two new time period values to the chart_period parameter:
  • 6months — 6-month chart period
  • 5years — 5-year chart period
These complement the existing options: hour, day, week, month, 3months, year, and max.Affected endpoints:
  • GET /wallets/{address}/charts/{chart_period}
  • GET /fungibles/{fungible_id}/charts/{chart_period}
  • GET /fungibles/by-implementation/charts/{chart_period}
Feature
New feature

Portfolio API — sync parameter

Added new sync query parameter to the /wallets/{address}/portfolio endpoint.
  • true: Triggers a position sync and waits up to 30 seconds for fresh portfolio data before responding.
  • false (default): Returns immediately with cached data.
Clients should configure appropriate timeout settings when using sync=true.
Feature
New feature

Positions API — sync parameter

Added new sync query parameter to the /wallets/{address}/positions endpoint.
  • true: Waits up to 30 seconds for protocol positions to be updated and returns fresh data.
  • false (default): Returns immediately with available position data.
Clients should configure appropriate timeout settings when using sync=true.