---
title: "Get Tokenized Vault"
method: GET
path: "/tokenized_vaults/{vault_address}"
---

# Get Tokenized Vault

`GET /tokenized_vaults/{vault_address}`

## Path parameters

- `vault_address` string, required

## Query parameters

- `load_subaccounts` boolean — Load subaccounts and EOA operators for vault. (May affect performance)
- `load_snapshots` boolean — Load historical snapshots for vault. (Will significantly affect performance). Use `/{vault_address}/historical-timeseries` instead

## Response `200`

Successful Response

- union
  - ITokenizedVaultFullDisplay
    - `address` string, required
    - `yield_distributor` string, nullable
    - `chain` integer, nullable, required
    - `description` string, nullable
    - `internal_type` string, nullable
    - `public_type` string, nullable
    - `is_featured` boolean, nullable
    - `is_visible` boolean, nullable
    - `weekly_performance_fee_bps` number, nullable
    - `platform_fee_override` object, nullable
    - `start_datetime` string, date-time, nullable
    - `vault_name` string, nullable
    - `reserve_target` number, nullable
    - `reserve_tolerance` number, nullable
    - `withdrawal_alert_threshold` number, nullable
    - `withdrawal_alert_channels` string, nullable
    - `status` string, nullable
    - `is_charge_fees_manual` boolean, nullable
    - `receipt_token_symbol` string, nullable
    - `enable_external_assets_update` boolean, nullable
    - `is_distributor_fee_wrapper` boolean, nullable
    - `vault_logo_url` string, nullable
    - `risk` string, nullable
    - `max_daily_drawdown` number, nullable
    - `chain_type` string, nullable
    - `enabled_historical_price_horizons` integer[], nullable
    - `is_spotlighted` boolean, nullable
    - `show_cap_filled` boolean, nullable
    - `withdrawal_only` boolean, nullable
    - `historical_apy` object, nullable
    - `default_apy_horizon` integer, nullable
    - `iat_traders` string[], nullable
    - `withdrawal_margin_seconds` integer, nullable
    - `management_fee_waived_until_date` string, date-time, nullable
    - `management_fee_waived_until_tvl` number, nullable
    - `performance_fee_waived_until_date` string, date-time, nullable
    - `performance_fee_waived_until_tvl` number, nullable
    - `nav_base_asset_token_id` string, uuid, nullable
    - `nav_pricing_overrides` object, nullable
    - `apy_override` object, nullable
    - `max_drawdown` number, nullable
    - `latest_reported_tvl` number, nullable
    - `campaign_apy` number, nullable
    - `metrics_last_updated` string, date-time, nullable
    - `id` string, uuid, required
    - `solana_vault_metadata` ISolanaVaultMetadataRead — Schema for reading a solana_vault_metadata entry.
      - `vault_state_pda` string, required
      - `share_mint` string, required
      - `deposit_mint` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `program_id` string, nullable
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `stellar_vault_metadata` IStellarVaultMetadataRead — Schema for reading a stellar_vault_metadata entry.
      - `deposit_token_address` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `network_name` 'mainnet' | 'testnet', required
      - `utila_vault_id` string, required
      - `utila_wallet_id` string, required
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `instant_redeem_config` IInstantRedeemConfigRead — Schema for reading an instant_redeem_config entry.
      - `subaccount_address` string, required
      - `output_asset_symbol` string, required
      - `is_paused` boolean
      - `available_liquidity` integer
      - `redeemable_assets` unknown[]
        - unknown
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `view_type` 'all'
    - `rewards` TokenizedVaultReward[]
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenizedvault_id` string, uuid, nullable
      - `text` string, nullable
      - `img_url` string, nullable
      - `multiplier` number, nullable
      - `start_datetime` string, date-time, nullable
      - `end_datetime` string, date-time, nullable
    - `reported_apy` TokenizedVaultReportedAPY
      - `apy` number, nullable
      - `underlying_apy` number, nullable
      - `liquid_apy` number, nullable
      - `rewards_compounded` number, nullable
      - `rewards_claimable` number, nullable
      - `explainer` string, nullable
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenized_vault_id` string, uuid, required
    - `receipt_token_integrations` Token[]
      - `address` string, required
      - `chain` integer, required
      - `token_class` string, required
      - `shorthand` string, nullable, required
      - `symbol` string, nullable
      - `tiingo_ticker` string, nullable
      - `coingecko_id` string, nullable
      - `img_url` string, nullable
      - `is_transferable` boolean
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `position_id` string, uuid, nullable
      - `stable_token_pair_id` string, uuid, nullable
    - `hardcoded_strategists` IStrategistRead[]
      - `strategist_name` string, required
      - `strategist_logo` string, nullable
      - `website_url` string, nullable
      - `id` string, uuid, required
    - `composability_integrations` IComposabilityIntegrationRead[]
      - `name` string
      - `description` string
      - `earning_multiplier` number
      - `protocol_url` string
      - `logo_url` string
      - `tokenized_vault_id` string, uuid, required
      - `id` string, uuid, required
    - `cached_at` string, date-time, nullable
    - `freshness` VaultFreshness — Per-provenance ages for a vault's NAV-derived figures (AUGUST-6124). A single "last updated" stamp cannot honestly describe this payload: the share price a client displays is typically a live ``totalAssets() / totalSupply()`` chain read, while ``historical_apy`` is a column recomputed by a periodic job. Printing one timestamp against both replaces a silent disagreement with a printed one, so each provenance gets its own stamp. ``share_ratio_snapshot_at`` later than ``apy_computed_at`` is the staleness signal worth surfacing: a snapshot has landed that the APY has not yet been recomputed from. The two are written by the same ``update_vault_metrics`` call in normal operation, so they only diverge when a metrics recompute failed or has not run yet. All fields are UTC-aware and serialize as RFC 3339 with a trailing ``Z``. Hold that convention: JS ``new Date()`` parses an offset-less date-time as local time, so dropping the suffix silently shifts every rendered value. The validator below enforces it on *every* construction path, including revival from a cached body — see the note on ``ITokenizedVaultBasicDisplay .freshness`` for why round-tripping is load-bearing here.
      - `apy_computed_at` string, date-time, nullable — When historical_apy / TVL / drawdown were last recomputed.
      - `share_ratio_snapshot_at` string, date-time, nullable — snapshot_datetime of the newest persisted share-price snapshot. Independent of load_snapshots — read as a scalar, so it is populated on every view. None only when the vault has no snapshots at all.
      - `cached_at` string, date-time, nullable — When this response body was assembled (pre-cache).
    - `historical_snapshots` IUpshiftHistoricalSnapshotRead[]
      - `total_assets` number
      - `total_shares` number
      - `asset_share_ratio` number
      - `underlying_price` number
      - `snapshot_datetime` string, date-time
      - `block_id` integer
      - `id` string, uuid, required
      - `tvl` number, required
    - `subaccounts` ISubaccountReadWithStrategist[]
      - `address` string, required
      - `wallet_role` 'operator' | 'reserve' | 'buffer' | 'mint' — Operational role of a vault wallet, surfaced in the NAV Wallet Table. Set by ops on a Subaccount / EOAOperator; unlabeled wallets are ``None``.
      - `strategist` IStrategistRead
        - `strategist_name` string, required
        - `strategist_logo` string, nullable
        - `website_url` string, nullable
        - `id` string, uuid, required
    - `eoa_operators` IEOAOperatorRead[]
      - `address` string, required
      - `name` string, nullable
      - `wallet_role` 'operator' | 'reserve' | 'buffer' | 'mint' — Operational role of a vault wallet, surfaced in the NAV Wallet Table. Set by ops on a Subaccount / EOAOperator; unlabeled wallets are ``None``.
      - `id` string, uuid, required
    - `historical_compound_apy` object, nullable, required — Compound-annualized twin of ``historical_apy`` (AUGUST-6765). Derived from the exact same per-horizon rate as ``historical_apy`` so the two fields can never describe different snapshot pairs. Exposed on every endpoint that serializes this schema (single + list vault reads).
    - `tvl` number, required
    - `pnl_per_share` object, required
    - `daily_pnl_per_share` object, required
    - `operators` OperatorRead[], required
      - `address` string, required
      - `operator_type` 'subaccount' | 'eoa', required
  - ITokenizedVaultSnapshotsDisplay
    - `address` string, required
    - `yield_distributor` string, nullable
    - `chain` integer, nullable, required
    - `description` string, nullable
    - `internal_type` string, nullable
    - `public_type` string, nullable
    - `is_featured` boolean, nullable
    - `is_visible` boolean, nullable
    - `weekly_performance_fee_bps` number, nullable
    - `platform_fee_override` object, nullable
    - `start_datetime` string, date-time, nullable
    - `vault_name` string, nullable
    - `reserve_target` number, nullable
    - `reserve_tolerance` number, nullable
    - `withdrawal_alert_threshold` number, nullable
    - `withdrawal_alert_channels` string, nullable
    - `status` string, nullable
    - `is_charge_fees_manual` boolean, nullable
    - `receipt_token_symbol` string, nullable
    - `enable_external_assets_update` boolean, nullable
    - `is_distributor_fee_wrapper` boolean, nullable
    - `vault_logo_url` string, nullable
    - `risk` string, nullable
    - `max_daily_drawdown` number, nullable
    - `chain_type` string, nullable
    - `enabled_historical_price_horizons` integer[], nullable
    - `is_spotlighted` boolean, nullable
    - `show_cap_filled` boolean, nullable
    - `withdrawal_only` boolean, nullable
    - `historical_apy` object, nullable
    - `default_apy_horizon` integer, nullable
    - `iat_traders` string[], nullable
    - `withdrawal_margin_seconds` integer, nullable
    - `management_fee_waived_until_date` string, date-time, nullable
    - `management_fee_waived_until_tvl` number, nullable
    - `performance_fee_waived_until_date` string, date-time, nullable
    - `performance_fee_waived_until_tvl` number, nullable
    - `nav_base_asset_token_id` string, uuid, nullable
    - `nav_pricing_overrides` object, nullable
    - `apy_override` object, nullable
    - `max_drawdown` number, nullable
    - `latest_reported_tvl` number, nullable
    - `campaign_apy` number, nullable
    - `metrics_last_updated` string, date-time, nullable
    - `id` string, uuid, required
    - `solana_vault_metadata` ISolanaVaultMetadataRead — Schema for reading a solana_vault_metadata entry.
      - `vault_state_pda` string, required
      - `share_mint` string, required
      - `deposit_mint` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `program_id` string, nullable
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `stellar_vault_metadata` IStellarVaultMetadataRead — Schema for reading a stellar_vault_metadata entry.
      - `deposit_token_address` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `network_name` 'mainnet' | 'testnet', required
      - `utila_vault_id` string, required
      - `utila_wallet_id` string, required
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `instant_redeem_config` IInstantRedeemConfigRead — Schema for reading an instant_redeem_config entry.
      - `subaccount_address` string, required
      - `output_asset_symbol` string, required
      - `is_paused` boolean
      - `available_liquidity` integer
      - `redeemable_assets` unknown[]
        - unknown
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `view_type` 'snapshots'
    - `rewards` TokenizedVaultReward[]
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenizedvault_id` string, uuid, nullable
      - `text` string, nullable
      - `img_url` string, nullable
      - `multiplier` number, nullable
      - `start_datetime` string, date-time, nullable
      - `end_datetime` string, date-time, nullable
    - `reported_apy` TokenizedVaultReportedAPY
      - `apy` number, nullable
      - `underlying_apy` number, nullable
      - `liquid_apy` number, nullable
      - `rewards_compounded` number, nullable
      - `rewards_claimable` number, nullable
      - `explainer` string, nullable
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenized_vault_id` string, uuid, required
    - `receipt_token_integrations` Token[]
      - `address` string, required
      - `chain` integer, required
      - `token_class` string, required
      - `shorthand` string, nullable, required
      - `symbol` string, nullable
      - `tiingo_ticker` string, nullable
      - `coingecko_id` string, nullable
      - `img_url` string, nullable
      - `is_transferable` boolean
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `position_id` string, uuid, nullable
      - `stable_token_pair_id` string, uuid, nullable
    - `hardcoded_strategists` IStrategistRead[]
      - `strategist_name` string, required
      - `strategist_logo` string, nullable
      - `website_url` string, nullable
      - `id` string, uuid, required
    - `composability_integrations` IComposabilityIntegrationRead[]
      - `name` string
      - `description` string
      - `earning_multiplier` number
      - `protocol_url` string
      - `logo_url` string
      - `tokenized_vault_id` string, uuid, required
      - `id` string, uuid, required
    - `cached_at` string, date-time, nullable
    - `freshness` VaultFreshness — Per-provenance ages for a vault's NAV-derived figures (AUGUST-6124). A single "last updated" stamp cannot honestly describe this payload: the share price a client displays is typically a live ``totalAssets() / totalSupply()`` chain read, while ``historical_apy`` is a column recomputed by a periodic job. Printing one timestamp against both replaces a silent disagreement with a printed one, so each provenance gets its own stamp. ``share_ratio_snapshot_at`` later than ``apy_computed_at`` is the staleness signal worth surfacing: a snapshot has landed that the APY has not yet been recomputed from. The two are written by the same ``update_vault_metrics`` call in normal operation, so they only diverge when a metrics recompute failed or has not run yet. All fields are UTC-aware and serialize as RFC 3339 with a trailing ``Z``. Hold that convention: JS ``new Date()`` parses an offset-less date-time as local time, so dropping the suffix silently shifts every rendered value. The validator below enforces it on *every* construction path, including revival from a cached body — see the note on ``ITokenizedVaultBasicDisplay .freshness`` for why round-tripping is load-bearing here.
      - `apy_computed_at` string, date-time, nullable — When historical_apy / TVL / drawdown were last recomputed.
      - `share_ratio_snapshot_at` string, date-time, nullable — snapshot_datetime of the newest persisted share-price snapshot. Independent of load_snapshots — read as a scalar, so it is populated on every view. None only when the vault has no snapshots at all.
      - `cached_at` string, date-time, nullable — When this response body was assembled (pre-cache).
    - `historical_snapshots` IUpshiftHistoricalSnapshotRead[]
      - `total_assets` number
      - `total_shares` number
      - `asset_share_ratio` number
      - `underlying_price` number
      - `snapshot_datetime` string, date-time
      - `block_id` integer
      - `id` string, uuid, required
      - `tvl` number, required
    - `historical_compound_apy` object, nullable, required — Compound-annualized twin of ``historical_apy`` (AUGUST-6765). Derived from the exact same per-horizon rate as ``historical_apy`` so the two fields can never describe different snapshot pairs. Exposed on every endpoint that serializes this schema (single + list vault reads).
    - `tvl` number, required
    - `pnl_per_share` object, required
    - `daily_pnl_per_share` object, required
  - ITokenizedVaultDisplay
    - `address` string, required
    - `yield_distributor` string, nullable
    - `chain` integer, nullable, required
    - `description` string, nullable
    - `internal_type` string, nullable
    - `public_type` string, nullable
    - `is_featured` boolean, nullable
    - `is_visible` boolean, nullable
    - `weekly_performance_fee_bps` number, nullable
    - `platform_fee_override` object, nullable
    - `start_datetime` string, date-time, nullable
    - `vault_name` string, nullable
    - `reserve_target` number, nullable
    - `reserve_tolerance` number, nullable
    - `withdrawal_alert_threshold` number, nullable
    - `withdrawal_alert_channels` string, nullable
    - `status` string, nullable
    - `is_charge_fees_manual` boolean, nullable
    - `receipt_token_symbol` string, nullable
    - `enable_external_assets_update` boolean, nullable
    - `is_distributor_fee_wrapper` boolean, nullable
    - `vault_logo_url` string, nullable
    - `risk` string, nullable
    - `max_daily_drawdown` number, nullable
    - `chain_type` string, nullable
    - `enabled_historical_price_horizons` integer[], nullable
    - `is_spotlighted` boolean, nullable
    - `show_cap_filled` boolean, nullable
    - `withdrawal_only` boolean, nullable
    - `historical_apy` object, nullable
    - `default_apy_horizon` integer, nullable
    - `iat_traders` string[], nullable
    - `withdrawal_margin_seconds` integer, nullable
    - `management_fee_waived_until_date` string, date-time, nullable
    - `management_fee_waived_until_tvl` number, nullable
    - `performance_fee_waived_until_date` string, date-time, nullable
    - `performance_fee_waived_until_tvl` number, nullable
    - `nav_base_asset_token_id` string, uuid, nullable
    - `nav_pricing_overrides` object, nullable
    - `apy_override` object, nullable
    - `max_drawdown` number, nullable
    - `latest_reported_tvl` number, nullable
    - `campaign_apy` number, nullable
    - `metrics_last_updated` string, date-time, nullable
    - `id` string, uuid, required
    - `solana_vault_metadata` ISolanaVaultMetadataRead — Schema for reading a solana_vault_metadata entry.
      - `vault_state_pda` string, required
      - `share_mint` string, required
      - `deposit_mint` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `program_id` string, nullable
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `stellar_vault_metadata` IStellarVaultMetadataRead — Schema for reading a stellar_vault_metadata entry.
      - `deposit_token_address` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `network_name` 'mainnet' | 'testnet', required
      - `utila_vault_id` string, required
      - `utila_wallet_id` string, required
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `instant_redeem_config` IInstantRedeemConfigRead — Schema for reading an instant_redeem_config entry.
      - `subaccount_address` string, required
      - `output_asset_symbol` string, required
      - `is_paused` boolean
      - `available_liquidity` integer
      - `redeemable_assets` unknown[]
        - unknown
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `view_type` 'subaccounts'
    - `rewards` TokenizedVaultReward[]
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenizedvault_id` string, uuid, nullable
      - `text` string, nullable
      - `img_url` string, nullable
      - `multiplier` number, nullable
      - `start_datetime` string, date-time, nullable
      - `end_datetime` string, date-time, nullable
    - `reported_apy` TokenizedVaultReportedAPY
      - `apy` number, nullable
      - `underlying_apy` number, nullable
      - `liquid_apy` number, nullable
      - `rewards_compounded` number, nullable
      - `rewards_claimable` number, nullable
      - `explainer` string, nullable
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenized_vault_id` string, uuid, required
    - `receipt_token_integrations` Token[]
      - `address` string, required
      - `chain` integer, required
      - `token_class` string, required
      - `shorthand` string, nullable, required
      - `symbol` string, nullable
      - `tiingo_ticker` string, nullable
      - `coingecko_id` string, nullable
      - `img_url` string, nullable
      - `is_transferable` boolean
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `position_id` string, uuid, nullable
      - `stable_token_pair_id` string, uuid, nullable
    - `hardcoded_strategists` IStrategistRead[]
      - `strategist_name` string, required
      - `strategist_logo` string, nullable
      - `website_url` string, nullable
      - `id` string, uuid, required
    - `composability_integrations` IComposabilityIntegrationRead[]
      - `name` string
      - `description` string
      - `earning_multiplier` number
      - `protocol_url` string
      - `logo_url` string
      - `tokenized_vault_id` string, uuid, required
      - `id` string, uuid, required
    - `cached_at` string, date-time, nullable
    - `freshness` VaultFreshness — Per-provenance ages for a vault's NAV-derived figures (AUGUST-6124). A single "last updated" stamp cannot honestly describe this payload: the share price a client displays is typically a live ``totalAssets() / totalSupply()`` chain read, while ``historical_apy`` is a column recomputed by a periodic job. Printing one timestamp against both replaces a silent disagreement with a printed one, so each provenance gets its own stamp. ``share_ratio_snapshot_at`` later than ``apy_computed_at`` is the staleness signal worth surfacing: a snapshot has landed that the APY has not yet been recomputed from. The two are written by the same ``update_vault_metrics`` call in normal operation, so they only diverge when a metrics recompute failed or has not run yet. All fields are UTC-aware and serialize as RFC 3339 with a trailing ``Z``. Hold that convention: JS ``new Date()`` parses an offset-less date-time as local time, so dropping the suffix silently shifts every rendered value. The validator below enforces it on *every* construction path, including revival from a cached body — see the note on ``ITokenizedVaultBasicDisplay .freshness`` for why round-tripping is load-bearing here.
      - `apy_computed_at` string, date-time, nullable — When historical_apy / TVL / drawdown were last recomputed.
      - `share_ratio_snapshot_at` string, date-time, nullable — snapshot_datetime of the newest persisted share-price snapshot. Independent of load_snapshots — read as a scalar, so it is populated on every view. None only when the vault has no snapshots at all.
      - `cached_at` string, date-time, nullable — When this response body was assembled (pre-cache).
    - `subaccounts` ISubaccountReadWithStrategist[]
      - `address` string, required
      - `wallet_role` 'operator' | 'reserve' | 'buffer' | 'mint' — Operational role of a vault wallet, surfaced in the NAV Wallet Table. Set by ops on a Subaccount / EOAOperator; unlabeled wallets are ``None``.
      - `strategist` IStrategistRead
        - `strategist_name` string, required
        - `strategist_logo` string, nullable
        - `website_url` string, nullable
        - `id` string, uuid, required
    - `eoa_operators` IEOAOperatorRead[]
      - `address` string, required
      - `name` string, nullable
      - `wallet_role` 'operator' | 'reserve' | 'buffer' | 'mint' — Operational role of a vault wallet, surfaced in the NAV Wallet Table. Set by ops on a Subaccount / EOAOperator; unlabeled wallets are ``None``.
      - `id` string, uuid, required
    - `historical_compound_apy` object, nullable, required — Compound-annualized twin of ``historical_apy`` (AUGUST-6765). Derived from the exact same per-horizon rate as ``historical_apy`` so the two fields can never describe different snapshot pairs. Exposed on every endpoint that serializes this schema (single + list vault reads).
    - `tvl` number, required
    - `operators` OperatorRead[], required
      - `address` string, required
      - `operator_type` 'subaccount' | 'eoa', required
  - ITokenizedVaultBasicDisplay
    - `address` string, required
    - `yield_distributor` string, nullable
    - `chain` integer, nullable, required
    - `description` string, nullable
    - `internal_type` string, nullable
    - `public_type` string, nullable
    - `is_featured` boolean, nullable
    - `is_visible` boolean, nullable
    - `weekly_performance_fee_bps` number, nullable
    - `platform_fee_override` object, nullable
    - `start_datetime` string, date-time, nullable
    - `vault_name` string, nullable
    - `reserve_target` number, nullable
    - `reserve_tolerance` number, nullable
    - `withdrawal_alert_threshold` number, nullable
    - `withdrawal_alert_channels` string, nullable
    - `status` string, nullable
    - `is_charge_fees_manual` boolean, nullable
    - `receipt_token_symbol` string, nullable
    - `enable_external_assets_update` boolean, nullable
    - `is_distributor_fee_wrapper` boolean, nullable
    - `vault_logo_url` string, nullable
    - `risk` string, nullable
    - `max_daily_drawdown` number, nullable
    - `chain_type` string, nullable
    - `enabled_historical_price_horizons` integer[], nullable
    - `is_spotlighted` boolean, nullable
    - `show_cap_filled` boolean, nullable
    - `withdrawal_only` boolean, nullable
    - `historical_apy` object, nullable
    - `default_apy_horizon` integer, nullable
    - `iat_traders` string[], nullable
    - `withdrawal_margin_seconds` integer, nullable
    - `management_fee_waived_until_date` string, date-time, nullable
    - `management_fee_waived_until_tvl` number, nullable
    - `performance_fee_waived_until_date` string, date-time, nullable
    - `performance_fee_waived_until_tvl` number, nullable
    - `nav_base_asset_token_id` string, uuid, nullable
    - `nav_pricing_overrides` object, nullable
    - `apy_override` object, nullable
    - `max_drawdown` number, nullable
    - `latest_reported_tvl` number, nullable
    - `campaign_apy` number, nullable
    - `metrics_last_updated` string, date-time, nullable
    - `id` string, uuid, required
    - `solana_vault_metadata` ISolanaVaultMetadataRead — Schema for reading a solana_vault_metadata entry.
      - `vault_state_pda` string, required
      - `share_mint` string, required
      - `deposit_mint` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `program_id` string, nullable
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `stellar_vault_metadata` IStellarVaultMetadataRead — Schema for reading a stellar_vault_metadata entry.
      - `deposit_token_address` string, required
      - `deposit_token_symbol` string, nullable
      - `deposit_token_decimals` integer, nullable
      - `network_name` 'mainnet' | 'testnet', required
      - `utila_vault_id` string, required
      - `utila_wallet_id` string, required
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `instant_redeem_config` IInstantRedeemConfigRead — Schema for reading an instant_redeem_config entry.
      - `subaccount_address` string, required
      - `output_asset_symbol` string, required
      - `is_paused` boolean
      - `available_liquidity` integer
      - `redeemable_assets` unknown[]
        - unknown
      - `id` string, uuid, required
      - `tokenized_vault_id` string, uuid, required
    - `view_type` 'basic'
    - `rewards` TokenizedVaultReward[]
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenizedvault_id` string, uuid, nullable
      - `text` string, nullable
      - `img_url` string, nullable
      - `multiplier` number, nullable
      - `start_datetime` string, date-time, nullable
      - `end_datetime` string, date-time, nullable
    - `reported_apy` TokenizedVaultReportedAPY
      - `apy` number, nullable
      - `underlying_apy` number, nullable
      - `liquid_apy` number, nullable
      - `rewards_compounded` number, nullable
      - `rewards_claimable` number, nullable
      - `explainer` string, nullable
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `tokenized_vault_id` string, uuid, required
    - `receipt_token_integrations` Token[]
      - `address` string, required
      - `chain` integer, required
      - `token_class` string, required
      - `shorthand` string, nullable, required
      - `symbol` string, nullable
      - `tiingo_ticker` string, nullable
      - `coingecko_id` string, nullable
      - `img_url` string, nullable
      - `is_transferable` boolean
      - `id` string, uuid
      - `updated_at` string, date-time, nullable
      - `created_at` string, date-time, nullable
      - `position_id` string, uuid, nullable
      - `stable_token_pair_id` string, uuid, nullable
    - `hardcoded_strategists` IStrategistRead[]
      - `strategist_name` string, required
      - `strategist_logo` string, nullable
      - `website_url` string, nullable
      - `id` string, uuid, required
    - `composability_integrations` IComposabilityIntegrationRead[]
      - `name` string
      - `description` string
      - `earning_multiplier` number
      - `protocol_url` string
      - `logo_url` string
      - `tokenized_vault_id` string, uuid, required
      - `id` string, uuid, required
    - `cached_at` string, date-time, nullable
    - `freshness` VaultFreshness — Per-provenance ages for a vault's NAV-derived figures (AUGUST-6124). A single "last updated" stamp cannot honestly describe this payload: the share price a client displays is typically a live ``totalAssets() / totalSupply()`` chain read, while ``historical_apy`` is a column recomputed by a periodic job. Printing one timestamp against both replaces a silent disagreement with a printed one, so each provenance gets its own stamp. ``share_ratio_snapshot_at`` later than ``apy_computed_at`` is the staleness signal worth surfacing: a snapshot has landed that the APY has not yet been recomputed from. The two are written by the same ``update_vault_metrics`` call in normal operation, so they only diverge when a metrics recompute failed or has not run yet. All fields are UTC-aware and serialize as RFC 3339 with a trailing ``Z``. Hold that convention: JS ``new Date()`` parses an offset-less date-time as local time, so dropping the suffix silently shifts every rendered value. The validator below enforces it on *every* construction path, including revival from a cached body — see the note on ``ITokenizedVaultBasicDisplay .freshness`` for why round-tripping is load-bearing here.
      - `apy_computed_at` string, date-time, nullable — When historical_apy / TVL / drawdown were last recomputed.
      - `share_ratio_snapshot_at` string, date-time, nullable — snapshot_datetime of the newest persisted share-price snapshot. Independent of load_snapshots — read as a scalar, so it is populated on every view. None only when the vault has no snapshots at all.
      - `cached_at` string, date-time, nullable — When this response body was assembled (pre-cache).
    - `historical_compound_apy` object, nullable, required — Compound-annualized twin of ``historical_apy`` (AUGUST-6765). Derived from the exact same per-horizon rate as ``historical_apy`` so the two fields can never describe different snapshot pairs. Exposed on every endpoint that serializes this schema (single + list vault reads).
    - `tvl` number, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/augustdigital/apis/upshift-api.md) · [All operations](https://skmtc.net/augustdigital/apis/upshift-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/augustdigital/upshift-api/revisions/43a04efedc13/schema)
