{"openapi":"3.1.0","info":{"title":"August API","version":"0.1.0"},"servers":[{"url":"/api/v1"}],"paths":{"/ping":{"get":{"summary":"Ping","description":"Health check endpoint for monitoring (Docker healthcheck).\n\nChecks:\n- API responsiveness\n- PostgreSQL database connectivity (critical for subaccount queries)\n- Blockchain RPC connectivity (non-critical, degrades service)","operationId":"ping_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Ping Ping Get"}}}}}}},"/subaccounts":{"get":{"summary":"Get My Subaccounts","operationId":"get_my_subaccounts_subaccounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublicSubaccountRead"},"type":"array","title":"Response Get My Subaccounts Subaccounts Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/subaccounts/health_factor":{"get":{"summary":"Get Subaccount Health Factor","operationId":"get_subaccount_health_factor_subaccounts_health_factor_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthFactorMinimal"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subaccounts/summary":{"get":{"summary":"Get Subaccount Summary","operationId":"get_subaccount_summary_subaccounts_summary_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"denomination_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"enum":["USD"],"const":"USD","type":"string"},{"type":"null"}],"title":"Denomination Address"}},{"name":"denomination_chain","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/Chain"}],"default":1,"title":"Denomination Chain"}},{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subaccounts/{address}/swaps":{"post":{"summary":"Do Swap","description":"Return swap calldata for the caller's wallet to sign.\n\nThe server builds the executeModule(module, data) calldata, simulates it\nto confirm it would succeed on-chain, and returns the lowest-slippage\nquote whose simulation passes. The frontend bundles the returned\n{target, data, value} into a transaction the user signs in their wallet.","operationId":"do_swap_subaccounts__address__swaps_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapTransactionPayload"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/revert_reason":{"get":{"summary":"Get Revert Reason","operationId":"get_revert_reason_revert_reason_get","parameters":[{"name":"tx_hash","in":"query","required":true,"schema":{"type":"string","title":"Tx Hash"}},{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/trader_joe/{pool_address}/deposit/{address}":{"post":{"tags":["Trader Joe"],"summary":"Deposit To Pool","operationId":"deposit_to_pool_integrations_trader_joe__pool_address__deposit__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"pool_address","in":"path","required":true,"schema":{"type":"string","title":"Pool Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderJoeDepositRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/trader_joe/{pool_address}/withdraw/{address}":{"post":{"tags":["Trader Joe"],"summary":"Withdraw From Pool","operationId":"withdraw_from_pool_integrations_trader_joe__pool_address__withdraw__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"pool_address","in":"path","required":true,"schema":{"type":"string","title":"Pool Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderJoeWithdrawalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/trader_joe/{pool_address}/rebalance/{address}":{"post":{"tags":["Trader Joe"],"summary":"Rebalance Pool","operationId":"rebalance_pool_integrations_trader_joe__pool_address__rebalance__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"pool_address","in":"path","required":true,"schema":{"type":"string","title":"Pool Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderJoeRebalanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/trader_joe/{pool_address}/claim_rewards/{address}":{"post":{"tags":["Trader Joe"],"summary":"Claim Rewards","operationId":"claim_rewards_integrations_trader_joe__pool_address__claim_rewards__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"pool_address","in":"path","required":true,"schema":{"type":"string","title":"Pool Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimRewardsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/benqi/{qi_token_address}/supply/{address}":{"post":{"tags":["Benqi"],"summary":"Supply","operationId":"supply_integrations_benqi__qi_token_address__supply__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"qi_token_address","in":"path","required":true,"schema":{"type":"string","title":"Qi Token Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_supply_integrations_benqi__qi_token_address__supply__address__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/benqi/{qi_token_address}/borrow/{address}":{"post":{"tags":["Benqi"],"summary":"Borrow","operationId":"borrow_integrations_benqi__qi_token_address__borrow__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"qi_token_address","in":"path","required":true,"schema":{"type":"string","title":"Qi Token Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_borrow_integrations_benqi__qi_token_address__borrow__address__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/benqi/{qi_token_address}/repay/{address}":{"post":{"tags":["Benqi"],"summary":"Repay","operationId":"repay_integrations_benqi__qi_token_address__repay__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"qi_token_address","in":"path","required":true,"schema":{"type":"string","title":"Qi Token Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_repay_integrations_benqi__qi_token_address__repay__address__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/benqi/{qi_token_address}/withdraw/{address}":{"post":{"tags":["Benqi"],"summary":"Withdraw","operationId":"withdraw_integrations_benqi__qi_token_address__withdraw__address__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"qi_token_address","in":"path","required":true,"schema":{"type":"string","title":"Qi Token Address"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_withdraw_integrations_benqi__qi_token_address__withdraw__address__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/morpho/apy":{"get":{"tags":["Morpho"],"summary":"Get Morpho Vault Apy","operationId":"get_morpho_vault_apy_integrations_morpho_apy_get","parameters":[{"name":"vault_address","in":"query","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"subaccount_address","in":"query","required":true,"schema":{"type":"string","title":"Subaccount Address"}},{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/hyena/deposit":{"post":{"tags":["Hyena"],"summary":"Deposit To Hlpe","operationId":"deposit_to_hlpe_integrations_hyena_deposit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/integrations/hyena/check_status":{"get":{"tags":["Hyena"],"summary":"Check Deposit Status","operationId":"check_deposit_status_integrations_hyena_check_status_get","parameters":[{"name":"hypercore_hash","in":"query","required":true,"schema":{"type":"string","title":"Hypercore Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/tradexyz/deposit":{"post":{"tags":["Trade.xyz"],"summary":"Deposit To Xlp","operationId":"deposit_to_xlp_integrations_tradexyz_deposit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/integrations/tradexyz/check_status":{"get":{"tags":["Trade.xyz"],"summary":"Check Xlp Deposit Status","operationId":"check_xlp_deposit_status_integrations_tradexyz_check_status_get","parameters":[{"name":"hypercore_hash","in":"query","required":true,"schema":{"type":"string","title":"Hypercore Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HyperliquidRelayerDepositStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/historical_apy/chart":{"get":{"tags":["Upshift"],"summary":"Get Historical Apy","description":"Returns the time-series of APY for a given vault address.\n\nOne point per calendar day, each the trailing APY over the preceding\n``averaging_period_in_days`` days. The last point equals the vault's\npublished ``historical_apy`` for that horizon — both come from\n``compute_smoothed_trailing_apy`` — so the chart cannot drift away from the\nheadline number.\n\nAveraging period should be at least 2 days.\nUse days_ago = -1 for the full timeseries since inception.","operationId":"get_historical_apy_upshift_historical_apy_chart_get","deprecated":true,"parameters":[{"name":"vault_address","in":"query","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"days_ago","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days Ago"}},{"name":"averaging_period_in_days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Averaging Period In Days"}},{"name":"apply_smoothing","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Apply Smoothing"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/strategy_apy":{"get":{"tags":["Upshift"],"summary":"Get All Strategy Apys","operationId":"get_all_strategy_apys_upshift_strategy_apy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/IApySnapshotRead"},"type":"array","title":"Response Get All Strategy Apys Upshift Strategy Apy Get"}}}}}},"post":{"tags":["Upshift"],"summary":"Create Strategy Apys","operationId":"create_strategy_apys_upshift_strategy_apy_post","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/IApySnapshotCreate"},"type":"array","title":"Strategy Apys In"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/IApySnapshotRead"},"type":"array","title":"Response Create Strategy Apys Upshift Strategy Apy Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/upshift/strategy_apy/{vault_address}":{"get":{"tags":["Upshift"],"summary":"Get Strategy Apys By Vault","operationId":"get_strategy_apys_by_vault_upshift_strategy_apy__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IApySnapshotRead"},"title":"Response Get Strategy Apys By Vault Upshift Strategy Apy  Vault Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/strategist":{"get":{"tags":["Upshift","Strategists"],"summary":"Get Strategists","description":"Retrieve a list of all strategists.","operationId":"get_strategists_upshift_strategist_get","parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IStrategistRead"},"title":"Response Get Strategists Upshift Strategist Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/lending_pool/loanbook":{"get":{"tags":["Upshift","Lending Pools"],"summary":"Get Loans For Lending Pool","operationId":"get_loans_for_lending_pool_upshift_lending_pool_loanbook_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}},{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Chain"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LendingPoolLoanbookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/lending_pool/subaccounts_loanbook":{"get":{"tags":["Upshift","Lending Pools"],"summary":"Get Loans For Vault Subaccounts","description":"Get the loan book for a vault's subaccounts.\n\nFor vaults that lend via subaccounts (e.g. earnAUSD), this endpoint\nidentifies the vault's subaccounts, queries their active loans as lenders,\nand returns loan details including borrower addresses. The frontend can then\nuse borrower addresses with existing debank infrastructure to display\ncollateral exposure.\n\nEach subaccount's own chain is used to query the correct loan registry.\nMultichain subaccounts (chain=None) are queried against the request chain\nas a fallback.","operationId":"get_loans_for_vault_subaccounts_upshift_lending_pool_subaccounts_loanbook_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}},{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Chain"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LendingPoolLoanbookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/points/register":{"post":{"tags":["Upshift","Points"],"summary":"Register User","description":"Process referral signup bonus and create referral entries.\n\nAuth: wallet signature over a canonical message containing the user\naddress, optional referrer, a single-use nonce, and an expiry. See\n`_verify_register_signature` for the validation rules.","operationId":"register_user_upshift_points_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRegistrationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRegistrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/points/leaderboard":{"get":{"tags":["Upshift","Points"],"summary":"Get Leaderboard","description":"Get leaderboard with pagination and optional user search.\n\n- Without search params: Returns paginated leaderboard\n- With wallet_address or ens_name: Returns ONLY that specific user with their rank","operationId":"get_leaderboard_upshift_points_leaderboard_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Perpage"}},{"name":"sortBy","in":"query","required":false,"schema":{"enum":["totalPoints","streakDays"],"type":"string","default":"totalPoints","title":"Sortby"}},{"name":"wallet_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search for specific wallet address - returns only that user","title":"Wallet Address"},"description":"Search for specific wallet address - returns only that user"},{"name":"ens_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search for specific ENS name - returns only that user","title":"Ens Name"},"description":"Search for specific ENS name - returns only that user"},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Chain ID for ENS resolution (default: 1 for mainnet)","title":"Chain"},"description":"Chain ID for ENS resolution (default: 1 for mainnet)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/points/{user_address}":{"get":{"tags":["Upshift","Points"],"summary":"Get Points By User","operationId":"get_points_by_user_upshift_points__user_address__get","parameters":[{"name":"user_address","in":"path","required":true,"schema":{"type":"string","title":"User Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/points/daily_streak/status":{"get":{"tags":["Upshift","Daily Streak"],"summary":"Get Daily Streak Status","description":"Get user's daily streak status.\n\nReturns current streak state and whether user can claim.\n\nArgs:\n    address: User wallet address\n    db_session: Database session\n\nReturns:\n    DailyStreakStatusResponse with current streak information","operationId":"get_daily_streak_status_upshift_points_daily_streak_status_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyStreakStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/points/daily_streak/claim":{"post":{"tags":["Upshift","Daily Streak"],"summary":"Claim Daily Streak","description":"Claim daily streak bonus points.\n\nValidates eligibility, calculates points, updates streak state.\n\nArgs:\n    request: Claim request with user address\n    db_session: Database session\n\nReturns:\n    DailyStreakClaimResponse with claim results\n\nRaises:\n    HTTPException: If user not found, no active positions, or already claimed","operationId":"claim_daily_streak_upshift_points_daily_streak_claim_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyStreakClaimRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyStreakClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/historical_asset_share_ratio/chart/{vault_address}":{"get":{"tags":["Upshift","Historical Asset Share Ratio"],"summary":"Get Historical Asset Ratio","description":"Returns the time-series of asset share ratio for a given vault address.\nUse days_ago = -1 for the full timeseries since inception.","operationId":"get_historical_asset_ratio_upshift_historical_asset_share_ratio_chart__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"days_ago","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":7},{"type":"null"}],"description":"If provided, must be at least 7; leave empty for full history","title":"Days Ago"},"description":"If provided, must be at least 7; leave empty for full history"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/unrealized_pnl":{"get":{"tags":["Upshift","Unrealized PnL"],"summary":"Get Unrealized Pnl","description":"Returns unrealized PnL records for a given vault from MongoDB.\n\nArgs:\n    vault_address: Vault contract address to query.\n    db: MongoDB session dependency.\n    limit: Optional max number of records to return (newest first).\n    start_date: Optional inclusive lower bound on ``timestamp``.\n    end_date: Optional inclusive upper bound on ``timestamp``.\n    fields: ``\"ratio\"`` returns the slim ``CollateralRatioPoint`` shape via a\n        Mongo projection (for the collateral-ratio chart); omitted returns\n        the full ``UnrealizedPnLResponse``. All new params are optional and\n        backward-compatible with the existing full-record behaviour.","operationId":"get_unrealized_pnl_upshift_unrealized_pnl_get","parameters":[{"name":"vault_address","in":"query","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"enum":["ratio"],"const":"ratio","type":"string"},{"type":"null"}],"title":"Fields"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/unrealized_pnl/latest":{"get":{"tags":["Upshift","Unrealized PnL"],"summary":"Get All Latest Unrealized Pnl","description":"Returns the latest unrealized PnL record per vault in a single query.\n\nSorts on {vault_address, timestamp desc} to align with the compound index,\nthen groups by vault_address taking the first (newest) record. The index\nhint forces Mongo to use the compound index, turning this into an index\nscan (~0.7s) instead of a full collection scan + in-memory sort (>60s).","operationId":"get_all_latest_unrealized_pnl_upshift_unrealized_pnl_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UnrealizedPnLResponse"},"type":"array","title":"Response Get All Latest Unrealized Pnl Upshift Unrealized Pnl Latest Get"}}}}}}},"/upshift/vault_history/archived":{"get":{"tags":["Upshift","Vault History"],"summary":"Get Archived Vaults","description":"List vault addresses that have a history snapshot in this collection.\n\nThis is the source of truth for \"which vaults are served from the snapshot\":\na vault appears here only once its history has been backfilled, so a client\ncan route to this API without ever rerouting a vault to empty data ahead of\nits backfill. Read-only.\n\nReturns:\n    Distinct vault addresses (lowercased) present in `upshift.vault_history`.","operationId":"get_archived_vaults_upshift_vault_history_archived_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Get Archived Vaults Upshift Vault History Archived Get"}}}}}}},"/upshift/vault_history/{vault_address}":{"get":{"tags":["Upshift","Vault History"],"summary":"Get Vault User History","description":"Deposit/withdraw history for a vault, served from the Mongo snapshot.\n\nBacks the SDK/app vault history for archived vaults whose subgraph is being\nretired, so user history keeps working once the subgraph is gone.\nRead-only. Populated by ``scripts/upshift/vault_history_backfill.py``.\n\nArgs:\n    vault_address: Vault contract address (the ``pool``).\n    db: MongoDB session dependency.\n    wallet: Optional user address to filter to.\n    chain_id: Optional chain id to filter to.\n    type: Optional ``deposit``/``withdraw`` filter.\n    limit: Max records, newest first.","operationId":"get_vault_user_history_upshift_vault_history__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"wallet","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to a single user (depositor or receiver).","title":"Wallet"},"description":"Filter to a single user (depositor or receiver)."},{"name":"chain_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter to a single chain id.","title":"Chain Id"},"description":"Filter to a single chain id."},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["deposit","withdraw-processed","withdraw-request"],"type":"string"},{"type":"null"}],"description":"Filter to only deposits or only withdraws.","title":"Type"},"description":"Filter to only deposits or only withdraws."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":5000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VaultHistoryItem"},"title":"Response Get Vault User History Upshift Vault History  Vault Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/positions/{vault_address}":{"get":{"tags":["Upshift","Vault Positions"],"summary":"Get Vault Positions","description":"Return the latest position snapshot for a vault, grouped per subaccount.\n\nThe frontend re-groups the single response three ways (by protocol, by\nsubaccount, by strategy category) for the Strategy Breakdown section, and\nderives the Hero metrics (Verifiability %, Spot balance) and the per-wallet\ntable from it. Source is the newest daily ``unrealized_pnl`` Mongo record.","operationId":"get_vault_positions_upshift_positions__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/historical_allocations/{vault_address}":{"get":{"tags":["Upshift","Historical Allocations"],"summary":"Get Historical Allocations","description":"Daily per-protocol allocation series for the Allocation-Over-Time chart.\n\nAggregates the daily ``unrealized_pnl`` snapshots into one point per\n(day, protocol), categorized via the shared taxonomy. ``history_from`` is the\noldest snapshot that actually carries positions, so the frontend knows where\nthe series can start regardless of the requested window.","operationId":"get_historical_allocations_upshift_historical_allocations__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/fees/{vault_address}":{"get":{"tags":["Upshift","Vault Fees"],"summary":"Get Vault Fees","description":"Return management + performance fees for a vault.\n\nCombines the vault's persisted fee/waiver fields with two on-chain reads\n(management fee rate and performance fee rate). Each on-chain read degrades\nindependently: a vault whose contract lacks one call still returns the other\nfee plus the DB-sourced fields rather than failing the whole card.","operationId":"get_vault_fees_upshift_fees__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/oracle_classification/{vault_address}":{"get":{"tags":["Upshift","NAV Oracle Classification"],"summary":"Get Oracle Classification","description":"Return the NAV Oracle classification table for a vault's latest snapshot.\n\nDeFi and idle tokens are classified via the pricing engine (Tiingo /\nCoinGecko / constant); CeFi venue positions are reported as CeFi-sourced\nwithout an engine call. Source is the newest daily ``unrealized_pnl`` record.","operationId":"get_oracle_classification_upshift_oracle_classification__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/governance/{vault_address}/roles":{"get":{"tags":["Upshift","Governance"],"summary":"Get Vault Roles","description":"Owner + Operator rows enriched with Safe metadata and the Fordefi check.\n\nEnrichment failures degrade the affected fields (``is_safe=False`` etc.)\nand add a warning — the endpoint never 500s because a third party is\ndown. Non-EVM vaults return 422: their programs expose no owner.","operationId":"get_vault_roles_upshift_governance__vault_address__roles_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/governance/{vault_address}/permissions":{"get":{"tags":["Upshift","Governance"],"summary":"Get Vault Permissions","description":"Flat vault-wide permissions table from the Postgres integrations graph.\n\nAll ``EOAOperator`` and ``Subaccount`` rows of the vault contribute their\nintegrations across every chain (operators trade cross-chain, so filtering\nto the vault's own chain would hide most of the whitelist); each row\ncarries its integration's ``chain_id``. Grouped by (integration, chain)\nwith token symbols, AA role names, and spenders unioned. Vaults with no\nconfigured integrations return an empty list.","operationId":"get_vault_permissions_upshift_governance__vault_address__permissions_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/governance/{vault_address}/timelocks":{"get":{"tags":["Upshift","Governance"],"summary":"Get Vault Timelocks","description":"Actions queued in the vault timelock, one row per scheduled request.\n\n``status`` mirrors the main app's ``/timelock-requests`` semantics:\na single ``TimelockStatus`` value or ``all``; default shows the pending\nqueue. Empty queue returns ``timelocks: []``.","operationId":"get_vault_timelocks_upshift_governance__vault_address__timelocks_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"scheduled","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/upshift/governance/{vault_address}/audit_log":{"get":{"tags":["Upshift","Governance"],"summary":"Get Vault Audit Log","description":"Chronological governance log: timelock actions (derived live from\n``timelock_request``) merged with backend-owned manual entries\n(``audit_log`` table), newest first. ``before`` + ``limit`` page older\nentries; the log starts at launch — no historical backfill.","operationId":"get_vault_audit_log_upshift_governance__vault_address__audit_log_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"chain_id","in":"query","required":true,"schema":{"type":"integer","title":"Chain Id"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault":{"get":{"tags":["Tokenized Vault"],"summary":"Get Tokenized Vaults","operationId":"get_tokenized_vaults_tokenized_vault_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ITokenizedVaultStatus"},{"type":"null"}],"description":"Filter vaults by status (e.g. active, closed)","title":"Status"},"description":"Filter vaults by status (e.g. active, closed)"},{"name":"load_subaccounts","in":"query","required":false,"schema":{"type":"boolean","description":"Load subaccounts and EOA operators for vault. (May affect performance)","default":true,"title":"Load Subaccounts"},"description":"Load subaccounts and EOA operators for vault. (May affect performance)","deprecated":true},{"name":"load_snapshots","in":"query","required":false,"schema":{"type":"boolean","description":"Load historical snapshots for vault. (Will significantly affect performance). Use `/{vault_address}/historical-timeseries` instead","default":true,"title":"Load Snapshots"},"description":"Load historical snapshots for vault. (Will significantly affect performance). Use `/{vault_address}/historical-timeseries` instead","deprecated":true}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ITokenizedVaultFullDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultSnapshotsDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultBasicDisplay"}],"discriminator":{"propertyName":"view_type","mapping":{"all":"#/components/schemas/ITokenizedVaultFullDisplay","snapshots":"#/components/schemas/ITokenizedVaultSnapshotsDisplay","subaccounts":"#/components/schemas/ITokenizedVaultDisplay","basic":"#/components/schemas/ITokenizedVaultBasicDisplay"}}},"title":"Response Get Tokenized Vaults Tokenized Vault Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/{vault_address}":{"get":{"tags":["Tokenized Vault"],"summary":"Get Tokenized Vault","operationId":"get_tokenized_vault_tokenized_vault__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"load_subaccounts","in":"query","required":false,"schema":{"type":"boolean","description":"Load subaccounts and EOA operators for vault. (May affect performance)","default":true,"title":"Load Subaccounts"},"description":"Load subaccounts and EOA operators for vault. (May affect performance)"},{"name":"load_snapshots","in":"query","required":false,"schema":{"type":"boolean","description":"Load historical snapshots for vault. (Will significantly affect performance). Use `/{vault_address}/historical-timeseries` instead","default":true,"title":"Load Snapshots"},"description":"Load historical snapshots for vault. (Will significantly affect performance). Use `/{vault_address}/historical-timeseries` instead","deprecated":true}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ITokenizedVaultFullDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultSnapshotsDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultDisplay"},{"$ref":"#/components/schemas/ITokenizedVaultBasicDisplay"}],"discriminator":{"propertyName":"view_type","mapping":{"all":"#/components/schemas/ITokenizedVaultFullDisplay","snapshots":"#/components/schemas/ITokenizedVaultSnapshotsDisplay","subaccounts":"#/components/schemas/ITokenizedVaultDisplay","basic":"#/components/schemas/ITokenizedVaultBasicDisplay"}},"title":"Response Get Tokenized Vault Tokenized Vault  Vault Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/annualized_apy/{vault_address}":{"get":{"tags":["Tokenized Vault"],"summary":"Get annualized APY","description":"Calculate annualized APY for a specific vault.\n\n        ⚠️ Deprecation Notice:\n        - The `hgETH30dLiquidAPY` and `hgETH7dLiquidAPY` fields are deprecated\n        - These fields will be removed on 2026-01-01\n        - Use `liquidAPY30Day` and `liquidAPY7Day` fields instead\n\n        Supported Vaults: cUSDO, tETH, wstETH, rsETH","operationId":"get_annualized_APY_tokenized_vault_annualized_apy__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"APY data","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/vault_summary/{vault_address}":{"get":{"tags":["Tokenized Vault"],"summary":"Get Vault Summary","description":"Get the summary of a specific vault by its address.\nReturns name, type, chain, latest snapshot and 1D/7D/30D returns for a vault.","operationId":"get_vault_summary_tokenized_vault_vault_summary__vault_address__get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/{vault_address}/historical-timeseries":{"get":{"tags":["Tokenized Vault"],"summary":"Get Historical Timeseries","operationId":"get_historical_timeseries_tokenized_vault__vault_address__historical_timeseries_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"n_days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":30,"title":"N Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoricalTimeseriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/{vault_address}/debank":{"get":{"tags":["Tokenized Vault"],"summary":"Get Debank Data","description":"Retrieve cached debank data for vault as a dict with Subaccount addresses as keys and Debank data as values","operationId":"get_debank_data_tokenized_vault__vault_address__debank_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"All subaccount data retrieved successfully","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/DebankAccountData"},{"$ref":"#/components/schemas/DebankAccountDataError"}]},"title":"Response Get Debank Data Tokenized Vault  Vault Address  Debank Get"}}}},"207":{"description":"Partial success - some subaccounts failed"},"404":{"description":"No cached data found for vault"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tokenized_vault/rewards":{"post":{"tags":["Tokenized Vault"],"summary":"Update Tokenized Vault Reward","operationId":"update_tokenized_vault_reward_tokenized_vault_rewards_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenizedVaultRewardUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]},"delete":{"tags":["Tokenized Vault"],"summary":"Delete Tokenized Vault Reward","operationId":"delete_tokenized_vault_reward_tokenized_vault_rewards_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenizedVaultRewardDelete"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyHeader":[]}]}},"/withdrawals/{chain}/{vault_address}":{"get":{"tags":["Vaults withdrawals"],"summary":"Get Vault Withdrawals","operationId":"get_vault_withdrawals_withdrawals__chain___vault_address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Chain"}},{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vaults/{vault_address}/pending-redemptions":{"get":{"tags":["Pending Redemptions"],"summary":"Get Vault Pending Redemptions","description":"Get pending redemptions for a single vault.\n\nArgs:\n    vault: Vault (injected via GetTokenizedVaultDepends)\n    db_session: Database session (shared with the vault dependency)\n    past_days: Days to look back for overdue redemptions (default: 7)\n    future_days: Days to look ahead for upcoming redemptions (default: 14)\n\nReturns:\n    SingleVaultRedemptionResponse with vault info, liquidity, and redemptions by date","operationId":"get_vault_pending_redemptions_vaults__vault_address__pending_redemptions_get","parameters":[{"name":"vault_address","in":"path","required":true,"schema":{"type":"string","title":"Vault Address"}},{"name":"past_days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Past Days"}},{"name":"future_days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":14,"title":"Future Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleVaultRedemptionResponse"}}}},"404":{"description":"Vault not found"},"400":{"description":"Unsupported vault type"},"503":{"description":"RPC unavailable"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vaults/pending-redemptions":{"post":{"tags":["Pending Redemptions"],"summary":"Get Batch Pending Redemptions","description":"Get pending redemptions for multiple vaults.\n\nEither provide a list of vault addresses or a strategist name to fetch all their vaults.\n\nArgs:\n    request: BatchRedemptionRequest with either vaults list or strategist name\n    db_session: Database session\n\nReturns:\n    BatchRedemptionResponse with results for each vault and any errors","operationId":"get_batch_pending_redemptions_vaults_pending_redemptions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRedemptionResponse"}}}},"400":{"description":"Invalid request"},"404":{"description":"Strategist or vaults not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alerts/redeem-failure":{"post":{"tags":["Redeem Alerts"],"summary":"Report a failed vault redemption for curator alerting","description":"Accept a redemption-failure report and alert the vault's curator.\n\nAnswers the same 202 for every outcome, delivered or not: a response that\nvaried would let an unauthenticated caller enumerate which vaults are\nwatched. What happened is in the log. (An infrastructure fault below this\nhandler can still 5xx.)","operationId":"report_redeem_failure_alerts_redeem_failure_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemFailureReport"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemFailureAck"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swap/fees":{"get":{"tags":["swap","Fees"],"summary":"Get Fees","description":"Retrieve the applicable fees (in basis points) for both normal and stable batch transactions\non a specific blockchain network.\n\nArgs:\n    chain (Chain): The target blockchain network (e.g., Ethereum, Polygon, etc.).\n\nReturns:\n    FeeResponse: Contains `normal_fees_in_bips` and `stable_fees_in_bips` values\n                 (basis points) for each fee type respectively.","operationId":"get_fees_swap_fees_get","parameters":[{"name":"chain","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swap/markets":{"get":{"tags":["swap"],"summary":"Get Markets","operationId":"get_markets_swap_markets_get","parameters":[{"name":"quote_style","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/SwapQuoteStyle"}],"default":"both","title":"Quote Style"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ISwapMarketRead"},"title":"Response Get Markets Swap Markets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/swap/quote":{"post":{"tags":["swap"],"summary":"Get Quote","operationId":"get_quote_swap_quote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AppPortfolioDetailObject":{"properties":{"supply_token_list":{"items":{"$ref":"#/components/schemas/AppTokenObject"},"type":"array","title":"Supply Token List","default":[]},"reward_token_list":{"items":{"$ref":"#/components/schemas/AppTokenObject"},"type":"array","title":"Reward Token List","default":[]},"borrow_token_list":{"items":{"$ref":"#/components/schemas/AppTokenObject"},"type":"array","title":"Borrow Token List","default":[]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"additionalProperties":true,"type":"object","title":"AppPortfolioDetailObject","description":"Detail object from app-protocol endpoints.\n\nUses extra=\"allow\" to capture protocol-specific fields such as perpetuals\ndata (side, margin_token, entry_price, leverage, etc.) that vary by\nposition type and protocol."},"AppPortfolioItemObject":{"properties":{"stats":{"$ref":"#/components/schemas/StatsObject"},"update_at":{"type":"number","title":"Update At"},"name":{"type":"string","title":"Name"},"detail_types":{"items":{"type":"string"},"type":"array","title":"Detail Types"},"detail":{"$ref":"#/components/schemas/AppPortfolioDetailObject"},"proxy_detail":{"anyOf":[{"$ref":"#/components/schemas/ProxyDetailObject"},{"type":"null"}]},"position_index":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Index"}},"additionalProperties":true,"type":"object","required":["stats","update_at","name","detail_types","detail"],"title":"AppPortfolioItemObject","description":"Portfolio item from app-protocol endpoints (no pool field unlike EVM protocols)."},"AppProtocol":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"site_url":{"type":"string","title":"Site Url"},"has_supported_portfolio":{"type":"boolean","title":"Has Supported Portfolio"},"portfolio_item_list":{"items":{"$ref":"#/components/schemas/AppPortfolioItemObject"},"type":"array","title":"Portfolio Item List"}},"type":"object","required":["id","name","site_url","has_supported_portfolio","portfolio_item_list"],"title":"AppProtocol","description":"Protocol from /user/complex_app_list endpoint.\n\nRepresents non-EVM app-protocols (e.g. Hyperliquid, Lighter) which\ndon't have a chain field unlike EVM-based UserProtocol."},"AppTokenObject":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"},"decimals":{"type":"integer","title":"Decimals"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Id"},"price":{"type":"number","title":"Price"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount"}},"additionalProperties":true,"type":"object","required":["id","name","symbol","decimals","price"],"title":"AppTokenObject","description":"Token from app-protocol endpoints (Hyperliquid, Lighter, etc.).\n\nUses extra=\"allow\" because app-protocol tokens have varying fields\ndepending on the protocol and position type."},"AssetInfo":{"properties":{"address":{"type":"string","title":"Address"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Decimals"}},"type":"object","required":["address"],"title":"AssetInfo","description":"Underlying asset information."},"BaseModel":{"properties":{},"type":"object","title":"BaseModel"},"BatchRedemptionRequest":{"properties":{"vaults":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vaults"},"strategist":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist"},"past_days":{"type":"integer","title":"Past Days","default":7},"future_days":{"type":"integer","title":"Future Days","default":14}},"type":"object","title":"BatchRedemptionRequest","description":"Request body for batch pending redemptions endpoint."},"BatchRedemptionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SingleVaultRedemptionResponse"},"type":"array","title":"Data"},"total_requested":{"type":"integer","title":"Total Requested"},"errors":{"items":{"$ref":"#/components/schemas/FailedVault"},"type":"array","title":"Errors"},"total_successful":{"type":"integer","title":"Total Successful","readOnly":true}},"type":"object","required":["data","total_requested","total_successful"],"title":"BatchRedemptionResponse","description":"Response for batch pending redemptions endpoint.\n\n``total_requested`` counts every requested vault; ``data`` holds the ones\nthat succeeded and ``errors`` names the ones that did not (e.g. non-EVM\nvaults, which this EVM-only endpoint cannot process, or RPC failures), so a\n``total_successful < total_requested`` gap is always explained rather than\nsilent.\n\n``total_successful`` is derived from ``data`` so the two can never disagree;\n``total_requested`` is a stored input because it counts vaults requested but\ndropped before ``data`` / ``errors`` are built (e.g. addresses with no\nmatching vault row)."},"Body_borrow_integrations_benqi__qi_token_address__borrow__address__post":{"properties":{"borrow_amount":{"type":"integer","title":"Borrow Amount","description":"Amount of underlying to borrow"},"await_confirmation":{"type":"boolean","title":"Await Confirmation","description":"Set to false to not wait for confirmation","default":true}},"type":"object","required":["borrow_amount"],"title":"Body_borrow_integrations_benqi__qi_token_address__borrow__address__post"},"Body_repay_integrations_benqi__qi_token_address__repay__address__post":{"properties":{"repay_amount":{"type":"integer","title":"Repay Amount","description":"Amount of underlying to repay"},"await_confirmation":{"type":"boolean","title":"Await Confirmation","description":"Set to false to not wait for confirmation","default":true}},"type":"object","required":["repay_amount"],"title":"Body_repay_integrations_benqi__qi_token_address__repay__address__post"},"Body_supply_integrations_benqi__qi_token_address__supply__address__post":{"properties":{"underlying_amount":{"type":"integer","title":"Underlying Amount","description":"Amount of underlying to supply"},"await_confirmation":{"type":"boolean","title":"Await Confirmation","description":"Set to false to not wait for confirmation","default":true}},"type":"object","required":["underlying_amount"],"title":"Body_supply_integrations_benqi__qi_token_address__supply__address__post"},"Body_withdraw_integrations_benqi__qi_token_address__withdraw__address__post":{"properties":{"withdrawal_amount":{"type":"integer","title":"Withdrawal Amount","description":"Amount of underlying to withdraw"},"await_confirmation":{"type":"boolean","title":"Await Confirmation","description":"Set to false to not wait for confirmation","default":true}},"type":"object","required":["withdrawal_amount"],"title":"Body_withdraw_integrations_benqi__qi_token_address__withdraw__address__post"},"Chain":{"type":"integer","enum":[1,-1,-2,-3,-4,42161,43114,8453,56,534352,59144,10,137,2222,0,1101,48900,1923,43111,80094,146,999,130,239,31612,1868,9745,143,57073,14,4114,25363,4217,196,11155111],"title":"Chain"},"ChainType":{"type":"string","enum":["evm","solana","sui","stellar"],"title":"ChainType"},"ClaimRewardsRequest":{"properties":{"bin_ids":{"items":{"type":"integer"},"type":"array","title":"Bin Ids","description":"List of bin ids to claim rewards from. Pass the users currently active bins."},"wait_for_confirmation":{"type":"boolean","title":"Wait For Confirmation","description":"Wait for transaction confirmation. False means we return the tx hash immediately.","default":false}},"type":"object","required":["bin_ids"],"title":"ClaimRewardsRequest"},"DailyStreakClaimRequest":{"properties":{"address":{"type":"string","title":"Address"}},"type":"object","required":["address"],"title":"DailyStreakClaimRequest","description":"Request schema for claiming daily streak."},"DailyStreakClaimResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"pointsAwarded":{"type":"integer","title":"Pointsawarded"},"newStreakDays":{"type":"integer","title":"Newstreakdays"},"totalPoints":{"type":"integer","title":"Totalpoints"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","pointsAwarded","newStreakDays","totalPoints","message"],"title":"DailyStreakClaimResponse","description":"Response schema for daily streak claim."},"DailyStreakStatusResponse":{"properties":{"canClaim":{"type":"boolean","title":"Canclaim"},"currentPoints":{"type":"integer","title":"Currentpoints"},"streakDays":{"type":"integer","title":"Streakdays"},"totalPoints":{"type":"integer","title":"Totalpoints"},"timeUntilReset":{"type":"integer","title":"Timeuntilreset"},"lastClaimedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastclaimedat"},"hasActivePositions":{"type":"boolean","title":"Hasactivepositions"}},"type":"object","required":["canClaim","currentPoints","streakDays","totalPoints","timeUntilReset","lastClaimedAt","hasActivePositions"],"title":"DailyStreakStatusResponse","description":"Response schema for daily streak status."},"DebankAccountData":{"properties":{"positions":{"items":{"$ref":"#/components/schemas/UserProtocol"},"type":"array","title":"Positions"},"app_positions":{"items":{"$ref":"#/components/schemas/AppProtocol"},"type":"array","title":"App Positions","default":[]},"tokens":{"items":{"$ref":"#/components/schemas/TokenObject"},"type":"array","title":"Tokens"}},"type":"object","required":["positions","tokens"],"title":"DebankAccountData"},"DebankAccountDataError":{"properties":{"error":{"type":"string","title":"Error"}},"type":"object","required":["error"],"title":"DebankAccountDataError"},"DetailObject":{"properties":{"supply_token_list":{"items":{"$ref":"#/components/schemas/TokenObject"},"type":"array","title":"Supply Token List","default":[]},"reward_token_list":{"items":{"$ref":"#/components/schemas/TokenObject"},"type":"array","title":"Reward Token List","default":[]},"borrow_token_list":{"items":{"$ref":"#/components/schemas/TokenObject"},"type":"array","title":"Borrow Token List","default":[]},"health_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Health Rate"}},"type":"object","title":"DetailObject"},"ExternalBalance":{"properties":{"protocol":{"type":"string","title":"Protocol"},"externalName":{"type":"string","title":"Externalname"},"amountDepositedInUsd":{"type":"number","title":"Amountdepositedinusd","default":0},"nativeAmountDeposited":{"type":"number","title":"Nativeamountdeposited","default":0},"totalPoints":{"type":"number","title":"Totalpoints","default":0},"multiplier":{"type":"number","title":"Multiplier","default":1.0}},"type":"object","required":["protocol","externalName"],"title":"ExternalBalance"},"FailedVault":{"properties":{"address":{"type":"string","title":"Address"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["address","reason"],"title":"FailedVault","description":"A requested vault that could not be processed, with the reason why."},"FeeResponse":{"properties":{"normal_fees_in_bips":{"type":"number","title":"Normal Fees In Bips"},"stable_fees_in_bips":{"type":"number","title":"Stable Fees In Bips"}},"type":"object","required":["normal_fees_in_bips","stable_fees_in_bips"],"title":"FeeResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthFactorMinimal":{"properties":{"id":{"type":"string","title":"Id"},"datetime":{"type":"string","format":"date-time","title":"Datetime"},"health_factor":{"type":"number","title":"Health Factor"},"total_collateral_value":{"type":"number","title":"Total Collateral Value"},"total_loan_value":{"type":"number","title":"Total Loan Value"}},"type":"object","required":["id","health_factor","total_collateral_value","total_loan_value"],"title":"HealthFactorMinimal"},"HistoricalTimeseriesPoint":{"properties":{"tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tvl"},"daily_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Apy"},"daily_pnl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Daily Pnl"},"share_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Share Price"},"total_assets":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Assets"},"total_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Shares"},"asset_share_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Asset Share Ratio"},"missing":{"type":"boolean","title":"Missing","description":"True if this day was forward-filled because of a missing snapshot."}},"type":"object","required":["tvl","daily_apy","daily_pnl","share_price","total_assets","total_shares","asset_share_ratio","missing"],"title":"HistoricalTimeseriesPoint"},"HistoricalTimeseriesResponse":{"properties":{"data":{"additionalProperties":{"$ref":"#/components/schemas/HistoricalTimeseriesPoint"},"type":"object","title":"Data"},"trailing_apy":{"additionalProperties":{"type":"number"},"type":"object","title":"Trailing Apy","description":"Trailing APY by horizon days (1, 7, 30). Identical to the /tokenized_vault historical_apy field: (end_ratio - start_ratio) / start_ratio * 365 / horizon, where the start ratio is taken pre- or post-update to match today's update phase (smoothed method)."}},"type":"object","required":["data"],"title":"HistoricalTimeseriesResponse"},"HyperliquidRelayerDepositRequest":{"properties":{"hypercore_hash":{"type":"string","title":"Hypercore Hash"},"timestamp":{"type":"integer","title":"Timestamp"},"user":{"type":"string","title":"User"},"amount":{"type":"string","title":"Amount"}},"type":"object","required":["hypercore_hash","timestamp","user","amount"],"title":"HyperliquidRelayerDepositRequest"},"HyperliquidRelayerDepositResponse":{"properties":{"deposit":{"$ref":"#/components/schemas/IHyperliquidRelayerDepositRead"}},"type":"object","required":["deposit"],"title":"HyperliquidRelayerDepositResponse"},"HyperliquidRelayerDepositStatus":{"properties":{"status":{"type":"string","title":"Status"},"tx_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tx Hash"},"deposit":{"$ref":"#/components/schemas/IHyperliquidRelayerDepositRead"}},"type":"object","required":["status","deposit"],"title":"HyperliquidRelayerDepositStatus"},"IApySnapshotCreate":{"properties":{"vault_address":{"type":"string","title":"Vault Address"},"strategist_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Address"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"platform_name":{"type":"string","title":"Platform Name"},"strategy_type":{"type":"string","title":"Strategy Type"},"allocation":{"type":"number","title":"Allocation"},"apy":{"type":"number","title":"Apy"},"points_apy":{"type":"number","title":"Points Apy"},"snapshot_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snapshot Datetime"}},"type":"object","required":["vault_address","chain","platform_name","strategy_type","allocation","apy","points_apy"],"title":"IApySnapshotCreate"},"IApySnapshotRead":{"properties":{"vault_address":{"type":"string","title":"Vault Address"},"strategist_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Address"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"platform_name":{"type":"string","title":"Platform Name"},"strategy_type":{"type":"string","title":"Strategy Type"},"allocation":{"type":"number","title":"Allocation"},"apy":{"type":"number","title":"Apy"},"points_apy":{"type":"number","title":"Points Apy"},"snapshot_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snapshot Datetime"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["vault_address","chain","platform_name","strategy_type","allocation","apy","points_apy","id"],"title":"IApySnapshotRead"},"IComposabilityIntegrationRead":{"properties":{"name":{"type":"string","title":"Name","default":""},"description":{"type":"string","title":"Description","default":""},"earning_multiplier":{"type":"number","title":"Earning Multiplier","default":0.0},"protocol_url":{"type":"string","title":"Protocol Url","default":""},"logo_url":{"type":"string","title":"Logo Url","default":""},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["tokenized_vault_id","id"],"title":"IComposabilityIntegrationRead"},"IEOAOperatorRead":{"properties":{"address":{"type":"string","title":"Address"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"wallet_role":{"anyOf":[{"$ref":"#/components/schemas/WalletRole"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["address","id"],"title":"IEOAOperatorRead"},"IHyperliquidRelayerDepositRead":{"properties":{"transfer_hash":{"type":"string","title":"Transfer Hash"},"deposit_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deposit Hash"},"fordefi_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fordefi Id"},"wallet":{"type":"string","title":"Wallet"},"amount":{"type":"string","title":"Amount"},"is_transfer_verified":{"type":"boolean","title":"Is Transfer Verified","default":false},"is_bridged":{"type":"boolean","title":"Is Bridged","default":false},"is_deposited":{"type":"boolean","title":"Is Deposited","default":false},"is_failed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Failed"},"tokenized_vault_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tokenized Vault Id"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["transfer_hash","wallet","amount","id"],"title":"IHyperliquidRelayerDepositRead"},"IInstantRedeemConfigRead":{"properties":{"subaccount_address":{"type":"string","title":"Subaccount Address"},"output_asset_symbol":{"type":"string","title":"Output Asset Symbol"},"is_paused":{"type":"boolean","title":"Is Paused","default":false},"available_liquidity":{"type":"integer","title":"Available Liquidity","default":0},"redeemable_assets":{"items":{},"type":"array","title":"Redeemable Assets"},"id":{"type":"string","format":"uuid","title":"Id"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["subaccount_address","output_asset_symbol","id","tokenized_vault_id"],"title":"IInstantRedeemConfigRead","description":"Schema for reading an instant_redeem_config entry."},"IOperatorTypeEnum":{"type":"string","enum":["subaccount","eoa"],"title":"IOperatorTypeEnum"},"ISolanaVaultMetadataRead":{"properties":{"vault_state_pda":{"type":"string","title":"Vault State Pda"},"share_mint":{"type":"string","title":"Share Mint"},"deposit_mint":{"type":"string","title":"Deposit Mint"},"deposit_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deposit Token Symbol"},"deposit_token_decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deposit Token Decimals"},"program_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program Id"},"id":{"type":"string","format":"uuid","title":"Id"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["vault_state_pda","share_mint","deposit_mint","id","tokenized_vault_id"],"title":"ISolanaVaultMetadataRead","description":"Schema for reading a solana_vault_metadata entry."},"IStellarVaultMetadataRead":{"properties":{"deposit_token_address":{"type":"string","title":"Deposit Token Address"},"deposit_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deposit Token Symbol"},"deposit_token_decimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Deposit Token Decimals"},"network_name":{"$ref":"#/components/schemas/StellarNetworkName"},"id":{"type":"string","format":"uuid","title":"Id"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["deposit_token_address","network_name","id","tokenized_vault_id"],"title":"IStellarVaultMetadataRead","description":"Schema for reading a stellar_vault_metadata entry."},"IStrategistRead":{"properties":{"strategist_name":{"type":"string","title":"Strategist Name"},"strategist_logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Logo"},"website_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website Url"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["strategist_name","id"],"title":"IStrategistRead"},"ISubaccountReadWithStrategist":{"properties":{"address":{"type":"string","title":"Address"},"wallet_role":{"anyOf":[{"$ref":"#/components/schemas/WalletRole"},{"type":"null"}]},"strategist":{"anyOf":[{"$ref":"#/components/schemas/IStrategistRead"},{"type":"null"}]}},"type":"object","required":["address"],"title":"ISubaccountReadWithStrategist"},"ISwapMarketRead":{"properties":{"internal_name":{"type":"string","title":"Internal Name"},"friendly_name":{"type":"string","title":"Friendly Name"},"market_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Logo Url"},"market_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Url"},"quote_style":{"$ref":"#/components/schemas/SwapQuoteStyle"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["internal_name","friendly_name","quote_style"],"title":"ISwapMarketRead"},"ITokenizedVaultBasicDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Platform Fee Override"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"withdrawal_alert_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Withdrawal Alert Threshold"},"withdrawal_alert_channels":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Withdrawal Alert Channels"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"is_distributor_fee_wrapper":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Distributor Fee Wrapper","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"is_spotlighted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Spotlighted","default":false},"show_cap_filled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Cap Filled","default":false},"withdrawal_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Withdrawal Only","default":false},"historical_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Apy"},"default_apy_horizon":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Apy Horizon"},"iat_traders":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Iat Traders"},"withdrawal_margin_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Withdrawal Margin Seconds"},"management_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Management Fee Waived Until Date"},"management_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Management Fee Waived Until Tvl"},"performance_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Performance Fee Waived Until Date"},"performance_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Performance Fee Waived Until Tvl"},"nav_base_asset_token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Nav Base Asset Token Id"},"nav_pricing_overrides":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Nav Pricing Overrides"},"apy_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Apy Override"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown","default":false},"latest_reported_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Reported Tvl","default":false},"campaign_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Campaign Apy"},"metrics_last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Metrics Last Updated"},"id":{"type":"string","format":"uuid","title":"Id"},"solana_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/ISolanaVaultMetadataRead"},{"type":"null"}]},"stellar_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/IStellarVaultMetadataRead"},{"type":"null"}]},"instant_redeem_config":{"anyOf":[{"$ref":"#/components/schemas/IInstantRedeemConfigRead"},{"type":"null"}]},"view_type":{"type":"string","enum":["basic"],"const":"basic","title":"View Type","default":"basic"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"},"composability_integrations":{"items":{"$ref":"#/components/schemas/IComposabilityIntegrationRead"},"type":"array","title":"Composability Integrations","default":[]},"cached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cached At"},"freshness":{"anyOf":[{"$ref":"#/components/schemas/VaultFreshness"},{"type":"null"}]},"historical_compound_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Compound Apy","description":"Compound-annualized twin of ``historical_apy`` (AUGUST-6765).\n\nDerived from the exact same per-horizon rate as ``historical_apy`` so\nthe two fields can never describe different snapshot pairs. Exposed on\nevery endpoint that serializes this schema (single + list vault reads).","readOnly":true},"tvl":{"type":"number","title":"Tvl","readOnly":true}},"type":"object","required":["address","chain","id","historical_compound_apy","tvl"],"title":"ITokenizedVaultBasicDisplay"},"ITokenizedVaultDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Platform Fee Override"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"withdrawal_alert_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Withdrawal Alert Threshold"},"withdrawal_alert_channels":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Withdrawal Alert Channels"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"is_distributor_fee_wrapper":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Distributor Fee Wrapper","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"is_spotlighted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Spotlighted","default":false},"show_cap_filled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Cap Filled","default":false},"withdrawal_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Withdrawal Only","default":false},"historical_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Apy"},"default_apy_horizon":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Apy Horizon"},"iat_traders":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Iat Traders"},"withdrawal_margin_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Withdrawal Margin Seconds"},"management_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Management Fee Waived Until Date"},"management_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Management Fee Waived Until Tvl"},"performance_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Performance Fee Waived Until Date"},"performance_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Performance Fee Waived Until Tvl"},"nav_base_asset_token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Nav Base Asset Token Id"},"nav_pricing_overrides":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Nav Pricing Overrides"},"apy_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Apy Override"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown","default":false},"latest_reported_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Reported Tvl","default":false},"campaign_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Campaign Apy"},"metrics_last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Metrics Last Updated"},"id":{"type":"string","format":"uuid","title":"Id"},"solana_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/ISolanaVaultMetadataRead"},{"type":"null"}]},"stellar_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/IStellarVaultMetadataRead"},{"type":"null"}]},"instant_redeem_config":{"anyOf":[{"$ref":"#/components/schemas/IInstantRedeemConfigRead"},{"type":"null"}]},"view_type":{"type":"string","enum":["subaccounts"],"const":"subaccounts","title":"View Type","default":"subaccounts"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"},"composability_integrations":{"items":{"$ref":"#/components/schemas/IComposabilityIntegrationRead"},"type":"array","title":"Composability Integrations","default":[]},"cached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cached At"},"freshness":{"anyOf":[{"$ref":"#/components/schemas/VaultFreshness"},{"type":"null"}]},"subaccounts":{"items":{"$ref":"#/components/schemas/ISubaccountReadWithStrategist"},"type":"array","title":"Subaccounts","default":[]},"eoa_operators":{"items":{"$ref":"#/components/schemas/IEOAOperatorRead"},"type":"array","title":"Eoa Operators","default":[]},"historical_compound_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Compound Apy","description":"Compound-annualized twin of ``historical_apy`` (AUGUST-6765).\n\nDerived from the exact same per-horizon rate as ``historical_apy`` so\nthe two fields can never describe different snapshot pairs. Exposed on\nevery endpoint that serializes this schema (single + list vault reads).","readOnly":true},"tvl":{"type":"number","title":"Tvl","readOnly":true},"operators":{"items":{"$ref":"#/components/schemas/OperatorRead"},"type":"array","title":"Operators","readOnly":true}},"type":"object","required":["address","chain","id","historical_compound_apy","tvl","operators"],"title":"ITokenizedVaultDisplay"},"ITokenizedVaultFullDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Platform Fee Override"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"withdrawal_alert_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Withdrawal Alert Threshold"},"withdrawal_alert_channels":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Withdrawal Alert Channels"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"is_distributor_fee_wrapper":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Distributor Fee Wrapper","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"is_spotlighted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Spotlighted","default":false},"show_cap_filled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Cap Filled","default":false},"withdrawal_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Withdrawal Only","default":false},"historical_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Apy"},"default_apy_horizon":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Apy Horizon"},"iat_traders":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Iat Traders"},"withdrawal_margin_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Withdrawal Margin Seconds"},"management_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Management Fee Waived Until Date"},"management_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Management Fee Waived Until Tvl"},"performance_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Performance Fee Waived Until Date"},"performance_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Performance Fee Waived Until Tvl"},"nav_base_asset_token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Nav Base Asset Token Id"},"nav_pricing_overrides":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Nav Pricing Overrides"},"apy_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Apy Override"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown","default":false},"latest_reported_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Reported Tvl","default":false},"campaign_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Campaign Apy"},"metrics_last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Metrics Last Updated"},"id":{"type":"string","format":"uuid","title":"Id"},"solana_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/ISolanaVaultMetadataRead"},{"type":"null"}]},"stellar_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/IStellarVaultMetadataRead"},{"type":"null"}]},"instant_redeem_config":{"anyOf":[{"$ref":"#/components/schemas/IInstantRedeemConfigRead"},{"type":"null"}]},"view_type":{"type":"string","enum":["all"],"const":"all","title":"View Type","default":"all"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"},"composability_integrations":{"items":{"$ref":"#/components/schemas/IComposabilityIntegrationRead"},"type":"array","title":"Composability Integrations","default":[]},"cached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cached At"},"freshness":{"anyOf":[{"$ref":"#/components/schemas/VaultFreshness"},{"type":"null"}]},"historical_snapshots":{"items":{"$ref":"#/components/schemas/IUpshiftHistoricalSnapshotRead"},"type":"array","title":"Historical Snapshots","default":[]},"subaccounts":{"items":{"$ref":"#/components/schemas/ISubaccountReadWithStrategist"},"type":"array","title":"Subaccounts","default":[]},"eoa_operators":{"items":{"$ref":"#/components/schemas/IEOAOperatorRead"},"type":"array","title":"Eoa Operators","default":[]},"historical_compound_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Compound Apy","description":"Compound-annualized twin of ``historical_apy`` (AUGUST-6765).\n\nDerived from the exact same per-horizon rate as ``historical_apy`` so\nthe two fields can never describe different snapshot pairs. Exposed on\nevery endpoint that serializes this schema (single + list vault reads).","readOnly":true},"tvl":{"type":"number","title":"Tvl","readOnly":true},"pnl_per_share":{"additionalProperties":{"type":"number"},"type":"object","title":"Pnl Per Share","readOnly":true},"daily_pnl_per_share":{"additionalProperties":{"type":"number"},"type":"object","title":"Daily Pnl Per Share","readOnly":true},"operators":{"items":{"$ref":"#/components/schemas/OperatorRead"},"type":"array","title":"Operators","readOnly":true}},"type":"object","required":["address","chain","id","historical_compound_apy","tvl","pnl_per_share","daily_pnl_per_share","operators"],"title":"ITokenizedVaultFullDisplay"},"ITokenizedVaultSnapshotsDisplay":{"properties":{"address":{"type":"string","title":"Address"},"yield_distributor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Yield Distributor"},"chain":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"internal_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal Type"},"public_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Type"},"is_featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured","default":false},"is_visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Visible","default":true},"weekly_performance_fee_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weekly Performance Fee Bps"},"platform_fee_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Platform Fee Override"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"vault_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Name"},"reserve_target":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Target","default":0.05},"reserve_tolerance":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Reserve Tolerance","default":0.01},"withdrawal_alert_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Withdrawal Alert Threshold"},"withdrawal_alert_channels":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Withdrawal Alert Channels"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"active"},"is_charge_fees_manual":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Charge Fees Manual","default":false},"receipt_token_symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Token Symbol"},"enable_external_assets_update":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable External Assets Update","default":false},"is_distributor_fee_wrapper":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Distributor Fee Wrapper","default":false},"vault_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Logo Url"},"risk":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk"},"max_daily_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Daily Drawdown"},"chain_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain Type","default":"evm"},"enabled_historical_price_horizons":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Enabled Historical Price Horizons"},"is_spotlighted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Spotlighted","default":false},"show_cap_filled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Cap Filled","default":false},"withdrawal_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Withdrawal Only","default":false},"historical_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Apy"},"default_apy_horizon":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Apy Horizon"},"iat_traders":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Iat Traders"},"withdrawal_margin_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Withdrawal Margin Seconds"},"management_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Management Fee Waived Until Date"},"management_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Management Fee Waived Until Tvl"},"performance_fee_waived_until_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Performance Fee Waived Until Date"},"performance_fee_waived_until_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Performance Fee Waived Until Tvl"},"nav_base_asset_token_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Nav Base Asset Token Id"},"nav_pricing_overrides":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Nav Pricing Overrides"},"apy_override":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Apy Override"},"max_drawdown":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Drawdown","default":false},"latest_reported_tvl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latest Reported Tvl","default":false},"campaign_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Campaign Apy"},"metrics_last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Metrics Last Updated"},"id":{"type":"string","format":"uuid","title":"Id"},"solana_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/ISolanaVaultMetadataRead"},{"type":"null"}]},"stellar_vault_metadata":{"anyOf":[{"$ref":"#/components/schemas/IStellarVaultMetadataRead"},{"type":"null"}]},"instant_redeem_config":{"anyOf":[{"$ref":"#/components/schemas/IInstantRedeemConfigRead"},{"type":"null"}]},"view_type":{"type":"string","enum":["snapshots"],"const":"snapshots","title":"View Type","default":"snapshots"},"rewards":{"items":{"$ref":"#/components/schemas/TokenizedVaultReward"},"type":"array","title":"Rewards","default":[]},"reported_apy":{"anyOf":[{"$ref":"#/components/schemas/TokenizedVaultReportedAPY"},{"type":"null"}]},"receipt_token_integrations":{"items":{"$ref":"#/components/schemas/Token"},"type":"array","title":"Receipt Token Integrations"},"hardcoded_strategists":{"items":{"$ref":"#/components/schemas/IStrategistRead"},"type":"array","title":"Hardcoded Strategists"},"composability_integrations":{"items":{"$ref":"#/components/schemas/IComposabilityIntegrationRead"},"type":"array","title":"Composability Integrations","default":[]},"cached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cached At"},"freshness":{"anyOf":[{"$ref":"#/components/schemas/VaultFreshness"},{"type":"null"}]},"historical_snapshots":{"items":{"$ref":"#/components/schemas/IUpshiftHistoricalSnapshotRead"},"type":"array","title":"Historical Snapshots","default":[]},"historical_compound_apy":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Historical Compound Apy","description":"Compound-annualized twin of ``historical_apy`` (AUGUST-6765).\n\nDerived from the exact same per-horizon rate as ``historical_apy`` so\nthe two fields can never describe different snapshot pairs. Exposed on\nevery endpoint that serializes this schema (single + list vault reads).","readOnly":true},"tvl":{"type":"number","title":"Tvl","readOnly":true},"pnl_per_share":{"additionalProperties":{"type":"number"},"type":"object","title":"Pnl Per Share","readOnly":true},"daily_pnl_per_share":{"additionalProperties":{"type":"number"},"type":"object","title":"Daily Pnl Per Share","readOnly":true}},"type":"object","required":["address","chain","id","historical_compound_apy","tvl","pnl_per_share","daily_pnl_per_share"],"title":"ITokenizedVaultSnapshotsDisplay"},"ITokenizedVaultStatus":{"type":"string","enum":["active","closed","migrated"],"title":"ITokenizedVaultStatus"},"IUpshiftHistoricalSnapshotRead":{"properties":{"total_assets":{"type":"number","title":"Total Assets","default":0},"total_shares":{"type":"number","title":"Total Shares","default":0},"asset_share_ratio":{"type":"number","title":"Asset Share Ratio","default":0.0},"underlying_price":{"type":"number","title":"Underlying Price","default":0.0},"snapshot_datetime":{"type":"string","format":"date-time","title":"Snapshot Datetime"},"block_id":{"type":"integer","title":"Block Id","default":0},"id":{"type":"string","format":"uuid","title":"Id"},"tvl":{"type":"number","title":"Tvl","readOnly":true}},"type":"object","required":["id","tvl"],"title":"IUpshiftHistoricalSnapshotRead"},"IdleBalancesInfo":{"properties":{"total":{"type":"integer","title":"Total"},"wallets":{"items":{"$ref":"#/components/schemas/WalletIdleFund"},"type":"array","title":"Wallets"}},"type":"object","required":["total","wallets"],"title":"IdleBalancesInfo","description":"Aggregated idle funds for all wallets associated with a vault."},"LeaderboardEntry":{"properties":{"rank":{"type":"integer","title":"Rank"},"userAddress":{"type":"string","title":"Useraddress"},"topVault":{"$ref":"#/components/schemas/LeaderboardTopVault"},"streakDays":{"type":"integer","title":"Streakdays"},"streakTooltip":{"type":"string","title":"Streaktooltip","default":"Total number of days a user has held a deposit in any Upshift vault."},"totalPoints":{"type":"number","title":"Totalpoints","default":0}},"type":"object","required":["rank","userAddress","topVault","streakDays"],"title":"LeaderboardEntry"},"LeaderboardResponse":{"properties":{"page":{"type":"integer","title":"Page"},"perPage":{"type":"integer","title":"Perpage"},"totalItems":{"type":"integer","title":"Totalitems"},"totalPages":{"type":"integer","title":"Totalpages"},"items":{"items":{"$ref":"#/components/schemas/LeaderboardEntry"},"type":"array","title":"Items"}},"type":"object","required":["page","perPage","totalItems","totalPages","items"],"title":"LeaderboardResponse"},"LeaderboardTopVault":{"properties":{"name":{"type":"string","title":"Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"deposit":{"type":"object","title":"Deposit"}},"type":"object","required":["name","address","deposit"],"title":"LeaderboardTopVault"},"LendingPoolLoanbookResponse":{"properties":{"loans":{"items":{"$ref":"#/components/schemas/LoanBookBase"},"type":"array","title":"Loans"}},"type":"object","required":["loans"],"title":"LendingPoolLoanbookResponse"},"LiquidityInfo":{"properties":{"available":{"type":"integer","title":"Available"}},"type":"object","required":["available"],"title":"LiquidityInfo","description":"Available liquidity in the vault."},"LoanBookBase":{"properties":{"address":{"type":"string","title":"Address"},"lender":{"type":"string","title":"Lender"},"borrower":{"type":"string","title":"Borrower"},"state":{"$ref":"#/components/schemas/LoanStateStr"},"total_repaid":{"type":"number","title":"Total Repaid"},"principal_token":{"$ref":"#/components/schemas/WhitelistedTokenModel"},"principal_amount":{"type":"number","title":"Principal Amount"},"interest_amount":{"type":"number","title":"Interest Amount"},"upcoming_payment":{"$ref":"#/components/schemas/UpcomingPayment"},"apr":{"type":"number","title":"Apr"},"initial_principal_amount":{"type":"number","title":"Initial Principal Amount"},"deployed_date":{"type":"string","format":"date-time","title":"Deployed Date"},"payment_interval":{"type":"number","title":"Payment Interval"}},"type":"object","required":["address","lender","borrower","state","total_repaid","principal_token","principal_amount","interest_amount","upcoming_payment","apr","initial_principal_amount","deployed_date","payment_interval"],"title":"LoanBookBase"},"LoanStateStr":{"type":"string","enum":["PREAPPROVED","FUNDING_REQUIRED","FUNDED","ACTIVE","CANCELLED","MATURED","CLOSED"],"title":"LoanStateStr"},"OperatorRead":{"properties":{"address":{"type":"string","title":"Address"},"operator_type":{"$ref":"#/components/schemas/IOperatorTypeEnum"}},"type":"object","required":["address","operator_type"],"title":"OperatorRead"},"PendingWithdrawal":{"properties":{"date":{"type":"string","title":"Date"},"amount_raw":{"type":"integer","title":"Amount Raw"},"normalized_amount":{"type":"string","title":"Normalized Amount"},"vault_percentage":{"type":"string","title":"Vault Percentage"},"vault":{"type":"string","title":"Vault"},"receiver":{"type":"string","title":"Receiver"}},"type":"object","required":["date","amount_raw","normalized_amount","vault_percentage","vault","receiver"],"title":"PendingWithdrawal"},"PointsResponse":{"properties":{"totalPoints":{"type":"number","title":"Totalpoints"},"referralEarnings":{"type":"number","title":"Referralearnings"},"pools":{"additionalProperties":{"$ref":"#/components/schemas/PoolBalance"},"type":"object","title":"Pools"},"external":{"additionalProperties":{"$ref":"#/components/schemas/ExternalBalance"},"type":"object","title":"External"},"referrals":{"additionalProperties":{"$ref":"#/components/schemas/ReferralBalance"},"type":"object","title":"Referrals"},"topVault":{"anyOf":[{"$ref":"#/components/schemas/TopVault"},{"type":"null"}]},"streak":{"type":"integer","title":"Streak"},"daily_streak_points":{"type":"integer","title":"Daily Streak Points"},"manual_points":{"type":"integer","title":"Manual Points"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank"}},"type":"object","required":["totalPoints","referralEarnings","pools","external","referrals","topVault","streak","daily_streak_points","manual_points"],"title":"PointsResponse"},"PoolBalance":{"properties":{"amountDepositedInUsd":{"type":"number","title":"Amountdepositedinusd","default":0},"nativeAmountDeposited":{"type":"number","title":"Nativeamountdeposited","default":0},"totalPoints":{"type":"number","title":"Totalpoints","default":0},"hasPendingRewards":{"type":"boolean","title":"Haspendingrewards","default":false}},"type":"object","title":"PoolBalance"},"PoolObject":{"properties":{"controller":{"type":"string","title":"Controller"},"id":{"type":"string","title":"Id"},"chain":{"type":"string","title":"Chain"},"project_id":{"type":"string","title":"Project Id"},"adapter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adapter Id"},"time_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Time At"}},"type":"object","required":["controller","id","chain","project_id"],"title":"PoolObject"},"PortfolioItemObject":{"properties":{"stats":{"$ref":"#/components/schemas/StatsObject"},"update_at":{"type":"number","title":"Update At"},"name":{"$ref":"#/components/schemas/PortfolioItemObjectName"},"detail_types":{"items":{"type":"string"},"type":"array","title":"Detail Types"},"detail":{"$ref":"#/components/schemas/DetailObject"},"proxy_detail":{"anyOf":[{"$ref":"#/components/schemas/ProxyDetailObject"},{"type":"null"}]},"position_index":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Index"},"pool":{"$ref":"#/components/schemas/PoolObject"}},"type":"object","required":["stats","update_at","name","detail_types","detail","pool"],"title":"PortfolioItemObject"},"PortfolioItemObjectName":{"type":"string","enum":["Yield","Deposit","Staked","Locked","Farming","Leveraged Farming","Lending","Vesting","Rewards","Airdrop","Liquidity Pool","Options Seller","Options Buyer","Insurance","Investment","Governance","Perpetuals","NFT Staked","NFT Liquidity Pool","NFT Lending","NFT Fraction","NFT P2P Borrower","NFT P2P Lender"],"title":"PortfolioItemObjectName"},"ProjectObject":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"site_url":{"type":"string","title":"Site Url"},"logo_url":{"type":"string","title":"Logo Url"}},"type":"object","required":["id","name","site_url","logo_url"],"title":"ProjectObject"},"ProxyDetailObject":{"properties":{"project":{"anyOf":[{"$ref":"#/components/schemas/ProjectObject"},{"type":"null"}]},"proxy_contract_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proxy Contract Id"}},"type":"object","title":"ProxyDetailObject"},"PublicChainRead":{"properties":{"chain_id":{"type":"integer","title":"Chain Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["chain_id","name"],"title":"PublicChainRead"},"PublicSubaccountRead":{"properties":{"address":{"type":"string","title":"Address"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"chains":{"items":{"$ref":"#/components/schemas/PublicChainRead"},"type":"array","title":"Chains"}},"type":"object","required":["address","name","status","chains"],"title":"PublicSubaccountRead"},"RedeemFailureAck":{"properties":{"received":{"type":"boolean","enum":[true],"const":true,"title":"Received","default":true}},"type":"object","title":"RedeemFailureAck","description":"Acknowledgement that a report was received. Nothing more.\n\nCarries no outcome, and that is the point: unknown vault, not opted in, no\nlinked chat, rate-limited and delivered all return this identical body.\nEven a boolean would let an unauthenticated caller enumerate which vaults\nare watched. What happened is in the log."},"RedeemFailureReport":{"properties":{"phase":{"type":"string","enum":["simulation","submission"],"title":"Phase"},"chain":{"$ref":"#/components/schemas/ChainType"},"network":{"type":"string","maxLength":32,"title":"Network"},"contractId":{"type":"string","maxLength":128,"minLength":1,"title":"Contractid"},"eoa":{"type":"string","maxLength":128,"minLength":1,"title":"Eoa"},"sharesRaw":{"type":"string","pattern":"^[0-9]{1,39}$","title":"Sharesraw"},"error":{"type":"string","maxLength":2000,"minLength":1,"title":"Error"},"txHash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Txhash"},"resultCode":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Resultcode"},"appName":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Appname"}},"type":"object","required":["phase","chain","network","contractId","eoa","sharesRaw","error"],"title":"RedeemFailureReport","description":"A failed vault redemption, as reported by the August SDK.\n\nAn untrusted claim, not an attested fact: the endpoint verifies the vault\nopted in and rate-limits before anything reaches a curator.\n\nUnknown fields are ignored rather than rejected. The caller is a published\nSDK living in partners' bundles for months, so with `forbid` the first\nfield a future SDK adds would 422 every report from every un-redeployed\ncopy. The length and pattern constraints are the actual defence."},"RedemptionByDate":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"assets":{"type":"integer","title":"Assets"},"days_until_due":{"type":"integer","title":"Days Until Due"},"is_overdue":{"type":"boolean","title":"Is Overdue","readOnly":true}},"type":"object","required":["date","assets","days_until_due","is_overdue"],"title":"RedemptionByDate","description":"Single redemption entry for a specific date."},"RedemptionSummary":{"properties":{"total_pending":{"type":"integer","title":"Total Pending"},"pending_count":{"type":"integer","title":"Pending Count"},"pending_to_liquidity_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pending To Liquidity Ratio"},"is_liquidity_sufficient":{"type":"boolean","title":"Is Liquidity Sufficient"},"shortfall":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shortfall"},"next_redemption_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Redemption Date"},"is_overdue":{"type":"boolean","title":"Is Overdue"}},"type":"object","required":["total_pending","pending_count","is_liquidity_sufficient","is_overdue"],"title":"RedemptionSummary","description":"Summary of pending redemptions for a vault."},"ReferralBalance":{"properties":{"totalPoints":{"type":"number","title":"Totalpoints","default":0},"amountDepositedInUsd":{"type":"number","title":"Amountdepositedinusd","default":0},"nativeAmountDeposited":{"type":"number","title":"Nativeamountdeposited","default":0}},"type":"object","title":"ReferralBalance"},"RevertResponse":{"properties":{"error_messages":{"items":{"type":"string"},"type":"array","title":"Error Messages","default":[]},"revert_reasons":{"items":{"type":"string"},"type":"array","title":"Revert Reasons","default":[]},"universal_subaccount_errors":{"items":{"type":"string"},"type":"array","title":"Universal Subaccount Errors","default":[]}},"type":"object","title":"RevertResponse"},"SingleVaultRedemptionResponse":{"properties":{"vault":{"$ref":"#/components/schemas/VaultInfo"},"asset":{"$ref":"#/components/schemas/AssetInfo"},"liquidity":{"$ref":"#/components/schemas/LiquidityInfo"},"summary":{"$ref":"#/components/schemas/RedemptionSummary"},"redemptions_by_date":{"items":{"$ref":"#/components/schemas/RedemptionByDate"},"type":"array","title":"Redemptions By Date"},"idle_balances":{"$ref":"#/components/schemas/IdleBalancesInfo"}},"type":"object","required":["vault","asset","liquidity","summary","redemptions_by_date"],"title":"SingleVaultRedemptionResponse","description":"Complete response for a single vault's pending redemptions."},"StatsObject":{"properties":{"asset_usd_value":{"type":"number","title":"Asset Usd Value"},"debt_usd_value":{"type":"number","title":"Debt Usd Value"},"net_usd_value":{"type":"number","title":"Net Usd Value"}},"type":"object","required":["asset_usd_value","debt_usd_value","net_usd_value"],"title":"StatsObject"},"StellarNetworkName":{"type":"string","enum":["mainnet","testnet"],"title":"StellarNetworkName"},"SwapQuoteList":{"properties":{"august_fee_rate_in_bips":{"type":"number","title":"August Fee Rate In Bips"},"source_price_usd":{"type":"number","title":"Source Price Usd"},"destination_price_usd":{"type":"number","title":"Destination Price Usd"},"quotes":{"items":{"$ref":"#/components/schemas/SwapQuoteResponse"},"type":"array","title":"Quotes","default":[]}},"type":"object","required":["august_fee_rate_in_bips","source_price_usd","destination_price_usd"],"title":"SwapQuoteList"},"SwapQuoteRequest":{"properties":{"source_token":{"type":"string","title":"Source Token"},"source_chain":{"$ref":"#/components/schemas/Chain"},"destination_token":{"type":"string","title":"Destination Token"},"destination_chain":{"$ref":"#/components/schemas/Chain"},"source_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Source Amount"},"destination_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Destination Amount"},"markets":{"items":{"type":"string"},"type":"array","title":"Markets","description":"List of markets to request quotes for. Default is the empty list which returns all.","default":[]},"max_slippage":{"type":"number","title":"Max Slippage","description":"Maximum slippage allowed (in bips) for the quote. Default slippage is 10 bips.","default":10}},"type":"object","required":["source_token","source_chain","destination_token","destination_chain"],"title":"SwapQuoteRequest"},"SwapQuoteResponse":{"properties":{"source_token":{"type":"string","title":"Source Token"},"source_chain":{"$ref":"#/components/schemas/Chain"},"destination_token":{"type":"string","title":"Destination Token"},"destination_chain":{"$ref":"#/components/schemas/Chain"},"source_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Source Amount"},"destination_amount":{"type":"number","title":"Destination Amount"},"market":{"$ref":"#/components/schemas/ISwapMarketRead"},"slippage":{"type":"number","title":"Slippage","default":0},"extra_data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extra Data"}},"type":"object","required":["source_token","source_chain","destination_token","destination_chain","destination_amount","market"],"title":"SwapQuoteResponse","description":"Response model for swap quotes.\n\nAttributes:\n    extra_data: Optional market-specific data exposed in the API response.\n        Each market implementation documents its expected fields.\n        See individual market classes for field specifications."},"SwapQuoteStyle":{"type":"string","enum":["buy","sell","both"],"title":"SwapQuoteStyle"},"SwapTransactionPayload":{"properties":{"target":{"type":"string","title":"Target","description":"Contract address the user should send the transaction to (the universal subaccount)."},"data":{"type":"string","title":"Data","description":"0x-prefixed hex calldata for the executeModule(bytes32,bytes) call."},"value":{"type":"integer","minimum":0.0,"title":"Value","description":"Native currency value (wei) to attach to the transaction.","default":0},"chain":{"allOf":[{"$ref":"#/components/schemas/Chain"}],"description":"Chain on which the transaction should be sent."},"market":{"type":"string","title":"Market","description":"Internal name of the swap market whose route is encoded in `data`."},"min_amount_out":{"type":"integer","minimum":0.0,"title":"Min Amount Out","description":"Minimum destination token amount (in raw units) the swap will accept before reverting."}},"type":"object","required":["target","data","chain","market","min_amount_out"],"title":"SwapTransactionPayload","description":"Calldata payload the frontend bundles into a tx for the user to sign.\n\nThe user's wallet sends a transaction to `target` with `data` as the\ncalldata and `value` wei of native currency attached."},"Token":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"integer","title":"Chain"},"token_class":{"type":"string","title":"Token Class"},"shorthand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shorthand"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"tiingo_ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiingo Ticker"},"coingecko_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coingecko Id"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"is_transferable":{"type":"boolean","title":"Is Transferable","default":true},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"position_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Position Id"},"stable_token_pair_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stable Token Pair Id"}},"type":"object","required":["address","chain","token_class","shorthand"],"title":"Token"},"TokenObject":{"properties":{"id":{"type":"string","title":"Id"},"chain":{"type":"string","title":"Chain"},"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"},"display_symbol":{"title":"Display Symbol"},"optimized_symbol":{"type":"string","title":"Optimized Symbol"},"decimals":{"type":"integer","title":"Decimals"},"protocol_id":{"type":"string","title":"Protocol Id"},"is_core":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Core"},"price":{"type":"number","title":"Price"},"time_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time At"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"price_24h_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price 24H Change"},"credit_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Credit Score"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"is_scam":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Scam"},"is_suspicious":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Suspicious"},"is_wallet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Wallet"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount"},"raw_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Raw Amount"}},"type":"object","required":["id","chain","name","symbol","display_symbol","optimized_symbol","decimals","protocol_id","price"],"title":"TokenObject"},"TokenType":{"type":"integer","enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"title":"TokenType","description":"Append only. Do not change the order of these values."},"TokenizedVaultReportedAPY":{"properties":{"apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Apy"},"underlying_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Underlying Apy"},"liquid_apy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Apy"},"rewards_compounded":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Compounded"},"rewards_claimable":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rewards Claimable"},"explainer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explainer"},"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenized_vault_id":{"type":"string","format":"uuid","title":"Tokenized Vault Id"}},"type":"object","required":["tokenized_vault_id"],"title":"TokenizedVaultReportedAPY"},"TokenizedVaultReward":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"tokenizedvault_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Tokenizedvault Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"multiplier":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Multiplier"},"start_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Datetime"},"end_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Datetime"}},"type":"object","title":"TokenizedVaultReward"},"TokenizedVaultRewardDelete":{"properties":{"reward_id":{"type":"string","format":"uuid","title":"Reward Id"}},"type":"object","required":["reward_id"],"title":"TokenizedVaultRewardDelete"},"TokenizedVaultRewardUpdate":{"properties":{"reward_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reward Id"},"vault_address":{"type":"string","title":"Vault Address"},"text":{"type":"string","title":"Text"},"multiplier":{"type":"number","title":"Multiplier"},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"}},"type":"object","required":["vault_address","text","multiplier"],"title":"TokenizedVaultRewardUpdate"},"TopVault":{"properties":{"lifetimeDeposit":{"type":"number","title":"Lifetimedeposit"},"address":{"type":"string","title":"Address"}},"type":"object","required":["lifetimeDeposit","address"],"title":"TopVault"},"TraderJoeDepositRequest":{"properties":{"token_x_amount":{"type":"integer","title":"Token X Amount"},"token_y_amount":{"type":"integer","title":"Token Y Amount"},"center_bin":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Center Bin","description":"Center bin to deposit to. If none specified, use the current active bin."},"bin_deltas":{"items":{"type":"integer"},"type":"array","title":"Bin Deltas"},"distribution_x":{"items":{"type":"number"},"type":"array","title":"Distribution X"},"distribution_y":{"items":{"type":"number"},"type":"array","title":"Distribution Y"},"slippage_bips_allowed":{"type":"number","title":"Slippage Bips Allowed"},"wait_for_confirmation":{"type":"boolean","title":"Wait For Confirmation","description":"Wait for transaction confirmation. False means we return the tx hash immediately.","default":false},"use_native_token":{"type":"boolean","title":"Use Native Token","description":"Use AVAX instead of WAVAX to deposit.","default":false}},"type":"object","required":["token_x_amount","token_y_amount","bin_deltas","distribution_x","distribution_y","slippage_bips_allowed"],"title":"TraderJoeDepositRequest"},"TraderJoeRebalanceRequest":{"properties":{"withdrawal_request":{"$ref":"#/components/schemas/TraderJoeWithdrawalRequest"},"deposit_request":{"$ref":"#/components/schemas/TraderJoeDepositRequest"},"wait_for_confirmation":{"type":"boolean","title":"Wait For Confirmation","description":"Wait for transaction confirmation. False means we return the tx hash immediately.","default":false}},"type":"object","required":["withdrawal_request","deposit_request"],"title":"TraderJoeRebalanceRequest"},"TraderJoeWithdrawalRequest":{"properties":{"bins":{"items":{"type":"integer"},"type":"array","title":"Bins"},"amounts":{"items":{"type":"integer"},"type":"array","title":"Amounts"},"min_amount_token_x":{"type":"integer","title":"Min Amount Token X"},"min_amount_token_y":{"type":"integer","title":"Min Amount Token Y"},"wait_for_confirmation":{"type":"boolean","title":"Wait For Confirmation","description":"Wait for transaction confirmation. False means we return the tx hash immediately.","default":false},"use_native_token":{"type":"boolean","title":"Use Native Token","description":"IF true withdraw AVAX instead of WAVAX.","default":false}},"type":"object","required":["bins","amounts","min_amount_token_x","min_amount_token_y"],"title":"TraderJoeWithdrawalRequest"},"UnrealizedPnLResponse":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"vault_name":{"type":"string","title":"Vault Name"},"vault_address":{"type":"string","title":"Vault Address"},"strategist_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strategist Name"},"reference_asset":{"type":"string","title":"Reference Asset"},"asset_price":{"type":"number","title":"Asset Price"},"tvl_on_vault":{"type":"number","title":"Tvl On Vault"},"current_redeem_ratio":{"type":"number","title":"Current Redeem Ratio"},"actual_tvl":{"type":"number","title":"Actual Tvl"},"adjusted_redeem_ratio":{"type":"number","title":"Adjusted Redeem Ratio"},"unrealized_pnl":{"type":"number","title":"Unrealized Pnl"},"unrealized_pnl_in_asset":{"type":"number","title":"Unrealized Pnl In Asset"}},"type":"object","required":["timestamp","vault_name","vault_address","reference_asset","asset_price","tvl_on_vault","current_redeem_ratio","actual_tvl","adjusted_redeem_ratio","unrealized_pnl","unrealized_pnl_in_asset"],"title":"UnrealizedPnLResponse"},"UpcomingPayment":{"properties":{"amount":{"type":"number","title":"Amount"},"due_date":{"type":"string","format":"date-time","title":"Due Date"}},"type":"object","required":["amount","due_date"],"title":"UpcomingPayment","description":"The amount (adjusted by decimals) and next due date (Unix timestamp) for upcoming loan payment"},"UserProtocol":{"properties":{"id":{"type":"string","title":"Id"},"chain":{"type":"string","title":"Chain"},"name":{"type":"string","title":"Name"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"site_url":{"type":"string","title":"Site Url"},"has_supported_portfolio":{"type":"boolean","title":"Has Supported Portfolio"},"portfolio_item_list":{"items":{"$ref":"#/components/schemas/PortfolioItemObject"},"type":"array","title":"Portfolio Item List"}},"type":"object","required":["id","chain","name","site_url","has_supported_portfolio","portfolio_item_list"],"title":"UserProtocol"},"UserRegistrationRequest":{"properties":{"user_address":{"type":"string","title":"User Address"},"referrer_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referrer Address"},"chain_id":{"type":"integer","minimum":1.0,"title":"Chain Id"},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]+$","title":"Signature"},"nonce":{"type":"string","maxLength":128,"minLength":8,"title":"Nonce"},"expiry":{"type":"integer","minimum":0.0,"title":"Expiry"}},"type":"object","required":["user_address","chain_id","signature","nonce","expiry"],"title":"UserRegistrationRequest"},"UserRegistrationResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"user_id":{"type":"string","title":"User Id"},"referral_bonus_awarded":{"type":"boolean","title":"Referral Bonus Awarded","default":false}},"type":"object","required":["success","message","user_id"],"title":"UserRegistrationResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VaultFreshness":{"properties":{"apy_computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Apy Computed At","description":"When historical_apy / TVL / drawdown were last recomputed."},"share_ratio_snapshot_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Share Ratio Snapshot At","description":"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":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cached At","description":"When this response body was assembled (pre-cache)."}},"type":"object","title":"VaultFreshness","description":"Per-provenance ages for a vault's NAV-derived figures (AUGUST-6124).\n\nA single \"last updated\" stamp cannot honestly describe this payload: the\nshare price a client displays is typically a live ``totalAssets() /\ntotalSupply()`` chain read, while ``historical_apy`` is a column recomputed\nby a periodic job. Printing one timestamp against both replaces a silent\ndisagreement with a printed one, so each provenance gets its own stamp.\n\n``share_ratio_snapshot_at`` later than ``apy_computed_at`` is the staleness\nsignal worth surfacing: a snapshot has landed that the APY has not yet been\nrecomputed from. The two are written by the same ``update_vault_metrics``\ncall in normal operation, so they only diverge when a metrics recompute\nfailed or has not run yet.\n\nAll fields are UTC-aware and serialize as RFC 3339 with a trailing ``Z``.\nHold that convention: JS ``new Date()`` parses an offset-less date-time as\nlocal time, so dropping the suffix silently shifts every rendered value.\nThe validator below enforces it on *every* construction path, including\nrevival from a cached body — see the note on ``ITokenizedVaultBasicDisplay\n.freshness`` for why round-tripping is load-bearing here."},"VaultHistoryItem":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"type":"string","enum":["deposit","withdraw-processed","withdraw-request"],"title":"Type"},"wallet":{"type":"string","title":"Wallet"},"pool":{"type":"string","title":"Pool"},"chain_id":{"type":"integer","title":"Chain Id"},"amount_raw":{"type":"string","title":"Amount Raw"},"transaction_hash":{"type":"string","title":"Transaction Hash"},"block_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Block Number"},"asset_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Address"}},"type":"object","required":["timestamp","type","wallet","pool","chain_id","amount_raw","transaction_hash"],"title":"VaultHistoryItem","description":"A single settled deposit or withdraw of the vault's underlying asset.\n\nSnapshotted from the vault's Goldsky subgraph into ``upshift.vault_history``\nso this history survives retiring the subgraph. Share-token (receipt)\ntransfers and approvals live on the receipt-token subgraph and are NOT\nserved here."},"VaultInfo":{"properties":{"address":{"type":"string","title":"Address"},"chain_id":{"type":"integer","title":"Chain Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}},"type":"object","required":["address","chain_id"],"title":"VaultInfo","description":"Basic vault identification information."},"WalletIdleFund":{"properties":{"address":{"type":"string","title":"Address"},"wallet_type":{"type":"string","title":"Wallet Type"},"amount":{"type":"integer","title":"Amount"}},"type":"object","required":["address","wallet_type","amount"],"title":"WalletIdleFund","description":"Idle asset balance sitting in a single vault-associated wallet."},"WalletRole":{"type":"string","enum":["operator","reserve","buffer","mint"],"title":"WalletRole","description":"Operational role of a vault wallet, surfaced in the NAV Wallet Table.\n\nSet by ops on a Subaccount / EOAOperator; unlabeled wallets are ``None``."},"WhitelistedTokenModel":{"properties":{"chain":{"$ref":"#/components/schemas/Chain"},"name":{"type":"string","title":"Name"},"token_type":{"$ref":"#/components/schemas/TokenType"},"address":{"type":"string","title":"Address"},"decimals":{"type":"integer","title":"Decimals"},"symbol":{"type":"string","title":"Symbol"},"discount_factor":{"type":"number","title":"Discount Factor","default":0.0},"img_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Img Url"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"}},"type":"object","required":["chain","name","token_type","address","decimals","symbol"],"title":"WhitelistedTokenModel"},"WithdrawalSummary":{"properties":{"total_withdrawals_raw_amount":{"type":"integer","title":"Total Withdrawals Raw Amount"},"normalized_total_withdrawals_amount":{"type":"string","title":"Normalized Total Withdrawals Amount"},"total_assets":{"type":"string","title":"Total Assets"},"normalized_total_assets":{"type":"string","title":"Normalized Total Assets"},"symbol":{"type":"string","title":"Symbol"},"pending_withdrawals":{"items":{"$ref":"#/components/schemas/PendingWithdrawal"},"type":"array","title":"Pending Withdrawals"}},"type":"object","required":["total_withdrawals_raw_amount","normalized_total_withdrawals_amount","total_assets","normalized_total_assets","symbol","pending_withdrawals"],"title":"WithdrawalSummary"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key"},"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/auth/login"}}}}}}