> ## Documentation Index
> Fetch the complete documentation index at: https://docs.signalite.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch the partner mobile app boot payload in one request.

> Aggregates config, health, vault, HLP yield, wallet position, activity, redeems, and gas status. Each section may be null with a typed per-section error so partner apps can render safe partial states.



## OpenAPI

````yaml /mintlify/openapi/signalite.json get /api/v1/bootstrap
openapi: 3.1.0
info:
  title: Signalite sHLP Partner API
  version: 1.0.0
  description: >-
    Read-only partner API for Signalite sHLP product state, history, positions,
    activity, and redemption lifecycle data.
servers:
  - url: https://portal.signalite.ai
security: []
tags:
  - name: Product
  - name: Account
  - name: Operations
  - name: Partner Actions
paths:
  /api/v1/bootstrap:
    get:
      tags:
        - Account
      summary: Fetch the partner mobile app boot payload in one request.
      description: >-
        Aggregates config, health, vault, HLP yield, wallet position, activity,
        redeems, and gas status. Each section may be null with a typed
        per-section error so partner apps can render safe partial states.
      operationId: getBootstrap
      parameters:
        - name: wallet
          in: query
          required: true
          schema:
            type: string
            pattern: ^0x[a-fA-F0-9]{40}$
          example: '0xB4a1168b8Ea05aF1536aC990F4940e50E0Be17f1'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                  - meta
                properties:
                  success:
                    type: boolean
                    const: true
                  data:
                    $ref: '#/components/schemas/Bootstrap'
                  meta:
                    type: object
                    required:
                      - updatedAt
                    properties:
                      updatedAt:
                        type: string
                        format: date-time
                    additionalProperties: true
        '400':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - error
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        $ref: '#/components/schemas/ApiErrorCode'
                      message:
                        type: string
        '409':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - error
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        $ref: '#/components/schemas/ApiErrorCode'
                      message:
                        type: string
        '503':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - error
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        $ref: '#/components/schemas/ApiErrorCode'
                      message:
                        type: string
components:
  schemas:
    Bootstrap:
      type: object
      required:
        - wallet
        - config
        - health
        - vault
        - hlp
        - position
        - activity
        - redeems
        - gas
        - errors
      properties:
        wallet:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        config:
          oneOf:
            - $ref: '#/components/schemas/Config'
            - type: 'null'
        health:
          oneOf:
            - $ref: '#/components/schemas/Health'
            - type: 'null'
        vault:
          oneOf:
            - $ref: '#/components/schemas/Vault'
            - type: 'null'
        hlp:
          oneOf:
            - $ref: '#/components/schemas/Hlp'
            - type: 'null'
        position:
          oneOf:
            - $ref: '#/components/schemas/Position'
            - type: 'null'
        activity:
          oneOf:
            - $ref: '#/components/schemas/Activity'
            - type: 'null'
        redeems:
          oneOf:
            - $ref: '#/components/schemas/Redeems'
            - type: 'null'
        gas:
          oneOf:
            - $ref: '#/components/schemas/GasStatus'
            - type: 'null'
        errors:
          type: object
          required:
            - config
            - health
            - vault
            - hlp
            - position
            - activity
            - redeems
            - gas
          properties:
            config:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            health:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            vault:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            hlp:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            position:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            activity:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            redeems:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
            gas:
              oneOf:
                - $ref: '#/components/schemas/BootstrapError'
                - type: 'null'
    ApiErrorCode:
      type: string
      enum:
        - ACTION_BUILD_FAILED
        - ACTION_QUOTE_FAILED
        - BAD_ACTION_REQUEST
        - BAD_REQUEST
        - BAD_WALLET
        - BUFFER_SHORT
        - CAP_EXCEEDED
        - DEPOSITS_NOT_READY
        - DEPOSITS_PAUSED
        - BAD_IDEMPOTENCY_KEY
        - HLP_UPSTREAM_FAILED
        - IDEMPOTENCY_CONFLICT
        - IDEMPOTENCY_KEY_REQUIRED
        - INDEXER_UNAVAILABLE
        - INSUFFICIENT_SHARES
        - INSTANT_REDEEM_NO_SLIPPAGE
        - OPERATIONS_NOT_READY
        - MIN_DEPOSIT_NOT_MET
        - PARTNER_ACTION_FAILED
        - PARTNER_ACTION_NOT_FOUND
        - PARTNER_UNAUTHORIZED
        - PARTNER_WEBHOOK_FAILED
        - PARTNER_WEBHOOK_RETRY_FAILED
        - POSITION_READ_FAILED
        - REDEEM_NOT_CANCELABLE
        - REDEEM_NOT_CLAIMABLE
        - REDEEM_NOT_FOUND
        - REDEEM_NOT_FULFILLABLE
        - REDEEM_NOT_OWNER
        - SLIPPAGE_EXCEEDED
        - VAULT_READ_FAILED
    Config:
      type: object
      required:
        - apiVersion
        - product
        - chain
        - contracts
        - tokens
        - deposit
        - withdraw
      properties:
        apiVersion:
          type: string
          example: v1
        product:
          type: object
          required:
            - slug
            - name
            - description
          properties:
            slug:
              type: string
              example: shlp
            name:
              type: string
              example: Signalite sHLP
            description:
              type: string
        chain:
          type: object
          required:
            - id
            - name
            - rpcUrl
            - explorerUrl
          properties:
            id:
              type: integer
              example: 999
            name:
              type: string
              example: Hyperliquid
            rpcUrl:
              type: string
              format: uri
              example: https://rpc.hyperliquid.xyz/evm
            explorerUrl:
              type: string
              format: uri
              example: https://hypurrscan.io
        contracts:
          type: object
          required:
            - contractVersion
            - vault
            - usdc
            - hlpVault
          properties:
            contractVersion:
              type: string
              enum:
                - shlp-vault-v3
                - shlp-pipe-v2
              example: shlp-vault-v3
            vault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x328aFdc1e2c42235E9D1e8360F50329626B63129'
            core:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x328aFdc1e2c42235E9D1e8360F50329626B63129'
            share:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x328aFdc1e2c42235E9D1e8360F50329626B63129'
            depositPipe:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x0000000000000000000000000000000000000000'
            redemptionPipe:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x0000000000000000000000000000000000000000'
            usdc:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0xb88339CB7199b77E23DB6E890353E22632Ba630f'
            strategyKeeper:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x0000000000000000000000000000000000000000'
            navSource:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x0000000000000000000000000000000000000000'
            hlpVault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0xdfc24b077bc1425AD1DEA75bCB6f8158E10Df303'
        tokens:
          type: object
          required:
            - asset
            - share
          properties:
            asset:
              $ref: '#/components/schemas/Token'
            share:
              $ref: '#/components/schemas/Token'
        deposit:
          type: object
          required:
            - nativeChainId
            - supportedRoutes
            - funding
            - minimumDeposit
            - recommendedOperationalMinimum
          properties:
            nativeChainId:
              type: integer
              example: 999
            supportedRoutes:
              type: array
              description: >-
                Supported deposit UX routes. Signalite builds only HyperEVM
                action calldata. Partner-funded cross-chain routes must first
                deliver HyperEVM USDC to the user wallet.
              items:
                $ref: '#/components/schemas/DepositRoute'
            funding:
              $ref: '#/components/schemas/DepositFunding'
            minimumDeposit:
              $ref: '#/components/schemas/Amount'
            recommendedOperationalMinimum:
              $ref: '#/components/schemas/Amount'
        withdraw:
          type: object
          required:
            - nativeSettlementChainId
            - supportedDestinations
          properties:
            nativeSettlementChainId:
              type: integer
              example: 999
            supportedDestinations:
              type: array
              description: >-
                The vault claim transaction settles USDC on HyperEVM. Other
                destinations are post-claim bridge destinations for partner UI
                routing.
              items:
                $ref: '#/components/schemas/WithdrawDestination'
    Health:
      type: object
      required:
        - api
        - ready
        - database
        - vault
        - snapshots
        - indexer
        - keeper
      properties:
        api:
          type: string
          const: ok
        ready:
          $ref: '#/components/schemas/HealthReady'
        database:
          type: object
          required:
            - configured
          properties:
            configured:
              type: boolean
        vault:
          type: object
          required:
            - ok
            - data
            - error
          properties:
            ok:
              type: boolean
            data:
              type:
                - object
                - 'null'
              additionalProperties: true
            error:
              type:
                - string
                - 'null'
        snapshots:
          $ref: '#/components/schemas/SnapshotHealth'
        indexer:
          $ref: '#/components/schemas/IndexerHealth'
        keeper:
          $ref: '#/components/schemas/KeeperHealth'
    Vault:
      type: object
      required:
        - product
        - addresses
        - asset
        - share
        - analytics
        - caps
        - fees
        - liquidity
        - proof
        - capabilities
        - status
      properties:
        product:
          type: object
          required:
            - slug
            - name
            - protocol
            - chainId
          properties:
            slug:
              type: string
            name:
              type: string
            protocol:
              type: string
            chainId:
              type: integer
        addresses:
          type: object
          required:
            - contractVersion
            - vault
            - asset
            - strategy
            - navSource
            - treasury
          properties:
            contractVersion:
              type: string
              enum:
                - shlp-vault-v3
                - shlp-pipe-v2
              example: shlp-vault-v3
            vault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            core:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            share:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            depositPipe:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            redemptionPipe:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            asset:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            strategy:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            navSource:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            treasury:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
        asset:
          $ref: '#/components/schemas/Token'
        share:
          $ref: '#/components/schemas/Token'
        analytics:
          type: object
          required:
            - sharePrice
            - tvl
            - totalSupply
          properties:
            sharePrice:
              $ref: '#/components/schemas/Amount'
            tvl:
              $ref: '#/components/schemas/Amount'
            totalSupply:
              $ref: '#/components/schemas/Amount'
        caps:
          type: object
          required:
            - maxTvl
            - maxUserDeposit
            - globalDepositRoom
          properties:
            maxTvl:
              $ref: '#/components/schemas/Amount'
            maxUserDeposit:
              $ref: '#/components/schemas/Amount'
            globalDepositRoom:
              $ref: '#/components/schemas/Amount'
        fees:
          type: object
          required:
            - performanceFeeBps
            - managementFeeBps
          properties:
            performanceFeeBps:
              type: integer
            managementFeeBps:
              type: integer
        liquidity:
          type: object
          required:
            - vaultUsdc
            - reservedAssets
            - instantRedeemCapacity
            - escrowedShares
          properties:
            vaultUsdc:
              $ref: '#/components/schemas/Amount'
            reservedAssets:
              $ref: '#/components/schemas/Amount'
            instantRedeemCapacity:
              $ref: '#/components/schemas/Amount'
            escrowedShares:
              $ref: '#/components/schemas/Amount'
        proof:
          type: object
          required:
            - buckets
            - reconciliation
          description: Bucket-level proof of backing for the vault TVL and share price.
          properties:
            buckets:
              type: object
              required:
                - vaultUsdc
                - strategyEvmUsdc
                - strategyCoreSpotUsdc
                - strategyCorePerpUsdc
                - strategyHlpEquity
                - pendingBridgeIn
                - pendingBridgeOut
                - reservedAssets
                - escrowedShares
              properties:
                vaultUsdc:
                  $ref: '#/components/schemas/Amount'
                strategyEvmUsdc:
                  $ref: '#/components/schemas/Amount'
                strategyCoreSpotUsdc:
                  $ref: '#/components/schemas/Amount'
                strategyCorePerpUsdc:
                  $ref: '#/components/schemas/Amount'
                strategyHlpEquity:
                  $ref: '#/components/schemas/Amount'
                pendingBridgeIn:
                  $ref: '#/components/schemas/Amount'
                pendingBridgeOut:
                  $ref: '#/components/schemas/Amount'
                reservedAssets:
                  $ref: '#/components/schemas/Amount'
                escrowedShares:
                  $ref: '#/components/schemas/Amount'
            reconciliation:
              type: object
              required:
                - grossManagedAssets
                - reservedLiabilities
                - netShareholderAssets
                - reportedTotalAssets
                - diff
              properties:
                grossManagedAssets:
                  $ref: '#/components/schemas/Amount'
                reservedLiabilities:
                  $ref: '#/components/schemas/Amount'
                netShareholderAssets:
                  $ref: '#/components/schemas/Amount'
                reportedTotalAssets:
                  $ref: '#/components/schemas/Amount'
                diff:
                  $ref: '#/components/schemas/Amount'
        capabilities:
          type: object
          required:
            - deposit
            - instantRedeem
            - asyncRedeem
            - fulfillRedeem
            - claimRedeem
            - cancelRedeem
          properties:
            deposit:
              type: boolean
            instantRedeem:
              type: boolean
            asyncRedeem:
              type: boolean
            fulfillRedeem:
              type: boolean
            claimRedeem:
              type: boolean
            cancelRedeem:
              type: boolean
        status:
          type: object
          properties:
            depositsPaused:
              type: boolean
            ready:
              $ref: '#/components/schemas/HealthReady'
          required:
            - depositsPaused
    Hlp:
      type: object
      required:
        - vault
        - signaliteProjected
        - pnl
        - tvl
        - returns
      properties:
        vault:
          type: object
          required:
            - name
            - tvlUsd
            - apr
            - aprPct
            - ratePct
            - rateKind
            - apyPct
          properties:
            name:
              type: string
            tvlUsd:
              type: number
            apr:
              type: number
              description: Annualized return as a decimal from Hyperliquid upstream.
            aprPct:
              type: number
              description: Annualized return percentage from Hyperliquid upstream.
            ratePct:
              type: number
              description: >-
                Signalite display APY percentage, net of Signalite performance
                fees on positive HLP returns.
            rateKind:
              type: string
              enum:
                - apy
              description: The display rate is trailing 1y net APY.
            apyPct:
              type: number
              description: >-
                Signalite display APY percentage. Partners should use this for
                product cards.
        signaliteProjected:
          type: object
          required:
            - rateKind
            - grossHlpAprPct
            - projectedAprPct
            - trailing365dNetApyPct
            - displayApyPct
            - performanceFeeBps
            - managementFeeBps
            - methodology
          properties:
            rateKind:
              type: string
              enum:
                - apr
            grossHlpAprPct:
              type: number
              description: Current upstream HLP APR percentage.
            projectedAprPct:
              type:
                - number
                - 'null'
              description: >-
                Signalite projected APR after applying positive performance fee
                and management fee. Null when fee state is unavailable.
            trailing365dNetApyPct:
              type:
                - number
                - 'null'
              description: >-
                Trailing 365d Signalite APY net of performance fees on positive
                HLP returns. This is the web-app APY.
            displayApyPct:
              type: number
              description: Same display APY as vault.apyPct/ratePct.
            performanceFeeBps:
              type:
                - number
                - 'null'
            managementFeeBps:
              type:
                - number
                - 'null'
            methodology:
              type: string
              enum:
                - >-
                  current_hlp_apr_net_of_positive_performance_fee_and_management_fee
        pnl:
          type: object
          required:
            - latestUsd
            - series
          properties:
            latestUsd:
              type:
                - number
                - 'null'
            series:
              type: array
              items:
                $ref: '#/components/schemas/TimeValuePoint'
        tvl:
          type: object
          required:
            - series
          properties:
            series:
              type: array
              items:
                $ref: '#/components/schemas/TimeValuePoint'
        returns:
          $ref: '#/components/schemas/HlpReturns'
    Position:
      type: object
      required:
        - wallet
        - balances
        - allowance
        - limits
        - redeemsAvailable
        - redeems
      properties:
        wallet:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        balances:
          type: object
          required:
            - usdc
            - shares
            - shareValue
          properties:
            usdc:
              $ref: '#/components/schemas/Amount'
            shares:
              $ref: '#/components/schemas/Amount'
            shareValue:
              $ref: '#/components/schemas/Amount'
        allowance:
          type: object
          required:
            - vaultUsdc
          properties:
            vaultUsdc:
              $ref: '#/components/schemas/Amount'
        limits:
          type: object
          required:
            - maxDeposit
            - maxRedeem
            - maxWithdraw
          properties:
            maxDeposit:
              $ref: '#/components/schemas/Amount'
            maxRedeem:
              $ref: '#/components/schemas/Amount'
            maxWithdraw:
              $ref: '#/components/schemas/Amount'
        redeemsAvailable:
          type: boolean
        redeems:
          type: array
          items:
            $ref: '#/components/schemas/Redeem'
    Activity:
      type: object
      required:
        - wallet
        - available
        - events
      properties:
        wallet:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        available:
          type: boolean
        events:
          type: array
          items:
            $ref: '#/components/schemas/ActivityEvent'
    Redeems:
      type: object
      required:
        - wallet
        - available
        - redeems
      properties:
        wallet:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        available:
          type: boolean
        redeems:
          type: array
          items:
            $ref: '#/components/schemas/Redeem'
    GasStatus:
      type: object
      required:
        - faucetEnabled
      properties:
        balance:
          type: string
          example: '0.0004'
        needsGas:
          type: boolean
        minRequired:
          type: string
          example: '0.001'
        faucetEnabled:
          type: boolean
        faucetAmount:
          type: string
          example: '0.01'
        error:
          type: string
    BootstrapError:
      type: object
      required:
        - code
        - message
        - status
      properties:
        code:
          type: string
        message:
          type: string
        status:
          type: integer
          description: >-
            HTTP status from the section read, or 0 for network/runtime
            failures.
    Token:
      type: object
      required:
        - symbol
        - decimals
        - address
      properties:
        symbol:
          type: string
        decimals:
          type: integer
        address:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
    DepositRoute:
      type: object
      required:
        - kind
        - chainId
        - chainName
        - enabled
        - sdkSupported
        - actionEndpoint
        - status
        - requiresReadiness
        - readinessEndpoint
        - readinessFlag
      properties:
        kind:
          type: string
          enum:
            - native-usdc
            - relay-cross-chain
        chainId:
          oneOf:
            - type: integer
            - type: string
              const: multi
        chainName:
          type: string
        asset:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        enabled:
          type: boolean
        sdkSupported:
          type: boolean
          description: >-
            True when @arc/shlp-sdk can build this route through a first-party
            action endpoint.
        actionEndpoint:
          type:
            - string
            - 'null'
          description: >-
            First-party action endpoint for SDK transaction building, if
            available.
        status:
          type: string
          enum:
            - available
            - ux-only
            - partner-funded
            - disabled
          description: >-
            Route support status, not live deposit readiness. Check
            readinessEndpoint/readinessFlag before enabling user actions.
        requiresReadiness:
          type: boolean
          description: True when the route must be gated by /api/v1/health before use.
        readinessEndpoint:
          type: string
          description: Endpoint that exposes the readiness flag for this route.
        readinessFlag:
          type: string
          enum:
            - deposits
          description: Health ready flag required before showing this route as actionable.
    DepositFunding:
      type: object
      required:
        - mode
        - destination
        - sourceNetworks
        - sequence
        - notes
      properties:
        mode:
          type: string
          const: partner-funded-usdc
          description: >-
            Arc/partner funds HyperEVM USDC first; Signalite only creates the
            final sHLP action after funding lands.
        destination:
          allOf:
            - $ref: '#/components/schemas/FundingNetwork'
          example:
            vm: evm
            chainId: 999
            chainName: HyperEVM
            token:
              symbol: USDC
              decimals: 6
              address: '0xb88339CB7199b77E23DB6E890353E22632Ba630f'
        sourceNetworks:
          type: array
          items:
            $ref: '#/components/schemas/FundingNetwork'
          example:
            - vm: evm
              chainId: 1
              chainName: Ethereum
              token:
                symbol: USDC
                decimals: 6
                address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
              relayWalletAdapter: viem
            - vm: evm
              chainId: 42161
              chainName: Arbitrum
              token:
                symbol: USDC
                decimals: 6
                address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
              relayWalletAdapter: viem
            - vm: evm
              chainId: 8453
              chainName: Base
              token:
                symbol: USDC
                decimals: 6
                address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
              relayWalletAdapter: viem
            - vm: evm
              chainId: 10
              chainName: Optimism
              token:
                symbol: USDC
                decimals: 6
                address: '0x0b2C639c533813f4Aa9D7837CAF62653d097Ff85'
              relayWalletAdapter: viem
            - vm: evm
              chainId: 137
              chainName: Polygon
              token:
                symbol: USDC
                decimals: 6
                address: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359'
              relayWalletAdapter: viem
            - vm: evm
              chainId: 43114
              chainName: Avalanche
              token:
                symbol: USDC
                decimals: 6
                address: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E'
              relayWalletAdapter: viem
            - vm: svm
              chainId: 792703809
              chainName: Solana
              token:
                symbol: USDC
                decimals: 6
                address: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
              relayWalletAdapter: '@relayprotocol/relay-svm-wallet-adapter'
        sequence:
          type: array
          items:
            type: string
        notes:
          type: array
          items:
            type: string
    Amount:
      type: object
      required:
        - raw
        - decimals
        - formatted
      properties:
        raw:
          type: string
          description: Integer base units. Use for accounting.
          example: '1000000'
        decimals:
          type: integer
          example: 6
        formatted:
          type: string
          description: Display helper only.
          example: '1.000000'
    WithdrawDestination:
      type: object
      required:
        - chainId
        - chainName
        - usdcAddress
        - chainIcon
        - enabled
      properties:
        chainId:
          type: integer
        chainName:
          type: string
        usdcAddress:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        chainIcon:
          type: string
        enabled:
          type: boolean
    HealthReady:
      type: object
      required:
        - display
        - history
        - activity
        - operations
        - deposits
        - reasonCodes
      properties:
        display:
          type: boolean
          description: Fresh enough for product display state.
        history:
          type: boolean
          description: Snapshot chart data is available.
        activity:
          type: boolean
          description: Vault event indexer is available and not stale.
        operations:
          type: boolean
          description: >-
            Operational actions may be shown if the specific vault capability is
            also true.
        deposits:
          type: boolean
          description: >-
            Deposits may be shown. False when paused or when operational health
            is degraded.
        reasonCodes:
          type: array
          items:
            type: string
            enum:
              - VAULT_READ_UNAVAILABLE
              - SNAPSHOT_UNAVAILABLE
              - SNAPSHOT_STALE
              - INDEXER_NOT_FRESH
              - KEEPER_WIRING_INVALID
              - KEEPER_HEARTBEAT_NOT_FRESH
              - KEEPER_HEARTBEAT_INVALID
              - KEEPER_HEARTBEAT_UNHEALTHY
              - STRATEGY_CORE_HYPE_BELOW_FLOOR
              - KEEPER_ROLES_INVALID
              - DEPOSITS_PAUSED
              - CACHE_FALLBACK
    SnapshotHealth:
      type: object
      required:
        - available
      properties:
        available:
          type: boolean
        lastSnapshotAt:
          type:
            - string
            - 'null'
          format: date-time
        ageSec:
          type:
            - integer
            - 'null'
        stale:
          type: boolean
        staleSec:
          type: integer
        reason:
          type: string
    IndexerHealth:
      type: object
      required:
        - available
      properties:
        available:
          type: boolean
        source:
          type: string
        chainId:
          type: integer
        vault:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        startBlock:
          type: string
        cursorBlock:
          type:
            - string
            - 'null'
        latestBlock:
          type:
            - string
            - 'null'
        confirmedBlock:
          type:
            - string
            - 'null'
        lagBlocks:
          type:
            - string
            - 'null'
        stale:
          type: boolean
        indexedAt:
          type:
            - string
            - 'null'
          format: date-time
        lastEventAt:
          type:
            - string
            - 'null'
          format: date-time
        lastEventBlock:
          type:
            - string
            - 'null'
        rpcHealthy:
          type: boolean
        rpcError:
          type: string
    KeeperHealth:
      type: object
      required:
        - ok
        - heartbeat
      properties:
        ok:
          type: boolean
        addresses:
          type: object
          properties:
            vaultStrategy:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            vaultNavSource:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            strategyVault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            strategyUsdc:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            strategyHlpVault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            navStrategyAccount:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
            navHlpVault:
              type: string
              pattern: ^0x[a-fA-F0-9]{40}$
        checks:
          type: object
          additionalProperties:
            type: boolean
        strategy:
          type: object
          required:
            - withdrawable
            - lockedUntil
          properties:
            withdrawable:
              type: boolean
            lockedUntil:
              type: string
        nav:
          type: object
          required:
            - lastGoodAt
          properties:
            lastGoodAt:
              type: string
        heartbeat:
          $ref: '#/components/schemas/KeeperHeartbeat'
        error:
          type: string
    TimeValuePoint:
      type: object
      required:
        - t
        - timestamp
        - value
      properties:
        t:
          type: number
        timestamp:
          type: string
          format: date-time
        value:
          type: number
    HlpReturns:
      type: object
      required:
        - methodology
        - windows
        - rolling30d
      properties:
        methodology:
          type: string
          enum:
            - flow_adjusted_pnl_over_start_account_value
          description: >-
            Historical returns are derived from Hyperliquid HLP portfolio PnL
            history divided by starting account value.
        windows:
          type: object
          required:
            - 7d
            - 30d
            - 90d
            - 180d
            - 365d
            - allTime
          properties:
            7d:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
            30d:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
            90d:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
            180d:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
            365d:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
            allTime:
              oneOf:
                - $ref: '#/components/schemas/HlpReturnWindow'
                - type: 'null'
        rolling30d:
          type: object
          required:
            - windowDays
            - series
          properties:
            windowDays:
              type: number
            series:
              type: array
              items:
                $ref: '#/components/schemas/HlpRollingReturnPoint'
    Redeem:
      type: object
      required:
        - id
        - status
        - wallet
        - owner
        - receiver
        - requestedTxHash
        - fulfilledTxHash
        - claimedTxHash
        - cancelledTxHash
        - requestedAt
        - updatedAt
        - shares
        - assets
      properties:
        id:
          type: string
        status:
          type: string
          enum:
            - pending
            - claimable
            - claimed
            - cancelled
        wallet:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        owner:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        receiver:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        requestedTxHash:
          type:
            - string
            - 'null'
        fulfilledTxHash:
          type:
            - string
            - 'null'
        claimedTxHash:
          type:
            - string
            - 'null'
        cancelledTxHash:
          type:
            - string
            - 'null'
        requestedAt:
          type:
            - string
            - 'null'
          format: date-time
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
        shares:
          anyOf:
            - $ref: '#/components/schemas/Amount'
            - type: 'null'
        assets:
          anyOf:
            - $ref: '#/components/schemas/Amount'
            - type: 'null'
    ActivityEvent:
      type: object
      required:
        - type
        - eventName
        - txHash
        - blockNumber
        - logIndex
        - timestamp
        - wallet
        - owner
        - receiver
        - assets
        - shares
        - redeemId
      properties:
        type:
          type: string
          enum:
            - deposit
            - instant_withdraw
            - redeem_requested
            - redeem_fulfilled
            - redeem_claimed
            - redeem_cancelled
            - fees_accrued
        eventName:
          type: string
        txHash:
          type: string
        blockNumber:
          type: string
        logIndex:
          type: integer
        timestamp:
          type:
            - string
            - 'null'
          format: date-time
        wallet:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        owner:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        receiver:
          type:
            - string
            - 'null'
          pattern: ^0x[a-fA-F0-9]{40}$
        assets:
          anyOf:
            - $ref: '#/components/schemas/Amount'
            - type: 'null'
        shares:
          anyOf:
            - $ref: '#/components/schemas/Amount'
            - type: 'null'
        redeemId:
          type:
            - string
            - 'null'
    FundingNetwork:
      type: object
      required:
        - vm
        - chainId
        - chainName
        - token
      properties:
        vm:
          type: string
          enum:
            - evm
            - svm
        chainId:
          type: integer
        chainName:
          type: string
        token:
          type: object
          required:
            - symbol
            - decimals
            - address
          properties:
            symbol:
              type: string
              example: USDC
            decimals:
              type: integer
              example: 6
            address:
              type: string
        relayWalletAdapter:
          type: string
          description: >-
            Recommended Relay wallet adapter family for executing funding from
            this source.
    KeeperHeartbeat:
      type: object
      required:
        - available
        - service
        - updatedAt
        - ageSec
        - stale
        - staleSec
      properties:
        available:
          type: boolean
        service:
          type: string
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
        ageSec:
          type:
            - integer
            - 'null'
        stale:
          type: boolean
        staleSec:
          type: integer
        payload:
          type: object
          additionalProperties: true
        reason:
          type: string
    HlpReturnWindow:
      type: object
      required:
        - startT
        - startTimestamp
        - endT
        - endTimestamp
        - days
        - startAccountValueUsd
        - pnlDeltaUsd
        - returnPct
        - aprPct
        - apyPct
      properties:
        startT:
          type: number
        startTimestamp:
          type: string
          format: date-time
        endT:
          type: number
        endTimestamp:
          type: string
          format: date-time
        days:
          type: number
        startAccountValueUsd:
          type: number
        pnlDeltaUsd:
          type: number
        returnPct:
          type: number
          description: >-
            Period return percentage from flow-adjusted HLP PnL over starting
            account value.
        aprPct:
          type: number
          description: Simple annualized percentage rate derived from the period return.
        apyPct:
          type:
            - number
            - 'null'
          description: >-
            Compounded annualized percentage yield derived from the period
            return; null when compounding is not mathematically valid.
    HlpRollingReturnPoint:
      type: object
      required:
        - t
        - timestamp
        - returnPct
        - aprPct
        - apyPct
      properties:
        t:
          type: number
        timestamp:
          type: string
          format: date-time
        returnPct:
          type: number
        aprPct:
          type: number
        apyPct:
          type:
            - number
            - 'null'

````