openapi: 3.0.3
info:
  title: BitGo API
  version: 1.0.0
servers:
  - url: /
    description: Default server
tags:
  - name: BitGo Products
    description: >-
      Endpoints for retrieving public asset metadata including supported coins,
      tokens, and their properties.
  - name: Market Data
    description: >-
      Endpoints for retrieving market price data including latest spot prices
      and historical OHLC data
  - name: Admin FX Rates
    description: >-
      Admin-path FX rate queries. Requires user-id only — no crypto_compare
      scope needed.
  - name: Internal Market Data - Latest Prices
    description: >-
      Internal endpoints for retrieving the most recent market price data
      including OHLC and spot prices. These APIs should only be accessed by
      internal services.
  - name: Internal Asset Management APIs
    description: >-
      Internal endpoints for managing assets and vendor asset mappings. These
      APIs should only be accessed by internal services.
  - name: Admin Historical Prices
    description: Admin endpoints for querying and managing historical price data
  - name: Admin Backfill
    description: >-
      Admin endpoints for backfilling historical price data to ensure data
      integrity. Vendor selection is per-strategy: the backfill pod's configured
      recipe determines which vendors are tried in priority order (e.g.
      CryptoCompare→CoinGecko for the `default` strategy; Lukka→CoinGecko for
      `principal_market`).
  - name: Admin Latest Prices
    description: >-
      Admin endpoints for querying latest price data without requiring a
      crypto_compare license scope
  - name: Internal Default Prices
    description: >-
      Internal endpoints for managing default prices used when no vendor pricing
      is available
  - name: Internal Vendor Asset APIs
    description: >-
      Internal endpoints for fetching vendor asset details. These APIs fetch
      real-time metadata from multiple vendors (CoinGecko, Lukka) to help
      identify and verify asset mappings.
  - name: Internal FX Rates
    description: Internal-path FX rate queries. No authentication required.
  - name: Admin Default Prices
    description: >-
      Admin endpoints for managing default prices used when no vendor pricing is
      available
  - name: Internal Market Data - Historical Prices
    description: >-
      Internal endpoints for retrieving historical market price data including
      OHLC candles and time series data. These APIs should only be accessed by
      internal services.
  - name: Audit log
    description: Endpoints for retrieving audit log records
  - name: Compliance Transaction Monitoring
  - name: CryptoCompare
    description: >-
      CryptoCompare is a partner API from CryptoCompare that you can use to
      compare prices of cryptocurrency, tokens, and fiat.
  - name: DAS
  - name: Fiat
  - name: Market data
    description: >-
      Market data is an internal REST API that you can use to compare the prices
      of cryptocurrency, tokens, and fiat.
  - name: Internal
    description: Internal APIs for service-to-service communication
  - name: Admin
    description: NCC Admin Internal APIs
  - name: Notification Webhooks
    description: Webhook notification APIs
  - name: User Management Notification
    description: Public APIs for user management for notifications
  - name: Address
  - name: Bank account
    description: Manage links to external bank accounts
  - name: Circuit breaker
    description: >
      An internal limit placed on transfers out of a wallet.  Circuit breakers
      can

      be defined at 3 levels:


      * Global

      * Enterprise

      * Wallet


      A lower-level circuit breaker overrides all higher-level circuit breakers.

      Global circuit breakers apply by default.  An enterprise circuit breaker

      overrides all global circuit breakers.  A wallet circuit breaker overrides

      all enterprise and global circuit breakers.
  - name: Config
  - name: Enterprise
  - name: Deposit Information
  - name: Federation
    description: >
      Implementation of the [Stellar Federation
      protocol.](https://www.stellar.org/developers/guides/concepts/federation.html)


      The Stellar Federation protocol maps Stellar addresses to more information
      about a given user. It’s a way for Stellar client software to resolve
      email-like addresses such as test*bitgo.com into account IDs like:
      GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM.
  - name: Key
  - name: LegacyReports
  - name: Lightning
    description: |
      (Experimental) Lightning network related endpoints.
  - name: Password reset
  - name: Pending approval
  - name: Policy
  - name: Reports
  - name: Send label
  - name: Transfer
  - name: Transaction request
  - name: TSS wallets
  - name: User
  - name: User Management
  - name: Wallet
  - name: Wallet events
    description: >
      A Wallet Event models any and all types of state-changes that pertain

      to a single wallet.


      Such events tie into the Data Team's proposed Event-Driven Architecture.


      By modeling state-changes in our services as events, it affords us the
      ability

      to bill users for all state-changes. This ensures that our billing service
      will

      scale to support new types of products.
  - name: Wallet share
    description: >
      Sharing a wallet involves giving another user permission to use the
      wallet.


      In order for the receiver to use the wallet, we also need to share the

      private key with them. Each user on BitGo creates

      a public-private keypair for this purpose during their signup process.


      The BitGo SDK does the following client-side to create a new wallet share:


      * Get the receiving user’s sharing key (a derived path of the receiver’s
      public key)

      * Decrypt the wallet to be shared locally

      * Re-encrypt the wallet against the public key above, so that only the
      receiver may decrypt it

      * Upload the encrypted keys to the BitGo service, which informs the
      receiver they have a pending share
  - name: Webhook
    description: >
      Webhooks may be setup to programmatically receive callbacks from BitGo.
      These may be attached to wallets (in the case of transfers), or to a block
      (for block notifications). Webhook notifications are triggered when the
      specified event occurs, such as an incoming transaction.


      BitGo servers will make a POST http request to the URL defined with a JSON
      payload, and expect a HTTP 200 OK. If a successful response is not
      received, BitGo will attempt to retry the webhook with an increasing delay
      between each retry.


      Since anyone on the Internet can send HTTP requests to the Webhook URL,
      the request body payload should not be trusted. Please verify any
      information sent in the webhook by fetching the transfer/block data from
      BitGo before processing the notification.


      Developers should take care to ensure that their application succeeds even
      in the cases of transient network error, or if receive the same webhook
      twice due to an improper acknowledgement.
  - name: Trade REST API
    description: >-
      ## Rate-Limiting

      All REST endpoints are rate-limited to 10 requests/second. Once the limit
      is reached, requests will be rejected with `429 Too Many Requests`


      The following headers are returned on every request <table> <tr>
      <td>Header</td><td>Description</td> </tr> <tr>
      <td>X-Ratelimit-Limit</td><td>Request limit per second</td> </tr> <tr>
      <td>X-Ratelimit-Remaining</td><td>Remaining number of requests allowed in
      interval</td> </tr> <tr> <td>X-Ratelimit-Reset</td><td>Duration in
      milliseconds until the total quota resets</td> </tr> </table>

      The following header is also returned if the response is `429 Too Many
      Requests` <table> <tr> <td>Header</td><td>Description</td> </tr> <tr>
      <td>Retry-After</td><td>Duration in seconds of how long to wait before
      making a new request</td> </tr> </table>
  - name: Trade Falcon
    description: Service for our trading platform
  - name: User Management Service (Internal)
    description: APIs for user management service
  - name: User Management Service (Admin)
    description: APIs for user management service
  - name: Admin Console
    description: APIs for admin console
  - name: Admin - Roles
    description: >-
      Administrative APIs for managing and viewing roles across all
      organizations
paths:
  /api/v2/{coin}/wallet/{walletId}:
    put:
      tags:
        - Wallet
      summary: Update wallet
      operationId: v2.wallet.update
      description: Update a wallet by its `coin` and `walletId`.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWallet'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformWallet'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformPlatformError'
                  - $ref: '#/components/schemas/PlatformInvalidWalletId'
        '403':
          description: Forbidden
        '404':
          description: Not Found
    delete:
      tags:
        - Wallet
      summary: Delete wallet
      description: >-
        Delete one wallet by its `coin` and `walletId`. Once removed, you can no
        longer view or access this wallet, but it does remain accessible to
        other wallet users. If you are the only user on this wallet, you can
        only delete it if it has a 0 balance.
      operationId: v2.wallet.remove
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformWallet'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformPlatformError'
                  - $ref: '#/components/schemas/PlatformInvalidWalletId'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPlatformError'
    get:
      summary: Get wallet by coin and ID
      description: Returns wallet and balance details for a wallet.
      operationId: v2.wallet.get
      tags:
        - Wallet
      parameters:
        - name: allTokens
          description: Include data for all subtokens (i.e. ERC20 Tokens, Stellar Tokens)
          in: query
          schema:
            type: boolean
        - name: unspentCount
          description: True, if including unspent count for UTXO-based coins.
          in: query
          schema:
            type: boolean
        - name: includeRbf
          description: >-
            True, if including Replace-By-Fee (RBF) transactions in the total
            balance amount.
          in: query
          schema:
            type: boolean
        - name: expandAdvancedWhitelist
          description: >-
            True, if including the advanced whitelist wallet address in the
            response. The address is annotated as part of the whitelist entry
            metadata
          in: query
          schema:
            type: boolean
        - name: includeStakingBalances
          description: Includes the staked balance and reward balance of the wallet
          in: query
          schema:
            type: boolean
        - name: includeBalance
          description: Omit trying to fetch the wallet balance
          in: query
          schema:
            type: boolean
        - name: includeEvmKeyringWhitelist
          description: >-
            When true, includes whitelist policy rules from all EVM keyring
            derived wallets

            in addition to the main wallet's rules. Each merged rule is tagged
            with the

            source walletId so the caller can identify which network it belongs
            to.

            Only applicable for EVM keyring wallets (parent or derived).
          in: query
          schema:
            type: boolean
        - name: exactConfirmedBalance
          description: >-
            When set to true, the `confirmedBalance` in the response will be the
            exact on-chain balance

            without considering any unconfirmed transactions (for UTXO-based
            coins only).


            When `false`, the `confirmedBalance` will not include the outputs
            consumed of unconfirmed

            withdrawals. This may be inaccurate in certain situations


            Default value: false.
          in: query
          schema:
            type: boolean
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/webhooks:
    get:
      tags:
        - Webhook
      summary: List wallet webhooks
      description: |
        List webhooks set up on the wallet. Currently, the types of
        webhooks that can be attached to a wallet are `transfer`,
        `pendingapproval`, and `address_confirmation` notifications.
      operationId: v2.wallet.listwebhooks
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhooks:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/PlatformWebhook'
                        - type: object
                          properties:
                            walletId:
                              $ref: '#/components/schemas/Id'
                            allToken:
                              type: boolean
                              example: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformPlatformError'
                  - $ref: '#/components/schemas/PlatformInvalidWalletId'
    delete:
      tags:
        - Webhook
      summary: Remove wallet webhook
      description: |
        Removing a webhook will cause new events of the specified type to no
        longer trigger HTTP callbacks to your URLs
      operationId: v2.wallet.removewebhook
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: '#/components/schemas/WebhookTypeWallet'
                url:
                  type: string
                  format: uri
                  example: https://your.server.com/user_webhook
                id:
                  $ref: '#/components/schemas/Id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  removed:
                    type: integer
                    example: 1
                    description: Number of wallet webhooks removed.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformPlatformError'
                  - $ref: '#/components/schemas/PlatformInvalidWalletId'
    post:
      summary: Add wallet webhook
      description: >-
        Add a webhook to a wallet that sends an HTTP callback from BitGo to a
        specified

        URL when specific conditions occur. A wallet can have up to 10 webhooks
        of each

        wallet-webhook `type`. Learn more about webhooks on the

        [Developer Portal](/docs/webhooks-overview#/).


        **Note:** Before you process webhook notifications, BitGo strongly
        recommends that

        you verify response details by fetching the transfer or block data from
        BitGo. For

        example, if you create a transfer webhook and you receive a transfer ID,
        pass that

        ID to the [Get Transfer](/reference/v2walletgettransfer#/) endpoint to
        verify the transfer

        details.
      operationId: v2.wallet.addwebhook
      tags:
        - Webhook
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  allOf:
                    - $ref: '#/components/schemas/WalletWebhookType'
                  description: Event type to listen to.
                url:
                  type: string
                  description: URL to fire the webhook to.
                  example: https://your.server.com/webhook
                  minLength: 1
                  format: uri
                label:
                  type: string
                  description: Label of the new webhook.
                numConfirmations:
                  type: number
                  description: >-
                    Number of confirmations before triggering the webhook. If 0
                    or unspecified,

                    requests will be sent to the callback endpoint when the
                    transfer is first

                    seen and when it is confirmed.
                  example: 6
                allToken:
                  type: boolean
                  default: false
                  description: >-
                    Triggers on coin transfers and token transfers for ETH and
                    Stellar.

                    Must be set to true to receive webhooks for Trade accounts.
                listenToFailureStates:
                  type: boolean
                  description: Whether or not to listen to failed transactions on chain.
                txRequestStates:
                  type: array
                  items:
                    type: string
                    enum:
                      - pendingApproval
                      - canceled
                      - rejected
                      - initialized
                      - pendingDelivery
                      - delivered
                      - pendingUserSignature
                      - pendingUserCommitment
                      - pendingUserRShare
                      - pendingUserGShare
                      - readyToSend
                      - signed
                      - failed
                    description: >-
                      If supplied, only transaction request state changes from
                      the provided list

                      will trigger notifications. If not provided, all
                      transaction request state

                      changes will trigger notifications.
                txRequestTransactionStates:
                  type: array
                  items:
                    type: string
                    enum:
                      - initialized
                      - pendingSignature
                      - eddsaPendingCommitment
                      - eddsaPendingRShare
                      - eddsaPendingGShare
                      - ecdsaMPCv2Round1
                      - ecdsaMPCv2Round2
                      - ecdsaMPCv2Round3
                      - eddsaMPCv2Round1
                      - eddsaMPCv2Round2
                      - eddsaMPCv2Round3
                      - readyToCombineShares
                      - signed
                      - held
                      - delivered
                      - invalidSignature
                      - rejected
                    description: >-
                      If supplied, only transaction request transaction state
                      changes from the provided

                      list will trigger notifications. If not provided, all
                      transaction request

                      transaction state changes will trigger notifications.
                customHttpHeaders:
                  type: object
                  additionalProperties:
                    type: string
                  description: >-
                    Custom HTTP header key/values to be included with every
                    notification for the webhook.
              required:
                - type
                - url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletWebhookResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/walletshare/{shareId}:
    get:
      tags:
        - Wallet share
      summary: Get wallet share
      description: >-
        Returns a wallet share, requires unlock if the wallet share includes a
        keychain.
      operationId: v2.wallet.sharing.getshare
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathShareId'
        - name: skipUnlock
          in: query
          description: True, if skipping unlock. Excludes keychain in response.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletShare'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPlatformError'
    post:
      tags:
        - Wallet share
      summary: Update a wallet share
      operationId: v2.wallet.sharing.updateshare
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathShareId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  $ref: '#/components/schemas/PlatformWalletShareState'
                encryptedPrv:
                  type: string
                  description: >
                    Private key encrypted by the accepting user, used when
                    accepting a wallet share to add to the user's keychains for
                    using the wallet.

                    Required when accepting a share that includes a keychain or
                    when userMultiKeyRotationRequired is true.
                pub:
                  type: string
                  description: >
                    Public key of the accepting user. Required for
                    multi-user-key wallet shares (when
                    userMultiKeyRotationRequired is true).

                    Optional for non-multi-user-key wallets. If provided for
                    non-multi-user-key wallets, it will be validated against the
                    wallet's user key public key.
                keyId:
                  type: string
                  description: |
                    Key ID for key rotation verification (deprecated).
                signature:
                  type: string
                  description: |
                    Signature for key rotation verification (deprecated).
                payload:
                  type: string
                  description: |
                    Payload for key rotation verification (deprecated).
                webauthnInfo:
                  type: object
                  description: >
                    Passkey PRF wallet encryption data. When provided alongside
                    encryptedPrv

                    on a hot wallet, attaches the passkey device metadata to the
                    user key.
                  required:
                    - prfSalt
                    - otpDeviceId
                    - encryptedPrv
                  properties:
                    prfSalt:
                      type: string
                      description: PRF salt used for key derivation.
                    otpDeviceId:
                      type: string
                      description: The passkey OTP device ID.
                    encryptedPrv:
                      type: string
                      description: Private key encrypted with the PRF-derived key.
              required:
                - state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformUpdateWalletShareResponse'
    delete:
      summary: Cancel a wallet share
      description: |-
        Cancels a pending outgoing wallet share, or rejects an incoming share.
        The share must not have been accepted yet.
      operationId: v2.wallet.sharing.cancelshare
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: shareId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateWalletShareResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}:
    put:
      tags:
        - Enterprise
      summary: Update enterprise
      operationId: enterprise.update
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEnterprise'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformEnterprise'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPlatformError'
    get:
      summary: Get enterprise
      operationId: enterprise.getById
      tags:
        - Enterprise
      parameters:
        - name: excludeV1Wallets
          description: >-
            True, if excluding "wallets" field containing v1 wallet addresses
            from the enterprise
          in: query
          schema:
            type: boolean
        - name: expandTotalWalletsCount
          description: True, if returning the total number of wallets for this enterprise
          in: query
          schema:
            type: boolean
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEnterpriseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/user:
    delete:
      tags:
        - Enterprise
      summary: Remove user from enterprise
      operationId: v2.enterprise.user.remove
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteEnterpriseUser'
      responses:
        '200':
          description: OK
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  pendingApprovals:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlatformPendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformPlatformError'
                  - $ref: '#/components/schemas/PlatformInvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPlatformError'
    post:
      summary: Add user to enterprise
      operationId: v2.enterprise.user.add
      tags:
        - User
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    permission:
                      oneOf:
                        - $ref: '#/components/schemas/EnterpriseUserPermission'
                        - type: array
                          items:
                            type: string
                            enum:
                              - admin
                              - auditor
                            description: >-
                              This type represents the permissions that can be
                              assigned to a user when adding them to an
                              enterprise


                              1. 'admin': Add/remove users, Create wallets,
                              Manage enterprise policies, Add Bank Accounts,
                              Receive invitations to wallets

                              2. 'auditor': View audit logs across the
                              enterprise, Receive invitations to wallets
                    videoIdUser:
                      type: boolean
                    invite:
                      type: boolean
                - oneOf:
                    - type: object
                      properties:
                        username:
                          type: string
                          description: >-
                            The username of a user that should be added to the
                            enteprrise
                          format: email
                        videoIdUser:
                          type: boolean
                      required:
                        - username
                    - type: object
                      properties:
                        usernames:
                          type: array
                          items:
                            type: string
                            description: >-
                              Thes Username of a User that should be added to
                              the Enterprise
                        videoIdUser:
                          type: boolean
                      required:
                        - usernames
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    put:
      summary: Update users role in an enterprise
      description: >-
        Update a users role in an enterprise. Must be an enterprise manager to
        perform this action.
      operationId: v2.enterprise.user.update
      tags:
        - User Management
      parameters:
        - name: userId
          description: ''
          in: query
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: role
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseUserRole'
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: JSON
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidOrganizationId'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/pendingapprovals/{approvalId}:
    put:
      tags:
        - Pending approval
      summary: Update pending approval
      description: |
        Updates the state of a pending approval to `approved` or `rejected`.
        You can manage pending approvals programmatically by API or with the
        BigGo web UI. Ensure your authentication token has the proper scope.
        When creating an access token in the web UI, check the permission,
        "Update Pending Approvals" (under "Account Settings" &gt; "Developer
        Options" &gt; "Access Tokens").

        BitGo recommends that you create a webhook policy so that you can
        automate approving and rejecting transactions.
      operationId: v2.approval.update
      parameters:
        - $ref: '#/components/parameters/pathApprovalId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                otp:
                  type: string
                state:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPendingApproval'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPendingApproval'
    get:
      summary: Get pending approval
      operationId: v2.approval.get
      tags:
        - Pending approval
      parameters:
        - name: expandAddressLabels
          description: >-
            If true, adds "addressLabels" to each returned pending approval
            associated with recipient's addresses
          in: query
          schema:
            type: boolean
        - name: approvalId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/session:
    get:
      summary: Get session
      description: >-
        Returns the session associated with access token passed via the
        `Authorization` header.
      operationId: user.getsession
      tags:
        - User
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  session:
                    $ref: '#/components/schemas/OAuthAccessToken'
                required:
                  - session
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/address-book/v1/block-list:
    get:
      summary: Get Block Lists
      operationId: V1GetBlockListsRoute
      tags:
        - Counterparties
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: orderBy
          in: query
          required: true
          schema:
            type: string
            enum:
              - id
              - ownerListingId
              - blockedListingId
              - blockedGlobalListingId
              - createdAt
        - name: orderDirection
          in: query
          required: true
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BlockListWithListingArrayResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    post:
      summary: Add Block List Entry
      description: '**Requires access token scope:** `wallet_spend_all`'
      operationId: V1PostBlockListRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                blockedListingId:
                  type: string
                  title: uuid
              required:
                - blockedListingId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BlockListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/block-list/{blockListId}:
    delete:
      summary: Delete Block List Entry
      description: '**Requires access token scope:** `wallet_spend_all`'
      operationId: V1DeleteBlockListRoute
      tags:
        - Counterparties
      parameters:
        - name: blockListId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BlockListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/connections:
    get:
      summary: List Go Account connections
      description: Lists connections from your Go Account to other Go Accounts.
      operationId: V1GetConnectionsRoute
      tags:
        - Counterparties
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: id
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: status
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - PENDING_DEACTIVATION
                - PENDING_ACTIVATION
                - ACTIVE
                - INACTIVE
                - UNDER_REVIEW
                - REQUESTED
              description: codec for valid connection statuses
        - name: connectionType
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - DVP
                - WHITELIST
              description: codec for valid connection statuses
        - name: orderBy
          in: query
          required: true
          schema:
            type: string
            enum:
              - description
              - connectionType
              - createdAt
              - updatedAt
        - name: orderDirection
          in: query
          required: true
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: name
          in: query
          schema:
            type: string
            minLength: 1
        - name: ownerWalletId
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: targetWalletId
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: hiddenConnections
          in: query
          schema:
            type: string
            enum:
              - include
              - exclude
              - show-only-hidden
        - name: includeTotalCount
          in: query
          schema:
            type: string
            enum:
              - include
              - exclude
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1ConnectionWithOwnerAndTargetListResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    post:
      summary: Add Go Account connection
      description: >-
        Add a connection for your Go Account to another Go Account.

        To connect to a Go Account that's not listed in the public directory,
        pass a `walletId`.

        To connect to a Go Account that is listed in the public directory, pass
        a value for the `targetListingEntryId`.


        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostConnectionRoute
      tags:
        - Counterparties
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    listingEntryId:
                      type: string
                      title: uuid
                    localListingEntryDescription:
                      type: string
                      minLength: 1
                    targetListingEntryId:
                      type: string
                      title: uuid
                  required:
                    - listingEntryId
                    - targetListingEntryId
                - type: object
                  properties:
                    listingEntryId:
                      type: string
                      title: uuid
                    localListingDescription:
                      type: string
                      minLength: 1
                    localListingEntryDescription:
                      type: string
                      minLength: 1
                    localListingName:
                      type: string
                      minLength: 1
                    walletId:
                      type: string
                      minLength: 1
                  required:
                    - listingEntryId
                    - localListingName
                    - walletId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1ConnectionWithOwnerAndTargetListResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    put:
      summary: Update connection status
      description: |-
        Update connections to `PENDING_DEACTIVATION`.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PutConnectionsRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                connectionIds:
                  type: array
                  items:
                    type: string
                    title: uuid
                status:
                  type: string
                  enum:
                    - PENDING_DEACTIVATION
                hidden:
                  type: boolean
              required:
                - connectionIds
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/connections/bulk:
    post:
      summary: Bulk add Go Account connections
      description: |-
        Add connections for your Go Account to multiple other Go Accounts.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostBulkConnectionsRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                walletId:
                  type: string
                  minLength: 1
                targetWalletIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
              required:
                - walletId
                - targetWalletIds
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BulkConnectionsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/connections/counterparties:
    get:
      summary: List counterparties
      description: >-
        Lists connections others have made from their Go Account to your Go
        Account.
      operationId: V1GetCounterpartyConnectionsRoute
      tags:
        - Counterparties
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: id
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: status
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - PENDING_DEACTIVATION
                - PENDING_ACTIVATION
                - ACTIVE
                - INACTIVE
                - UNDER_REVIEW
                - REQUESTED
              description: codec for valid connection statuses
        - name: orderBy
          in: query
          required: true
          schema:
            type: string
            enum:
              - description
              - connectionType
              - createdAt
              - updatedAt
        - name: orderDirection
          in: query
          required: true
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: name
          in: query
          schema:
            type: string
            minLength: 1
        - name: ownerWalletId
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1ConnectionWithOwnerAndTargetListResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/{listingId}:
    put:
      summary: Update enterprise listing
      description: >-
        You can update the following:

        * Description of your enterprise listing.

        * Description of the target listing on connections you added from the
        directory.

        * Description and or name of the target listing name from connections
        you directly added by wallet ID.


        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PutListingRoute
      tags:
        - Counterparties
      parameters:
        - name: listingId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description is always updatable
                  minLength: 1
                name:
                  type: string
                  description: >-
                    The name of your listing that displays in the global
                    directory. `editable` must be `true`
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ListingUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/entry/{listingEntryId}:
    put:
      summary: Update Go Account entry
      description: >-
        Update your Go Account entry and `targetListingEntries` for your
        connections.


        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PutListingEntryRoute
      tags:
        - Counterparties
      parameters:
        - name: listingEntryId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                public:
                  type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ListingEntryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/entry/contacts:
    get:
      summary: List entry contacts
      description: >-
        List all your listing entries within your connections, grouped by
        listing entry.
      operationId: V1GetListingEntryContactsRoute
      tags:
        - Counterparties
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: id
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: coin
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: entryType
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - GO_ACCOUNT
              description: codec for entry type
        - name: orderBy
          in: query
          required: true
          schema:
            type: string
            enum:
              - description
              - coin
              - entryType
              - createdAt
              - updatedAt
              - listing.name
        - name: orderDirection
          in: query
          required: true
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: name
          in: query
          schema:
            type: string
            minLength: 1
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ListingEntryWithConnectionsListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/entry/directory:
    get:
      summary: List entries available for connection
      description: >-
        List all entries in the public directory, including all your
        connections.
      operationId: V1GetListingEntryDirectoryRoute
      tags:
        - Counterparties
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: coin
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: entryType
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - GO_ACCOUNT
              description: codec for entry type
        - name: orderBy
          in: query
          required: true
          schema:
            type: string
            enum:
              - description
              - coin
              - entryType
              - createdAt
              - updatedAt
              - listing.name
        - name: orderDirection
          in: query
          required: true
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: featured
          in: query
          schema:
            type: boolean
        - name: savedContactsNotInDirectory
          in: query
          required: true
          schema:
            oneOf:
              - type: string
                enum:
                  - only-included
                  - included
                  - excluded
                description: |-
                  filter values for the includeSavedContactsNotInDirectory query
                  for get listing entry directories endpoint
              - type: string
                enum:
                  - excluded
        - name: name
          in: query
          schema:
            type: string
            minLength: 1
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1DirectoryListingEntryWithConnectionsListResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/entry/global:
    post:
      summary: Create enterprise listing entry
      description: |-
        Create a listing entry for your enterprises Go Account.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostListingEntryRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                walletId:
                  type: string
                  minLength: 1
                description:
                  type: string
                  minLength: 1
                public:
                  type: boolean
              required:
                - walletId
                - public
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ListingEntryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/address-book/v1/listing/global:
    get:
      summary: Get enterprise listing
      description: >-
        Get the enterprise listing and list all entries in the enterprise
        listing.
      operationId: V1GetListingRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GlobalListingWithListingEntries'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    post:
      summary: Create enterprise listing
      description: >-
        Create a listing for your enterprise in the Go network.

        Once you create a listing for your enterprise, you can list your Go
        Account in the public directory.


        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostListingRoute
      tags:
        - Counterparties
      parameters:
        - name: enterprise-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GlobalListingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/v1/all/publicAssets:
    get:
      x-internal: false
      tags:
        - BitGo Products
      summary: List all public assets
      description: >-
        Returns a list of all digital assets (coins and tokens) available in the
        current environment. Each asset includes metadata such as wallet type,
        custody support, staking support, key curve, contract address, and more.


        Use the `stakingData` query parameter to optionally include detailed
        staking information for each asset (reward rates, warmup periods,
        unbonding durations, etc.).
      operationId: getAllPublicAssets
      parameters:
        - name: stakingData
          in: query
          required: false
          description: >-
            When set to `true`, includes detailed staking information for each
            asset that supports staking. Staking data includes reward rates,
            minimum stake amounts, warmup periods, unbonding durations, and
            reward frequency.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            default: 'false'
          example: 'true'
      responses:
        '200':
          description: Successfully returns the list of public assets.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicAsset'
              example:
                - id: d5ef3942-9985-4c4a-b30e-1a6078f14ca3
                  name: Bitcoin
                  symbol: btc
                  display_name: Bitcoin
                  display_symbol: btc
                  environment: mainnet
                  type: chain
                  network: btc
                  decimal: 8
                  wallet_type:
                    - MPC
                    - Multisig
                  key_curve: secp256k1
                  explorer: https://blockchair.com/bitcoin
                  contract_address: null
                  custody_supported: true
                  custody_jurisdiction:
                    - US
                    - DE
                  staking_supported: false
                  wallet_connect: false
                  token_supported: false
                  testnet_symbol: tbtc
                  goaccounts_supported: true
                  trade_supported: false
                - id: a1b2c3d4-5678-90ab-cdef-1234567890ab
                  name: Ether
                  symbol: eth
                  display_name: Ether
                  display_symbol: eth
                  environment: mainnet
                  type: chain
                  network: eth
                  decimal: 18
                  wallet_type:
                    - MPC
                    - Multisig
                  key_curve: secp256k1
                  explorer: https://etherscan.io
                  contract_address: null
                  custody_supported: true
                  custody_jurisdiction:
                    - US
                    - DE
                  staking_supported: true
                  wallet_connect: true
                  token_supported: true
                  testnet_symbol: hteth
                  goaccounts_supported: true
                  trade_supported: false
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/network/v1/enterprises/{enterpriseId}/clients:
    post:
      summary: Create client
      description: >-
        Create a new OES client for the specified enterprise. This endpoint
        allows enterprise users

        to create a new client within the OES system, establishing the
        foundation for future trading

        activities. The client will be automatically associated with the
        enterprise specified in the path

        parameter.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or incomplete/

        - Examples: Empty string supplied for enterpriseId.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the user does not have permission to create a client for
        this enterprise.

        - Examples: Enterprise does not have OES license.


        - 500: Internal Server Error

        - Occurs when there's an unexpected error processing the request.

        - Examples: Database connection failure, transient network error.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1ClientsPostRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            Enterprise ID that this client will be associated with.
            The client will be created under this enterprise's context.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientsPostOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/allocations:
    get:
      summary: List client allocations and deallocations
      description: >-
        This API call allows clients to get a list of allocations and
        deallocations for any connected network account.

        or "deallocation" to view deallocations.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Empty string provided for enterpriseId, invalid UUID format
        for allocationId.

        invalid date format for createdOnOrAfter/createdBefore, invalid
        pagination parameters.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise..


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have access to the
        requested allocation.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified enterprise cannot be found.

        - Examples: Enterprise ID doesn't exist or doesn't belong to the client.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, error retrieving allocations
        data,

        error transforming allocation data for response.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientAllocationsGetRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: allocationIds
          description: >-
            Optional array of allocationIds.

            If provided will only return allocations/deallocations with those
            ids.

            allocationIds are unique identifiers (UUIDs) for allocations.

            UUIDs must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of allocationIds.

                If provided will only return allocations/deallocations with
                those ids.

                allocationIds are unique identifiers (UUIDs) for allocations.

                UUIDs must be submitted as a comma-separated string.
        - name: types
          description: >-
            Optional array of types.

            If provided will only return allocations/deallocations with those
            types.

            Types must be submitted as a comma-separated string.

            allocation = records for allocations to connections.

            deallocation = records for deallocations from connections.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - allocation
                - deallocation
              description: >-
                Optional array of types.

                If provided will only return allocations/deallocations with
                those types.

                Types must be submitted as a comma-separated string.

                allocation = records for allocations to connections.

                deallocation = records for deallocations from connections.
        - name: statuses
          description: >-
            Optional array of statuses.

            If provided will only return allocations/deallocations with those
            statuses.

            Statuses must be submitted as a comma-separated string.

            cleared = records for allocations that have been cleared.

            released = records for allocations that have been released.

            reserved = records for allocations that are still reserved.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - cleared
                - released
                - reserved
              description: >-
                Optional array of statuses.

                If provided will only return allocations/deallocations with
                those statuses.

                Statuses must be submitted as a comma-separated string.

                cleared = records for allocations that have been cleared.

                released = records for allocations that have been released.

                reserved = records for allocations that are still reserved.
        - name: currencies
          description: >-
            Optional array of currencies.

            If provided will only return allocations/deallocations with those
            currencies.

            Currencies must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                Optional array of currencies.

                If provided will only return allocations/deallocations with
                those currencies.

                Currencies must be submitted as a comma-separated string.
        - name: connectionIds
          description: >-
            Optional array of connectionIds.

            If provided will only return allocations/deallocations for those
            connectionIds.

            ConnectionIds must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connectionIds.

                If provided will only return allocations/deallocations for those
                connectionIds.

                ConnectionIds must be submitted as a comma-separated string.
        - name: partnerIds
          description: >-
            Optional array of partnerIds.

            If provided will only return allocations/deallocations for those
            partnerIds.

            PartnerIds must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partnerIds.

                If provided will only return allocations/deallocations for those
                partnerIds.

                PartnerIds must be submitted as a comma-separated string.
        - name: createdOnOrAfter
          description: >-
            Optional date start range filter for createdAt (ISO Date).

            If provided will only return allocations/deallocations created on or
            after this date.

            This date should be in ISO 8601 format (e.g., 2023-01-01T00:00:00Z).
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: createdBefore
          description: >-
            Optional date end range filter for createdAt (ISO Date).

            If provided will only return allocations/deallocations created on or
            before this date.

            This date should be in ISO 8601 format (e.g., 2023-01-01T00:00:00Z).
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: sortField
          description: >-
            The field to sort results on.


            Possible values:

            - id: Sort by allocation ID.

            - updatedAt: Sort by the last updated timestamp.

            - quantity: Sort by the allocation amount quantity.

            - currency: Sort by the allocation currency code.


            Note: A finals sort is always applied on createdAt ascending and id
            ascending,

            regardless of the specified sortField. This ensures consistent
            ordering

            for items with the same primary sort value.
          in: query
          schema:
            type: string
            enum:
              - id
              - updatedAt
              - quantity
              - currency
        - name: sortDirection
          description: >-
            The direction to sort results.


            Possible values:

            - ASC: Ascending order (lowest to highest, A to Z, oldest to
            newest).

            - DESC: Descending order (highest to lowest, Z to A, newest to
            oldest).


            If not specified, defaults to ASC (ascending).
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1AllocationsGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/allocations/{allocationId}:
    get:
      summary: Get client allocation or deallocation
      description: >-
        Returns an allocation or deallocation. For use only by OES clients.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or incomplete.

        - Examples: Invalid UUID format for allocationId, invalid enterpriseId
        format.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have access to the
        requested allocation

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the requested allocation does not exist for this client

        - Examples: Allocation with specified ID doesn't exist, allocation
        exists but belongs to different client


        - 500: Internal Server Error

        - Occurs when there's an unexpected error processing the request

        - Examples: Database connection failure, currency mapping error,

        error transforming allocation data for response


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientAllocationGetRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: allocationId
          description: |-
            The unique identifier of the allocation to retrieve.
            This is a UUID that uniquely identifies the allocation record.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the allocation.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1AllocationGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/balances:
    get:
      summary: List client balances
      description: >-
        This API call allows clients to get trading and allocated balances at
        BitGo for any connected trading partner.

        The trading balances are live data. The data under networkBalances are
        not the live balances at the partner,

        the live balances should be viewed on the partner's platform.

        networkBalances will only update as a result of allocations,
        deallocations, and settlement.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed

        - Examples: Invalid UUID format for enterpriseId, invalid filter
        parameters,

        invalid pagination parameters, invalid connection or partner IDs


        - 401: Authentication Error

        - Occurs when the request is not authorized

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions

        - Examples: Client doesn't have permission to view balances. Enterprise
        does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified enterprise or resources cannot be found

        - Examples: Enterprise doesn't exist.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request

        - Examples: Database connection issues, transient network errors,


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientBalancesGetRoute
      tags:
        - Client Balances
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: connectionIds
          description: >-
            Optional array of connection IDs to filter by.


            If provided:

            - Only balances for connections with these specific IDs will be
            returned.

            - Useful for monitoring specific trading relationships or
            connections.

            - Can be used to focus on particular allocation targets.


            If omitted, results will include data for all your connections
            subject to other filters.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connection IDs to filter by.


                If provided:

                - Only balances for connections with these specific IDs will be
                returned.

                - Useful for monitoring specific trading relationships or
                connections.

                - Can be used to focus on particular allocation targets.


                If omitted, results will include data for all your connections
                subject to other filters.
        - name: partnerIds
          description: >-
            Optional array of partner IDs to filter by.


            If provided:

            - Only balances for connections to partners with these IDs will be
            returned.

            - Useful for focusing on balances with specific partner
            organizations.

            - Can be used to monitor exposure to particular partners.


            If omitted, results will include data for connections to all
            partners.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partner IDs to filter by.


                If provided:

                - Only balances for connections to partners with these IDs will
                be returned.

                - Useful for focusing on balances with specific partner
                organizations.

                - Can be used to monitor exposure to particular partners.


                If omitted, results will include data for connections to all
                partners.
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the allocation.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientBalancesGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections:
    get:
      summary: List client connections
      description: >-
        List all your Go network connections. For use only by OES clients.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for enterpriseId, invalid filter
        parameters,

        invalid pagination parameters, invalid partner IDs.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Missing or invalid auth token, expired credentials.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Client not authorized for this enterprise, client doesn't
        have

        permission to view connections.


        - 404: Not Found Error

        - Occurs when the specified enterprise cannot be found.

        - Examples: Enterprise ID doesn't exist or doesn't belong to the client.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, error retrieving connection
        data.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientConnectionsGetRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: active
          in: query
          schema:
            type: boolean
        - name: connectionIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: names
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: partnerIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionsGetOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Connect to partner
      description: >-
        Connect your OES client account to an OES partner account, enabling you
        to

        trade funds that you have custodied with BitGo. You must have an account
        on the partner's site.

        Clients can have multiple connections to the same partner.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for enterpriseId or partnerId, missing
        required fields,

        invalid payload format, invalid signature, payload doesn't match request
        data.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise. Payload/Signature
        are not valid.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified resources cannot be found.

        - Examples: Enterprise ID doesn't exist, specified partner ID doesn't
        exist.


        - 422: Unprocessable Content Error

        - Occurs when the request is valid but cannot be processed due to
        business rules.

        - Examples: Invalid connection key schema for partner, unsupported key
        schema,

        partner is inactive, client and partner belong to different trust
        organizations.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues. Transient network errors,


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1ClientConnectionsPostRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                partnerId:
                  type: string
                  title: uuid
                name:
                  type: string
                  minLength: 1
                connectionKey:
                  $ref: '#/components/schemas/ConnectionKey'
                nonce:
                  type: string
                  minLength: 1
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
              required:
                - partnerId
                - name
                - connectionKey
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/{connectionId}:
    get:
      summary: Get Client Connection
      description: >-
        Returns an OES connection by its connection ID. For use only by OES
        clients.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed

        - Examples: Invalid UUID format for connectionId, invalid enterpriseId
        format


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this client.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, transient network errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientConnectionGetRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: connectionId
          description: >-
            The unique identifier of the connection to retrieve.

            This UUID uniquely identifies the connection between a client and
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the connection.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    put:
      summary: Update Client Connection
      description: >-
        Update a OES connection by its connection ID. For use only by OES
        clients.

        Allows clients to modify connection properties such as name or active
        status.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for connectionId, invalid enterpriseId
        format,

        malformed request body.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this client.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, transient network errors.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1ClientConnectionPutRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the connection.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: connectionId
          description: >-
            The unique identifier of the connection to update.

            This UUID uniquely identifies the connection between a client and a
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                active:
                  type: boolean
                  description: >-
                    Whether the connection is active.

                    When set to false, the connection is deactivated and cannot
                    be allocated to until it is activated 

                    again (deallocations can still occur).

                    When set to true, the connection is activated can be
                    allocated to again.
                name:
                  type: string
                  description: >-
                    A user-friendly name for the connection.

                    Allows clients to provide a descriptive label for this
                    particular connection.
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/{connectionId}/allocations:
    post:
      summary: Allocate funds to partner connection
      description: >-
        This API call allows clients to allocate funds to a connected partner
        for trade.

        A successful allocation indicates that funds are locked at BitGo and
        available for spend on the connected partner.

        Note: Allocations will happen synchronously and allocated amounts can be
        viewed in the

        BitGo application or via a balances endpoint.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1ClientAllocationsPostRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: connectionId
          description: >-
            The unique identifier of the connection you want to allocate funds
            to.


            This connection:

            - Must be a valid, established connection between your enterprise
            and a partner.

            - Determines where the allocated funds will be available for use.

            - Should be pre-established before attempting to allocate funds.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The unique identifier of your enterprise.

            This identifier:
            - Represents your organization within the BitGo system.
            - Is used to validate you have permission to perform this action.
            - Must match the enterprise associated with your API credentials.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to allocate in base units.

                    Contains both the currency identifier and the quantity in
                    the currency's base units.

                    The exact base units depend on the currency (e.g., satoshis
                    for BTC, wei for ETH).
                clientExternalId:
                  type: string
                  description: >-
                    A unique external identifier for the allocation.


                    This identifier:

                    - Must be unique for each distinct allocation request.

                    - Is used for idempotence to prevent duplicate allocations.

                    - Allows clients to correlate allocations with their own
                    systems.

                    - Should be stored by the client for tracking and
                    reconciliation.
                  minLength: 1
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes to attach to the allocation.


                    These notes:

                    - Can provide additional context about the purpose of the
                    allocation.

                    - Are stored with the allocation record.

                    - May be useful for auditing, record-keeping, or operational
                    purposes.

                    - Are visible to both client and partner.
                  minLength: 1
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    other request properties.


                    This includes:

                    - amount: The amount to allocate.

                    - clientExternalId: Your unique identifier for this
                    allocation.

                    - nonce: A unique value to prevent replay attacks.

                    - notes: Optional notes about the allocation.

                    - connectionId: The connection to allocate funds to.

                    - enterpriseId: Your enterprise ID.


                    The payload must be signed using your BitGo account's
                    private key

                    to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key.

                    - Verifies that the request is authentic and hasn't been
                    tampered with.

                    - Provides non-repudiation for the allocation request.
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/V1AllocationsClearedPostPayload'
                  - $ref: >-
                      #/components/schemas/V1ReservedNonRetriableAllocationsPostPayload
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1AllocationsReleasedWithErrorPostPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ReservedAllocationOrErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/{connectionId}/allocations/signing:
    get:
      summary: Get Signing Payload for Client Allocations
      description: >-
        This API call allows clients to get the client allocations payload for
        signing.

        If your HTTP client doesn't support sending a request body on a get
        request, use the v1ClientAllocationsSigningPostRoute


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientAllocationsSigningGetRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: connectionId
          description: >-
            The unique identifier of the connection you want to allocate funds
            to.


            This connection:

            - Must be a valid, established connection between your enterprise
            and a partner.

            - Determines where the allocated funds will be available for use.

            - Should be pre-established before attempting to allocate funds.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The unique identifier of your enterprise.

            This identifier:
            - Represents your organization within the BitGo system.
            - Is used to validate you have permission to perform this action.
            - Must match the enterprise associated with your API credentials.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to allocate in base units.

                    Contains both the currency identifier and the quantity in
                    the currency's base units.

                    The exact base units depend on the currency (e.g., satoshis
                    for BTC, wei for ETH).
                clientExternalId:
                  type: string
                  description: >-
                    A unique external identifier for the allocation.


                    This identifier:

                    - Must be unique for each distinct allocation request.

                    - Is used for idempotence to prevent duplicate allocations.

                    - Allows clients to correlate allocations with their own
                    systems.

                    - Should be stored by the client for tracking and
                    reconciliation.
                  minLength: 1
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes to attach to the allocation.


                    These notes:

                    - Can provide additional context about the purpose of the
                    allocation.

                    - Are stored with the allocation record.

                    - May be useful for auditing, record-keeping, or operational
                    purposes.

                    - Are visible to both client and partner.
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientAllocationsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Get Signing Payload for Client Allocations (Post variant)
      description: >-
        This API call allows clients to get the client allocations payload for
        signing.

        This endpoint is effectively the same as the GET endpoint, but is
        helpful if your HTTP client doesn't support sending a request body on a
        get request.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1ClientAllocationsSigningPostRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: connectionId
          description: >-
            The unique identifier of the connection you want to allocate funds
            to.


            This connection:

            - Must be a valid, established connection between your enterprise
            and a partner.

            - Determines where the allocated funds will be available for use.

            - Should be pre-established before attempting to allocate funds.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The unique identifier of your enterprise.

            This identifier:
            - Represents your organization within the BitGo system.
            - Is used to validate you have permission to perform this action.
            - Must match the enterprise associated with your API credentials.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to allocate in base units.

                    Contains both the currency identifier and the quantity in
                    the currency's base units.

                    The exact base units depend on the currency (e.g., satoshis
                    for BTC, wei for ETH).
                clientExternalId:
                  type: string
                  description: >-
                    A unique external identifier for the allocation.


                    This identifier:

                    - Must be unique for each distinct allocation request.

                    - Is used for idempotence to prevent duplicate allocations.

                    - Allows clients to correlate allocations with their own
                    systems.

                    - Should be stored by the client for tracking and
                    reconciliation.
                  minLength: 1
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes to attach to the allocation.


                    These notes:

                    - Can provide additional context about the purpose of the
                    allocation.

                    - Are stored with the allocation record.

                    - May be useful for auditing, record-keeping, or operational
                    purposes.

                    - Are visible to both client and partner.
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientAllocationsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/{connectionId}/deallocations:
    post:
      summary: Deallocate Funds from Connection
      description: >-
        This API call allows clients to deallocate funds from a connected
        partner.

        A successful deallocation will unlock funds and ensure that they are
        available

        for actions (withdrawal/rebalancing) at BitGo.

        Note: Deallocations will happen synchronously and deallocated amounts
        can be viewed in the

        BitGo Application or via a balance endpoint.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for connectionId, invalid enterpriseId
        format,

        malformed request body, invalid signature format.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this client.


        - 422: Deallocation Error with Released Status

        - Occurs when the deallocation cannot be processed due to business
        rules.

        - Examples: Insufficient funds available for deallocation, connection is
        inactive,

        deallocation amount exceeds available balance.


        - 500: Internal Server Error or Reserved Deallocation

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, transient network errors.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1ClientDeallocationsPostRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the connection.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: connectionId
          description: >-
            The unique identifier of the connection to deallocate from.

            This UUID uniquely identifies the connection between a client and a
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to deallocate from the connection.

                    Contains both the currency identifier and the quantity in
                    base units.
                clientExternalId:
                  type: string
                  description: |-
                    External identifier provided by the client.
                    Used for idempotence and correlation with client systems.
                  minLength: 1
                nonce:
                  type: string
                  description: >-
                    A unique nonce value used for cryptographic operations.

                    This provides additional security for deallocation
                    operations.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes provided by the client when creating the
                    deallocation.

                    Can contain additional context or information about the
                    purpose of the deallocation.
                  minLength: 1
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    other request properties.


                    This includes:

                    - amount: The amount to deallocate.

                    - clientExternalId: Your unique identifier for this
                    deallocation.

                    - nonce: A unique value to prevent replay attacks.

                    - notes: Optional notes about the deallocation.

                    - connectionId: The connection to deallocate funds from.

                    - enterpriseId: Your enterprise ID.


                    The payload must be signed using your BitGo account's
                    private key to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key

                    - Verifies that the request is authentic and hasn't been
                    tampered with

                    - Provides non-repudiation for the deallocation request
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/V1DeallocationClearedPostPayload'
                  - $ref: '#/components/schemas/V1ReservedDeallocationsPostPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1DeallocationReleasedWithErrorPostPayload
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ReservedDeallocationOrErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/{connectionId}/deallocations/signing:
    get:
      summary: Get Signing Payload for Client Deallocations
      description: >-
        This API call allows clients to get the client deallocations payload for
        signing.

        The returned payload should be cryptographically signed by the client
        and included

        in the subsequent deallocation request.


        If your HTTP client doesn't support sending a request body on a get
        request, use the V1ClientDeallocationsSigningPostRoute


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for connectionId, malformed request
        body.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this client.


        - 422: Unprocessable Entity Error

        - Occurs when the request is valid but cannot be processed due to
        business rules.

        - Examples: Connection is inactive, requested currency not supported.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues.


        **Requires access token scope:** `settlement_network_read`
      operationId: V1ClientDeallocationsSigningGetRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the connection.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: connectionId
          description: >-
            The unique identifier of the connection to deallocate from.

            This UUID uniquely identifies the connection between a client and a
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to deallocate from the connection.

                    Contains both the currency identifier and the quantity in
                    base units.
                clientExternalId:
                  type: string
                  description: |-
                    External identifier provided by the client.
                    Used for idempotence and correlation with client systems.
                  minLength: 1
                nonce:
                  type: string
                  description: >-
                    A unique nonce value used for cryptographic operations.

                    This provides additional security for deallocation
                    operations.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes provided by the client when creating the
                    deallocation.

                    Can contain additional context or information about the
                    purpose of the deallocation.
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientDeallocationsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Get Signing Payload for Client Deallocations (Post variant)
      description: >-
        This API call allows clients to get the client deallocations payload for
        signing.

        This endpoint is effectively the same as the GET endpoint, but is
        helpful if your HTTP client doesn't support sending a request body on a
        get request.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for connectionId, malformed request
        body.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this client.


        - 422: Unprocessable Entity Error

        - Occurs when the request is valid but cannot be processed due to
        business rules.

        - Examples: Connection is inactive, requested currency not supported.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1ClientDeallocationsSigningPostRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the connection.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: connectionId
          description: >-
            The unique identifier of the connection to deallocate from.

            This UUID uniquely identifies the connection between a client and a
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositiveBNCurrencyAmount'
                  description: >-
                    The amount to deallocate from the connection.

                    Contains both the currency identifier and the quantity in
                    base units.
                clientExternalId:
                  type: string
                  description: |-
                    External identifier provided by the client.
                    Used for idempotence and correlation with client systems.
                  minLength: 1
                nonce:
                  type: string
                  description: >-
                    A unique nonce value used for cryptographic operations.

                    This provides additional security for deallocation
                    operations.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes provided by the client when creating the
                    deallocation.

                    Can contain additional context or information about the
                    purpose of the deallocation.
                  minLength: 1
              required:
                - amount
                - clientExternalId
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientDeallocationsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/connections/signing:
    get:
      summary: Get Signing Payload for Client Connections
      description: >-
        This API call allows clients to get the client connections payload for
        signing.

        If your HTTP client doesn't support sending a request body on a get
        request, use the V1ClientConnectionsSigningPostRoute


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed

        - Examples: Empty string provided for entepriseId, missing required
        fields in request body.


        - 401: Authentication Error

        - Occurs when the request is not authorized

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified resources cannot be found.

        - Examples: Enterprise ID doesn't exist, specified partner ID doesn't
        exist.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues. Transient network errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: V1ClientConnectionsSigningGetRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                partnerId:
                  type: string
                  title: uuid
                name:
                  type: string
                  minLength: 1
                connectionKey:
                  $ref: '#/components/schemas/ConnectionKey'
                nonce:
                  type: string
                  minLength: 1
              required:
                - partnerId
                - name
                - connectionKey
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientConnectionsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Get Signing Payload for Client Connections (Post variant)
      description: >-
        This API call allows clients to get the client connections payload for
        signing.

        This endpoint is effectively the same as the GET endpoint, but is
        helpful if your HTTP client doesn't support sending a request body on a
        get request.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed

        - Examples: Empty string provided for entepriseId, missing required
        fields in request body.


        - 401: Authentication Error

        - Occurs when the request is not authorized

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified resources cannot be found.

        - Examples: Enterprise ID doesn't exist, specified partner ID doesn't
        exist.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues. Transient network errors.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1ClientConnectionsSigningPostRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                partnerId:
                  type: string
                  title: uuid
                name:
                  type: string
                  minLength: 1
                connectionKey:
                  $ref: '#/components/schemas/ConnectionKey'
                nonce:
                  type: string
                  minLength: 1
              required:
                - partnerId
                - name
                - connectionKey
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientConnectionsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlement/disputes:
    get:
      summary: List Settlement Disputes for a Client
      description: >-
        This API call allows clients to list disputes associated with their
        settlements.


        **Requires access token scope:** `settlement_network_read`
      operationId: listClientSettlementDisputes
      tags:
        - Settlement Disputes
      x-internal: false
      parameters:
        - name: settlementIds
          description: >-
            Optional array of settlement ids. 

            If provided will only return disputes with a disputedSettlementId
            matching one of the provided settlementIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of settlement ids. 

                If provided will only return disputes with a
                disputedSettlementId matching one of the provided settlementIds.
        - name: settledInSettlementIds
          description: >-
            Optional array of settlement ids. 

            If provided will only return disputes with a settledInSettlementId
            matching one of the provided settlementIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of settlement ids. 

                If provided will only return disputes with a
                settledInSettlementId matching one of the provided
                settlementIds.
        - name: connectionIds
          description: >-
            Optional array of connection ids. 

            If provided will only return disputes with a connectionId matching
            one of the provided connectionIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connection ids. 

                If provided will only return disputes with a connectionId
                matching one of the provided connectionIds.
        - name: partnerIds
          description: >-
            Optional array of partner ids. 

            If provided will only return disputes for settlements initiated by a
            partner with an id matching one of 

            the provided partnerIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partner ids. 

                If provided will only return disputes for settlements initiated
                by a partner with an id matching one of 

                the provided partnerIds.
        - name: closed
          description: >-
            Optional boolean value indicating whether to include only
            closed/open disputes in the response.

            If true is provided, only closed disputes will be returned.

            If false is provided, only open disputes will be returned.

            If not provided, all disputes will be returned.
          in: query
          schema:
            type: boolean
        - name: disputeIds
          description: >-
            Optional array of disputeIds. 

            If provided will only return disputes with an id matching one of the
            provided disputeIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of disputeIds. 

                If provided will only return disputes with an id matching one of
                the provided disputeIds.
        - name: disputeClosureIds
          description: >-
            Optional array of disputeClosureIds. 

            If provided will only return disputes with a disputeClosureId
            matching one of the provided disputeClosureIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of disputeClosureIds. 

                If provided will only return disputes with a disputeClosureId
                matching one of the provided disputeClosureIds.
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the allocation.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1DisputesWithClosureWithTransfersOutput'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlements:
    get:
      summary: List Client Settlements
      description: >-
        This API call allows clients to get a list of settlements that involve
        their accounts and their metadata.

        Results can be filtered by various parameters and are paginated.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format, invalid pagination parameters.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified enterprise cannot be found.

        - Examples: Enterprise ID doesn't exist.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, query errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientSettlementsGetRoute
      tags:
        - Client Settlements & Transfers
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: settlementIds
          description: |-
            Filter by specific settlement IDs.
            When provided, only settlements matching these IDs will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific settlement IDs.

                When provided, only settlements matching these IDs will be
                returned.
        - name: onlyShowDisputed
          description: >-
            Filter to show only disputed settlements.

            When set to true, only settlements that have disputes will be
            returned.

            Setting to false will have no effect.
          in: query
          schema:
            type: boolean
        - name: partnerIds
          description: >-
            Filter by specific partner IDs.

            When provided, only settlements involving these partners will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific partner IDs.

                When provided, only settlements involving these partners will be
                returned.
        - name: partyConnectionIds
          description: >-
            Filter by specific party connection IDs.

            When provided, only settlements involving these connections as
            parties will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific party connection IDs.

                When provided, only settlements involving these connections as
                parties will be returned.
        - name: counterpartyConnectionIds
          description: >-
            Filter by specific counterparty connection IDs.

            When provided, only settlements involving these connections as
            counterparties will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific counterparty connection IDs.

                When provided, only settlements involving these connections as
                counterparties will be returned.
        - name: statuses
          description: >-
            Filter by settlement statuses.

            When provided, only settlements with these statuses will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - failed
                - completed
                - pending
                - rejected
              description: >-
                Filter by settlement statuses.

                When provided, only settlements with these statuses will be
                returned.
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientListSettlementsOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlements/{settlementId}:
    get:
      summary: Get Client Settlement
      description: >-
        This API call allows clients to get a list of settlement transactions
        for any connected network account,

        for a specific settlement. The settlement and its metadata will be
        returned along with all

        related settlement transfers in and out of the clients’ network
        accounts.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for settlementId, invalid enterpriseId
        format.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated client doesn’t have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified settlement cannot be found.

        - Examples: Settlement ID doesn’t exist or the calling client isn’t
        involved in the settlement.


        - 500: Internal Server Error

        - Occurs when there’s an unexpected server error processing the request.

        - Examples: Database connection issues.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientSettlementGetRoute
      tags:
        - Client Settlements & Transfers
      x-internal: false
      parameters:
        - name: currencies
          description: >-
            Filter by specific currencies.

            When provided, only settlement transfers involving these currencies
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                Filter by specific currencies.

                When provided, only settlement transfers involving these
                currencies will be included.
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          description: |-
            The unique identifier of the settlement to retrieve.
            This is a UUID that uniquely identifies the settlement record.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientGetSettlementOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlements/{settlementId}/disputes:
    post:
      summary: Dispute a Settlement
      description: >-
        This API call allows clients to dispute a settlement (if within the
        dispute window).


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: createClientSettlementDispute
      tags:
        - Settlement Disputes
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                connectionId:
                  type: string
                  title: uuid
                reason:
                  type: string
                expectedTransfers:
                  $ref: '#/components/schemas/ExpectedTransfersRequest'
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
                nonce:
                  type: string
                  minLength: 1
              required:
                - connectionId
                - expectedTransfers
                - payload
                - signature
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1DisputePayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlements/disputes/{disputeId}:
    put:
      summary: Update a Settlement Dispute
      description: >-
        This API call allows clients to retract or un-retract a dispute (if
        within the dispute window).


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: updateClientSettlementDispute
      tags:
        - Settlement Disputes
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: disputeId
          description: The unique identifier of the dispute you want to update.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                connectionId:
                  type: string
                  description: >-
                    The unique identifier of the connection under which the
                    dispute was created.
                  title: uuid
                retracted:
                  type: boolean
                  description: >-
                    Retraction state you wish to update to. 


                    - if true is supplied, your dispute will transition to a
                    retracted state and the settlement transfers 
                      will be executed at the time of settlement provided it remains in a retracted state.
                    - if false is supplied, your dispute will transition to a
                    non-retracted state and the settlement transfers
                      will not be executed at the time of settlement provided it remains in an non-retracted state.
                reason:
                  type: string
                  description: >-
                    The optional reason for retracting/un-retracting.

                    If retracting, the reason will be persisted and returned in
                    the retractionReason field on the disptue object.

                    If un-retracting, the reason will be persisted and returned
                    in the reason field on the dispute object.
                  minLength: 1
                expectedTransfers:
                  type: object
                  additionalProperties:
                    type: string
                  description: >-
                    Optional object representing the transfers you expected to
                    be included in the settlement that this dispute is 

                    assiciated with. If provided, the expectedTransfers property
                    on the dispute will be updated based on the 

                    provided value.


                    The object is represented as a record where the keys are
                    currency identifiers and the values are the amounts 

                    you expected to be transacted for the associated currency
                    represented in base units of the currency (i.e. sats 

                    for BTC, wei for ETH. A positive amount indicates that you
                    expected to receive that amount of the associated 

                    currency, where a negative amount indicates that you
                    expected to send that amount of the associated currencies.

                    Zero values are not accepted; if you didn't expect to send
                    or recieve a given currency, simply omit that 

                    currency from the expectedTransfers object.
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    request body properties and the disputeId & settlementId

                    parameters.


                    The payload must be signed using your BitGo account's
                    private key

                    to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key.

                    - Verifies that the request is authentic and hasn't been
                    tampered with.

                    - Provides non-repudiation for the allocation request.
                  minLength: 1
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
              required:
                - connectionId
                - retracted
                - payload
                - signature
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1DisputePayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlements/disputes/{disputeId}/close:
    post:
      summary: Close a dispute
      description: >-
        Close a dispute for cases when their dispute is invalid.

        If the dispute was valid and instructions need to be adjusted then a
        bitgo admin will need to close it.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1ClientSettlementDisputeClosurePostRoute
      tags:
        - Settlement Disputes
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the client.
            This identifies the client enterprise that owns the allocation.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: disputeId
          description: |-
            The unique identifier of the dispute to be closed.
            This is a UUID that uniquely identifies the dispute record.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    other request properties.


                    This includes:

                    - enterpriseId

                    - disputeId

                    - notes

                    - nonce


                    The payload must be signed using your BitGo account's
                    private key

                    to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key.

                    - Verifies that the request is authentic and hasn't been
                    tampered with.

                    - Provides non-repudiation for the allocation request.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Notes for why the dispute is being closed with the original
                    settlement transfers
                  minLength: 1
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
              required:
                - payload
                - signature
                - notes
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientDisputeClosurePayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/clients/settlementTransfers:
    get:
      summary: List client settlement transfers
      description: |-
        Lists all settlement transfers for your OES client account.

        **Requires access token scope:** `settlement_network_read`
      operationId: v1ClientSettlementTransfersGetRoute
      tags:
        - Client Settlements & Transfers
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: currencies
          description: >-
            Optional array of currencies. 

            If provided will only return settlement transfers with those
            currencies.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                Optional array of currencies. 

                If provided will only return settlement transfers with those
                currencies.
        - name: initiatedBy
          description: >-
            Optional array of user ids. 

            If provided will only return settlement transfers for settlements
            initiated by those users.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Optional array of user ids. 

                If provided will only return settlement transfers for
                settlements initiated by those users.
        - name: partnerIds
          description: >-
            Optional array of partner ids. 

            If provided will only return settlement transfers for settlements
            initiated by those partners.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partner ids. 

                If provided will only return settlement transfers for
                settlements initiated by those partners.
        - name: settlementIds
          description: >-
            Optional array of settlement ids. 

            If provided will only return settlement transfers for settlements
            with those ids.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of settlement ids. 

                If provided will only return settlement transfers for
                settlements with those ids.
        - name: settlementStatuses
          description: >-
            Optional array of settlement statuses. 

            If provided will only return settlement transfers for settlements in
            those statuses.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - failed
                - completed
                - pending
                - rejected
              description: >-
                Optional array of settlement statuses. 

                If provided will only return settlement transfers for
                settlements in those statuses.
        - name: settlementTransferStatuses
          description: >-
            Optional array of settlement transfer statuses. 

            If provided will only return settlement transfers with those
            statuses.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - pending
                - pending_onchain
                - onchain_initiated
                - onchain_failed
                - completed
                - failed
                - rejected
                - disputed
                - pending_settlement_assignment
              description: >-
                Optional array of settlement transfer statuses. 

                If provided will only return settlement transfers with those
                statuses.
        - name: settlementUpdatedBefore
          description: >-
            optional date start range filter for updatedAt (ISO 8601 Date).

            If provided will only return settlement transfers for settlements
            updated before the provided date.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: settlementUpdatedOnOrAfter
          description: >-
            optional date start range filter for updatedAt (ISO 8601 Date).

            If provided will only return settlement transfers for settlements
            updated on or after the provided date.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: sortField
          in: query
          schema:
            type: string
            enum:
              - updatedAt
        - name: sortDirection
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ClientGetSettlementTransfersOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners:
    get:
      summary: List Partners
      description: >-
        Lists all OES Partners associated with the specified enterprise.

        Returns a collection of partners with information required to connect to
        them.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or incomplete.

        - Examples: Empty string supplied for enterpriseId.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have access to create a
        partner.

        - Examples: Enterprise does not have OES license.


        - 500: Internal Server Error

        - Occurs when there's an unexpected error processing the request

        - Examples: Database connection failure, transient network error.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnersGetRoute
      tags:
        - Client Activation
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: ids
          description: |-
            Filter by specific partner IDs.
            When provided, only partners with these IDs will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: |-
                Filter by specific partner IDs.
                When provided, only partners with these IDs will be returned.
        - name: names
          description: |-
            Filter by partner names.
            When provided, only partners with these names will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: |-
                Filter by partner names.
                When provided, only partners with these names will be returned.
        - name: institutionIds
          description: >-
            Filter by institution IDs.

            When provided, only partners linked to these institutions will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by institution IDs.

                When provided, only partners linked to these institutions will
                be returned.
        - name: institutionIdentifiers
          description: >-
            Filter by institution identifiers.

            When provided, only partners with these institution identifiers will
            be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Filter by institution identifiers.

                When provided, only partners with these institution identifiers
                will be returned.
        - name: active
          description: |-
            Filter by active status.
            When true, only active partners will be returned.
            When false, only inactive partners will be returned.
            When not provided, partners of any status will be returned.
          in: query
          schema:
            type: boolean
        - name: filterByTrustOrg
          description: >-
            Filter by trust organization.

            When provided, only partners belonging to this trust organization
            will be returned.
          in: query
          schema:
            type: boolean
        - name: allocationPoliciesEnabled
          description: >-
            Filter by allocation policies enabled.

            When true, only partners with allocation policies enabled will be
            returned.

            When false, only partners with allocation policies disabled will be
            returned.

            When not provided, partners with any allocation policies status will
            be returned.
          in: query
          schema:
            type: boolean
        - name: enterpriseId
          description: The enterprise ID of the client making the request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnersGetOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Create Partner
      description: >-
        Create a new OES Partner. This endpoint allows enterprise users to add
        themselves as a partner in OES for

        clients to connect to.


        Before calling this endpoint, a configuration for the partner must
        exist.


        If a config is not present for the partner, the request will fail with a
        422 error.


        To initiate the creation of a partner config, please reach out to the

        Go Network Engineering team at: go-network-eng@bitgo.com.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or incomplete.

        - Examples: Empty string supplied for enterpriseId, invalid connection
        key schema.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have access to create a
        partner.

        - Examples: Enterprise does not have OES license.


        - 422: Unprocessable Entity Error

        - Returned when a required partner configuration is missing.

        - Examples: Partner configuration is missing.


        - 500: Internal Server Error

        - Occurs when there's an unexpected error processing the request

        - Examples: Database connection failure, transient network error.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnersPostRoute
      tags:
        - Onboarding
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: |-
                    The name of the partner.
                    This will be displayed in the UI.
                  minLength: 1
                broker:
                  type: boolean
                  description: >-
                    Indicates whether the partner is a broker.

                    If true, the partner can facilitate trading between clients.

                    If false, the partner acts as an exchange with its own
                    trading accounts.
                institutionId:
                  type: string
                  description: |-
                    Optional UUID for the partner's institution record.
                    Links the partner to an institution in the BitGo system.
                  title: uuid
                institutionIdentifier:
                  type: string
                  description: |-
                    External identifier for the partner's institution.
                    Provides an alternative way to identify the institution.
                  minLength: 1
                connectionKeySchema:
                  allOf:
                    - $ref: '#/components/schemas/PartnerConnectionKeySchema'
                  description: >-
                    The key schema used for partner connections.

                    Defines the structure and validation rules for connection
                    keys.
                clientDisputeWindowMinutes:
                  type: number
                  description: >-
                    Optional window (in minutes) for clients to dispute
                    settlements.

                    Defines how long after a settlement clients have to raise
                    disputes.

                    Null means no dispute window is configured.
                topUpWindowMinutes:
                  type: number
                  description: >-
                    Optional window (in minutes) for topping up settlements.

                    Defines the period during which a settlement can be topped
                    up.

                    Null means no top-up window is configured.
                allocationPoliciesEnabled:
                  type: boolean
                  description: >-
                    Optional flag to enable or disable allocation policies for
                    the partner.

                    When true, policy evaluation features
                    (allocation/deallocation) are enabled.

                    When false or not provided, defaults to false for backward
                    compatibility.
              required:
                - name
                - broker
                - institutionIdentifier
                - connectionKeySchema
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnersPostOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/allocations:
    get:
      summary: List partner allocations and deallocations
      description: |-
        Lists all allocations and deallocations. For use only by OES partners.

        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerAllocationsGetRoute
      tags:
        - Partner Allocations & Deallocations
      x-internal: false
      parameters:
        - name: allocationIds
          description: >-
            Optional array of allocationIds. allocationIds are unique
            identifiers (UUIDs) for allocations.

            If UUIDs are provided, only allocations/deallocations with those
            UUIDs are returned.

            UUIDs must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of allocationIds. allocationIds are unique
                identifiers (UUIDs) for allocations.

                If UUIDs are provided, only allocations/deallocations with those
                UUIDs are returned.

                UUIDs must be submitted as a comma-separated string.
        - name: types
          description: >-
            Optional array of types.

            If types are provided, only allocations/deallocations with those
            types are returned.

            Types must be submitted as a comma-separated string.

            allocation = records for allocations to connections.

            deallocation = records for deallocations from connections.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - allocation
                - deallocation
              description: >-
                Optional array of types.

                If types are provided, only allocations/deallocations with those
                types are returned.

                Types must be submitted as a comma-separated string.

                allocation = records for allocations to connections.

                deallocation = records for deallocations from connections.
        - name: statuses
          description: >-
            Optional array of statuses.

            If statuses are provided, only allocations/deallocations with those
            statuses are returned.

            Statuses must be submitted as a comma-separated string.

            cleared = records for allocations that have been cleared.

            released = records for allocations that have been released.

            reserved = records for allocations that are still reserved.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - cleared
                - released
                - reserved
              description: >-
                Optional array of statuses.

                If statuses are provided, only allocations/deallocations with
                those statuses are returned.

                Statuses must be submitted as a comma-separated string.

                cleared = records for allocations that have been cleared.

                released = records for allocations that have been released.

                reserved = records for allocations that are still reserved.
        - name: currencies
          description: >-
            Optional array of partner mapped currencies.

            If currencies are provided, only allocations/deallocations with
            those currencies are returned.

            Currencies must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Optional array of partner mapped currencies.

                If currencies are provided, only allocations/deallocations with
                those currencies are returned.

                Currencies must be submitted as a comma-separated string.
        - name: connectionIds
          description: >-
            Optional array of connectionIds.

            If connectionIds are provided, only allocations/deallocations for
            those connectionIds are returned.

            ConnectionIds must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connectionIds.

                If connectionIds are provided, only allocations/deallocations
                for those connectionIds are returned.

                ConnectionIds must be submitted as a comma-separated string.
        - name: partnerIds
          description: >-
            Optional array of partnerIds.

            If partnerIds are provided, only allocations/deallocations for those
            partnerIds are returned.

            PartnerIds must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partnerIds.

                If partnerIds are provided, only allocations/deallocations for
                those partnerIds are returned.

                PartnerIds must be submitted as a comma-separated string.
        - name: clientIds
          description: >-
            Optional array of clientIds.

            If clientIds are provided, only allocations/deallocations for those
            clientIds are returned.

            ClientIds must be submitted as a comma-separated string.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of clientIds.

                If clientIds are provided, only allocations/deallocations for
                those clientIds are returned.

                ClientIds must be submitted as a comma-separated string.
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: sortField
          description: >-
            The field to sort results on.


            Possible values:

            - id: Sort by allocation ID.

            - updatedAt: Sort by the last updated timestamp.

            - quantity: Sort by the allocation amount quantity.


            Note: A final sort is always applied on createdAt ascending and id
            ascending,

            regardless of the specified sortField. This ensures consistent
            ordering

            for items with the same primary sort value.
          in: query
          schema:
            type: string
            enum:
              - id
              - updatedAt
              - quantity
        - name: sortDirection
          description: >-
            The direction to sort results.


            Possible values:

            - ASC: Ascending order (lowest to highest, A to Z, oldest to newest)

            - DESC: Descending order (highest to lowest, Z to A, newest to
            oldest)


            If not specified, defaults to ASC (ascending).
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1AllocationsGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    put:
      summary: Update Partner Allocations
      description: >-
        This API call allows partners to inform the OES system about an update
        to an allocation made to one of

        their connections. This endpoint is only relevant to OES partners that
        have async allocations enabled.


        A successful response indicates that the allocation was successfully
        updated in the OES system and the funds

        are cleared (if cleared is passed for status) or released (if released
        is passed for status).


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerAllocationsPutRoute
      tags:
        - Partner Allocations & Deallocations
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                allocationId:
                  type: string
                  description: |-
                    The unique identifier of the allocation to update.
                    This UUID uniquely identifies the allocation record.
                  title: uuid
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositivePartnerCurrencyAmount'
                  description: >-
                    The currency/quantity the allocation was made in.

                    This is a base unit amount.

                    The exact base units depend on the currency (e.g., satoshis
                    for BTC, wei for ETH).
                clientId:
                  type: string
                  description: >-
                    The unique identifier of the client associated with the
                    allocation.

                    This UUID uniquely identifies the client within the BitGo
                    system.
                  title: uuid
                connectionId:
                  type: string
                  description: >-
                    The unique identifier of the connection associated with the
                    allocation.

                    This UUID uniquely identifies the connection between a
                    client and a partner.
                  title: uuid
                partnersClientId:
                  type: string
                  description: >-
                    The unique identifier of the client in the partner system.

                    This value uniquely identifies the client within the
                    partner's system.
                  minLength: 1
                partnersConnectionId:
                  type: string
                  description: >-
                    The unique identifier of the connection in the partner
                    system.

                    This value uniquely identifies the connection between a
                    client and a partner in the partner's system.
                  minLength: 1
                partnersAllocationId:
                  type: string
                  description: >-
                    The unique identifier of the allocation in the partner
                    system.

                    This value uniquely identifies the allocation record within
                    the partner's system.
                  minLength: 1
                evaluationId:
                  type: string
                  description: >-
                    The unique identifier of the policy evaluation for this
                    deallocation.

                    Present when policy evaluation was performed as part of the
                    deallocation update flow.
                  minLength: 1
                pendingApprovalId:
                  type: string
                  description: >-
                    The unique identifier of the pending approval for this
                    deallocation.

                    Present when policy evaluation resulted in a PENDING status
                    requiring manual approval.
                  minLength: 1
                policyResult:
                  type: string
                  enum:
                    - approved
                    - rejected
                  description: >-
                    The result of the policy evaluation for this deallocation.

                    - APPROVED: Policy evaluation passed and the operation was
                    allowed

                    - REJECTED: Policy evaluation failed and the operation was
                    denied

                    Not present if no policy evaluation was performed or if
                    evaluation is still pending.
                status:
                  allOf:
                    - $ref: '#/components/schemas/PartnerAllocationStatusUpdate'
                  description: >-
                    The status to update the allocation to.

                    The status can be either 'cleared' or 'released'.

                    If the status is 'released', a reason for the release must
                    be provided in the

                    form of a non-empty string.
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
                rejectReason:
                  type: string
                  description: The reason for releasing the allocation.
                  minLength: 1
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    other request properties.


                    This includes:

                    - status

                    - rejectReason (only if status is 'released')

                    - allocationId

                    - amount

                    - clientId

                    - connectionId

                    - partnersClientId

                    - partnersConnectionId

                    - partnersAllocationId

                    - nonce


                    The payload must be signed using your BitGo account's
                    private key

                    to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key.

                    - Verifies that the request is authentic and hasn't been
                    tampered with.

                    - Provides non-repudiation for the allocation request.
                  minLength: 1
              required:
                - allocationId
                - amount
                - clientId
                - connectionId
                - partnersClientId
                - partnersConnectionId
                - partnersAllocationId
                - status
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerUpdateAllocationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/allocations/{allocationId}:
    get:
      summary: Get partner allocation or deallocation
      description: '**Requires access token scope:** `settlement_network_read`'
      operationId: v1PartnerAllocationGetRoute
      tags:
        - Partner Allocations & Deallocations
      x-internal: false
      parameters:
        - name: allocationId
          description: |-
            The unique identifier of the allocation to retrieve.
            This is a UUID that uniquely identifies the allocation record.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1AllocationGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/balances:
    get:
      summary: List partner balances
      description: >-
        Lists all your OES balances. For use only by OES partners.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed

        - Examples: Invalid UUID format for enterpriseId, invalid filter
        parameters,

        invalid pagination parameters


        - 401: Authentication Error

        - Occurs when the request is not authorized

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions

        - Examples: Partner doesn't have permission to view balances. Enterprise
        does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified enterprise cannot be found

        - Examples: Enterprise ID doesn't exist or doesn't belong to the partner


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request

        - Examples: Database connection issues, transient network errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerBalancesGetRoute
      tags:
        - Partner Balances
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: partnerIds
          description: >-
            Optional array of partner IDs to filter by.


            If provided:

            - Only balances for partners with these IDs will be returned.

            - Only connections to these partners will be included.

            - Useful when a partner has multiple partner entities and wants to
            filter results.


            If omitted, results will include data for all partners the requester
            has access to.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partner IDs to filter by.


                If provided:

                - Only balances for partners with these IDs will be returned.

                - Only connections to these partners will be included.

                - Useful when a partner has multiple partner entities and wants
                to filter results.


                If omitted, results will include data for all partners the
                requester has access to.
        - name: clientIds
          description: >-
            Optional array of client IDs to filter by.


            If provided:

            - Only balances for clients with these IDs will be returned.

            - Useful for filtering results to specific client relationships.


            If omitted, results will include data for all clients connected to
            the partner.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of client IDs to filter by.


                If provided:

                - Only balances for clients with these IDs will be returned.

                - Useful for filtering results to specific client relationships.


                If omitted, results will include data for all clients connected
                to the partner.
        - name: connectionIds
          description: >-
            Optional array of connection IDs to filter by.


            If provided:

            - Only balances for connections with these specific IDs will be
            returned.

            - Useful for querying balances for specific connections.


            If omitted, results will include data for all connections subject to
            other filters.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connection IDs to filter by.


                If provided:

                - Only balances for connections with these specific IDs will be
                returned.

                - Useful for querying balances for specific connections.


                If omitted, results will include data for all connections
                subject to other filters.
        - name: partnersConnectionIds
          description: >-
            Optional array of partner connection IDs to filter by.


            If provided:

            - Only balances for connections with these partner-specific IDs will
            be returned.

            - These are the IDs that partners use in their own systems to
            identify connections.

            - Useful when partners want to look up balances using their own
            identifiers.


            If omitted, results will include data for all connections subject to
            other filters.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Optional array of partner connection IDs to filter by.


                If provided:

                - Only balances for connections with these partner-specific IDs
                will be returned.

                - These are the IDs that partners use in their own systems to
                identify connections.

                - Useful when partners want to look up balances using their own
                identifiers.


                If omitted, results will include data for all connections
                subject to other filters.
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerBalancesGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/connections:
    get:
      summary: List Partner Connections
      description: >-
        Returns all your OES connections. For use only by OES partners.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Empty string provided for enterpriseId. Invalid query
        values.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified enterprise cannot be found.

        - Examples: Enterprise ID doesn't exist or doesn't belong to the
        partner.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, error retrieving connection
        data.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerConnectionsGetRoute
      tags:
        - Partner Activation
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: active
          in: query
          schema:
            type: boolean
        - name: clientIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: connectionIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: partnersClientIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: partnersConnectionIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: partnerIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionsGetOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/connections/{connectionId}:
    get:
      summary: Get Partner Connection
      description: >-
        Returns an OES connection by its connection ID. For use only by OES
        partners.

        This endpoint allows partners to view connection details and status.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for connectionId, invalid enterpriseId
        format.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified connection cannot be found.

        - Examples: Connection ID doesn't exist, connection doesn't belong to
        this partner.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, transient network errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerConnectionGetRoute
      tags:
        - Partner Activation
      x-internal: false
      parameters:
        - name: connectionId
          description: >-
            The unique identifier of the connection to retrieve.

            This UUID uniquely identifies the connection between a client and a
            partner.
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConnectionPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/deallocations:
    put:
      summary: Update Partner Deallocations
      description: >-
        This API call allows partners to inform the OES system about an update
        to a deallocation made to one of

        their connections. This endpoint is only relevant to OES partners that
        have async deallocations enabled.


        A successful response indicates that the allocation was successfully
        updated in the OES system and the funds

        are cleared (if cleared is passed for status) or released (if released
        is passed for status).


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: V1PartnerDeallocationsPutRoute
      tags:
        - Partner Allocations & Deallocations
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                deallocationId:
                  type: string
                  description: |-
                    The unique identifier of the deallocation to update.
                    This UUID uniquely identifies the deallocation record.
                  title: uuid
                amount:
                  allOf:
                    - $ref: '#/components/schemas/PositivePartnerCurrencyAmount'
                  description: >-
                    The currency/quantity that was submitted for deallocation.

                    This is a base unit amount.

                    The exact base units depend on the currency (e.g., satoshis
                    for BTC, wei for ETH).
                clientId:
                  type: string
                  description: >-
                    The unique identifier of the client which initiated the
                    deallocation.

                    This UUID uniquely identifies the client within the BitGo
                    system.
                  title: uuid
                connectionId:
                  type: string
                  description: >-
                    The unique identifier of the connection to deallocate from.

                    This UUID uniquely identifies the connection between a
                    client and a partner.
                  title: uuid
                partnersClientId:
                  type: string
                  description: >-
                    The unique identifier of the client in the partner system.

                    This value uniquely identifies the client within the
                    partner's system.
                  minLength: 1
                partnersConnectionId:
                  type: string
                  description: >-
                    The unique identifier of the connection in the partner
                    system.

                    This value uniquely identifies the connection between a
                    client and a partner in the partner's system.
                  minLength: 1
                partnersDeallocationId:
                  type: string
                  description: >-
                    The unique identifier of the deallocation in the partner
                    system.

                    This value uniquely identifies the deallocation record
                    within the partner's system.
                  minLength: 1
                evaluationId:
                  type: string
                  description: >-
                    The unique identifier of the policy evaluation for this
                    deallocation.

                    Present when policy evaluation was performed as part of the
                    deallocation update flow.
                  minLength: 1
                pendingApprovalId:
                  type: string
                  description: >-
                    The unique identifier of the pending approval for this
                    deallocation.

                    Present when policy evaluation resulted in a PENDING status
                    requiring manual approval.
                  minLength: 1
                policyResult:
                  type: string
                  enum:
                    - approved
                    - rejected
                  description: >-
                    The result of the policy evaluation for this deallocation.

                    - APPROVED: Policy evaluation passed and the operation was
                    allowed

                    - REJECTED: Policy evaluation failed and the operation was
                    denied

                    Not present if no policy evaluation was performed or if
                    evaluation is still pending.
                status:
                  allOf:
                    - $ref: '#/components/schemas/PartnerAllocationStatusUpdate'
                  description: >-
                    The status to update the deallocation to.

                    The status can be either 'cleared' or 'released'.

                    If the status is 'released', a reason for the release must
                    be provided in the

                    form of a non-empty string.
                nonce:
                  type: string
                  description: |-
                    Unique nonce to prevent replay attacks.

                    This value:
                    - Must be unique for each request requiring a nonce.
                    - Should be a cryptographically strong random value.
                    - Is used as part of the request signing process.
                    - Helps ensure the signature can only be used once.
                  minLength: 1
                rejectReason:
                  type: string
                  description: The reason for releasing the deallocation.
                  minLength: 1
                payload:
                  type: string
                  description: >-
                    Payload formed by stringifying the object containing all
                    other request properties.


                    This includes:

                    - status

                    - rejectReason (only if status is 'released')

                    - deallocationId

                    - amount

                    - clientId

                    - connectionId

                    - partnersClientId

                    - partnersConnectionId

                    - partnersDeallocationId

                    - nonce


                    The payload must be signed using your BitGo account's
                    private key

                    to create the signature parameter.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key.

                    - Verifies that the request is authentic and hasn't been
                    tampered with.

                    - Provides non-repudiation for the allocation request.
                  minLength: 1
              required:
                - deallocationId
                - amount
                - clientId
                - connectionId
                - partnersClientId
                - partnersConnectionId
                - partnersDeallocationId
                - status
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerUpdateDeallocationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlement/disputes:
    get:
      summary: List Settlement Disputes for a Partner
      description: >-
        This API call allows partners to list disputes associated with their
        settlements.


        **Requires access token scope:** `settlement_network_read`
      operationId: listPartnerSettlementDisputes
      tags:
        - Settlement Disputes
      x-internal: false
      parameters:
        - name: settlementIds
          description: >-
            Optional array of settlement ids. 

            If provided will only return disputes with a disputedSettlementId
            matching one of the provided settlementIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of settlement ids. 

                If provided will only return disputes with a
                disputedSettlementId matching one of the provided settlementIds.
        - name: settledInSettlementIds
          description: >-
            Optional array of settlement ids. 

            If provided will only return disputes with a settledInSettlementId
            matching one of the provided settlementIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of settlement ids. 

                If provided will only return disputes with a
                settledInSettlementId matching one of the provided
                settlementIds.
        - name: connectionIds
          description: >-
            Optional array of connection ids. 

            If provided will only return disputes with a connectionId matching
            one of the provided connectionIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of connection ids. 

                If provided will only return disputes with a connectionId
                matching one of the provided connectionIds.
        - name: partnerIds
          description: >-
            Optional array of partner ids. 

            If provided will only return disputes for settlements initiated by a
            partner with an id matching one of 

            the provided partnerIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of partner ids. 

                If provided will only return disputes for settlements initiated
                by a partner with an id matching one of 

                the provided partnerIds.
        - name: closed
          description: >-
            Optional boolean value indicating whether to include only
            closed/open disputes in the response.

            If true is provided, only closed disputes will be returned.

            If false is provided, only open disputes will be returned.

            If not provided, all disputes will be returned.
          in: query
          schema:
            type: boolean
        - name: disputeIds
          description: >-
            Optional array of disputeIds. 

            If provided will only return disputes with an id matching one of the
            provided disputeIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of disputeIds. 

                If provided will only return disputes with an id matching one of
                the provided disputeIds.
        - name: disputeClosureIds
          description: >-
            Optional array of disputeClosureIds. 

            If provided will only return disputes with a disputeClosureId
            matching one of the provided disputeClosureIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of disputeClosureIds. 

                If provided will only return disputes with a disputeClosureId
                matching one of the provided disputeClosureIds.
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: settlementExternalIds
          description: >-
            Optional array of settlement externalIds. 

            If provided will only return disputes with a disputedSettlementId of
            a settlement with 

            an externalId matching one of the provided settlementExternalIds.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Optional array of settlement externalIds. 

                If provided will only return disputes with a
                disputedSettlementId of a settlement with 

                an externalId matching one of the provided
                settlementExternalIds.
        - name: settledInSettlementExternalIds
          description: >-
            Optional array of settlement externalIds. 

            If provided will only return disputes with a settledInSettlementId
            of a settlement with 

            an externalId matching one of the provided settlementExternalIds.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Optional array of settlement externalIds. 

                If provided will only return disputes with a
                settledInSettlementId of a settlement with 

                an externalId matching one of the provided
                settlementExternalIds.
        - name: showRetracted
          description: >-
            Optional boolean value indicating whether to include only retracted
            disputes in the response.

            If true is provided, retracted and non-retracted disputes will be
            returned.

            If false is provided or not provided, only non-retracted disputes
            will be returned.
          in: query
          schema:
            type: boolean
        - name: clientIds
          description: >-
            Optional array of clientIds.

            If provided will only return disputes for settlements initiated by a
            client with an id matching one of

            the provided clientIds.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Optional array of clientIds.

                If provided will only return disputes for settlements initiated
                by a client with an id matching one of

                the provided clientIds.
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1DisputesWithClosureWithTransfersOutput'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements:
    get:
      summary: List Partner Settlements
      description: >-
        Lists all settlements for your OES partner account with filtering
        options.

        Results can be filtered by various parameters and are paginated.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format, invalid pagination parameters.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, query errors.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerSettlementsGetRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: settlementIds
          description: |-
            Filter by specific settlement IDs.
            When provided, only settlements matching these IDs will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific settlement IDs.

                When provided, only settlements matching these IDs will be
                returned.
        - name: onlyShowDisputed
          description: >-
            Filter to show only disputed settlements.

            When set to true, only settlements that have disputes will be
            returned.

            Setting to false will have no effect.
          in: query
          schema:
            type: boolean
        - name: partnerIds
          description: >-
            Filter by specific partner IDs.

            When provided, only settlements involving these partners will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific partner IDs.

                When provided, only settlements involving these partners will be
                returned.
        - name: partyConnectionIds
          description: >-
            Filter by specific party connection IDs.

            When provided, only settlements involving these connections as
            parties will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific party connection IDs.

                When provided, only settlements involving these connections as
                parties will be returned.
        - name: counterpartyConnectionIds
          description: >-
            Filter by specific counterparty connection IDs.

            When provided, only settlements involving these connections as
            counterparties will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific counterparty connection IDs.

                When provided, only settlements involving these connections as
                counterparties will be returned.
        - name: externalIds
          description: >-
            Filter by specific external IDs.

            When provided, only settlements with these external IDs will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Filter by specific external IDs.

                When provided, only settlements with these external IDs will be
                returned.
        - name: createdOnOrAfter
          description: |-
            Filter for settlements created on or after this date.
            Format: ISO 8601 date string.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: createdBefore
          description: |-
            Filter for settlements created before this date.
            Format: ISO 8601 date string.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: updatedOnOrAfter
          description: |-
            Filter for settlements updated on or after this date.
            Format: ISO 8601 date string.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: updatedBefore
          description: |-
            Filter for settlements updated before this date.
            Format: ISO 8601 date string.
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ListSettlementsOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Perform Partner Settlement
      description: >-
        Partner route to perform a settlement. This endpoint allows partners
        without disputes enabled to create

        new settlements between client accounts, transferring funds according to
        the specified amounts.


        Please note that this endpoint cannot be used by partners with disputes
        enabled, instead use the

        V2 Settlement endpoint. This is because dispute enabled partners must
        have an asyncronous settlement

        process to allow clients time to review the settlement and reconcile
        liabilities agains their trading

        activity on your platform. In the event that you cal this endpoint and
        you have disputes enabled, you

        will recieve a 403 response.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid format for settlement amounts, missing required
        fields,

        invalid signature.


        - 401: Authentication Error or Incomplete Settlement

        - Occurs when the request is not authorized or cannot be completed
        immediately.

        - Examples: Caller is not a member of the enterprise, signature
        verification failed.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license, partner is enabled for
        disputes, partner is inactive.


        - 409: Conflict Error

        - Occurs when the request conflicts with current state.

        - Examples: Settlement already exists with the same externalId and
        different properties.


        - 500: Internal Server Error or Incomplete Settlement

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, settlement initiated but not
        completed due to transient errors.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerSettlementsPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  $ref: '#/components/schemas/UnmappedSettlementAmountsRecord'
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
              required:
                - externalId
                - settlementAmounts
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerSettlementOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1PartnerIncompleteSettlementOrErrorPayload
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1PartnerIncompleteSettlementOrErrorPayload
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements-signing:
    get:
      summary: Get Signing Payload for Partner Settlement
      description: >-
        This API call allows partners to get the partner settlement payload for
        signing.

        The returned payload should be cryptographically signed by the partner
        and included

        in the subsequent settlement creation request.

        If your HTTP client doesn't support sending a request body on a get
        request, use the V1PartnerSettlementsSigningPostRoute


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerSettlementSigningGetRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  $ref: '#/components/schemas/UnmappedSettlementAmountsRecord'
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                cutoffAt:
                  type: string
                  description: >-
                    The date and time of the most recent trade being settled,
                    represented

                    in ISO 8601 format. Optional field used for v2 settlements.
                  format: date-time
                  title: ISO Date String
              required:
                - externalId
                - settlementAmounts
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerSettlementsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
    post:
      summary: Get Signing Payload for Partner Settlement (Post variant)
      description: >-
        This API call allows partners to get the partner settlements payload for
        signing.

        The returned payload should be cryptographically signed by the partner
        and included

        in the subsequent settlement creation request.

        This endpoint is effectively the same as the GET endpoint, but is
        helpful if your HTTP client doesn't support

        sending a request body on a get request.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerSettlementsSigningPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  $ref: '#/components/schemas/UnmappedSettlementAmountsRecord'
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                cutoffAt:
                  type: string
                  description: >-
                    The date and time of the most recent trade being settled,
                    represented

                    in ISO 8601 format. Optional field used for v2 settlements.
                  format: date-time
                  title: ISO Date String
              required:
                - externalId
                - settlementAmounts
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerSettlementsSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements/{settlementId}:
    get:
      summary: Get Partner Settlement
      description: >-
        Returns a settlement for your OES partner account by its ID.

        This endpoint provides detailed information about a specific settlement,
        including its status,

        amounts, and related transfers.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid UUID format for settlementId, invalid enterpriseId
        format.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the specified settlement cannot be found.

        - Examples: Settlement ID doesn't exist or doesn't belong to this
        partner.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerSettlementGetRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: sourceNetworkAccountIds
          description: >-
            Filter by specific source network account IDs.

            When provided, only settlement transfers from these network accounts
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific source network account IDs.

                When provided, only settlement transfers from these network
                accounts will be included.
        - name: sourceTradingAccountIds
          description: >-
            Filter by specific source trading account IDs.

            When provided, only settlement transfers from these trading accounts
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific source trading account IDs.

                When provided, only settlement transfers from these trading
                accounts will be included.
        - name: destinationNetworkAccountIds
          description: >-
            Filter by specific destination network account IDs.

            When provided, only settlement transfers to these network accounts
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific destination network account IDs.

                When provided, only settlement transfers to these network
                accounts will be included.
        - name: destinationTradingAccountIds
          description: >-
            Filter by specific destination trading account IDs.

            When provided, only settlement transfers to these trading accounts
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: >-
                Filter by specific destination trading account IDs.

                When provided, only settlement transfers to these trading
                accounts will be included.
        - name: currencies
          description: >-
            Filter by specific currencies.

            When provided, only settlement transfers involving these currencies
            will be included.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                Filter by specific currencies.

                When provided, only settlement transfers involving these
                currencies will be included.
        - name: pageNumber
          description: |-
            The page number (integer) you wish to fetch.
            When provided, the API will skip pageSize * pageNumber records.
            Page numbers are zero-based, so the first page is 0.
            If not provided, defaults to 0.
          in: query
          schema:
            type: string
            format: integer
        - name: pageSize
          description: >-
            The page size (integer) you wish to fetch. 

            When provided, the API will return at most pageSize records per
            page.

            If not provided, a default page size defined by the server will be
            used.
          in: query
          schema:
            type: string
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          description: |-
            The unique identifier of the settlement to retrieve.
            This is a UUID that uniquely identifies the settlement record.
          in: path
          required: true
          schema:
            type: string
            title: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GetSettlementOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements/nonReconciled:
    post:
      summary: '[DEPRECATED] Perform Partner Settlement'
      description: >-
        [DEPRECATED] Partner route to perform a settlement.


        NOTE: this route is being deprecated in favor

        of the POST
        /api/network/v1/enterprises/{enterpriseId}/partners/settlements route.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerSettlementsNonReconciledPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  $ref: '#/components/schemas/UnmappedSettlementAmountsRecord'
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
              required:
                - externalId
                - settlementAmounts
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerSettlementOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1PartnerIncompleteSettlementOrErrorPayload
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/V1PartnerIncompleteSettlementOrErrorPayload
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements/onchain:
    post:
      summary: Initiate On-Chain Settlement
      description: >-
        Partner route to initiate an on-chain settlement. This endpoint allows
        partners

        to create settlements that will be processed on a blockchain, with
        multi-phase settlement flow.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid format for settlement amounts, missing required
        fields,

        invalid signature.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise, signature
        verification failed.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license, on-chain settlements
        not enabled.


        - 409: Conflict Error

        - Occurs when the request conflicts with current state.

        - Examples: Settlement already exists with the same externalId and
        different properties.


        - 500: Internal Server Error

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerOnChainSettlementPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  allOf:
                    - $ref: '#/components/schemas/PartySettlementAmountsRecord'
                  description: >-
                    The settlement amounts to be processed.

                    Only exchange-style settlements (where the exchange is the
                    source) are supported for on-chain settlements.
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                payload:
                  type: string
                  description: >-
                    The signed payload for the settlement request.

                    This contains a stringified version of request body less the
                    payload/signature.
                  minLength: 1
                signature:
                  type: string
                  description: >-
                    Digital signature of the payload parameter.


                    This signature:

                    - Must be created using your BitGo account's private key

                    - Verifies that the request is authentic and hasn't been
                    tampered with

                    - Provides non-repudiation for the allocation request
                  minLength: 1
              required:
                - externalId
                - settlementAmounts
                - nonce
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1SettlementPayload'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PendingSettlementPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements/onchain/deposits:
    post:
      summary: Post deposit info for an on-chain settlement
      description: >-
        Partner route for providing external deposit information tied to an
        on-chain settlement.

        This endpoint allows partners to submit information about on-chain
        deposits that are

        associated with a specific settlement. The deposits will be tracked and
        reconciled

        with the settlement transaction.


        Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or incomplete.

        - Examples: Empty string supplied for enterpriseId.


        - 401: Authentication Error

        - Occurs when the request is not authorized.

        - Examples: Caller is not a member of the enterprise.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have access to the
        specified settlement.

        - Examples: Enterprise does not have OES license.


        - 404: Not Found Error

        - Occurs when the referenced settlement was not found.

        - Examples: Settlement ID doesn't exist, settlement exists but for
        different partner, partner is inactive.


        - 409: Conflict Error

        - Occurs when Deposit information is in conflict.

        - Examples: Depsit information has already been submitted for a
        different settlement.


        - 500: Internal Server Error

        - Occurs when there's an unexpected error processing the request

        - Examples: Database connection failure, transient network error.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v1PartnerExtDepositsPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalSettlementId:
                  type: string
                  description: |-
                    Partner's unique identifier for the settlement.
                    Used for correlation between BitGo and partner systems.
                  minLength: 1
                settlementId:
                  type: string
                  description: >-
                    Optional BitGo settlement ID associated with these deposits.

                    May be omitted if the deposits are being submitted before
                    the settlement is created.
                  title: uuid
                deposits:
                  type: array
                  items:
                    type: object
                    properties:
                      currency:
                        type: string
                        description: >-
                          The currency code of the deposited asset.

                          Identifies which cryptocurrency was deposited
                          on-chain.
                        minLength: 1
                      onChainTxId:
                        type: string
                        description: >-
                          The transaction ID of the on-chain deposit.

                          This is the unique identifier for the blockchain
                          transaction.
                        minLength: 1
                    required:
                      - currency
                      - onChainTxId
                    description: |-
                      List of deposits associated with this settlement.
                      Must contain at least one deposit.
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
              required:
                - externalSettlementId
                - deposits
                - payload
                - signature
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ExtDepositsPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/settlements/onchain/deposits/signing:
    get:
      summary: Get Signing Payload for Partner External Deposits
      description: >-
        This API call allows partners to get the partner external deposits
        payload for signing.

        Partners can use this endpoint to retrieve a formatted payload that
        should be signed

        using their private key before submitting deposit information. This
        ensures that

        deposit submissions are properly authenticated and attributed to the
        correct partner.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerExtDepositsSigningGetRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: |-
                Common properties for external deposit requests.
                Used as the base for both signed and unsigned requests.
              properties:
                externalSettlementId:
                  type: string
                  description: |-
                    Partner's unique identifier for the settlement.
                    Used for correlation between BitGo and partner systems.
                  minLength: 1
                settlementId:
                  type: string
                  description: >-
                    Optional BitGo settlement ID associated with these deposits.

                    May be omitted if the deposits are being submitted before
                    the settlement is created.
                  title: uuid
                deposits:
                  type: array
                  items:
                    type: object
                    properties:
                      currency:
                        type: string
                        description: >-
                          The currency code of the deposited asset.

                          Identifies which cryptocurrency was deposited
                          on-chain.
                        minLength: 1
                      onChainTxId:
                        type: string
                        description: >-
                          The transaction ID of the on-chain deposit.

                          This is the unique identifier for the blockchain
                          transaction.
                        minLength: 1
                    required:
                      - currency
                      - onChainTxId
                    description: |-
                      List of deposits associated with this settlement.
                      Must contain at least one deposit.
              required:
                - externalSettlementId
                - deposits
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerExtDepositsSigningPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/partners/trades/signing:
    get:
      summary: Get Signing Payload for Partner Trades
      description: >-
        This API call allows partners to get the partner trades payload for
        signing.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1PartnerTradesSigningGetRoute
      tags:
        - Partner Trades
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                trade:
                  $ref: '#/components/schemas/InboundTrade'
                tradeCorrection:
                  allOf:
                    - type: object
                      properties:
                        externalId:
                          type: string
                          minLength: 1
                    - $ref: '#/components/schemas/BaseTradeCorrectionMetadata'
                nonce:
                  type: string
                  minLength: 1
              required:
                - trade
                - nonce
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PartnerTradeSigningGetPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v1/enterprises/{enterpriseId}/supportedCurrencies:
    get:
      summary: List Partner-Supported Currencies
      description: >-
        List all the currencies a given OES Partner supports for allocation and
        deallocation.

        This endpoint returns a comprehensive list of currencies that can be
        used for allocations,

        deallocations and settlements for each partner.

        with specific partners.


        **Requires access token scope:** `settlement_network_read`
      operationId: v1EnterpriseSupportedCurrenciesRoute
      tags:
        - Client Allocations & Deallocations
      x-internal: false
      parameters:
        - name: partnerIds
          description: |-
            Comma-separated list of partner UUIDs to filter results by.
            Only returns supported currencies for the specified partners.
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
              title: uuid
              description: |-
                Comma-separated list of partner UUIDs to filter results by.
                Only returns supported currencies for the specified partners.
        - name: enterpriseId
          description: >-
            Enterprise ID to check supported currencies for.

            The response will be filtered to partners accessible by this
            enterprise.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1EnterpriseSupportedCurrenciesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/network/v2/enterprises/{enterpriseId}/partners/settlements:
    post:
      summary: Initiate partner settlement
      description: >-
        Used by dispute enabled exchange partners to stage a settlement for
        connected clients.


        This endpoint will:

        1. Authenticate the request by verifying the payload and signature
        provided.

        2. Create entities:

        a. Create the settlement entity

        b. Map provided settlement amounts to settlement transfer records for
        execution.

        3. Assign closed, unassigned disputes from prior settlements to this
        settlement

        a. Pull in any adjustedSettlementTransfers from said disputes.

        b. Update the settledInSettlementId on said disputes.

        4. Verify the relevant connection balances against liabilities based on
        provided settlementAmounts

        and assigned settlement transfers from disputes being assigned.

        5. Notify connection owners of a new settlement.

        6. Queue an event to finalize the settlement once the dispute window
        ends.


        This endpoint is idempotent and can safely be called again with the same
        exact request body

        without worrying about creating multiple settlements.


        Please note that provided settlement amounts should be based solely on
        new trading activity

        that was not included in the last settlement. Instructions from closed,
        unsettled disputes should

        not be included in the calculation of settlement instructions on the

        Settlement will be processed asynchronously once initiated, after
        dispute / top up window have elapsed.


        * Error scenarios:

        - 400: Invalid Request Error

        - Occurs when the request parameters are invalid or malformed.

        - Examples: Invalid format for settlement amounts, missing required
        fields,

        invalid signature.


        - 401: Authentication Error or Incomplete Settlement

        - Occurs when the request is not authorized or cannot be completed
        immediately.

        - Examples: Caller is not a member of the enterprise, signature
        verification failed.


        - 403: Permission Denied Error

        - Occurs when the authenticated partner doesn't have necessary
        permissions.

        - Examples: Enterprise does not have OES license, partner is inactive


        - 409: Conflict Error

        - Occurs when the request conflicts with current state.

        - Examples: Settlement already exists with the same externalId and
        different properties.


        - 422: Unprocessable Content

        - Occurs when the request is authenticated and permitted but is unable
        to be processed.

        - Examples: the liabilities for one or more connection exceed their
        allocated balance.


        - 500: Internal Server Error or Incomplete Settlement

        - Occurs when there's an unexpected server error processing the request.

        - Examples: Database connection issues, settlement initiated but not
        completed due to transient errors.


        **Requires access token scopes:** `settlement_network_read`,
        `settlement_network_write`
      operationId: v2PartnerSettlementsPostRoute
      tags:
        - Partner Settlements & Transfers
      x-internal: false
      parameters:
        - name: enterpriseId
          description: |-
            The enterprise identifier of the partner.
            This identifies the partner enterprise making the API request.
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: >-
                    External identifier for the settlement request.

                    This should be unique for each settlement request and is
                    used for idempotence

                    and correlation with partner systems.
                  minLength: 1
                notes:
                  type: string
                  description: >-
                    Optional notes about the settlement.

                    Can contain additional context or information about the
                    purpose of the settlement.
                  minLength: 1
                settlementAmounts:
                  $ref: '#/components/schemas/UnmappedSettlementAmountsRecord'
                nonce:
                  type: string
                  description: |-
                    A unique nonce value used for cryptographic operations.
                    This provides additional security for settlement operations.
                  minLength: 1
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
                cutoffAt:
                  type: string
                  description: >-
                    The date and time of the most recent trade being settled,
                    represented 

                    in ISO 8601 format
                  format: date-time
                  title: ISO Date String
              required:
                - externalId
                - settlementAmounts
                - nonce
                - payload
                - signature
                - cutoffAt
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2PartnerSettlementOkPayload'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload'
  /api/clearing/v1/enterprise/{enterpriseId}/account-settings/{accountId}:
    get:
      summary: Get settlement settings
      description: |-
        Get settlement settings for a given Go Account.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1AccountSettingsGetRoute
      tags:
        - Settlement Onboarding
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingAccountSettingsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/account-settings:
    put:
      summary: Update settlement settings
      description: |-
        Update settlement settings for a given Go Account.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1AccountSettingsPutRoute
      tags:
        - Settlement Onboarding
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                queueAutomationEnabled:
                  type: boolean
              required:
                - queueAutomationEnabled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingAccountSettingsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/approval-requests/{approvalRequestId}:
    put:
      summary: Update settlement approval request
      description: |-
        Update a settlement approval request.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1ApprovalRequestPutRoute
      tags:
        - Settlement Approvals
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: approvalRequestId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  $ref: '#/components/schemas/ApprovalRequestUpdateStatus'
              required:
                - status
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequestResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/balances:
    get:
      summary: Get Go Account balance for settlements
      description: |-
        Get your Go Account balance as it relates to applicable settlements.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1AccountBalancesGetRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccountBalancesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlement:
    post:
      summary: Create settlement
      description: |-
        Create a settlement request to send to your counterparty.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1EnterpriseAccountSettlementPostRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  minLength: 1
                expireAt:
                  type: string
                  format: date-time
                  title: ISO Date String
                notation:
                  type: string
                addressBookConnectionId:
                  type: string
                  title: uuid
                addressBookConnectionUpdatedAt:
                  type: string
                  format: date-time
                  title: ISO Date String
                assetTransfers:
                  type: array
                  items:
                    type: object
                    description: Describes an asset transfer by its currency and amount
                    properties:
                      currency:
                        $ref: '#/components/schemas/SupportedCurrency'
                      quantity:
                        type: string
                        format: number
                    required:
                      - currency
                      - quantity
                bypassCounterpartySigning:
                  type: boolean
                transactionRouteId:
                  type: string
                  title: uuid
                checkForDuplicates:
                  type: boolean
                  description: HTTP specific codec for create multi-currency settlement
              required:
                - externalId
                - addressBookConnectionId
                - addressBookConnectionUpdatedAt
                - assetTransfers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlement/{settlementId}:
    get:
      summary: Get settlement by ID
      description: |-
        Get a settlement by its settlement ID.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1GetSettlementByIdRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          in: path
          required: true
          schema:
            type: string
            title: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlement/{settlementId}/signing:
    get:
      summary: Get settlement payload
      description: |-
        Get settlement payload for signing.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1GetSettlementSigningRoute
      tags:
        - Settlement Signing
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: user-id
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradePayloadResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
    post:
      summary: Sign settlement
      description: |-
        Sign settlement.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostSettlementSigningRoute
      tags:
        - Settlement Signing
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: settlementId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payload:
                  type: string
                  minLength: 1
                signature:
                  type: string
                  minLength: 1
              required:
                - payload
                - signature
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequestResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlements:
    get:
      summary: List settlements by Go Account
      description: |-
        List all settlements for a given Go Account.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1ListSettlementsByAccountRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: status
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/SettlementStatus'
              - type: array
                items:
                  type: string
                  enum:
                    - canceled
                    - pending
                    - rejected
                    - settled
                    - expired
                    - pending-acknowledgement
        - name: counterpartyAccountIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: dateInitiatedOnOrAfter
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: dateInitiatedBefore
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: omitRequesterAccountName
          in: query
          schema:
            type: boolean
        - name: requiresSigning
          in: query
          schema:
            type: boolean
        - name: types
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - direct
                - agency
                - disbursement
        - name: batchId
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: externalIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: externalIdPrefix
          in: query
          schema:
            type: string
            minLength: 1
        - name: includeTotalCount
          in: query
          schema:
            type: boolean
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlements/batch-signing/payload:
    get:
      summary: Get batch settlement payload
      description: |-
        Get batch settlement payload for signing.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1GetBatchSigningRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: settlementIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: batchId
          in: query
          schema:
            type: string
            title: uuid
        - name: excludedSettlementIds
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBatchSigningResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/settlements/bulk-terminate:
    post:
      summary: Bulk terminate settlements
      description: |-
        Bulk terminate settlements.

        **Requires access token scope:** `wallet_spend_all`
      operationId: V1PostBulkTerminateRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
        - name: user-agent
          in: header
          required: true
          schema:
            type: string
        - name: x-forwarded-for
          in: header
          required: true
          schema:
            type: string
        - name: token-scope
          in: header
          required: true
          schema:
            type: string
        - name: origin
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                settlementIds:
                  type: array
                  items:
                    type: string
                    title: uuid
              required:
                - settlementIds
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkTerminateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/account/{accountId}/trading-partners:
    get:
      summary: List settlement trading partners (counterparties)
      description: >-
        List settlement trading partners (counterparties) for a given Go
        Account.


        Use only with delivery versus payment (DVP) settlements.


        **Requires access token scope:** `wallet_view_all`
      operationId: V1ListTradingPartnersByAccountRoute
      tags:
        - Settlement Onboarding
      x-internal: false
      parameters:
        - name: status
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/TradingPartnerUpdateStatus'
              - type: string
                enum:
                  - pending
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: accountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: user-id
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingPartnerListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/enterprise/{enterpriseId}/settlements:
    get:
      summary: List settlements by enterprise
      description: |-
        List all settlements for a given enterprise.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1ListSettlementsByEnterpriseRoute
      tags:
        - Settlements
      x-internal: false
      parameters:
        - name: limit
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 50
        - name: offset
          in: query
          required: true
          schema:
            oneOf:
              - type: string
              - type: number
                enum:
                  - 0
        - name: status
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/SettlementStatus'
              - type: array
                items:
                  type: string
                  enum:
                    - canceled
                    - pending
                    - rejected
                    - settled
                    - expired
                    - pending-acknowledgement
        - name: counterpartyAccountIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: dateInitiatedOnOrAfter
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: dateInitiatedBefore
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: omitRequesterAccountName
          in: query
          schema:
            type: boolean
        - name: requiresSigning
          in: query
          schema:
            type: boolean
        - name: types
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - direct
                - agency
                - disbursement
        - name: batchId
          in: query
          schema:
            type: array
            items:
              type: string
              title: uuid
        - name: externalIds
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: externalIdPrefix
          in: query
          schema:
            type: string
            minLength: 1
        - name: includeTotalCount
          in: query
          schema:
            type: boolean
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/clearing/v1/settlement/count:
    get:
      summary: List pending approval requests for settlements
      description: |-
        List all pending approval requests across all your enterprises.

        Use only with delivery versus payment (DVP) settlements.

        **Requires access token scope:** `wallet_view_all`
      operationId: V1ApprovalRequestCountGetRoute
      tags:
        - Settlement Approvals
      x-internal: false
      parameters:
        - name: enterpriseIds
          description: >-
            Comma-separated list of enterprise IDs to filter approval request
            counts by
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                Comma-separated list of enterprise IDs to filter approval
                request counts by
        - name: user-id
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequestCountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorPayload1'
  /api/v1/marketdata/cryptocompare/historical/prices:
    get:
      tags:
        - Market Data
      summary: Get historical prices
      description: >-
        Get a list of historical OHLCV (Open, High, Low, Close, Volume) prices
        for a currency pair within a specified time range.

        Using this endpoint requires an access token with the appropriate
        enterprise ID.


        **Requires access token scope:** `crypto_compare`
      operationId: marketdata.cryptocompare.historical.prices.get
      parameters:
        - $ref: '#/components/parameters/Base'
        - $ref: '#/components/parameters/Quote'
        - $ref: '#/components/parameters/Interval'
        - $ref: '#/components/parameters/Start'
        - $ref: '#/components/parameters/End'
        - $ref: '#/components/parameters/NextBatchPrevId'
      responses:
        '200':
          description: |
            Returns historical-price data points.
            Also returns a page cursor if there are more than 1,000 results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalPriceResult'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketDataError'
      x-licenses:
        - cryptoCompare
  /api/v1/marketdata/cryptocompare/spot/prices:
    get:
      tags:
        - Market Data
      summary: Get spot prices
      description: >-
        Get a single OHLCV (Open, High, Low, Close, Volume) price data point for
        a currency pair at a specific time.

        Using this endpoint requires an access token with the appropriate
        enterprise ID.


        **Requires access token scope:** `crypto_compare`
      operationId: marketdata.cryptocompare.spot.prices.get
      parameters:
        - $ref: '#/components/parameters/Base'
        - $ref: '#/components/parameters/Quote'
        - $ref: '#/components/parameters/Interval'
        - name: timestamp
          in: query
          required: false
          description: |
            The specific time to retrieve the price for (RFC 3339 format).
            If not provided, returns the latest available price.
          schema:
            type: string
            format: date-time
            example: '2024-12-17T15:00:00.000Z'
      responses:
        '200':
          description: Returns a single OHLCV price data point for the specified time.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalPrice'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketDataError'
      x-licenses:
        - cryptoCompare
  /api/document-service/v1/documents:
    post:
      summary: Add KYB Documents
      description: Creates a new document and returns presigned URLs for file uploads
      operationId: documents.post.v1.documents
      tags:
        - Know Your Business (KYB)
      x-internal: false
      parameters: []
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDocumentRequest'
      responses:
        '201':
          description: '201'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDocumentResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDocumentBadRequestError'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDocumentUnauthorizedError'
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDocumentInternalError'
    get:
      summary: List KYB Documents
      description: >-
        List documents belonging to the authenticated user with optional
        filtering and pagination.
      operationId: documents.get.v1.documents
      tags:
        - Know Your Business (KYB)
      x-internal: false
      parameters:
        - name: ids
          in: query
          description: Comma-separated list of up to 100 document UUIDs to filter by
          schema:
            type: string
        - name: type
          in: query
          description: Type of document being uploaded
          schema:
            $ref: '#/components/schemas/DocumentType'
        - name: status
          in: query
          description: Current status of the document
          schema:
            $ref: '#/components/schemas/DocumentStatus'
        - name: enterpriseId
          in: query
          description: >-
            Narrows results to documents attributed to the given enterprise;
            always scoped to the authenticated user
          schema:
            type: string
            minLength: 1
            maxLength: 255
        - name: forUserId
          in: query
          description: >-
            Narrows results to documents created for the given BitGo public user
            ID; always scoped to the authenticated user
          schema:
            $ref: '#/components/schemas/ForUserId'
        - name: limit
          in: query
          description: 'Maximum number of documents to return (default: 20, max: 100)'
          schema:
            $ref: '#/components/schemas/DocumentListQueryLimit'
        - name: offset
          in: query
          description: 'Number of documents to skip (default: 0)'
          schema:
            $ref: '#/components/schemas/DocumentListQueryOffset'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentsResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentsBadRequestError'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentsUnauthorizedError'
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentsInternalError'
  /api/document-service/v1/documents/{documentId}:
    get:
      summary: Get KYB Document
      description: >-
        Get details about a specific KYB document including file information.
        Users can only access documents they created.
      operationId: documents.get.v1.documents.id
      tags:
        - Know Your Business (KYB)
      x-internal: false
      parameters:
        - name: documentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Unique identifier for the document
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentBadRequestError'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentUnauthorizedError'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentForbiddenError'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentNotFoundError'
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentInternalError'
  /api/document-service/v1/documents/{documentId}/files/{fileId}:
    patch:
      summary: Update KYB Document Status
      description: >-
        Update the status of a file after it has been uploaded to the presigned
        URL. This endpoint is called by the client after successful upload.
      operationId: documents.patch.v1.documents.id.files.id
      tags:
        - Know Your Business (KYB)
      x-internal: false
      parameters:
        - name: documentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Unique identifier for the document
        - name: fileId
          in: path
          required: true
          schema:
            type: string
          description: Unique identifier for the file
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFileStatusRequest'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusBadRequestError'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusUnauthorizedError'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusForbiddenError'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusNotFoundError'
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFileStatusInternalError'
  /api/document-service/v1/documents/{documentId}/verify:
    post:
      summary: Verify KYB Document Status
      description: >-
        Verify the upload status of all files in a document by checking with the
        storage provider. Updates file and document statuses based on actual
        verification results.
      operationId: documents.post.v1.documents.id.verify
      tags:
        - Know Your Business (KYB)
      x-internal: false
      parameters:
        - name: documentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Unique identifier for the document
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyDocumentRequest'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentBadRequestError'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentUnauthorizedError'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentForbiddenError'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentNotFoundError'
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDocumentInternalError'
  /api/evs/v1/identity:
    get:
      summary: Get KYC Identity
      description: Get a KYC identity of a user.
      operationId: entity.validation.identity.get
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: organizationId
          in: query
          schema:
            type: string
            minLength: 1
        - name: enterpriseId
          in: query
          schema:
            type: string
            minLength: 1
        - name: userId
          in: query
          schema:
            type: string
            minLength: 1
        - name: identityId
          in: query
          schema:
            type: string
            minLength: 1
        - name: allData
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityGetResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
    post:
      summary: Create KYC Identity
      description: Create a KYC identity for a user.
      operationId: entity.validation.identity.create
      tags:
        - Know Your Customer (KYC)
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  title: Institutional Individual
                  properties:
                    addressCity:
                      type: string
                      description: The city of residence
                      minLength: 1
                    addressPostalCode:
                      type: string
                      description: The postal or ZIP code
                      minLength: 1
                    addressStreet1:
                      type: string
                      description: The street address line 1
                      minLength: 1
                    addressStreet2:
                      type: string
                      description: The street address line 2
                      minLength: 1
                    addressSubdivision:
                      type: string
                      description: The state, province, or region of residence
                      example: CA
                      minLength: 1
                    birthdate:
                      type: string
                      description: The birthdate of the individual (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    country:
                      type: string
                      description: >-
                        The country of the address (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    countryOfCitizenship:
                      type: string
                      description: >-
                        The country of citizenship (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    countryOfResidence:
                      type: string
                      description: >-
                        The country of residence (ISO Alpha-2 or Alpha-3 country
                        code)
                      example: US
                      minLength: 1
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    digitalAssetWalletAddress:
                      type: string
                      description: >-
                        A digital asset wallet address of the individual where
                        funds will be deposited from
                      minLength: 1
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    govIdCountryOfIssuance:
                      type: string
                      description: >-
                        The country of issuance of the government ID (ISO
                        Alpha-2 or Alpha-3 country code)
                      example: US
                      minLength: 1
                    identificationNumber:
                      description: >-
                        Tax identification number. Required for US citizens and
                        US residents; optional for non-US individuals who hold
                        one:

                        - US citizens: Submit SSN (Social Security Number)

                        - US residents (non-citizens): Submit SSN or ITIN
                        (Individual Taxpayer Identification Number)

                        - Non-US individuals: Optionally submit SSN or ITIN if
                        held (e.g. dual nationals, former US residents).
                          To upload other government-issued identification documents, use the [Submit KYC Documents](https://developers.bitgo.com/reference/entityvalidationidentitydocumentcreate) endpoint instead
                      example: 123-45-6789
                      pattern: ^(\d{3}-\d{2}-\d{4}|\d{9})$
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    notionalTradedEachMonth:
                      type: number
                      description: The estimated notional amount traded per month in USD
                    occupation:
                      allOf:
                        - $ref: '#/components/schemas/IdentityOccupation'
                      description: The occupation category of the individual
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                      minLength: 1
                    phoneNumber:
                      type: string
                      description: The phone number of the individual
                      minLength: 1
                    politicallyExposedPerson:
                      type: boolean
                      description: >-
                        Whether the individual is a Politically Exposed Person
                        (PEP)
                    transactionType:
                      type: string
                      enum:
                        - institutionalIndividual
                      description: The type of KYC identity being created
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - addressCity
                    - addressStreet1
                    - addressSubdivision
                    - birthdate
                    - country
                    - countryOfCitizenship
                    - countryOfResidence
                    - enterpriseId
                    - govIdCountryOfIssuance
                    - nameFirst
                    - nameLast
                    - occupation
                    - organizationId
                    - phoneNumber
                    - politicallyExposedPerson
                    - transactionType
                    - userId
                - type: object
                  title: Starter Signup
                  properties:
                    birthdate:
                      type: string
                      description: The birthdate of the individual (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    country:
                      type: string
                      description: The ISO Alpha-2 or Alpha-3 country code
                      example: US
                      minLength: 1
                    countryOfIncorporation:
                      type: string
                      description: >-
                        The country of incorporation (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    dateOfIncorporation:
                      type: string
                      description: The date of incorporation (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    enterpriseName:
                      type: string
                      description: The legal name of the business entity
                      minLength: 1
                    isEntity:
                      type: boolean
                      description: >-
                        Whether the account represents a business entity (true)
                        or individual (false)
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                    transactionType:
                      type: string
                      enum:
                        - starterSignup
                      description: The type of transaction being created
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - birthdate
                    - country
                    - enterpriseId
                    - isEntity
                    - nameFirst
                    - nameLast
                    - organizationId
                    - transactionType
                    - userId
                - type: object
                  title: Kyc Inc
                  properties:
                    birthdate:
                      type: string
                      description: The birthdate of the individual (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    country:
                      type: string
                      description: The ISO Alpha-2 or Alpha-3 country code
                      example: US
                      minLength: 1
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                    transactionType:
                      type: string
                      enum:
                        - kycInc
                      description: The type of KYC identity being created
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - birthdate
                    - country
                    - enterpriseId
                    - nameFirst
                    - nameLast
                    - organizationId
                    - transactionType
                    - userId
                - type: object
                  title: Unverified PayGo User
                  properties:
                    birthdate:
                      type: string
                      description: The birthdate of the individual (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    country:
                      type: string
                      description: The ISO Alpha-2 or Alpha-3 country code
                      example: US
                      minLength: 1
                    countryOfIncorporation:
                      type: string
                      description: >-
                        The country of incorporation (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    dateOfIncorporation:
                      type: string
                      description: The date of incorporation (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    enterpriseName:
                      type: string
                      description: The legal name of the individual or entity
                      minLength: 1
                    isEntity:
                      type: boolean
                      description: >-
                        Whether the account represents a business entity (true)
                        or individual (false)
                    isPrimaryContact:
                      type: boolean
                      description: >-
                        Whether this individual is the primary contact for the
                        enterprise
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                    transactionType:
                      type: string
                      enum:
                        - unverifiedPayGoUser
                      description: The type of KYC identity being created
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - birthdate
                    - country
                    - enterpriseId
                    - isEntity
                    - nameFirst
                    - nameLast
                    - organizationId
                    - transactionType
                    - userId
                - type: object
                  title: Inc Contracted
                  properties:
                    addressCity:
                      type: string
                      description: The city of residence
                      minLength: 1
                    addressPostalCode:
                      type: string
                      description: The postal or ZIP code
                      minLength: 1
                    addressStreet1:
                      type: string
                      description: The street address line 1
                      minLength: 1
                    addressStreet2:
                      type: string
                      description: The street address line 2
                      minLength: 1
                    addressSubdivision:
                      type: string
                      description: The state, province, or region of residence
                      example: CA
                      minLength: 1
                    birthdate:
                      type: string
                      description: The birthdate of the individual (YYYY-MM-DD)
                      example: '2000-12-25T00:00:00.000Z'
                      format: date
                      title: ISO Date String
                    country:
                      type: string
                      description: >-
                        The country of the address (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    countryOfCitizenship:
                      type: string
                      description: >-
                        The country of citizenship (ISO Alpha-2 or Alpha-3
                        country code)
                      example: US
                      minLength: 1
                    countryOfResidence:
                      type: string
                      description: >-
                        The country of residence (ISO Alpha-2 or Alpha-3 country
                        code)
                      example: US
                      minLength: 1
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    digitalAssetWalletAddress:
                      type: string
                      description: >-
                        A digital asset wallet address of the individual where
                        funds will be deposited from
                      minLength: 1
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    govIdCountryOfIssuance:
                      type: string
                      description: >-
                        The country of issuance of the government ID (ISO
                        Alpha-2 or Alpha-3 country code)
                      example: US
                      minLength: 1
                    identificationNumber:
                      description: >-
                        Tax identification number. Required for US citizens and
                        US residents; optional for non-US individuals who hold
                        one:

                        - US citizens: Submit SSN (Social Security Number)

                        - US residents (non-citizens): Submit SSN or ITIN
                        (Individual Taxpayer Identification Number)

                        - Non-US individuals: Optionally submit SSN or ITIN if
                        held (e.g. dual nationals, former US residents).
                          To upload other government-issued identification documents, use the [Submit KYC Documents](https://developers.bitgo.com/reference/entityvalidationidentitydocumentcreate) endpoint instead
                      example: 123-45-6789
                      pattern: ^(\d{3}-\d{2}-\d{4}|\d{9})$
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    notionalTradedEachMonth:
                      type: number
                      description: The estimated notional amount traded per month in USD
                    occupation:
                      allOf:
                        - $ref: '#/components/schemas/IdentityOccupation'
                      description: The occupation category of the individual
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                      minLength: 1
                    phoneNumber:
                      type: string
                      description: The phone number of the individual
                      minLength: 1
                    politicallyExposedPerson:
                      type: boolean
                      description: >-
                        Whether the individual is a Politically Exposed Person
                        (PEP)
                    transactionType:
                      type: string
                      enum:
                        - incContracted
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - addressCity
                    - addressStreet1
                    - addressSubdivision
                    - birthdate
                    - country
                    - countryOfCitizenship
                    - countryOfResidence
                    - enterpriseId
                    - govIdCountryOfIssuance
                    - nameFirst
                    - nameLast
                    - occupation
                    - organizationId
                    - phoneNumber
                    - politicallyExposedPerson
                    - transactionType
                    - userId
                - type: object
                  title: EU Individual
                  properties:
                    addressCity:
                      type: string
                      description: The city of the address
                      minLength: 1
                    addressPostalCode:
                      type: string
                      description: The postal or ZIP code
                      minLength: 1
                    addressStreet1:
                      type: string
                      description: The street address line 1
                      minLength: 1
                    addressStreet2:
                      type: string
                      description: The street address line 2
                      minLength: 1
                    cityOfBirth:
                      type: string
                      description: The city of birth
                      minLength: 1
                    countryOfBirth:
                      type: string
                      description: >-
                        The country of birth (ISO Alpha-2 or Alpha-3 country
                        code)
                      example: DE
                      minLength: 1
                    countryOfCitizenship:
                      type: string
                      description: >-
                        The country of citizenship (ISO Alpha-2 or Alpha-3
                        country code)
                      example: DE
                      minLength: 1
                    countryOfResidence:
                      type: string
                      description: >-
                        The country of residence (ISO Alpha-2 or Alpha-3 country
                        code)
                      example: DE
                      minLength: 1
                    countryOfTaxResidence:
                      type: string
                      description: >-
                        The country of tax residence (ISO Alpha-2 or Alpha-3
                        country code)
                      example: DE
                      minLength: 1
                    dateOfBirth:
                      type: object
                      description: The date of birth of the individual
                      properties:
                        day:
                          type: string
                          example: '25'
                          format: DD
                        month:
                          type: string
                          example: '12'
                          format: MM
                        year:
                          type: string
                          example: '2024'
                          format: YYYY
                      required:
                        - day
                        - month
                        - year
                    debugFailureReason:
                      type: string
                      description: >-
                        Debug failure reason to provide additional context when
                        simulating verification failure in the test environment
                      minLength: 1
                    debugStatus:
                      type: string
                      enum:
                        - passed
                        - failed
                      description: >-
                        Debug status for simulating verification failure or
                        success in the test environment - passes by default
                    email:
                      type: string
                      description: The email address of the individual
                      minLength: 1
                    employmentStatus:
                      allOf:
                        - $ref: '#/components/schemas/EuEmploymentStatus'
                      description: The employment status of the individual
                    enterpriseId:
                      type: string
                      description: The BitGo enterprise ID
                      minLength: 1
                    externalUserId:
                      type: string
                      description: The external user identifier from the EU CaaS client
                      minLength: 1
                    govIdCountryOfIssuance:
                      type: string
                      description: >-
                        The country of issuance of the government ID (ISO
                        Alpha-2 or Alpha-3 country code). Required only for EU
                        regulated clients.
                      example: DE
                      minLength: 1
                    govIdExpiry:
                      type: object
                      description: >-
                        The expiry date of the government-issued ID. Required
                        only for EU regulated clients.
                      properties:
                        day:
                          type: string
                          example: '25'
                          format: DD
                        month:
                          type: string
                          example: '12'
                          format: MM
                        year:
                          type: string
                          example: '2024'
                          format: YYYY
                      required:
                        - day
                        - month
                        - year
                    govIdNumber:
                      type: string
                      description: >-
                        The government-issued ID document number. Required only
                        for EU regulated clients.
                      minLength: 1
                    govIdType:
                      type: string
                      enum:
                        - pp
                        - ppc
                        - rp
                        - pr
                        - id
                      description: >-
                        The type of government-issued ID document. Required only
                        for EU regulated clients.
                    idvPerformed:
                      type: boolean
                      description: >-
                        Whether identity verification has been performed by the
                        EU CaaS client
                    industry:
                      allOf:
                        - $ref: '#/components/schemas/EuIndustry'
                      description: The industry classification of the individual
                    initialKycCompletionDate:
                      type: object
                      description: The date of initial KYC completion
                      properties:
                        day:
                          type: string
                          example: '25'
                          format: DD
                        month:
                          type: string
                          example: '12'
                          format: MM
                        year:
                          type: string
                          example: '2024'
                          format: YYYY
                      required:
                        - day
                        - month
                        - year
                    lastKycCompletionDate:
                      type: object
                      description: The date of last KYC completion
                      properties:
                        day:
                          type: string
                          example: '25'
                          format: DD
                        month:
                          type: string
                          example: '12'
                          format: MM
                        year:
                          type: string
                          example: '2024'
                          format: YYYY
                      required:
                        - day
                        - month
                        - year
                    nameFirst:
                      type: string
                      description: >-
                        The first name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameLast:
                      type: string
                      description: >-
                        The last name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    nameMiddle:
                      type: string
                      description: >-
                        The middle name (Latin letters, spaces, hyphens,
                        apostrophes, and periods)
                      pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
                    organizationId:
                      type: string
                      description: The Bitgo organization ID
                      minLength: 1
                    phoneNumber:
                      type: string
                      description: >-
                        The phone number of the individual. Required only for EU
                        unregulated clients.
                      minLength: 1
                    politicallyExposedPerson:
                      type: boolean
                      description: >-
                        Whether the individual is a Politically Exposed Person
                        (PEP)
                    sourceOfFunds:
                      allOf:
                        - $ref: '#/components/schemas/EuSourceOfFunds'
                      description: The source of funds for the individual
                    taxId:
                      type: string
                      description: The tax identification number
                      minLength: 1
                    transactionType:
                      type: string
                      enum:
                        - euIndividual
                      description: The type of KYC identity being created
                    userId:
                      type: string
                      description: The BitGo user ID
                      minLength: 1
                  required:
                    - addressCity
                    - addressPostalCode
                    - addressStreet1
                    - cityOfBirth
                    - countryOfBirth
                    - countryOfCitizenship
                    - countryOfResidence
                    - countryOfTaxResidence
                    - dateOfBirth
                    - email
                    - employmentStatus
                    - enterpriseId
                    - externalUserId
                    - idvPerformed
                    - industry
                    - initialKycCompletionDate
                    - lastKycCompletionDate
                    - nameFirst
                    - nameLast
                    - organizationId
                    - politicallyExposedPerson
                    - sourceOfFunds
                    - taxId
                    - transactionType
                    - userId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/evs/v1/identity/{id}:
    patch:
      summary: Update KYC Identity
      description: Update an existing KYC identity with new information.
      operationId: entity.validation.identity.update
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enterpriseId:
                  type: string
                  description: The BitGo enterprise ID
                  minLength: 1
                userId:
                  type: string
                  description: The BitGo user ID
                  minLength: 1
                organizationId:
                  type: string
                  description: The Bitgo organization ID
                  minLength: 1
                nameFirst:
                  type: string
                  description: The first name
                  minLength: 1
                nameLast:
                  type: string
                  description: The last name
                  minLength: 1
                nameMiddle:
                  type: string
                  description: The middle name
                  minLength: 1
                debugStatus:
                  type: string
                  enum:
                    - passed
                    - failed
                  description: >-
                    Debug status for simulating verification failure or success
                    in the test environment - passes by default
                debugFailureReason:
                  type: string
                  description: >-
                    Debug failure reason to provide additional context when
                    simulating verification failure in the test environment
                  minLength: 1
                contractSignerNameFull:
                  type: string
                  description: The full name of the individual signing the contract
                  minLength: 1
                contractSignedDate:
                  type: string
                  description: The date the contract was signed (YYYY-MM-DD)
                  example: '2024-12-20T00:00:00.000Z'
                  format: date
                  title: ISO Date String
                contractSignedIPAddress:
                  type: string
                  description: The IP address from which the contract was signed
                  minLength: 1
                contractVersion:
                  type: string
                  description: The version of the contract being signed
                  minLength: 1
                userAgreesToTerms:
                  type: boolean
                  description: Whether the user agrees to the terms and conditions
                occupation:
                  type: string
                  enum:
                    - Agriculture
                    - Art Dealer / Auctioneer / Import / Export Company
                    - >-
                      Financial Services (Asset Mgmt., Bank, Broker Dealer,
                      Commodities, Mutual Fund, Ins. Co)
                    - Casinos and Gambling Establishments
                    - Charity/NGO/Non-Profit/Foundation/Endowment
                    - >-
                      Computer Programmer / Administrator / Software Engineer /
                      IT or Software / Technology Company
                    - Crypto Services (ATM, Exchange, Lender, Coins/Token)
                    - Education / Teacher
                    - >-
                      Extractive Industry (Oil, Gas, etc.) / Jewels / Gemstones
                      / Precious Metals
                    - Family Office
                    - Film / TV / Entertainment (not adult)
                    - >-
                      Government/State owned/Political Org. (i.e. Sovereign
                      Wealth Fund)
                    - Healthcare
                    - Law Enforcement / Military / Protective Services
                    - Miner / Mining Pool
                    - Money Service Business
                    - Other
                    - Private Equity / Venture Capital
                    - Professional Service Providers (lawyers accountants etc.)
                    - Real estate brokers developers and appraisers
                    - Recreation / Hospitality
                    - Student / Unemployed / Retired
                    - >-
                      Traders / Trading (High Frequency, Proprietary, Market
                      Maker)
                    - Other - Default
                    - Weapons Dealers
                  description: The occupation category of the individual
                annualIncome:
                  type: string
                  enum:
                    - Under $50,000
                    - $50,001 - $100,000
                    - $100,001 - $300,000
                    - $300,001 - $500,000
                    - $500,001 and over
                  description: The annual income range of the individual
                netWorth:
                  type: string
                  enum:
                    - Under $100,000
                    - $100,001 - $500,000
                    - $500,001 - $1,000,000
                    - $1,000,001 - $5,000,000
                    - $5,000,001 and over
                  description: The net worth range of the individual
                sourceOfNetWorth:
                  type: string
                  enum:
                    - 'Employment Income: Includes salaries, wages, and bonuses.'
                    - >-
                      Business Income: Revenue from self-owned businesses or
                      proceeds from the sale of a business.
                    - >-
                      Legal and Compensation Payments: Funds received from legal
                      settlements, including insurance claims, divorce
                      settlements, accident compensations, etc.
                    - >-
                      Inheritances and Gifts: Money or assets received as an
                      inheritance, gift, or through trust distributions.
                    - >-
                      Investment Earnings: Profits derived from investments such
                      as cryptocurrencies, stocks, bonds, private equity, or
                      venture capital.
                  description: The primary source of the individual's net worth
                initialDepositType:
                  type: string
                  enum:
                    - Fiat Currency
                    - Crypto / Digital Assets
                  description: The type of initial deposit being made
                expectedMonthlyDeposits:
                  type: string
                  enum:
                    - 0-10 Transactions
                    - 11-20 Transactions
                    - 21+ Transactions
                  description: The expected monthly deposit amount range
                expectedMonthlyWithdrawals:
                  type: string
                  enum:
                    - 0-10 Transactions
                    - 11-20 Transactions
                    - 21+ Transactions
                  description: The expected monthly withdrawal amount range
                phoneNumber:
                  type: string
                  description: >-
                    The phone number of the individual. Required for EU
                    unregulated clients.
                  minLength: 1
                birthdate:
                  type: string
                  description: The birthdate of the individual (YYYY-MM-DD)
                  example: '2000-12-25T00:00:00.000Z'
                  format: date
                  title: ISO Date String
                countryOfCitizenship:
                  type: string
                  description: >-
                    The country of citizenship (ISO Alpha-2 or Alpha-3 country
                    code)
                  example: US
                  minLength: 1
                countryOfResidence:
                  type: string
                  description: >-
                    The country of residence (ISO Alpha-2 or Alpha-3 country
                    code)
                  example: US
                  minLength: 1
                govIdCountryOfIssuance:
                  type: string
                  description: >-
                    The country of issuance of the government ID (ISO Alpha-2 or
                    Alpha-3 country code)
                  example: US
                  minLength: 1
                politicallyExposedPerson:
                  type: boolean
                  description: Whether the individual is a Politically Exposed Person (PEP)
                addressStreet1:
                  type: string
                  description: The street address line 1
                  minLength: 1
                addressCity:
                  type: string
                  description: The city of residence
                  minLength: 1
                addressSubdivision:
                  type: string
                  description: The state, province, or region of residence
                  example: CA
                  minLength: 1
                country:
                  type: string
                  description: >-
                    The country of the address (ISO Alpha-2 or Alpha-3 country
                    code)
                  example: US
                  minLength: 1
                identificationNumber:
                  description: >-
                    Tax identification number for US individuals (SSN or ITIN).


                    Required for US citizens (SSN) and US residents (SSN or
                    ITIN). Non-US individuals may optionally

                    submit SSN or ITIN if held (e.g. dual nationals, former US
                    residents). For other identification

                    documents (e.g., passport, driver's license), use the
                    [Submit KYC
                    Documents](https://developers.bitgo.com/reference/entityvalidationidentitydocumentcreate)
                    endpoint after creating the KYC identity
                  example: 123-45-6789
                  pattern: ^(\d{3}-\d{2}-\d{4}|\d{9})$
                addressStreet2:
                  type: string
                  description: The street address line 2
                  minLength: 1
                addressPostalCode:
                  type: string
                  description: The postal or ZIP code
                  minLength: 1
                digitalAssetWalletAddress:
                  type: string
                  description: >-
                    A digital asset wallet address of the individual where funds
                    will be deposited from
                  minLength: 1
                notionalTradedEachMonth:
                  type: number
                  description: The estimated notional amount traded per month in USD
                isEntity:
                  type: boolean
                  description: >-
                    True, if the account represents a business entity. False, if
                    the account represents an individual
                enterpriseName:
                  type: string
                  description: The legal name of the individual or entity
                  minLength: 1
                countryOfIncorporation:
                  type: string
                  description: >-
                    The country of incorporation (ISO Alpha-2 or Alpha-3 country
                    code)
                  example: US
                  minLength: 1
                dateOfIncorporation:
                  type: string
                  description: The date of incorporation (YYYY-MM-DD)
                  example: '2000-12-25T00:00:00.000Z'
                  format: date
                  title: ISO Date String
                dateOfBirth:
                  type: object
                  description: The date of birth of the individual
                  properties:
                    day:
                      type: string
                      example: '25'
                      format: DD
                    month:
                      type: string
                      example: '12'
                      format: MM
                    year:
                      type: string
                      example: '2024'
                      format: YYYY
                  required:
                    - day
                    - month
                    - year
                taxId:
                  type: string
                  description: The tax identification number
                  minLength: 1
                idvPerformed:
                  type: boolean
                  description: >-
                    Whether identity verification has been performed by the EU
                    CaaS client
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/evs/v1/identity/{id}/signatures:
    post:
      summary: Submit KYC Signatures
      description: Submit contract signatures for a given KYC identity.
      operationId: entity.validation.identity.signatures
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ESignatures'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/evs/v1/identity/{identityId}/document:
    post:
      summary: Add KYC Documents
      description: >-
        Add and validate KYC documents for an existing identity. Documents are
        verified with the document service before being associated with the
        identity.
      operationId: entity.validation.identity.document.create
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                selectedIdClass:
                  type: string
                  enum:
                    - cct
                    - cid
                    - dl
                    - foid
                    - hic
                    - id
                    - ipp
                    - keyp
                    - ltpass
                    - munid
                    - myn
                    - nbi
                    - nric
                    - ofw
                    - rp
                    - pan
                    - pid
                    - pp
                    - ppc
                    - pr
                    - sss
                    - td
                    - tribalid
                    - umid
                    - vid
                    - visa
                    - wp
                  description: >-
                    Required when uploading the front and/or back photos of KYC
                    verification documents. It represents the type of
                    identification document being uploaded:

                    - `cct` - Citizenship Certificate

                    - `cid` - Consular ID

                    - `dl` - Driver's License

                    - `foid` - CO Foreigner ID

                    - `hic` - Health Insurance Card

                    - `id` - Identification Card

                    - `ipp` - Internal Passport

                    - `keyp` - AU Keypass ID

                    - `ltpass` - Long Term Pass

                    - `munid` - US Municipal ID (e.g. NYC ID)

                    - `myn` - JP My Number Card (SSN)

                    - `nbi` - PH National Bureau of Investigation Certificate

                    - `nric` - SG National Residency ID

                    - `ofw` - PH Overseas Foreign Worker Card

                    - `rp` - Residence Permit

                    - `pan` - IN Permanent Account Number card (SSN)

                    - `pid` - PH Postal Identity Card

                    - `pp` - Passport

                    - `ppc` - Passport Card

                    - `pr` - Permanent Residence Card

                    - `sss` - PH Social Security System Card (SSN)

                    - `td` - US Travel Document

                    - `tribalid` - US/CA Tribal ID

                    - `umid` - PH Unified Multi Purpose ID

                    - `vid` - Voter ID

                    - `visa` - Visa

                    - `wp` - Work Permit
                frontPhoto:
                  description: |-
                    Front photo of the identity document

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"passport-front.jpg"'
                  format: binary
                backPhoto:
                  description: |-
                    Back photo of the identity document

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"drivers-license-back.png"'
                  format: binary
                proofOfResidency:
                  description: |-
                    Proof of residency

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"rental-lease.pdf"'
                  format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostIdentityDocumentCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/evs/v1/identity/{identityId}/document/{documentId}:
    put:
      summary: Update KYC Document
      description: Update KYC Document.
      operationId: entity.validation.identity.document.update
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
            title: uuid
        - name: documentId
          in: path
          required: true
          schema:
            type: string
            title: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                selectedIdClass:
                  type: string
                  enum:
                    - cct
                    - cid
                    - dl
                    - foid
                    - hic
                    - id
                    - ipp
                    - keyp
                    - ltpass
                    - munid
                    - myn
                    - nbi
                    - nric
                    - ofw
                    - rp
                    - pan
                    - pid
                    - pp
                    - ppc
                    - pr
                    - sss
                    - td
                    - tribalid
                    - umid
                    - vid
                    - visa
                    - wp
                  description: >-
                    Required when uploading the front and/or back photos of KYC
                    verification documents. It represents the type of
                    identification document being uploaded:

                    - `cct` - Citizenship Certificate

                    - `cid` - Consular ID

                    - `dl` - Driver's License

                    - `foid` - CO Foreigner ID

                    - `hic` - Health Insurance Card

                    - `id` - Identification Card

                    - `ipp` - Internal Passport

                    - `keyp` - AU Keypass ID

                    - `ltpass` - Long Term Pass

                    - `munid` - US Municipal ID (e.g. NYC ID)

                    - `myn` - JP My Number Card (SSN)

                    - `nbi` - PH National Bureau of Investigation Certificate

                    - `nric` - SG National Residency ID

                    - `ofw` - PH Overseas Foreign Worker Card

                    - `rp` - Residence Permit

                    - `pan` - IN Permanent Account Number card (SSN)

                    - `pid` - PH Postal Identity Card

                    - `pp` - Passport

                    - `ppc` - Passport Card

                    - `pr` - Permanent Residence Card

                    - `sss` - PH Social Security System Card (SSN)

                    - `td` - US Travel Document

                    - `tribalid` - US/CA Tribal ID

                    - `umid` - PH Unified Multi Purpose ID

                    - `vid` - Voter ID

                    - `visa` - Visa

                    - `wp` - Work Permit
                frontPhoto:
                  description: |-
                    Front photo of the identity document

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"passport-front.jpg"'
                  format: binary
                backPhoto:
                  description: |-
                    Back photo of the identity document

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"drivers-license-back.png"'
                  format: binary
                proofOfResidency:
                  description: |-
                    Proof of residency

                    Image Requirements:
                    - Dimensions: 200 to 15,000 px
                    - File Size: 10 KB to 15 MB
                    - Supported Formats: JPG, JPEG, PNG, HEIC, PDF
                  example: '"rental-lease.pdf"'
                  format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutIdentityDocumentUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/evs/v1/identity/document:
    get:
      summary: Get KYC Document
      description: Get a KYC document for an identity.
      operationId: entity.validation.identity.document.get
      tags:
        - Know Your Customer (KYC)
      parameters:
        - name: identityId
          in: query
          schema:
            type: string
            title: uuid
        - name: documentId
          in: query
          schema:
            type: string
            title: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityDocumentGetResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError2'
  /api/go-staking/v1/{coin}/accounts/{accountId}/requests/{requestId}:
    get:
      tags:
        - Go Account Staking
      summary: Get staking request for Go Account
      description: Get a specific staking request for a given asset and Go Account.
      operationId: v1.goStaking.request.getById
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/pathRequestId'
      responses:
        '200':
          description: Staking request retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingRequest'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/{coin}/accounts/{accountId}/requests:
    get:
      tags:
        - Go Account Staking
      summary: List staking requests by asset for Go Account
      description: List all staking requests for a given asset and Go Account.
      operationId: v1.goStaking.request.listByCoinAndAccount
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/queryRequestStatus'
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
        - $ref: '#/components/parameters/queryCreatedDateGte'
        - $ref: '#/components/parameters/queryCreatedDateLt'
        - $ref: '#/components/parameters/querySortBy'
      responses:
        '200':
          description: List of staking requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingRequestsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/accounts/{accountId}/rewards:
    get:
      tags:
        - Go Account Staking
      summary: List staking rewards for Go Account
      description: List all staking rewards for a given Go Account.
      operationId: v1.goStaking.rewards.listByAccount
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
        - $ref: '#/components/parameters/queryStartDate'
        - $ref: '#/components/parameters/queryEndDate'
      responses:
        '200':
          description: List of rewards
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/{coin}/accounts/{accountId}/rewards:
    get:
      tags:
        - Go Account Staking
      summary: List staking rewards by asset for Go Account
      description: List all staking rewards for a given asset and Go Account.
      operationId: v1.goStaking.rewards.listByAccountAndCoin
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
        - $ref: '#/components/parameters/queryStartDate'
        - $ref: '#/components/parameters/queryEndDate'
      responses:
        '200':
          description: List of rewards
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RewardsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/accounts/{accountId}/requests:
    get:
      tags:
        - Go Account Staking
      summary: List staking requests for Go Account
      description: List all staking requests for a given Go Account.
      operationId: v1.goStaking.request.listByAccount
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/queryRequestStatus'
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
        - $ref: '#/components/parameters/queryCreatedDateGte'
        - $ref: '#/components/parameters/queryCreatedDateLt'
        - $ref: '#/components/parameters/querySortBy'
      responses:
        '200':
          description: List of staking requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingRequestsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/{coin}/accounts/{accountId}/requests/preview:
    post:
      tags:
        - Go Account Staking
      summary: Generate staking request for Go Account
      description: >-
        Generate an unsigned staking request to preview for a given asset and Go
        Account. Use only for stake requests - don't use for unstaking requests.
      operationId: v1.goStaking.request.preview
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
      requestBody:
        description: Staking request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewGoStakingRequest'
            examples:
              PreviewGoStakingRequestExample:
                $ref: '#/components/examples/PreviewGoStakingRequestExample'
      responses:
        '200':
          description: Preview response containing unsigned transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfcTxBuildResponse'
              examples:
                OfcTxBuildResponseExample:
                  $ref: '#/components/examples/OfcTxBuildResponseExample'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/{coin}/accounts/{accountId}/requests/finalize:
    post:
      tags:
        - Go Account Staking
      summary: Finalize staking request for Go Account
      description: >-
        Create a finalized staking request based on previously previewed data
        for a given asset and Go Account.
      operationId: v1.goStaking.request.finalize
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
      requestBody:
        description: Final staking request payload
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/StakeGoStakingRequest'
                - $ref: '#/components/schemas/UnstakeGoStakingRequest'
            examples:
              FinalizeStakeGoStakingRequestExample:
                $ref: '#/components/examples/FinalizeStakeGoStakingRequestExample'
              FinalizeUnstakeGoStakingRequestExample:
                $ref: '#/components/examples/FinalizeGoStakingRequestExample'
      responses:
        '200':
          description: Staking request successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingRequest'
              examples:
                StakeGoStakingRequestResponseExample:
                  $ref: '#/components/examples/StakeGoStakingRequestResponseExample'
                UnstakeGoStakingRequestResponseExample:
                  $ref: '#/components/examples/UnstakeGoStakingRequestResponseExample'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/coins:
    get:
      tags:
        - Go Account Staking
      summary: List supported coins
      description: >-
        Returns a paginated list of supported staking coins for the
        authenticated user.
      operationId: v1.goStaking.coins.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
      responses:
        '200':
          description: A paginated list of supported coins.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingCoinsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/accounts/{accountId}/coins:
    get:
      tags:
        - Go Account Staking
      summary: List staking wallets for Go Account
      description: List all staking wallets associated with a given Go Account.
      operationId: v1.goStaking.wallet.listByAccountId
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathAccountId'
        - $ref: '#/components/parameters/queryPageNumber'
        - $ref: '#/components/parameters/queryPageSize'
      responses:
        '200':
          description: A paginated list of staking wallets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingWalletsResults'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/go-staking/v1/{coin}/accounts/{accountId}/attributes:
    get:
      tags:
        - Go Account Staking
      summary: Get staking wallet attributes for Go Account
      description: Get staking wallet attributes for a given asset and Go Account.
      operationId: v1.goStaking.wallet.getAttributesByCoinAndAccount
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin1'
        - $ref: '#/components/parameters/pathAccountId'
      responses:
        '200':
          description: A staking wallet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoStakingWallet'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/identity-service/v1/products:
    get:
      summary: List BitGo Products
      operationId: identities.get.v1.products
      tags:
        - BitGo Products
      parameters: []
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    product:
                      $ref: '#/components/schemas/WPBitGoProduct'
                  required:
                    - id
                    - product
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/identity-service/v1/identities:
    get:
      summary: List KYB Identities
      description: >-
        Retrieve a list of identities created by the authenticated user.
        Requires User-Id header.
      operationId: identities.get.v1.identities
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: enterpriseId
          in: query
          schema:
            type: string
        - name: organizationId
          in: query
          schema:
            type: string
        - name: userId
          in: query
          schema:
            type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  discriminator:
                    propertyName: type
                  oneOf:
                    - $ref: '#/components/schemas/IndividualIdentityResponse'
                    - $ref: '#/components/schemas/BusinessIdentityResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
    post:
      summary: Create KYB Identity
      description: >-
        Create an identity with requested products. Requires User-Id header to
        associate the identity with the creating user.
      operationId: identities.post.v1.identities
      tags:
        - Know Your Business (KYB)
      parameters: []
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIdentityBody'
      responses:
        '201':
          description: '201'
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/IndividualIdentityResponse'
                  - $ref: '#/components/schemas/BusinessIdentityResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/identity-service/v1/identities/{identityId}:
    patch:
      summary: Update KYB Identity
      description: >-
        Update an existing identity with new information. Requires User-Id
        header and user can only update identities they created. Only the fields
        provided in the request body will be updated.
      operationId: identities.patch.v1.identities.id
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
          description: The unique ID of the identity to update
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIdentityBody'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/IndividualIdentityResponse'
                  - $ref: '#/components/schemas/BusinessIdentityResponse'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
    get:
      summary: Get KYB Identity
      description: >-
        Retrieve an identity by its ID, including all related information.
        Requires User-Id header and user can only access identities they
        created.
      operationId: identities.get.v1.identities.id
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
          description: The unique ID of the identity to retrieve
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/IndividualIdentityResponse'
                  - $ref: '#/components/schemas/BusinessIdentityResponse'
        '401':
          description: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Description of the error
                  details:
                    type: array
                    items:
                      type: string
                      description: Detailed error messages
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/identity-service/v1/identities/{identityId}/documents:
    post:
      summary: Add KYB Documents
      description: >-
        Add and validate documents for an existing identity. Documents are
        verified with the document service before being associated with the
        identity.
      operationId: identities.post.v1.identities.id.documents
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The unique ID of the identity
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                documents:
                  type: array
                  items:
                    type: object
                    properties:
                      documentId:
                        type: string
                        format: uuid
                        description: External document service ID (must be a valid UUID)
                      documentType:
                        type: string
                        enum:
                          - governmentId
                          - commercialRegister
                          - articlesOfAssociation
                          - certificateOfIncorporation
                          - certificateOfTrust
                          - certificateOfIncumbency
                          - certificateOfIncumbencyOrShareRegister
                          - proofOfPrincipalPlaceOfBusiness
                          - activeTradeLicense
                          - resolutionToOpenBitgoUaeAccount
                          - resolutionToOpenBitgoSingaporeAccount
                          - proofOfAuthorizedSignatories
                          - memorandumOfAssociation
                          - memorandumAndArticlesOfAssociation
                          - bylawsOrOperatingAgreement
                          - operatingAgreement
                          - w8
                          - w9
                          - evidenceOfLegalStatus
                          - evidenceOfActiveStatus
                          - proofOfJfsaLicense
                          - proofOfGamingLicense
                          - organizationDocument
                          - partnershipAgreement
                          - articlesOfOrganization
                          - businessLicenseOrRegistration
                          - evidenceOfGovernmentOrStateOwnership
                          - secFilingsAsEvidenceOfPublicTradingStatus
                          - foundingTreatyOrEquivalent
                        description: >-
                          Type of document being uploaded. Supported document
                          types:

                          - `governmentId` - The official government-issued
                          identity document for an individual associated with
                          the business (e.g., director, shareholder, or
                          authorized signatory) required for identity
                          verification.

                          - `commercialRegister` - Official government document
                          that verifies the identity and legitimacy of the
                          business, containing basic information such as the
                          company's name, address, field of activity,
                          shareholders, and capital.

                          - `articlesOfAssociation` - The Articles of
                          Association are formal legal documents that serve as
                          the company's rulebook, outlining its fundamental
                          structure, purpose, internal operations, and how
                          decisions are made, including details on share
                          capital, director appointments, and shareholder
                          rights.

                          - `certificateOfIncorporation` - The official document
                          issued by the government registrar that legally
                          recognizes your company's existence and outlines
                          essential information such as its name, purpose, and
                          structure.

                          - `certificateOfTrust` - A document that verifies the
                          existence of a trust, the identity of the trustee(s),
                          and their authority to act on behalf of the trust.

                          - `certificateOfIncumbency` - A private legal document
                          issued by the company that verifies the identities and
                          authority of the current directors, officers, and
                          sometimes key shareholders who are authorized to act
                          on behalf of the company in transactions.

                          - `certificateOfIncumbencyOrShareRegister` - An
                          official document listing current directors,
                          shareholders, and the company's registered address, or
                          a certified document detailing all company
                          shareholders and their respective shareholdings.

                          - `proofOfPrincipalPlaceOfBusiness` - Document
                          confirming the address of the company's principal
                          place of business (e.g., utility bill or bank account
                          statement no older than 3 months).

                          - `activeTradeLicense` - The active and valid trade
                          license or equivalent regulatory document issued by
                          the relevant governing authority, proving the
                          business's legal authorization to operate.

                          - `resolutionToOpenBitgoUaeAccount` - A document
                          confirming the company's internal resolution or
                          decision to open an account with BitGo UAE.

                          - `resolutionToOpenBitgoSingaporeAccount` - This field
                          is for uploading the corporate resolution document
                          confirming authorization to open an account with BitGo
                          Singapore.

                          - `proofOfAuthorizedSignatories` - Document confirming
                          the legal authority of the individual(s) authorized to
                          sign contracts and legally binding documents on behalf
                          of the company.

                          - `memorandumOfAssociation` - The Memorandum of
                          Association is one of the company's constitutional
                          documents. It typically includes the company's name,
                          address, and confirms the initial shareholders agree
                          to form the company and become members.

                          - `memorandumAndArticlesOfAssociation` - This document
                          serves as the constitutional document of the company,
                          outlining its legal existence, objectives, and
                          internal governing rules.

                          - `bylawsOrOperatingAgreement` - The company's bylaws
                          or operating agreement. These are governing documents
                          that define the company's structure, operations, and
                          the rights and responsibilities of its members or
                          shareholders.

                          - `operatingAgreement` - The operating agreement is a
                          key document that outlines the ownership, internal
                          governance, and operating procedures of the business
                          entity.

                          - `w8` - W-8BEN or W-8BEN-E Form: Used by
                          individuals/institutions to certify foreign status for
                          U.S. tax purposes and to claim treaty benefits for
                          certain types of income (e.g., royalty/passive income,
                          scholarships/fellowships). This form is required to
                          determine the correct rate of tax withholding.

                          - `w9` - This field collects the IRS Form W-9,
                          "Request for Taxpayer Identification Number and
                          Certification." This document is used to confirm your
                          business's name, address, and Taxpayer Identification
                          Number (TIN) for income reporting purposes.

                          - `evidenceOfLegalStatus` - Document that confirms
                          your company is currently active and legally
                          authorized to operate in the country or jurisdiction
                          where it was formed. Examples of accepted documents
                          that clearly state or evidence active or good standing
                          include: Certificate of Good Standing, Business
                          Registration or Trade License, Company Registry
                          Extract, Certificate of Incumbency. Note: Documents
                          must be issued within the last 12 months. If an older
                          document is submitted, you may be asked to provide an
                          updated copy.

                          - `evidenceOfActiveStatus` - A document that verifies
                          the business entity's current legal standing and
                          active operational status, often an extract from a
                          state company registry or equivalent proof of legal
                          existence.

                          - `proofOfJfsaLicense` - Document required as proof of
                          the business's registration or license with the
                          Japanese Financial Services Agency (JFSA).

                          - `proofOfGamingLicense` - The official document
                          verifying that your business holds a valid gaming or
                          gambling license issued by the relevant regulatory
                          authority.

                          - `organizationDocument` - This field is for uploading
                          the business's organization document. This confirms
                          the entity's legal existence and compliance with
                          regulations. Common documents include the certificate
                          of incorporation, articles of association, or recent
                          excerpts from a state company registry.

                          - `partnershipAgreement` - The official document
                          formalizing a business partnership. This document
                          confirms the legal structure and ownership details of
                          the entity.

                          - `articlesOfOrganization` - The official document
                          filed with a state to legally form a Limited Liability
                          Company (LLC). It secures the business name and
                          establishes the legal entity.

                          - `businessLicenseOrRegistration` - This field is for
                          uploading the company's official business license or
                          registration document, which confirms the legal
                          identity and legitimacy of the business.

                          - `evidenceOfGovernmentOrStateOwnership` -
                          Documentation required to verify if the entity is
                          owned or operated by a government or state
                          organization.

                          - `secFilingsAsEvidenceOfPublicTradingStatus` -
                          Document field used to collect Securities and Exchange
                          Commission (SEC) filings that serve as evidence of the
                          business entity's public trading status.

                          - `foundingTreatyOrEquivalent` - The founding treaty
                          or equivalent document serves as official proof of the
                          business entity's legal existence and is often
                          referred to as a Certificate of Incorporation,
                          Articles of Association, or other governing documents,
                          depending on the jurisdiction and business structure.
                    required:
                      - documentId
                      - documentType
                  minItems: 1
                  description: List of documents to accept
              required:
                - documents
      responses:
        '201':
          description: '201'
          content:
            application/json:
              schema:
                type: object
                properties:
                  identityId:
                    type: string
                    description: The identity ID
                  acceptedDocuments:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Internal ID for the document association
                        documentId:
                          type: string
                          description: External document service ID
                        documentType:
                          type: string
                          enum:
                            - governmentId
                            - commercialRegister
                            - articlesOfAssociation
                            - certificateOfIncorporation
                            - certificateOfTrust
                            - certificateOfIncumbency
                            - certificateOfIncumbencyOrShareRegister
                            - proofOfPrincipalPlaceOfBusiness
                            - activeTradeLicense
                            - resolutionToOpenBitgoUaeAccount
                            - resolutionToOpenBitgoSingaporeAccount
                            - proofOfAuthorizedSignatories
                            - memorandumOfAssociation
                            - memorandumAndArticlesOfAssociation
                            - bylawsOrOperatingAgreement
                            - operatingAgreement
                            - w8
                            - w9
                            - evidenceOfLegalStatus
                            - evidenceOfActiveStatus
                            - proofOfJfsaLicense
                            - proofOfGamingLicense
                            - organizationDocument
                            - partnershipAgreement
                            - articlesOfOrganization
                            - businessLicenseOrRegistration
                            - evidenceOfGovernmentOrStateOwnership
                            - secFilingsAsEvidenceOfPublicTradingStatus
                            - foundingTreatyOrEquivalent
                          description: Type of document being uploaded
                        status:
                          type: string
                          enum:
                            - missing
                            - countExceeded
                            - submitted
                            - inReview
                            - verified
                          description: Verification status
                        createdAt:
                          type: string
                          description: ISO timestamp when document was associated
                        updatedAt:
                          type: string
                          description: ISO timestamp when association was last updated
                      required:
                        - id
                        - documentId
                        - documentType
                        - status
                        - createdAt
                        - updatedAt
                    description: Successfully accepted documents
                  rejectedDocuments:
                    type: array
                    items:
                      type: object
                      properties:
                        documentId:
                          type: string
                          description: External document service ID
                        documentType:
                          type: string
                          enum:
                            - governmentId
                            - commercialRegister
                            - articlesOfAssociation
                            - certificateOfIncorporation
                            - certificateOfTrust
                            - certificateOfIncumbency
                            - certificateOfIncumbencyOrShareRegister
                            - proofOfPrincipalPlaceOfBusiness
                            - activeTradeLicense
                            - resolutionToOpenBitgoUaeAccount
                            - resolutionToOpenBitgoSingaporeAccount
                            - proofOfAuthorizedSignatories
                            - memorandumOfAssociation
                            - memorandumAndArticlesOfAssociation
                            - bylawsOrOperatingAgreement
                            - operatingAgreement
                            - w8
                            - w9
                            - evidenceOfLegalStatus
                            - evidenceOfActiveStatus
                            - proofOfJfsaLicense
                            - proofOfGamingLicense
                            - organizationDocument
                            - partnershipAgreement
                            - articlesOfOrganization
                            - businessLicenseOrRegistration
                            - evidenceOfGovernmentOrStateOwnership
                            - secFilingsAsEvidenceOfPublicTradingStatus
                            - foundingTreatyOrEquivalent
                          description: Type of document being uploaded
                        reason:
                          type: string
                          description: Reason for rejection
                      required:
                        - documentId
                        - documentType
                        - reason
                    description: Documents that failed validation
                required:
                  - identityId
                  - acceptedDocuments
                  - rejectedDocuments
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '422':
          description: '422'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
    get:
      summary: List KYB Documents
      description: Retrieve all documents associated with an identity.
      operationId: identities.get.v1.identities.id.documents
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The unique ID of the identity
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  identityId:
                    type: string
                    description: The identity ID
                  documents:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Internal ID for the document association
                        documentId:
                          type: string
                          description: External document service ID
                        documentType:
                          type: string
                          enum:
                            - governmentId
                            - commercialRegister
                            - articlesOfAssociation
                            - certificateOfIncorporation
                            - certificateOfTrust
                            - certificateOfIncumbency
                            - certificateOfIncumbencyOrShareRegister
                            - proofOfPrincipalPlaceOfBusiness
                            - activeTradeLicense
                            - resolutionToOpenBitgoUaeAccount
                            - resolutionToOpenBitgoSingaporeAccount
                            - proofOfAuthorizedSignatories
                            - memorandumOfAssociation
                            - memorandumAndArticlesOfAssociation
                            - bylawsOrOperatingAgreement
                            - operatingAgreement
                            - w8
                            - w9
                            - evidenceOfLegalStatus
                            - evidenceOfActiveStatus
                            - proofOfJfsaLicense
                            - proofOfGamingLicense
                            - organizationDocument
                            - partnershipAgreement
                            - articlesOfOrganization
                            - businessLicenseOrRegistration
                            - evidenceOfGovernmentOrStateOwnership
                            - secFilingsAsEvidenceOfPublicTradingStatus
                            - foundingTreatyOrEquivalent
                          description: Type of document being uploaded
                        status:
                          type: string
                          enum:
                            - missing
                            - countExceeded
                            - submitted
                            - inReview
                            - verified
                          description: Verification status
                        createdAt:
                          type: string
                          description: ISO timestamp when document was associated
                        updatedAt:
                          type: string
                          description: ISO timestamp when association was last updated
                      required:
                        - id
                        - documentId
                        - documentType
                        - status
                        - createdAt
                        - updatedAt
                    description: List of documents associated with the identity
                required:
                  - identityId
                  - documents
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
  /api/identity-service/v1/identities/{identityId}/documents/{identityDocumentId}:
    put:
      summary: Update KYB Document
      description: Update a specific document association (document ID, type, or status).
      operationId: identities.put.v1.identities.id.documents.id
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The unique ID of the identity
        - name: identityDocumentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The unique ID of the document association
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                documentId:
                  type: string
                  format: uuid
                  description: New external document service ID (must be a valid UUID)
                documentType:
                  type: string
                  enum:
                    - governmentId
                    - commercialRegister
                    - articlesOfAssociation
                    - certificateOfIncorporation
                    - certificateOfTrust
                    - certificateOfIncumbency
                    - certificateOfIncumbencyOrShareRegister
                    - proofOfPrincipalPlaceOfBusiness
                    - activeTradeLicense
                    - resolutionToOpenBitgoUaeAccount
                    - resolutionToOpenBitgoSingaporeAccount
                    - proofOfAuthorizedSignatories
                    - memorandumOfAssociation
                    - memorandumAndArticlesOfAssociation
                    - bylawsOrOperatingAgreement
                    - operatingAgreement
                    - w8
                    - w9
                    - evidenceOfLegalStatus
                    - evidenceOfActiveStatus
                    - proofOfJfsaLicense
                    - proofOfGamingLicense
                    - organizationDocument
                    - partnershipAgreement
                    - articlesOfOrganization
                    - businessLicenseOrRegistration
                    - evidenceOfGovernmentOrStateOwnership
                    - secFilingsAsEvidenceOfPublicTradingStatus
                    - foundingTreatyOrEquivalent
                  description: >-
                    Type of document being uploaded. Supported document types:

                    - `governmentId` - The official government-issued identity
                    document for an individual associated with the business
                    (e.g., director, shareholder, or authorized signatory)
                    required for identity verification.

                    - `commercialRegister` - Official government document that
                    verifies the identity and legitimacy of the business,
                    containing basic information such as the company's name,
                    address, field of activity, shareholders, and capital.

                    - `articlesOfAssociation` - The Articles of Association are
                    formal legal documents that serve as the company's rulebook,
                    outlining its fundamental structure, purpose, internal
                    operations, and how decisions are made, including details on
                    share capital, director appointments, and shareholder
                    rights.

                    - `certificateOfIncorporation` - The official document
                    issued by the government registrar that legally recognizes
                    your company's existence and outlines essential information
                    such as its name, purpose, and structure.

                    - `certificateOfTrust` - A document that verifies the
                    existence of a trust, the identity of the trustee(s), and
                    their authority to act on behalf of the trust.

                    - `certificateOfIncumbency` - A private legal document
                    issued by the company that verifies the identities and
                    authority of the current directors, officers, and sometimes
                    key shareholders who are authorized to act on behalf of the
                    company in transactions.

                    - `certificateOfIncumbencyOrShareRegister` - An official
                    document listing current directors, shareholders, and the
                    company's registered address, or a certified document
                    detailing all company shareholders and their respective
                    shareholdings.

                    - `proofOfPrincipalPlaceOfBusiness` - Document confirming
                    the address of the company's principal place of business
                    (e.g., utility bill or bank account statement no older than
                    3 months).

                    - `activeTradeLicense` - The active and valid trade license
                    or equivalent regulatory document issued by the relevant
                    governing authority, proving the business's legal
                    authorization to operate.

                    - `resolutionToOpenBitgoUaeAccount` - A document confirming
                    the company's internal resolution or decision to open an
                    account with BitGo UAE.

                    - `resolutionToOpenBitgoSingaporeAccount` - This field is
                    for uploading the corporate resolution document confirming
                    authorization to open an account with BitGo Singapore.

                    - `proofOfAuthorizedSignatories` - Document confirming the
                    legal authority of the individual(s) authorized to sign
                    contracts and legally binding documents on behalf of the
                    company.

                    - `memorandumOfAssociation` - The Memorandum of Association
                    is one of the company's constitutional documents. It
                    typically includes the company's name, address, and confirms
                    the initial shareholders agree to form the company and
                    become members.

                    - `memorandumAndArticlesOfAssociation` - This document
                    serves as the constitutional document of the company,
                    outlining its legal existence, objectives, and internal
                    governing rules.

                    - `bylawsOrOperatingAgreement` - The company's bylaws or
                    operating agreement. These are governing documents that
                    define the company's structure, operations, and the rights
                    and responsibilities of its members or shareholders.

                    - `operatingAgreement` - The operating agreement is a key
                    document that outlines the ownership, internal governance,
                    and operating procedures of the business entity.

                    - `w8` - W-8BEN or W-8BEN-E Form: Used by
                    individuals/institutions to certify foreign status for U.S.
                    tax purposes and to claim treaty benefits for certain types
                    of income (e.g., royalty/passive income,
                    scholarships/fellowships). This form is required to
                    determine the correct rate of tax withholding.

                    - `w9` - This field collects the IRS Form W-9, "Request for
                    Taxpayer Identification Number and Certification." This
                    document is used to confirm your business's name, address,
                    and Taxpayer Identification Number (TIN) for income
                    reporting purposes.

                    - `evidenceOfLegalStatus` - Document that confirms your
                    company is currently active and legally authorized to
                    operate in the country or jurisdiction where it was formed.
                    Examples of accepted documents that clearly state or
                    evidence active or good standing include: Certificate of
                    Good Standing, Business Registration or Trade License,
                    Company Registry Extract, Certificate of Incumbency. Note:
                    Documents must be issued within the last 12 months. If an
                    older document is submitted, you may be asked to provide an
                    updated copy.

                    - `evidenceOfActiveStatus` - A document that verifies the
                    business entity's current legal standing and active
                    operational status, often an extract from a state company
                    registry or equivalent proof of legal existence.

                    - `proofOfJfsaLicense` - Document required as proof of the
                    business's registration or license with the Japanese
                    Financial Services Agency (JFSA).

                    - `proofOfGamingLicense` - The official document verifying
                    that your business holds a valid gaming or gambling license
                    issued by the relevant regulatory authority.

                    - `organizationDocument` - This field is for uploading the
                    business's organization document. This confirms the entity's
                    legal existence and compliance with regulations. Common
                    documents include the certificate of incorporation, articles
                    of association, or recent excerpts from a state company
                    registry.

                    - `partnershipAgreement` - The official document formalizing
                    a business partnership. This document confirms the legal
                    structure and ownership details of the entity.

                    - `articlesOfOrganization` - The official document filed
                    with a state to legally form a Limited Liability Company
                    (LLC). It secures the business name and establishes the
                    legal entity.

                    - `businessLicenseOrRegistration` - This field is for
                    uploading the company's official business license or
                    registration document, which confirms the legal identity and
                    legitimacy of the business.

                    - `evidenceOfGovernmentOrStateOwnership` - Documentation
                    required to verify if the entity is owned or operated by a
                    government or state organization.

                    - `secFilingsAsEvidenceOfPublicTradingStatus` - Document
                    field used to collect Securities and Exchange Commission
                    (SEC) filings that serve as evidence of the business
                    entity's public trading status.

                    - `foundingTreatyOrEquivalent` - The founding treaty or
                    equivalent document serves as official proof of the business
                    entity's legal existence and is often referred to as a
                    Certificate of Incorporation, Articles of Association, or
                    other governing documents, depending on the jurisdiction and
                    business structure.
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Internal ID for the document association
                  documentId:
                    type: string
                    description: External document service ID
                  documentType:
                    type: string
                    enum:
                      - governmentId
                      - commercialRegister
                      - articlesOfAssociation
                      - certificateOfIncorporation
                      - certificateOfTrust
                      - certificateOfIncumbency
                      - certificateOfIncumbencyOrShareRegister
                      - proofOfPrincipalPlaceOfBusiness
                      - activeTradeLicense
                      - resolutionToOpenBitgoUaeAccount
                      - resolutionToOpenBitgoSingaporeAccount
                      - proofOfAuthorizedSignatories
                      - memorandumOfAssociation
                      - memorandumAndArticlesOfAssociation
                      - bylawsOrOperatingAgreement
                      - operatingAgreement
                      - w8
                      - w9
                      - evidenceOfLegalStatus
                      - evidenceOfActiveStatus
                      - proofOfJfsaLicense
                      - proofOfGamingLicense
                      - organizationDocument
                      - partnershipAgreement
                      - articlesOfOrganization
                      - businessLicenseOrRegistration
                      - evidenceOfGovernmentOrStateOwnership
                      - secFilingsAsEvidenceOfPublicTradingStatus
                      - foundingTreatyOrEquivalent
                    description: Type of document being uploaded
                  status:
                    type: string
                    enum:
                      - missing
                      - countExceeded
                      - submitted
                      - inReview
                      - verified
                    description: Verification status
                  createdAt:
                    type: string
                    description: ISO timestamp when document was associated
                  updatedAt:
                    type: string
                    description: ISO timestamp when association was last updated
                required:
                  - id
                  - documentId
                  - documentType
                  - status
                  - createdAt
                  - updatedAt
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '422':
          description: '422'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
    delete:
      summary: Delete KYB Document
      description: Remove a specific document association from an identity.
      operationId: identities.delete.v1.identities.id.documents.id
      tags:
        - Know Your Business (KYB)
      parameters:
        - name: identityId
          in: path
          required: true
          schema:
            type: string
          description: The unique ID of the identity
        - name: identityDocumentId
          in: path
          required: true
          schema:
            type: string
          description: The unique ID of the document association
      responses:
        '204':
          description: '204'
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/identity-service/v1/products-configs:
    get:
      summary: Get BitGo Products Configuration
      operationId: identities.get.v1.products-configs
      tags:
        - BitGo Products
      parameters:
        - name: bitgoOrg
          in: query
          description: BitGo organization types
          required: true
          schema:
            type: string
            enum:
              - BitGo Trust
              - BitGo New York
              - BitGo Germany
              - BitGo Switzerland
              - BitGo Europe ApS
              - Frankfurt DE Trust
              - BitGo Singapore
              - BitGo Korea
              - BitGo Mena Fze
              - BitGo Custody MENA FZE
              - BitGo India
              - BitGo Sister Trust 1
              - BitGo Inc
            title: WPBitgoOrg
        - name: accountType
          in: query
          required: true
          schema:
            type: string
            enum:
              - individual
              - entity
        - name: country
          in: query
          description: Country (formatted as ISO 3166-1 alpha-3)
          required: true
          schema: {}
        - name: subdivision
          in: query
          description: >-
            State, province, or region (formatted as subdivision section of ISO
            3166-2, excludes country code)
          schema:
            type: string
            minLength: 1
            maxLength: 3
        - name: source
          in: query
          schema:
            type: string
            enum:
              - ftx
              - ftx-retail
              - ftx-bahamas
              - ftx-bahamas-retail
        - name: organizationId
          in: query
          description: The ID of the organization
          schema:
            type: string
        - name: fallbackOrganizationId
          in: query
          description: Falback organization id
          schema:
            type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      bitgoOrg:
                        $ref: '#/components/schemas/WPBitgoOrg'
                      accountType:
                        type: string
                        enum:
                          - individual
                          - entity
                      country:
                        description: Country (formatted as ISO 3166-1 alpha-3)
                      subdivision:
                        type: string
                        minLength: 1
                        maxLength: 3
                        description: >-
                          State, province, or region (formatted as subdivision
                          section of ISO 3166-2, excludes country code)
                      organizationId:
                        type: string
                        nullable: true
                        description: The ID of the organization
                      bitgoProducts:
                        type: array
                        items:
                          $ref: '#/components/schemas/WPBitGoProduct'
                      id:
                        type: string
                        format: uuid
                    required:
                      - bitgoOrg
                      - accountType
                      - country
                      - bitgoProducts
                      - id
                  - type: object
                    properties:
                      bitgoOrg:
                        $ref: '#/components/schemas/WPBitgoOrg'
                      accountType:
                        type: string
                        enum:
                          - individual
                          - entity
                      country:
                        description: Country (formatted as ISO 3166-1 alpha-3)
                      subdivision:
                        type: string
                        minLength: 1
                        maxLength: 3
                        description: >-
                          State, province, or region (formatted as subdivision
                          section of ISO 3166-2, excludes country code)
                      source:
                        type: string
                        enum:
                          - ftx
                          - ftx-retail
                          - ftx-bahamas
                          - ftx-bahamas-retail
                      organizationId:
                        type: string
                        nullable: true
                        description: The ID of the organization
                      bitgoProducts:
                        type: array
                        items:
                          $ref: '#/components/schemas/WPBitGoProduct'
                      id:
                        type: string
                        format: uuid
                    required:
                      - bitgoOrg
                      - accountType
                      - country
                      - source
                      - bitgoProducts
                      - id
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/notifications/v1/webhooks/{webhookId}/oauth-config:
    get:
      tags:
        - Notification Webhooks
      summary: Get webhook OAuth configuration
      description: >-
        Retrieves the OAuth configuration for a specific webhook. Secrets are
        excluded from the response.
      operationId: getOAuthConfig
      parameters:
        - name: webhookId
          in: path
          description: The webhook ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OAuth configuration retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookOAuthConfigResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: OAuth configuration not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
    put:
      tags:
        - Notification Webhooks
      summary: Upsert webhook OAuth config
      description: >-
        Creates or updates the OAuth 2.0 client credentials configuration for a
        webhook. The client secret is encrypted at rest using KMS when the
        oauth-kms-enabled feature flag is active.
      operationId: upsertOAuthConfig
      parameters:
        - name: webhookId
          in: path
          description: The unique identifier of the webhook to configure OAuth for
          required: true
          schema:
            type: string
      requestBody:
        description: >-
          OAuth 2.0 client credentials configuration to associate with the
          webhook
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertWebhookOAuthConfigRequest'
        required: true
      responses:
        '200':
          description: OAuth config upserted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookOAuthConfigResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
    delete:
      tags:
        - Notification Webhooks
      summary: Delete webhook OAuth configuration
      description: >-
        Removes the OAuth configuration for a specific webhook, invalidates the
        config cache, and evicts cached access tokens.
      operationId: deleteOAuthConfig
      parameters:
        - name: webhookId
          in: path
          description: The webhook ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OAuth configuration deleted successfully
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/user/subscriptions:
    get:
      tags:
        - User Management Notification
      summary: Get user subscriptions
      description: >-
        Retrieves the notification subscriptions for the authenticated user.
        Supports optional filtering by communication channel, category name, and
        notification name. Returns a list of subscriptions relevant to the
        user's preferences.
      operationId: getUserSubscriptions
      parameters:
        - name: channel
          in: query
          required: false
          schema:
            type: string
        - name: categoryName
          in: query
          required: false
          schema:
            type: string
        - name: notificationName
          in: query
          required: false
          schema:
            type: string
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of user subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSubscriptionsResponse'
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
    put:
      tags:
        - User Management Notification
      summary: Set user subscriptions
      description: >-
        Updates the notification subscriptions for the authenticated user.
        Accepts a list of subscription changes and applies them, replacing the
        user's current subscriptions with the provided set.
      operationId: setUserSubscriptions
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationSubscriptionListRequest'
        required: true
      responses:
        '200':
          description: User subscriptions updated
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Updated subscription entities
        '400':
          description: Invalid subscription request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/user/mute-settings:
    put:
      tags:
        - User Management Notification
      summary: Update mute settings
      description: >-
        Replaces both muted enterprises and wallets lists atomically. Wallet IDs
        belonging to muted enterprises are automatically removed.
      operationId: updateMuteSettings
      parameters:
        - name: request-id
          in: header
          description: Optional idempotency key for the request
          required: false
          schema:
            type: string
      requestBody:
        description: The new mute settings. Replaces existing settings entirely.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMuteSettingsRequest'
        required: true
      responses:
        '200':
          description: Mute settings updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteSettingsResponse'
        '400':
          description: Invalid mute settings request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/wallets:
    put:
      tags:
        - User Management Notification
      summary: Update muted wallets list
      description: >-
        Replaces the entire muted wallets list for the authenticated user. Pass
        an empty list to unmute all wallets.
      operationId: updateMutedWallets
      parameters:
        - name: request-id
          in: header
          description: Optional idempotency key for the request
          required: false
          schema:
            type: string
      requestBody:
        description: The new muted wallets list. Replaces the existing list entirely.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMutedWalletsRequest'
        required: true
      responses:
        '200':
          description: Muted wallets list updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Invalid muted wallets request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/wallet:
    put:
      tags:
        - User Management Notification
      summary: Mute wallet notifications
      description: >-
        Mutes notifications from a specific wallet for the authenticated user.
        Uses PUT as this operation creates or updates existing mute settings.
      operationId: muteWallet
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MuteWalletRequest'
        required: true
      responses:
        '200':
          description: Wallet notifications muted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Invalid mute wallet request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/enterprises:
    put:
      tags:
        - User Management Notification
      summary: Update muted enterprises list
      description: >-
        Replaces the entire muted enterprises list for the authenticated user.
        Pass an empty list to unmute all enterprises.
      operationId: updateMutedEnterprises
      parameters:
        - name: request-id
          in: header
          description: Optional idempotency key for the request
          required: false
          schema:
            type: string
      requestBody:
        description: The new muted enterprises list. Replaces the existing list entirely.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMutedEnterprisesRequest'
        required: true
      responses:
        '200':
          description: Muted enterprises list updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Invalid muted enterprises request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/enterprise:
    put:
      tags:
        - User Management Notification
      summary: Mute enterprise notifications
      description: >-
        Mutes notifications from a specific enterprise for the authenticated
        user. Uses PUT as this operation creates or updates existing mute
        settings.
      operationId: muteEnterprise
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MuteEnterpriseRequest'
        required: true
      responses:
        '200':
          description: Enterprise notifications muted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Invalid mute enterprise request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/webhooks/{webhookId}/unblockurl:
    post:
      tags:
        - Notification Webhooks
      summary: Unblock a webhook URL
      description: >-
        Removes the webhook's destination URL from the blocked list and clears
        its failure counter.
      operationId: unblockWebhookUrl
      parameters:
        - name: webhookId
          in: path
          description: The webhook ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Webhook URL unblocked successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnblockWebhookUrlResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/webhooks/{webhookId}/notifications/retrigger:
    post:
      tags:
        - Notification Webhooks
      summary: Retrigger webhook notifications
      description: >-
        Retriggers a list of webhook notifications by their IDs. Max 25
        notifications per request. Note: retriggered webhooks use the original
        signature. If the webhook secret was rotated since the original send,
        the signature will be incorrect.
      operationId: retriggerNotifications
      parameters:
        - name: webhookId
          in: path
          description: The webhook ID
          required: true
          schema:
            type: string
      requestBody:
        description: List of webhook notification IDs to retrigger (max 25)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetriggerWebhookNotificationsRequest'
        required: true
      responses:
        '200':
          description: Retrigger results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetriggerWebhookNotificationsResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '409':
          description: Concurrent retrigger in progress
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/webhooks/notifications:
    post:
      tags:
        - Notification Webhooks
      summary: Get or retrigger webhook notifications across multiple webhooks
      description: >-
        Retrieves and optionally retriggers paginated notification history for
        up to 25 webhook IDs with optional filters.
      operationId: getBulkWebhookNotifications
      requestBody:
        description: >-
          Webhook IDs, optional filters, pagination parameters, and whether to
          retrigger the notifications
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostBulkWebhookNotificationsRequest'
        required: true
      responses:
        '200':
          description: Bulk webhook notification history retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostBulkWebhookNotificationsResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied for one or more webhook IDs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/tokens:
    post:
      tags:
        - User Management Notification
      summary: Add device token for user
      description: >-
        Registers a new device token for the authenticated user. If the token
        already exists, updates its association or last set time as appropriate.
        Used for enabling push notifications to the user's device.
      operationId: addUserDeviceToken
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddDeviceTokenRequest'
        required: true
      responses:
        '201':
          description: Device token added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddDeviceTokenResponse'
        '400':
          description: Invalid device token request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/external/unsubscribe:
    post:
      tags:
        - User Management Notification
      summary: Perform one-click email unsubscribe (RFC 8058)
      description: >-
        Processes an RFC 8058 one-click unsubscribe request and unsubscribes the
        user from the email notification category encoded in the token.
      operationId: oneClickUnsubscribe
      parameters:
        - name: request-id
          in: header
          description: >-
            Optional client-supplied request ID used for log correlation and
            tracing
          required: false
          schema:
            type: string
      requestBody:
        description: >-
          RFC 8058 one-click unsubscribe request body. Must contain
          List-Unsubscribe=One-Click.
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UnsubscribeFormBody'
        required: true
      responses:
        '200':
          description: Unsubscribed successfully
        '400':
          description: Invalid or expired token, or non-compliant RFC 8058 request body
        '429':
          description: Too many unsubscribe requests from this IP
        '500':
          description: Failed to update subscriptions
      x-internal: false
  /api/notifications/v1/user/notification-thresholds:
    get:
      tags:
        - User Management Notification
      summary: Get notification thresholds
      description: >-
        Retrieves the deposit and withdrawal USD notification thresholds for the
        authenticated user.
      operationId: getNotificationThresholds
      parameters:
        - name: request-id
          in: header
          description: Optional request ID for tracing
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Notification thresholds retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationThresholdsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
    patch:
      tags:
        - User Management Notification
      summary: Update notification thresholds
      description: >-
        Updates the deposit and/or withdrawal USD notification thresholds for
        the authenticated user.
      operationId: patchNotificationThresholds
      parameters:
        - name: request-id
          in: header
          description: Optional request ID for tracing
          required: false
          schema:
            type: string
      requestBody:
        description: The threshold values to update. Omitted fields are left unchanged.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNotificationThresholdsRequest'
        required: true
      responses:
        '200':
          description: Notification thresholds updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationThresholdsResponse'
        '400':
          description: Invalid notification thresholds request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/webhooks/{webhookId}/notifications:
    get:
      tags:
        - Notification Webhooks
      summary: Get webhook notification history
      description: >-
        Retrieves paginated notification history for a specific webhook with
        optional filters for status, date range, hash, and transfer ID.
      operationId: getWebhookNotifications
      parameters:
        - name: webhookId
          in: path
          description: The webhook ID
          required: true
          schema:
            type: string
        - name: request
          in: query
          description: Query filters for notification history
          required: true
          schema:
            $ref: '#/components/schemas/GetWebhookNotificationsRequest'
      responses:
        '200':
          description: Webhook notification history retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookNotificationsResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponse'
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponse'
        '500':
          description: Unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/user/categories:
    get:
      tags:
        - User Management Notification
      summary: Get user categories with subscription status
      description: >-
        Retrieves all available notification categories with their current
        subscription status for the authenticated user and specified channel. A
        category is considered 'subscribed' if all non-mandatory notifications
        within that category are subscribed for the specified channel.
      operationId: getUserCategories
      parameters:
        - name: channel
          in: query
          required: true
          schema:
            type: string
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of categories with subscription status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCategoriesResponse'
        '400':
          description: Invalid channel query parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute:
    get:
      tags:
        - User Management Notification
      summary: Get notification mute settings
      description: >-
        Retrieves the current notification mute settings for the authenticated
        user.
      operationId: getMuteSettings
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Mute settings retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/categories:
    get:
      tags:
        - User Management Notification
      summary: Get notification categories
      description: >-
        Retrieves all available notification categories in the system. This is a
        public endpoint that does not require authentication.
      operationId: getCategories
      parameters:
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of notification categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/tokens/{deviceToken}:
    delete:
      tags:
        - User Management Notification
      summary: Remove device token for user
      description: >-
        Removes the specified device token from the authenticated user's
        account. If the token does not belong to the user or does not exist,
        handles the case accordingly. Used to stop push notifications to a
        device.
      operationId: removeUserDeviceToken
      parameters:
        - name: deviceToken
          in: path
          required: true
          schema:
            type: string
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '202':
          description: Device token removed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteDeviceTokenResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '401':
          description: Device token does not belong to user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/wallet/{walletId}:
    delete:
      tags:
        - User Management Notification
      summary: Unmute wallet notifications
      description: Unmutes notifications from a specific wallet for the authenticated user.
      operationId: unmuteWallet
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            type: string
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '202':
          description: Wallet notifications unmuted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/notifications/v1/mute/enterprise/{enterpriseId}:
    delete:
      tags:
        - User Management Notification
      summary: Unmute enterprise notifications
      description: >-
        Unmutes notifications from a specific enterprise for the authenticated
        user.
      operationId: unmuteEnterprise
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
        - name: request-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '202':
          description: Enterprise notifications unmuted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
      x-internal: false
  /api/org/enterprise/{enterpriseId}:
    get:
      operationId: org.enterprise
      summary: Get child enterprise
      description: >-
        Get a child enterprise by its ID for a child enterprise within an
        organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/enterprise/ENTERPRISE_ID?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/enterprise/ENTERPRISE_ID?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/enterprise/ENTERPRISE_ID?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/enterprise/ENTERPRISE_ID?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: enterpriseId
          in: path
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  organizationEnterprise:
                    allOf:
                      - type: object
                        properties:
                          enterprise:
                            allOf:
                              - type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                  additionalEnterpriseInfo:
                                    type: object
                                    properties:
                                      contact:
                                        type: object
                                        properties:
                                          addressType:
                                            type: string
                                          name:
                                            type: string
                                          street:
                                            type: string
                                          street2:
                                            anyOf:
                                              - type: string
                                              - nullable: true
                                              - nullable: true
                                          suite:
                                            anyOf:
                                              - type: string
                                              - nullable: true
                                              - nullable: true
                                          city:
                                            type: string
                                          state:
                                            type: string
                                          postalCode:
                                            type: string
                                          country:
                                            type: string
                                  bitgoOrg:
                                    type: string
                                    enum:
                                      - BitGo Trust
                                      - BitGo New York
                                      - BitGo Germany
                                      - BitGo Switzerland
                                      - Frankfurt DE Trust
                                      - BitGo Singapore
                                      - BitGo Sister Trust 1
                                      - BitGo Inc
                                  kycState:
                                    type: string
                                    enum:
                                      - unverified
                                      - approved
                                      - rejected
                                      - pending
                                  legalIdentifiers:
                                    allOf:
                                      - type: object
                                        properties:
                                          legalPersonNameIdentifierType:
                                            type: string
                                            enum:
                                              - LEGL
                                        required:
                                          - legalPersonNameIdentifierType
                                      - type: object
                                        properties:
                                          legalPersonName:
                                            type: string
                                  type:
                                    type: string
                                  latestSAVersionSigned:
                                    type: number
                                  travelRule:
                                    type: boolean
                                  productLicenses:
                                    type: array
                                    items:
                                      type: string
                                  canAccessBorrowing:
                                    type: boolean
                                  canAccessLending:
                                    type: boolean
                                  canAccessSettlement:
                                    type: boolean
                                  canAccessTrading:
                                    type: boolean
                                  canCreateColdWallet:
                                    type: boolean
                                  canCreateHotWallet:
                                    type: boolean
                                  canCreateCustodialWallet:
                                    type: boolean
                                  canCreateOffchainWallet:
                                    type: boolean
                                  oneTimeFees:
                                    type: array
                                    items:
                                      type: string
                                  upfrontPaymentStatus:
                                    type: string
                                  ethAlwaysUseHop:
                                    type: boolean
                                  usersViewAllWallets:
                                    type: boolean
                                  videoIdWaived:
                                    type: boolean
                                required:
                                  - id
                                  - name
                                  - additionalEnterpriseInfo
                                  - bitgoOrg
                                  - kycState
                                  - legalIdentifiers
                                  - type
                                  - latestSAVersionSigned
                                  - travelRule
                                  - productLicenses
                                  - canAccessBorrowing
                                  - canAccessLending
                                  - canAccessSettlement
                                  - canAccessTrading
                                  - canCreateColdWallet
                                  - canCreateHotWallet
                                  - canCreateCustodialWallet
                                  - canCreateOffchainWallet
                                  - oneTimeFees
                                  - upfrontPaymentStatus
                                  - ethAlwaysUseHop
                                  - usersViewAllWallets
                                  - videoIdWaived
                              - type: object
                                properties:
                                  accountType:
                                    type: string
                                    enum:
                                      - individual
                                      - entity
                                  businessModel:
                                    type: string
                                    enum:
                                      - bitgoAsAService
                                  salesforceAccountId:
                                    type: string
                                  salesforceOpportunityId:
                                    type: string
                                  salesEmail:
                                    type: string
                                  cheetahAccountId:
                                    type: string
                                  primaryContact:
                                    type: string
                                    minLength: 1
                                  organizationId:
                                    type: string
                                  emergencyPhone:
                                    type: string
                                  pricingPlan:
                                    type: string
                                  approvalsRequired:
                                    type: number
                                  mutablePolicyWindow:
                                    type: number
                                  freeze:
                                    type: object
                                    properties:
                                      time:
                                        anyOf:
                                          - type: string
                                          - type: string
                                      expires:
                                        anyOf:
                                          - type: string
                                          - type: string
                                  bitgoEthKey:
                                    type: string
                                  ethFeeAddress:
                                    type: string
                                  walletLimit:
                                    type: object
                                    additionalProperties:
                                      type: number
                                  preferredUi:
                                    type: string
                                    enum:
                                      - bg23
                                      - ''
                                  custodialWalletLimit:
                                    anyOf:
                                      - type: object
                                        additionalProperties:
                                          type: number
                                      - nullable: true
                                      - nullable: true
                                  featureFlags:
                                    type: array
                                    items:
                                      type: string
                                  labels:
                                    type: array
                                    items:
                                      type: string
                                  licenses:
                                    type: array
                                    items:
                                      type: string
                                  ellipticId:
                                    type: string
                                  ellipticHotWallets:
                                    type: boolean
                                  vaspId:
                                    type: string
                                  coinSpecific:
                                    type: object
                                    additionalProperties:
                                      nullable: true
                                  walletCounts:
                                    type: object
                                    properties:
                                      enterpriseWallets:
                                        type: object
                                        additionalProperties:
                                          type: number
                                    required:
                                      - enterpriseWallets
                                  activePricingType:
                                    anyOf:
                                      - allOf:
                                          - type: object
                                            properties:
                                              name:
                                                type: string
                                                enum:
                                                  - starter
                                                  - growth
                                                  - employee
                                            required:
                                              - name
                                          - type: object
                                            properties:
                                              startDate:
                                                anyOf:
                                                  - type: string
                                                  - type: string
                                              startReason:
                                                type: string
                                            required:
                                              - startDate
                                              - startReason
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                              endDate:
                                                anyOf:
                                                  - type: string
                                                  - type: string
                                                  - nullable: true
                                                  - nullable: true
                                              endReason:
                                                type: string
                                      - nullable: true
                                      - nullable: true
                                  source:
                                    type: string
                                    enum:
                                      - bitcoinBuilder
                                      - ftx
                                      - sofi
                                  totalWalletsCount:
                                    type: number
                                  internal:
                                    type: object
                                    properties:
                                      migratedToNewPolicyService:
                                        anyOf:
                                          - type: boolean
                                          - nullable: true
                                          - nullable: true
                                      policiesLocked:
                                        type: boolean
                                    required:
                                      - migratedToNewPolicyService
                                      - policiesLocked
                                  distributedCustody:
                                    type: object
                                    properties:
                                      signingBitgoOrg:
                                        type: string
                                        enum:
                                          - BitGo Trust
                                          - BitGo New York
                                          - BitGo Germany
                                          - BitGo Switzerland
                                          - Frankfurt DE Trust
                                          - BitGo Singapore
                                          - BitGo Sister Trust 1
                                          - BitGo Inc
                                    required:
                                      - signingBitgoOrg
                                  migratedToNewPolicyService:
                                    type: boolean
                                  videoIdUsers:
                                    type: array
                                    items:
                                      allOf:
                                        - type: object
                                          properties:
                                            email:
                                              type: string
                                              minLength: 1
                                            userId:
                                              type: string
                                              minLength: 1
                                            inviter:
                                              type: string
                                              minLength: 1
                                            state:
                                              type: string
                                              enum:
                                                - awaitingApproval
                                                - awaitingAcceptance
                                                - pendingSchedule
                                                - pendingInitialId
                                                - underReview
                                                - approved
                                                - rejected
                                                - archived
                                          required:
                                            - email
                                            - userId
                                            - inviter
                                            - state
                                        - type: object
                                          properties:
                                            videoCallId:
                                              type: string
                                            approvalDate:
                                              type: string
                                            archivedDate:
                                              type: string
                                            pendingApprovalId:
                                              type: string
                                            videoLink:
                                              type: string
                        required:
                          - enterprise
                      - type: object
                        properties:
                          account:
                            type: string
                        required:
                          - account
                required:
                  - organizationEnterprise
  /api/org/enterprise/{enterpriseId}/asset-balances:
    get:
      operationId: org.enterprise.assetbalances
      summary: List asset balances
      description: List asset balances by coin for a given enterprise
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/enterprise/ENTERPRISE_ID/asset-balances?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/enterprise/ENTERPRISE_ID/asset-balances?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/enterprise/ENTERPRISE_ID/asset-balances?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/enterprise/ENTERPRISE_ID/asset-balances?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: enterpriseId
          in: path
        - schema:
            type: string
            description: The ID of the organization that owns the enterprise
          required: true
          description: The ID of the organization that owns the enterprise
          name: organizationId
          in: query
        - schema:
            type: string
            enum:
              - ARS
              - AUD
              - CAD
              - CLP
              - CNY
              - COP
              - DKK
              - EUR
              - GBP
              - INR
              - JPY
              - NOK
              - SEK
              - TRY
              - USD
              - UYU
              - ZAR
          required: false
          name: currency
          in: query
        - schema:
            type: string
          required: true
          name: enterprise
          in: query
        - schema:
            type: string
          required: false
          name: coin
          in: query
        - schema:
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
              - type: string
                enum:
                  - 'false'
          required: false
          name: showEmptyBalances
          in: query
        - schema:
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
              - type: string
                enum:
                  - 'false'
          required: false
          name: expandTradingBalance
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  balances:
                    type: array
                    items:
                      type: object
                      properties:
                        balanceString:
                          type: string
                        spendableBalanceString:
                          type: string
                        coin:
                          type: string
                        lockedBalanceString:
                          type: string
                        stakedBalanceString:
                          type: string
                        confirmedBalanceString:
                          type: string
                        fiatValue:
                          type: number
                        displayValue:
                          type: string
                        humanReadableValue:
                          type: string
                        spendableFiatValue:
                          type: number
                        spendableDisplayValue:
                          type: string
                        lockedFiatValue:
                          type: number
                        lockedDisplayValue:
                          type: string
                        stakedFiatValue:
                          type: number
                        stakedDisplayValue:
                          type: string
                        confirmedFiatValue:
                          type: number
                        confirmedDisplayValue:
                          type: string
                        marketPrice:
                          type: number
                        portfolioPercent:
                          type: number
                      required:
                        - balanceString
                        - coin
                  total:
                    type: number
                required:
                  - balances
                  - total
  /api/org/search:
    get:
      operationId: org.search.results
      summary: Global search across the organization
      description: List of customers & transactions across the organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/search?organizationId=ORGANIZATION_ID&searchTerm=YOUR_SEARCH_TERM',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/search?organizationId=ORGANIZATION_ID&searchTerm=YOUR_SEARCH_TERM"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/search?organizationId=ORGANIZATION_ID&searchTerm=YOUR_SEARCH_TERM';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/search?organizationId=ORGANIZATION_ID&searchTerm=YOUR_SEARCH_TERM"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: searchTerm
          in: query
        - schema:
            type: string
            enum:
              - customers
              - transactions
          required: false
          name: searchType
          in: query
        - schema:
            type: string
          required: false
          name: usersNextBatchPrevId
          in: query
        - schema:
            type: string
          required: false
          name: transfersNextBatchPrevId
          in: query
        - schema:
            type: string
          required: false
          name: limit
          in: query
        - schema:
            type: string
            description: The ID of the organization
          required: true
          description: The ID of the organization
          name: organizationId
          in: query
        - schema:
            type: string
            description: >-
              Optional alias for organizationId; if provided, must match
              organizationId
          required: false
          description: >-
            Optional alias for organizationId; if provided, must match
            organizationId
          name: orgId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  userResults:
                    allOf:
                      - type: object
                        properties:
                          users:
                            type: array
                            items:
                              allOf:
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                    username:
                                      type: string
                                    name:
                                      type: object
                                      properties:
                                        first:
                                          type: string
                                        full:
                                          type: string
                                        last:
                                          type: string
                                      required:
                                        - first
                                        - full
                                        - last
                                    enterprises:
                                      type: array
                                      items:
                                        allOf:
                                          - type: object
                                            properties:
                                              permissions:
                                                type: array
                                                items:
                                                  type: string
                                            required:
                                              - permissions
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                              beneficialOwner:
                                                type: boolean
                                              name:
                                                type: string
                                    email:
                                      type: object
                                      properties:
                                        email:
                                          type: string
                                        verified:
                                          type: boolean
                                      required:
                                        - email
                                        - verified
                                  required:
                                    - id
                                    - username
                                    - name
                                    - enterprises
                                    - email
                                - type: object
                                  properties:
                                    agreements:
                                      allOf:
                                        - type: object
                                          properties:
                                            patriotAct:
                                              type: number
                                            termsOfUse:
                                              type: number
                                          required:
                                            - patriotAct
                                            - termsOfUse
                                        - type: object
                                          properties:
                                            patriotActAcceptanceDate:
                                              type: string
                                            termsOfUseAcceptanceDate:
                                              type: string
                                    allowedCoins:
                                      type: array
                                      items:
                                        type: string
                                    bitgoEmployee:
                                      type: boolean
                                    currency:
                                      type: object
                                      properties:
                                        bitcoinUnit:
                                          type: string
                                        currency:
                                          type: string
                                      required:
                                        - bitcoinUnit
                                        - currency
                                    disableReset2FA:
                                      type: boolean
                                    organizations:
                                      type: array
                                      items:
                                        allOf:
                                          - type: object
                                            properties:
                                              permissions:
                                                type: array
                                                items:
                                                  type: string
                                                  enum:
                                                    - admin
                                            required:
                                              - permissions
                                          - type: object
                                            properties:
                                              role:
                                                type: string
                                                enum:
                                                  - admin
                                                  - member
                                                  - customer
                                            required:
                                              - role
                                          - type: object
                                            properties:
                                              id:
                                                type: string
                                              name:
                                                type: string
                                    featureFlags:
                                      type: array
                                      items:
                                        type: string
                                    forceResetPassword:
                                      type: boolean
                                    identity:
                                      type: object
                                      properties:
                                        kyc:
                                          allOf:
                                            - type: object
                                              properties:
                                                available:
                                                  type: boolean
                                                required:
                                                  type: boolean
                                              required:
                                                - available
                                                - required
                                            - type: object
                                              properties:
                                                data:
                                                  allOf:
                                                    - type: object
                                                      properties:
                                                        state:
                                                          type: string
                                                          enum:
                                                            - unverified
                                                            - pending
                                                            - approved
                                                            - rejected
                                                            - qrscanned
                                                            - inreview
                                                            - flagged
                                                            - flagged_retry_allowed
                                                      required:
                                                        - state
                                                    - type: object
                                                      properties:
                                                        fields:
                                                          anyOf:
                                                            - nullable: true
                                                            - type: object
                                                              additionalProperties:
                                                                nullable: true
                                                            - nullable: true
                                                documents:
                                                  type: object
                                                  properties:
                                                    state:
                                                      type: string
                                                      enum:
                                                        - unverified
                                                        - pending
                                                        - approved
                                                        - rejected
                                                        - qrscanned
                                                        - inreview
                                                        - flagged
                                                        - flagged_retry_allowed
                                                  required:
                                                    - state
                                                failureCount:
                                                  type: number
                                                fullyRequired:
                                                  type: boolean
                                                hasVideoID:
                                                  type: boolean
                                                overallState:
                                                  type: string
                                                  enum:
                                                    - unverified
                                                    - pending
                                                    - approved
                                                    - rejected
                                                    - qrscanned
                                                    - inreview
                                                    - flagged
                                                    - flagged_retry_allowed
                                                passport:
                                                  allOf:
                                                    - type: object
                                                      properties:
                                                        required:
                                                          type: boolean
                                                      required:
                                                        - required
                                                    - type: object
                                                      properties:
                                                        state:
                                                          type: string
                                                          enum:
                                                            - unverified
                                                            - pending
                                                            - approved
                                                            - rejected
                                                            - qrscanned
                                                            - inreview
                                                            - flagged
                                                            - flagged_retry_allowed
                                                residency:
                                                  type: object
                                                  properties:
                                                    state:
                                                      type: string
                                                      enum:
                                                        - unverified
                                                        - pending
                                                        - approved
                                                        - rejected
                                                        - qrscanned
                                                        - inreview
                                                        - flagged
                                                        - flagged_retry_allowed
                                                  required:
                                                    - state
                                                isScreeningRequired:
                                                  type: boolean
                                                enterpriseVideoCallInfo:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      enterpriseId:
                                                        type: string
                                                      videoCallId:
                                                        type: string
                                                    required:
                                                      - enterpriseId
                                                      - videoCallId
                                        verified:
                                          type: boolean
                                    otpDevices:
                                      type: array
                                      items:
                                        allOf:
                                          - type: object
                                            properties:
                                              createDate:
                                                type: string
                                              id:
                                                type: string
                                            required:
                                              - createDate
                                              - id
                                          - type: object
                                            properties:
                                              backupPhone:
                                                type: string
                                              label:
                                                type: string
                                              lastValidatedDate:
                                                type: string
                                              phone:
                                                type: string
                                              registeredKey:
                                                type: object
                                                properties:
                                                  certificate:
                                                    type: string
                                                  keyHandle:
                                                    type: string
                                                  publicKey:
                                                    type: string
                                              type:
                                                type: string
                                                enum:
                                                  - authy
                                                  - totp
                                                  - u2f
                                                  - webauthn
                                                  - yubikey
                                              verified:
                                                type: boolean
                                              scopes:
                                                type: array
                                                items:
                                                  type: string
                                                  enum:
                                                    - wallet_hot
                                              extensions:
                                                type: object
                                                additionalProperties:
                                                  type: boolean
                                              prfSalt:
                                                type: string
                                    phone:
                                      type: object
                                      properties:
                                        phone:
                                          anyOf:
                                            - type: string
                                            - nullable: true
                                            - nullable: true
                                        verified:
                                          type: boolean
                                      required:
                                        - phone
                                        - verified
                                    timezone:
                                      type: string
                                  required:
                                    - agreements
                                    - allowedCoins
                                    - bitgoEmployee
                                    - currency
                                    - disableReset2FA
                                    - organizations
                                    - featureFlags
                                    - forceResetPassword
                                    - identity
                                    - otpDevices
                                    - phone
                                    - timezone
                                - type: object
                                  properties:
                                    apps:
                                      nullable: true
                                    country:
                                      type: string
                                    ecdhKeychain:
                                      anyOf:
                                        - type: string
                                        - nullable: true
                                        - nullable: true
                                    isActive:
                                      type: boolean
                                    isFrozen:
                                      type: boolean
                                    freezeReason:
                                      type: string
                                    lastLogin:
                                      type: string
                                    locale:
                                      type: string
                                    pgpKey:
                                      type: string
                                    rateLimits:
                                      nullable: true
                                    referrer:
                                      type: object
                                      properties:
                                        campaign:
                                          anyOf:
                                            - type: string
                                            - nullable: true
                                            - nullable: true
                                        source:
                                          anyOf:
                                            - type: string
                                            - nullable: true
                                            - nullable: true
                                    signupDomain:
                                      type: string
                                    state:
                                      type: string
                                    sourceVerificationRequired:
                                      type: boolean
                                    sourceVerificationRequiredForReadOnlyAccess:
                                      type: boolean
                                    recoveryCodeSet:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                        allCodesUsed:
                                          type: boolean
                                      required:
                                        - id
                                        - allCodesUsed
                        required:
                          - users
                      - type: object
                        properties:
                          nextBatchPrevId:
                            type: string
                  transferResults:
                    type: object
                    properties:
                      transfers:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                coin:
                                  type: string
                                date:
                                  type: string
                                entries:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties:
                                          address:
                                            type: string
                                        required:
                                          - address
                                      - type: object
                                        properties:
                                          valueString:
                                            type: string
                                          isChange:
                                            type: boolean
                                          wallet:
                                            type: string
                                          value:
                                            type: number
                                          nftSymbol:
                                            type: string
                                          type:
                                            type: string
                                            enum:
                                              - flushForwarderTokens
                                              - walletFunding
                                              - walletInitialization
                                              - addressInitialization
                                              - importedOutput
                                history:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties:
                                          action:
                                            type: string
                                            enum:
                                              - created
                                              - approved
                                              - rejected
                                              - signed
                                              - unconfirmed
                                              - confirmed
                                              - removed
                                              - commented
                                              - failed
                                              - regenerated
                                              - replaced
                                              - replacing
                                              - abandoned
                                          date:
                                            type: string
                                        required:
                                          - action
                                          - date
                                      - type: object
                                        properties:
                                          comment:
                                            anyOf:
                                              - type: string
                                              - nullable: true
                                              - nullable: true
                                          transferId:
                                            type: string
                                          txid:
                                            type: string
                                          user:
                                            type: string
                                id:
                                  type: string
                                state:
                                  type: string
                                  enum:
                                    - initialized
                                    - pendingApproval
                                    - rejected
                                    - signed
                                    - unconfirmed
                                    - confirmed
                                    - removed
                                    - failed
                                    - replaced
                                    - deleted
                                type:
                                  type: string
                                  enum:
                                    - send
                                    - receive
                                valueString:
                                  type: string
                                wallet:
                                  type: string
                              required:
                                - coin
                                - date
                                - entries
                                - history
                                - id
                                - state
                                - type
                                - valueString
                                - wallet
                            - type: object
                              properties:
                                baseValue:
                                  type: number
                                baseValueString:
                                  type: string
                                comment:
                                  anyOf:
                                    - type: string
                                    - nullable: true
                                    - nullable: true
                                enterprise:
                                  type: string
                                organization:
                                  type: string
                                bitgoOrg:
                                  type: string
                                pendingApproval:
                                  type: string
                                stakingParams:
                                  allOf:
                                    - type: object
                                      properties:
                                        actionType:
                                          type: string
                                        requestId:
                                          type: string
                                      required:
                                        - actionType
                                        - requestId
                                    - type: object
                                      properties:
                                        source:
                                          type: string
                                          enum:
                                            - external
                                            - internal
                                        validator:
                                          type: string
                                txid:
                                  type: string
                                usd:
                                  type: number
                                usdRate:
                                  type: number
                                value:
                                  type: number
                                replaces:
                                  type: array
                                  items:
                                    type: string
                                replacedBy:
                                  type: array
                                  items:
                                    type: string
                            - type: object
                              properties:
                                sender:
                                  type: object
                                  properties:
                                    address:
                                      type: string
                                    walletId:
                                      type: string
                                    walletLabel:
                                      type: string
                                    valueString:
                                      type: string
                                  required:
                                    - address
                                receiver:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      address:
                                        type: string
                                      walletId:
                                        type: string
                                      walletLabel:
                                        type: string
                                      valueString:
                                        type: string
                                    required:
                                      - address
                                total:
                                  type: object
                                  properties:
                                    fiatValue:
                                      type: number
                                    displayValue:
                                      type: string
                                amountSent:
                                  type: object
                                  properties:
                                    fiatValue:
                                      type: number
                                    displayValue:
                                      type: string
                                networkFee:
                                  type: object
                                  properties:
                                    fiatValue:
                                      type: number
                                    displayValue:
                                      type: string
                                paygoFee:
                                  type: object
                                  properties:
                                    fiatValue:
                                      type: number
                                    displayValue:
                                      type: string
                                consolidateId:
                                  type: string
                              required:
                                - sender
                                - receiver
                      nextBatchPrevId:
                        type: string
                    required:
                      - transfers
  /api/org/search/history:
    get:
      operationId: org.search.history
      summary: List org search history
      description: List all previously queried search-history items for an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/search/history?orgId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/search/history?orgId=ORGANIZATION_ID" \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/search/history?orgId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/search/history?orgId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
            description: The ID of the organization
          required: true
          description: The ID of the organization
          name: orgId
          in: query
        - schema:
            type: string
            description: Optional alias for orgId; if provided, must match orgId
          required: false
          description: Optional alias for orgId; if provided, must match orgId
          name: organizationId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  searchHistory:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        searchTerm:
                          type: string
                        date:
                          type: string
                      required:
                        - id
                        - searchTerm
                        - date
                required:
                  - searchHistory
    post:
      operationId: org.search.history.create
      summary: Create search history item
      description: |-
        Create a new search history item for reference later

        **Requires access token scope:** `user_manage`
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/search/history',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='{"orgId":"ORGANIZATION_ID","searchTerm":"YOUR_SEARCH_TERM"}',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X POST "https://org.bitgo.com/org/search/history" \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0" \
                -H "Content-Type: application/json" -d '{"orgId":"ORGANIZATION_ID","searchTerm":"YOUR_SEARCH_TERM"}'
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/search/history';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '{"orgId":"ORGANIZATION_ID","searchTerm":"YOUR_SEARCH_TERM"}';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'POST',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  'Content-Type': 'application/json',
                  },
                  body: body
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests

              import json


              path = "/org/search/history"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body =
              "{\"orgId\":\"ORGANIZATION_ID\",\"searchTerm\":\"YOUR_SEARCH_TERM\"}"

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.post(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                },
                json=json.loads('{\"orgId\":\"ORGANIZATION_ID\",\"searchTerm\":\"YOUR_SEARCH_TERM\"}')
              )
            name: Python with HMAC
            install: pip install requests
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                searchTerm:
                  type: string
                  minLength: 1
                orgId:
                  type: string
                  description: The ID of the organization
                organizationId:
                  type: string
                  description: Optional alias for orgId; if provided, must match orgId
              required:
                - searchTerm
                - orgId
              description: Create Search History Item
      responses:
        '201':
          description: Search history item created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  searchTerm:
                    type: string
                  date:
                    type: string
                required:
                  - id
                  - searchTerm
                  - date
    delete:
      operationId: org.search.history.delete
      summary: Delete a search history item
      description: >-
        Delete an existing search history item or all history for a given
        organization


        **Requires access token scope:** `user_manage`
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/search/history?orgId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X DELETE
              "https://org.bitgo.com/org/search/history?orgId=ORGANIZATION_ID" \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/search/history?orgId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'DELETE',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/search/history?orgId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.delete(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: false
          name: id
          in: query
        - schema:
            type: string
            description: The ID of the organization
          required: true
          description: The ID of the organization
          name: orgId
          in: query
        - schema:
            type: string
            description: Optional alias for orgId; if provided, must match orgId
          required: false
          description: Optional alias for orgId; if provided, must match orgId
          name: organizationId
          in: query
      responses:
        '200':
          description: Search history item deleted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  deletedRows:
                    type: number
                required:
                  - deletedRows
  /api/org/timeline/transfer:
    get:
      operationId: org.timeline.transfer
      summary: List org transfer timeline
      description: List all timeline events for a given transfer within an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/timeline/transfer?transferId=YOUR_TRANSFER_ID&organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/timeline/transfer?transferId=YOUR_TRANSFER_ID&organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/timeline/transfer?transferId=YOUR_TRANSFER_ID&organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/timeline/transfer?transferId=YOUR_TRANSFER_ID&organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: transferId
          in: query
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - message
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletShareInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            walletId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - walletId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletAdminApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            walletId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - finalApproverIds
                            - walletId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletAdminVideoVerification
                            creatorId:
                              type: string
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseInviteInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            enterpriseId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - enterpriseId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseOwnerApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            enterpriseId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - enterpriseId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseUserApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            enterpriseId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - enterpriseId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - transferInitiated
                            creatorId:
                              type: string
                            hasBeenApproved:
                              type: boolean
                            pendingApprovalId:
                              type: string
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - hasBeenApproved
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - transferApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - finalApproverIds
                            - approvers
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - policyChangeInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            policyType:
                              anyOf:
                                - type: string
                                  enum:
                                    - advancedWhitelist
                                - type: string
                                  enum:
                                    - allTx
                                - type: string
                                  enum:
                                    - velocityLimit
                                - type: string
                                  enum:
                                    - coinAddressWhitelist
                                - type: string
                                  enum:
                                    - transactionLimit
                                - type: string
                                  enum:
                                    - bitcoinAddressWhitelist
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - policyType
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - pendingApprovalInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            walletId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - walletId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - pendingSignature
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - finalApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            walletId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - finalApproverIds
                            - walletId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - updateOrganizationInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            organizationId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - organizationId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - organizationOwnerApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            organizationId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - organizationId
                            - approvalsRequired
                required:
                  - events
  /api/org/timeline/activity:
    get:
      operationId: org.timeline.activity
      summary: List org activity timeline
      description: >-
        List all timeline events for a given pending approval within an
        organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/timeline/activity?pendingApprovalId=YOUR_PENDING_APPROVAL_ID&organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/timeline/activity?pendingApprovalId=YOUR_PENDING_APPROVAL_ID&organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/timeline/activity?pendingApprovalId=YOUR_PENDING_APPROVAL_ID&organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/timeline/activity?pendingApprovalId=YOUR_PENDING_APPROVAL_ID&organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: pendingApprovalId
          in: query
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - message
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletShareInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            walletId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - walletId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletAdminApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            walletId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - finalApproverIds
                            - walletId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - walletAdminVideoVerification
                            creatorId:
                              type: string
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseInviteInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            enterpriseId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - enterpriseId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseOwnerApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            enterpriseId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - enterpriseId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - enterpriseUserApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            enterpriseId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - enterpriseId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - transferInitiated
                            creatorId:
                              type: string
                            hasBeenApproved:
                              type: boolean
                            pendingApprovalId:
                              type: string
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - hasBeenApproved
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - transferApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            transferId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - finalApproverIds
                            - approvers
                            - transferId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - policyChangeInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            policyType:
                              anyOf:
                                - type: string
                                  enum:
                                    - advancedWhitelist
                                - type: string
                                  enum:
                                    - allTx
                                - type: string
                                  enum:
                                    - velocityLimit
                                - type: string
                                  enum:
                                    - coinAddressWhitelist
                                - type: string
                                  enum:
                                    - transactionLimit
                                - type: string
                                  enum:
                                    - bitcoinAddressWhitelist
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - policyType
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - pendingApprovalInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            walletId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - walletId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - pendingSignature
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - finalApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            finalApproverIds:
                              type: array
                              items:
                                type: string
                            walletId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - finalApproverIds
                            - walletId
                            - approvalsRequired
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - updateOrganizationInitiated
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            organizationId:
                              type: string
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - organizationId
                        - type: object
                          properties:
                            title:
                              type: string
                            identifier:
                              anyOf:
                                - type: string
                                  enum:
                                    - depositInitiated
                                - type: string
                                  enum:
                                    - depositConfirmed
                                - type: string
                                  enum:
                                    - transferInitiated
                                - type: string
                                  enum:
                                    - transferSigned
                                - type: string
                                  enum:
                                    - transferCommented
                                - type: string
                                  enum:
                                    - broadcastTransferOnChain
                                - type: string
                                  enum:
                                    - transferConfirmed
                                - type: string
                                  enum:
                                    - transferFailed
                                - type: string
                                  enum:
                                    - transferRejected
                                - type: string
                                  enum:
                                    - fiatSending
                                - type: string
                                  enum:
                                    - fiatSent
                                - type: string
                                  enum:
                                    - fiatFailed
                                - type: string
                                  enum:
                                    - pendingApprovalInitiated
                                - type: string
                                  enum:
                                    - pendingApprovalPending
                                - type: string
                                  enum:
                                    - pendingApprovalRequest
                                - type: string
                                  enum:
                                    - pendingApprovalApproved
                                - type: string
                                  enum:
                                    - pendingApprovalRejected
                                - type: string
                                  enum:
                                    - pendingApprovalRescinded
                                - type: string
                                  enum:
                                    - pendingApprovalResolved
                                - type: string
                                  enum:
                                    - pendingFinalApproval
                                - type: string
                                  enum:
                                    - transferPendingApproval
                                - type: string
                                  enum:
                                    - transferPAApproved
                                - type: string
                                  enum:
                                    - transferPendingVideoIDApproval
                                - type: string
                                  enum:
                                    - finalApprovalApproved
                                - type: string
                                  enum:
                                    - videoApprovalApproved
                                - type: string
                                  enum:
                                    - pendingIdVerification
                                - type: string
                                  enum:
                                    - awaitingSignature
                                - type: string
                                  enum:
                                    - pendingCustodianApproval
                                - type: string
                                  enum:
                                    - messageSignDetected
                                - type: string
                                  enum:
                                    - messageSignPending
                                - type: string
                                  enum:
                                    - messageSignResolved
                                - type: string
                                  enum:
                                    - transactionRequestPendingSignature
                                - type: string
                                  enum:
                                    - transactionRequestSigned
                                - type: string
                                  enum:
                                    - transactionRequestCanceled
                            content:
                              type: string
                            status:
                              anyOf:
                                - type: string
                                  enum:
                                    - past
                                - type: string
                                  enum:
                                    - past-failed
                                - type: string
                                  enum:
                                    - past-success
                                - type: string
                                  enum:
                                    - present
                                - type: string
                                  enum:
                                    - future
                            createdAt:
                              type: string
                            type:
                              type: string
                              enum:
                                - organizationOwnerApproval
                            creatorId:
                              type: string
                            pendingApprovalId:
                              type: string
                            approvers:
                              type: array
                              items:
                                type: string
                            resolvers:
                              type: array
                              items:
                                type: object
                                properties:
                                  user:
                                    type: string
                                  resolutionAction:
                                    type: string
                                  date:
                                    type: string
                                  resolutionType:
                                    type: string
                                required:
                                  - user
                                  - resolutionAction
                                  - date
                                  - resolutionType
                            organizationId:
                              type: string
                            approvalsRequired:
                              type: number
                          required:
                            - title
                            - identifier
                            - content
                            - status
                            - type
                            - creatorId
                            - pendingApprovalId
                            - approvers
                            - organizationId
                            - approvalsRequired
                required:
                  - events
  /api/org/orders:
    get:
      operationId: org.trades.orders
      summary: List org trade orders
      description: List all trade orders for an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/orders?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/orders?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/orders?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/orders?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
        - schema:
            type: string
          required: false
          name: enterpriseId
          in: query
        - schema:
            type: string
          required: false
          name: accountId
          in: query
        - schema:
            type: string
          required: false
          name: orderId
          in: query
        - schema:
            type: string
          required: false
          name: dateGte
          in: query
        - schema:
            type: string
          required: false
          name: dateLt
          in: query
        - schema:
            type: string
            enum:
              - canceled
              - completed
              - error
              - open
              - pending_cancel
              - pending_open
              - scheduled
          required: false
          name: status
          in: query
        - schema:
            type: string
            enum:
              - buy
              - sell
          required: false
          name: side
          in: query
        - schema:
            type: string
          required: false
          name: product
          in: query
        - schema:
            type: string
            pattern: ^\d+$
            description: Maximum number of orders to return in this page
          required: false
          description: Maximum number of orders to return in this page
          name: limit
          in: query
        - schema:
            type: string
            pattern: ^\d+$
            description: Number of orders to skip before starting this page
          required: false
          description: Number of orders to skip before starting this page
          name: offset
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        accountId:
                          type: string
                        clientOrderId:
                          type: string
                        time:
                          type: string
                        creationDate:
                          type: string
                        scheduledDate:
                          type: string
                        lastFillDate:
                          type: string
                        completionDate:
                          type: string
                        settleDate:
                          type: string
                        type:
                          type: string
                        fundingType:
                          anyOf:
                            - type: string
                              enum:
                                - margin
                            - type: string
                              enum:
                                - funded
                        notes:
                          type: string
                        status:
                          anyOf:
                            - type: string
                              enum:
                                - pending_open
                            - type: string
                              enum:
                                - open
                            - type: string
                              enum:
                                - completed
                            - type: string
                              enum:
                                - pending_cancel
                            - type: string
                              enum:
                                - canceled
                            - type: string
                              enum:
                                - error
                            - type: string
                              enum:
                                - scheduled
                        product:
                          type: string
                        side:
                          anyOf:
                            - type: string
                              enum:
                                - buy
                            - type: string
                              enum:
                                - sell
                        quantity:
                          type: string
                        quantityCurrency:
                          type: string
                        filledQuantity:
                          type: string
                        filledQuoteQuantity:
                          type: string
                        averagePrice:
                          type: string
                        limitPrice:
                          type: string
                        initiatedByUserId:
                          type: string
                        canceledByUserId:
                          type: string
                          nullable: true
                        duration:
                          type: number
                        timeInForce:
                          anyOf:
                            - type: string
                              enum:
                                - FOK
                            - type: string
                              enum:
                                - GTC
                            - type: string
                              enum:
                                - GTT
                            - type: string
                              enum:
                                - IOC
                      required:
                        - id
                        - accountId
                        - time
                        - creationDate
                        - completionDate
                        - type
                        - fundingType
                        - status
                        - product
                        - side
                        - quantity
                        - quantityCurrency
                        - filledQuantity
                        - filledQuoteQuantity
                        - averagePrice
                        - canceledByUserId
                  nextOffset:
                    type: number
                    description: >-
                      Offset to use for the next page when the current page is
                      full
                required:
                  - data
  /api/org/orders/{orderId}:
    get:
      operationId: org.trades.orders.id
      summary: Get org trade order
      description: Get a trade order by its ID for a trade order within an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/orders/YOUR_ORDER_ID?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/orders/YOUR_ORDER_ID?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/orders/YOUR_ORDER_ID?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/orders/YOUR_ORDER_ID?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: orderId
          in: path
        - schema:
            type: string
            description: The ID of the organization that owns the trade order
          required: true
          description: The ID of the organization that owns the trade order
          name: organizationId
          in: query
        - schema:
            type: object
            properties:
              orderId:
                type: string
            required:
              - orderId
            deprecated: true
          required: true
          name: params
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  order:
                    type: object
                    properties:
                      id:
                        type: string
                      accountId:
                        type: string
                      clientOrderId:
                        type: string
                      time:
                        type: string
                      creationDate:
                        type: string
                      scheduledDate:
                        type: string
                      lastFillDate:
                        type: string
                      completionDate:
                        type: string
                      settleDate:
                        type: string
                      type:
                        type: string
                      fundingType:
                        anyOf:
                          - type: string
                            enum:
                              - margin
                          - type: string
                            enum:
                              - funded
                      notes:
                        type: string
                      status:
                        anyOf:
                          - type: string
                            enum:
                              - pending_open
                          - type: string
                            enum:
                              - open
                          - type: string
                            enum:
                              - completed
                          - type: string
                            enum:
                              - pending_cancel
                          - type: string
                            enum:
                              - canceled
                          - type: string
                            enum:
                              - error
                          - type: string
                            enum:
                              - scheduled
                      product:
                        type: string
                      side:
                        anyOf:
                          - type: string
                            enum:
                              - buy
                          - type: string
                            enum:
                              - sell
                      quantity:
                        type: string
                      quantityCurrency:
                        type: string
                      filledQuantity:
                        type: string
                      filledQuoteQuantity:
                        type: string
                      averagePrice:
                        type: string
                      limitPrice:
                        type: string
                      initiatedByUserId:
                        type: string
                      canceledByUserId:
                        type: string
                        nullable: true
                      duration:
                        type: number
                      timeInForce:
                        anyOf:
                          - type: string
                            enum:
                              - FOK
                          - type: string
                            enum:
                              - GTC
                          - type: string
                            enum:
                              - GTT
                          - type: string
                            enum:
                              - IOC
                    required:
                      - id
                      - accountId
                      - time
                      - creationDate
                      - completionDate
                      - type
                      - fundingType
                      - status
                      - product
                      - side
                      - quantity
                      - quantityCurrency
                      - filledQuantity
                      - filledQuoteQuantity
                      - averagePrice
                      - canceledByUserId
                required:
                  - order
  /api/org/order/fills:
    get:
      operationId: org.trades.order.fills
      summary: List org trade order fills
      description: List all trade order fills for an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/order/fills?orderId=YOUR_ORDER_ID&organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/order/fills?orderId=YOUR_ORDER_ID&organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/order/fills?orderId=YOUR_ORDER_ID&organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/order/fills?orderId=YOUR_ORDER_ID&organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
            description: The ID of the organization that owns the trade order
          required: true
          description: The ID of the organization that owns the trade order
          name: organizationId
          in: query
        - schema:
            type: string
            description: The ID of the trade order to list fills for
          required: true
          description: The ID of the trade order to list fills for
          name: orderId
          in: query
        - schema:
            type: string
            description: Maximum number of fills to return in this page
          required: false
          description: Maximum number of fills to return in this page
          name: limit
          in: query
        - schema:
            type: string
            description: Number of fills to skip before starting this page
          required: false
          description: Number of fills to skip before starting this page
          name: offset
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        orderId:
                          type: string
                        time:
                          type: string
                        product:
                          type: string
                        side:
                          anyOf:
                            - type: string
                              enum:
                                - buy
                            - type: string
                              enum:
                                - sell
                        price:
                          type: string
                        quoteQuantity:
                          type: string
                        quantity:
                          type: string
                        settled:
                          type: boolean
                      required:
                        - id
                        - orderId
                        - time
                        - product
                        - side
                        - price
                        - quoteQuantity
                        - quantity
                        - settled
                required:
                  - data
  /api/org/products:
    get:
      operationId: org.trades.products
      summary: List org trade products
      description: List all trade products for an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/products',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET "https://org.bitgo.com/org/products" \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/products';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/products"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        baseCurrencyId:
                          type: string
                        baseCurrency:
                          type: string
                        quoteCurrencyId:
                          type: string
                        quoteCurrency:
                          type: string
                        baseMinSize:
                          type: string
                        baseMaxSize:
                          type: string
                        baseIncrement:
                          type: string
                        quoteMinSize:
                          type: string
                        quoteIncrement:
                          type: string
                        isTradeDisabled:
                          type: boolean
                        isMarginTradeSupported:
                          type: boolean
                        quoteDisplayPrecision:
                          type: number
                      required:
                        - id
                        - name
                        - baseCurrencyId
                        - baseCurrency
                        - quoteCurrencyId
                        - quoteCurrency
                        - baseMinSize
                        - quoteMinSize
                        - quoteIncrement
                        - isTradeDisabled
                        - isMarginTradeSupported
                required:
                  - data
  /api/org/transfers:
    get:
      operationId: org.transfers.list
      summary: List org transfers
      description: List all transfers within an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/transfers?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/transfers?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/transfers?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/transfers?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
        - schema:
            type: string
          required: false
          name: search
          in: query
        - schema:
            type: string
          required: false
          name: txid
          in: query
        - schema:
            type: string
          required: false
          name: dateGte
          in: query
        - schema:
            type: string
          required: false
          name: dateLt
          in: query
        - schema:
            type: string
          required: false
          name: limit
          in: query
        - schema:
            type: string
          required: false
          name: prevId
          in: query
        - schema:
            anyOf:
              - type: string
                enum:
                  - initialized
                  - pendingApproval
                  - rejected
                  - signed
                  - unconfirmed
                  - confirmed
                  - removed
                  - failed
                  - replaced
                  - deleted
              - type: array
                items:
                  type: string
                  enum:
                    - initialized
                    - pendingApproval
                    - rejected
                    - signed
                    - unconfirmed
                    - confirmed
                    - removed
                    - failed
                    - replaced
                    - deleted
          required: false
          name: state
          in: query
        - schema:
            type: string
            enum:
              - send
              - receive
          required: false
          name: type
          in: query
        - schema:
            type: string
            enum:
              - ARS
              - AUD
              - CAD
              - CLP
              - CNY
              - COP
              - DKK
              - EUR
              - GBP
              - INR
              - JPY
              - NOK
              - SEK
              - TRY
              - USD
              - UYU
              - ZAR
              - KRW
          required: false
          name: currency
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
          required: false
          name: coin
          in: query
        - schema:
            type: string
          required: false
          name: enterpriseId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  transfers:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            coin:
                              type: string
                            date:
                              type: string
                            entries:
                              type: array
                              items:
                                allOf:
                                  - type: object
                                    properties:
                                      address:
                                        type: string
                                    required:
                                      - address
                                  - type: object
                                    properties:
                                      valueString:
                                        type: string
                                      isChange:
                                        type: boolean
                                      wallet:
                                        type: string
                                      value:
                                        type: number
                                      nftSymbol:
                                        type: string
                                      type:
                                        type: string
                                        enum:
                                          - flushForwarderTokens
                                          - walletFunding
                                          - walletInitialization
                                          - addressInitialization
                                          - importedOutput
                            history:
                              type: array
                              items:
                                allOf:
                                  - type: object
                                    properties:
                                      action:
                                        type: string
                                        enum:
                                          - created
                                          - approved
                                          - rejected
                                          - signed
                                          - unconfirmed
                                          - confirmed
                                          - removed
                                          - commented
                                          - failed
                                          - regenerated
                                          - replaced
                                          - replacing
                                          - abandoned
                                      date:
                                        type: string
                                    required:
                                      - action
                                      - date
                                  - type: object
                                    properties:
                                      comment:
                                        anyOf:
                                          - type: string
                                          - nullable: true
                                          - nullable: true
                                      transferId:
                                        type: string
                                      txid:
                                        type: string
                                      user:
                                        type: string
                            id:
                              type: string
                            state:
                              type: string
                              enum:
                                - initialized
                                - pendingApproval
                                - rejected
                                - signed
                                - unconfirmed
                                - confirmed
                                - removed
                                - failed
                                - replaced
                                - deleted
                            type:
                              type: string
                              enum:
                                - send
                                - receive
                            valueString:
                              type: string
                            wallet:
                              type: string
                          required:
                            - coin
                            - date
                            - entries
                            - history
                            - id
                            - state
                            - type
                            - valueString
                            - wallet
                        - type: object
                          properties:
                            baseValue:
                              type: number
                            baseValueString:
                              type: string
                            comment:
                              anyOf:
                                - type: string
                                - nullable: true
                                - nullable: true
                            enterprise:
                              type: string
                            organization:
                              type: string
                            bitgoOrg:
                              type: string
                            pendingApproval:
                              type: string
                            stakingParams:
                              allOf:
                                - type: object
                                  properties:
                                    actionType:
                                      type: string
                                    requestId:
                                      type: string
                                  required:
                                    - actionType
                                    - requestId
                                - type: object
                                  properties:
                                    source:
                                      type: string
                                      enum:
                                        - external
                                        - internal
                                    validator:
                                      type: string
                            txid:
                              type: string
                            usd:
                              type: number
                            usdRate:
                              type: number
                            value:
                              type: number
                            replaces:
                              type: array
                              items:
                                type: string
                            replacedBy:
                              type: array
                              items:
                                type: string
                        - type: object
                          properties:
                            sender:
                              type: object
                              properties:
                                address:
                                  type: string
                                walletId:
                                  type: string
                                walletLabel:
                                  type: string
                                valueString:
                                  type: string
                              required:
                                - address
                            receiver:
                              type: array
                              items:
                                type: object
                                properties:
                                  address:
                                    type: string
                                  walletId:
                                    type: string
                                  walletLabel:
                                    type: string
                                  valueString:
                                    type: string
                                required:
                                  - address
                            total:
                              type: object
                              properties:
                                fiatValue:
                                  type: number
                                displayValue:
                                  type: string
                            amountSent:
                              type: object
                              properties:
                                fiatValue:
                                  type: number
                                displayValue:
                                  type: string
                            networkFee:
                              type: object
                              properties:
                                fiatValue:
                                  type: number
                                displayValue:
                                  type: string
                            paygoFee:
                              type: object
                              properties:
                                fiatValue:
                                  type: number
                                displayValue:
                                  type: string
                            consolidateId:
                              type: string
                          required:
                            - sender
                            - receiver
                  nextBatchPrevId:
                    type: string
                required:
                  - transfers
  /api/org/transfers/{transferId}:
    get:
      operationId: org.transfer
      summary: Get org transfer
      description: Get a transfer by its ID for a transfer within an organization.
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/transfers/YOUR_TRANSFER_ID?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/transfers/YOUR_TRANSFER_ID?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/transfers/YOUR_TRANSFER_ID?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path =
              "/org/transfers/YOUR_TRANSFER_ID?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: transferId
          in: path
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
        - schema:
            type: string
            enum:
              - ARS
              - AUD
              - CAD
              - CLP
              - CNY
              - COP
              - DKK
              - EUR
              - GBP
              - INR
              - JPY
              - NOK
              - SEK
              - TRY
              - USD
              - UYU
              - ZAR
              - KRW
          required: false
          name: currency
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      coin:
                        type: string
                      date:
                        type: string
                      entries:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                address:
                                  type: string
                              required:
                                - address
                            - type: object
                              properties:
                                valueString:
                                  type: string
                                isChange:
                                  type: boolean
                                wallet:
                                  type: string
                                value:
                                  type: number
                                nftSymbol:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - flushForwarderTokens
                                    - walletFunding
                                    - walletInitialization
                                    - addressInitialization
                                    - importedOutput
                      history:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                action:
                                  type: string
                                  enum:
                                    - created
                                    - approved
                                    - rejected
                                    - signed
                                    - unconfirmed
                                    - confirmed
                                    - removed
                                    - commented
                                    - failed
                                    - regenerated
                                    - replaced
                                    - replacing
                                    - abandoned
                                date:
                                  type: string
                              required:
                                - action
                                - date
                            - type: object
                              properties:
                                comment:
                                  anyOf:
                                    - type: string
                                    - nullable: true
                                    - nullable: true
                                transferId:
                                  type: string
                                txid:
                                  type: string
                                user:
                                  type: string
                      id:
                        type: string
                      state:
                        type: string
                        enum:
                          - initialized
                          - pendingApproval
                          - rejected
                          - signed
                          - unconfirmed
                          - confirmed
                          - removed
                          - failed
                          - replaced
                          - deleted
                      type:
                        type: string
                        enum:
                          - send
                          - receive
                      valueString:
                        type: string
                      wallet:
                        type: string
                    required:
                      - coin
                      - date
                      - entries
                      - history
                      - id
                      - state
                      - type
                      - valueString
                      - wallet
                  - type: object
                    properties:
                      baseValue:
                        type: number
                      baseValueString:
                        type: string
                      comment:
                        anyOf:
                          - type: string
                          - nullable: true
                          - nullable: true
                      enterprise:
                        type: string
                      organization:
                        type: string
                      bitgoOrg:
                        type: string
                      pendingApproval:
                        type: string
                      stakingParams:
                        allOf:
                          - type: object
                            properties:
                              actionType:
                                type: string
                              requestId:
                                type: string
                            required:
                              - actionType
                              - requestId
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - external
                                  - internal
                              validator:
                                type: string
                      txid:
                        type: string
                      usd:
                        type: number
                      usdRate:
                        type: number
                      value:
                        type: number
                      replaces:
                        type: array
                        items:
                          type: string
                      replacedBy:
                        type: array
                        items:
                          type: string
                  - type: object
                    properties:
                      sender:
                        type: object
                        properties:
                          address:
                            type: string
                          walletId:
                            type: string
                          walletLabel:
                            type: string
                          valueString:
                            type: string
                        required:
                          - address
                      receiver:
                        type: array
                        items:
                          type: object
                          properties:
                            address:
                              type: string
                            walletId:
                              type: string
                            walletLabel:
                              type: string
                            valueString:
                              type: string
                          required:
                            - address
                      total:
                        type: object
                        properties:
                          fiatValue:
                            type: number
                          displayValue:
                            type: string
                      amountSent:
                        type: object
                        properties:
                          fiatValue:
                            type: number
                          displayValue:
                            type: string
                      networkFee:
                        type: object
                        properties:
                          fiatValue:
                            type: number
                          displayValue:
                            type: string
                      paygoFee:
                        type: object
                        properties:
                          fiatValue:
                            type: number
                          displayValue:
                            type: string
                      consolidateId:
                        type: string
                    required:
                      - sender
                      - receiver
  /api/org/users:
    get:
      operationId: org.users
      summary: List users across the organization
      description: List users across the organization
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/users?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/users?organizationId=ORGANIZATION_ID" \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/users?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/users?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
        - schema:
            type: string
          required: false
          name: userId
          in: query
        - schema:
            type: string
          required: false
          name: username
          in: query
        - schema:
            type: string
          required: false
          name: search
          in: query
        - schema:
            anyOf:
              - type: number
              - type: string
          required: false
          name: limit
          in: query
        - schema:
            type: string
          required: false
          name: prevId
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                  enum:
                    - admin
                    - member
                    - customer
                    - serviceUser
              - type: string
                enum:
                  - admin
                  - member
                  - customer
                  - serviceUser
          required: false
          name: role
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      users:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                username:
                                  type: string
                                name:
                                  type: object
                                  properties:
                                    first:
                                      type: string
                                    full:
                                      type: string
                                    last:
                                      type: string
                                  required:
                                    - first
                                    - full
                                    - last
                                enterprises:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties:
                                          permissions:
                                            type: array
                                            items:
                                              type: string
                                        required:
                                          - permissions
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                          beneficialOwner:
                                            type: boolean
                                          name:
                                            type: string
                                email:
                                  type: object
                                  properties:
                                    email:
                                      type: string
                                    verified:
                                      type: boolean
                                  required:
                                    - email
                                    - verified
                              required:
                                - id
                                - username
                                - name
                                - enterprises
                                - email
                            - type: object
                              properties:
                                agreements:
                                  allOf:
                                    - type: object
                                      properties:
                                        patriotAct:
                                          type: number
                                        termsOfUse:
                                          type: number
                                      required:
                                        - patriotAct
                                        - termsOfUse
                                    - type: object
                                      properties:
                                        patriotActAcceptanceDate:
                                          type: string
                                        termsOfUseAcceptanceDate:
                                          type: string
                                allowedCoins:
                                  type: array
                                  items:
                                    type: string
                                bitgoEmployee:
                                  type: boolean
                                currency:
                                  type: object
                                  properties:
                                    bitcoinUnit:
                                      type: string
                                    currency:
                                      type: string
                                  required:
                                    - bitcoinUnit
                                    - currency
                                disableReset2FA:
                                  type: boolean
                                organizations:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties:
                                          permissions:
                                            type: array
                                            items:
                                              type: string
                                              enum:
                                                - admin
                                        required:
                                          - permissions
                                      - type: object
                                        properties:
                                          role:
                                            type: string
                                            enum:
                                              - admin
                                              - member
                                              - customer
                                        required:
                                          - role
                                      - type: object
                                        properties:
                                          id:
                                            type: string
                                          name:
                                            type: string
                                featureFlags:
                                  type: array
                                  items:
                                    type: string
                                forceResetPassword:
                                  type: boolean
                                identity:
                                  type: object
                                  properties:
                                    kyc:
                                      allOf:
                                        - type: object
                                          properties:
                                            available:
                                              type: boolean
                                            required:
                                              type: boolean
                                          required:
                                            - available
                                            - required
                                        - type: object
                                          properties:
                                            data:
                                              allOf:
                                                - type: object
                                                  properties:
                                                    state:
                                                      type: string
                                                      enum:
                                                        - unverified
                                                        - pending
                                                        - approved
                                                        - rejected
                                                        - qrscanned
                                                        - inreview
                                                        - flagged
                                                        - flagged_retry_allowed
                                                  required:
                                                    - state
                                                - type: object
                                                  properties:
                                                    fields:
                                                      anyOf:
                                                        - nullable: true
                                                        - type: object
                                                          additionalProperties:
                                                            nullable: true
                                                        - nullable: true
                                            documents:
                                              type: object
                                              properties:
                                                state:
                                                  type: string
                                                  enum:
                                                    - unverified
                                                    - pending
                                                    - approved
                                                    - rejected
                                                    - qrscanned
                                                    - inreview
                                                    - flagged
                                                    - flagged_retry_allowed
                                              required:
                                                - state
                                            failureCount:
                                              type: number
                                            fullyRequired:
                                              type: boolean
                                            hasVideoID:
                                              type: boolean
                                            overallState:
                                              type: string
                                              enum:
                                                - unverified
                                                - pending
                                                - approved
                                                - rejected
                                                - qrscanned
                                                - inreview
                                                - flagged
                                                - flagged_retry_allowed
                                            passport:
                                              allOf:
                                                - type: object
                                                  properties:
                                                    required:
                                                      type: boolean
                                                  required:
                                                    - required
                                                - type: object
                                                  properties:
                                                    state:
                                                      type: string
                                                      enum:
                                                        - unverified
                                                        - pending
                                                        - approved
                                                        - rejected
                                                        - qrscanned
                                                        - inreview
                                                        - flagged
                                                        - flagged_retry_allowed
                                            residency:
                                              type: object
                                              properties:
                                                state:
                                                  type: string
                                                  enum:
                                                    - unverified
                                                    - pending
                                                    - approved
                                                    - rejected
                                                    - qrscanned
                                                    - inreview
                                                    - flagged
                                                    - flagged_retry_allowed
                                              required:
                                                - state
                                            isScreeningRequired:
                                              type: boolean
                                            enterpriseVideoCallInfo:
                                              type: array
                                              items:
                                                type: object
                                                properties:
                                                  enterpriseId:
                                                    type: string
                                                  videoCallId:
                                                    type: string
                                                required:
                                                  - enterpriseId
                                                  - videoCallId
                                    verified:
                                      type: boolean
                                otpDevices:
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties:
                                          createDate:
                                            type: string
                                          id:
                                            type: string
                                        required:
                                          - createDate
                                          - id
                                      - type: object
                                        properties:
                                          backupPhone:
                                            type: string
                                          label:
                                            type: string
                                          lastValidatedDate:
                                            type: string
                                          phone:
                                            type: string
                                          registeredKey:
                                            type: object
                                            properties:
                                              certificate:
                                                type: string
                                              keyHandle:
                                                type: string
                                              publicKey:
                                                type: string
                                          type:
                                            type: string
                                            enum:
                                              - authy
                                              - totp
                                              - u2f
                                              - webauthn
                                              - yubikey
                                          verified:
                                            type: boolean
                                          scopes:
                                            type: array
                                            items:
                                              type: string
                                              enum:
                                                - wallet_hot
                                          extensions:
                                            type: object
                                            additionalProperties:
                                              type: boolean
                                          prfSalt:
                                            type: string
                                phone:
                                  type: object
                                  properties:
                                    phone:
                                      anyOf:
                                        - type: string
                                        - nullable: true
                                        - nullable: true
                                    verified:
                                      type: boolean
                                  required:
                                    - phone
                                    - verified
                                timezone:
                                  type: string
                              required:
                                - agreements
                                - allowedCoins
                                - bitgoEmployee
                                - currency
                                - disableReset2FA
                                - organizations
                                - featureFlags
                                - forceResetPassword
                                - identity
                                - otpDevices
                                - phone
                                - timezone
                            - type: object
                              properties:
                                apps:
                                  nullable: true
                                country:
                                  type: string
                                ecdhKeychain:
                                  anyOf:
                                    - type: string
                                    - nullable: true
                                    - nullable: true
                                isActive:
                                  type: boolean
                                isFrozen:
                                  type: boolean
                                freezeReason:
                                  type: string
                                lastLogin:
                                  type: string
                                locale:
                                  type: string
                                pgpKey:
                                  type: string
                                rateLimits:
                                  nullable: true
                                referrer:
                                  type: object
                                  properties:
                                    campaign:
                                      anyOf:
                                        - type: string
                                        - nullable: true
                                        - nullable: true
                                    source:
                                      anyOf:
                                        - type: string
                                        - nullable: true
                                        - nullable: true
                                signupDomain:
                                  type: string
                                state:
                                  type: string
                                sourceVerificationRequired:
                                  type: boolean
                                sourceVerificationRequiredForReadOnlyAccess:
                                  type: boolean
                                recoveryCodeSet:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    allCodesUsed:
                                      type: boolean
                                  required:
                                    - id
                                    - allCodesUsed
                    required:
                      - users
                  - type: object
                    properties:
                      nextBatchPrevId:
                        type: string
  /api/org/user/{userId}:
    get:
      operationId: org.user
      summary: Get user by id
      description: Get user by id
      tags:
        - Organization Management
      x-internal: false
      x-readme:
        code-samples:
          - language: shell
            code: >-
              # Requires: Node.js, curl. Set ORG_DASHBOARD_ACCESS_TOKEN.

              HEADERS=$(node -e "

              const
              c=require('crypto'),path='/org/user/YOUR_USER_ID?organizationId=ORGANIZATION_ID',t=process.env.ORG_DASHBOARD_ACCESS_TOKEN,s=Date.now().toString(),b='',m=s+'|'+path+'|'+b;

              console.log(JSON.stringify({Authorization:'Bearer
              '+c.createHash('sha256').update(t).digest('hex'),'Auth-Timestamp':s,Hmac:c.createHmac('sha256',t).update(m).digest('hex'),'Bitgo-Auth-Version':'2.0'}));

              ")

              eval $(echo "$HEADERS" | node -e "

              const o=JSON.parse(require('fs').readFileSync(0,'utf8'));

              console.log('AUTH="'+o.Authorization.replace(/"/g,'\\"')+'"');

              console.log('TS="'+o['Auth-Timestamp']+'"');

              console.log('HMAC="'+o.Hmac+'"');

              ")

              curl -s -X GET
              "https://org.bitgo.com/org/user/YOUR_USER_ID?organizationId=ORGANIZATION_ID"
              \
                -H "Authorization: $AUTH" \
                -H "Auth-Timestamp: $TS" \
                -H "Hmac: $HMAC" \
                -H "Bitgo-Auth-Version: 2.0"
            name: cURL with HMAC
          - language: node
            code: |-
              // Requires Node.js 18+ (fetch is built-in)
              const crypto = require('crypto');

              (async () => {
                const path = '/org/user/YOUR_USER_ID?organizationId=ORGANIZATION_ID';
                const token = process.env.ORG_DASHBOARD_ACCESS_TOKEN;
                const ts = Date.now().toString();
                const body = '';
                const msg = ts + '|' + path + '|' + body;
                const hmac = crypto.createHmac('sha256', token).update(msg).digest('hex');
                const hash = crypto.createHash('sha256').update(token).digest('hex');

                const options = {
                  method: 'GET',
                  headers: {
                    Authorization: 'Bearer ' + hash,
                    'Auth-Timestamp': ts,
                    Hmac: hmac,
                    'Bitgo-Auth-Version': '2.0',
                  }
                };
                const res = await fetch('https://org.bitgo.com' + path, options);
                console.log(await res.text());
              })();
            name: Node.js with HMAC
          - language: python
            code: >-
              # Set ORG_DASHBOARD_ACCESS_TOKEN. Requires: pip install requests

              import hashlib

              import hmac

              import os

              import time

              import requests


              path = "/org/user/YOUR_USER_ID?organizationId=ORGANIZATION_ID"

              token = os.environ["ORG_DASHBOARD_ACCESS_TOKEN"]

              ts = str(int(time.time() * 1000))

              body = ""

              msg = f"{ts}|{path}|{body}"

              sig = hmac.new(token.encode(), msg.encode(),
              hashlib.sha256).hexdigest()

              token_hash = hashlib.sha256(token.encode()).hexdigest()


              r = requests.get(
                f"https://org.bitgo.com{path}",
                headers={
                  "Authorization": f"Bearer {token_hash}",
                  "Auth-Timestamp": ts,
                  "Hmac": sig,
                  "Bitgo-Auth-Version": "2.0",
                }
              )
            name: Python with HMAC
            install: pip install requests
      parameters:
        - schema:
            type: string
          required: true
          name: userId
          in: path
        - schema:
            type: string
          required: true
          name: organizationId
          in: query
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    allOf:
                      - type: object
                        properties:
                          id:
                            type: string
                          username:
                            type: string
                          name:
                            type: object
                            properties:
                              first:
                                type: string
                              full:
                                type: string
                              last:
                                type: string
                            required:
                              - first
                              - full
                              - last
                          enterprises:
                            type: array
                            items:
                              allOf:
                                - type: object
                                  properties:
                                    permissions:
                                      type: array
                                      items:
                                        type: string
                                  required:
                                    - permissions
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                    beneficialOwner:
                                      type: boolean
                                    name:
                                      type: string
                          email:
                            type: object
                            properties:
                              email:
                                type: string
                              verified:
                                type: boolean
                            required:
                              - email
                              - verified
                        required:
                          - id
                          - username
                          - name
                          - enterprises
                          - email
                      - type: object
                        properties:
                          agreements:
                            allOf:
                              - type: object
                                properties:
                                  patriotAct:
                                    type: number
                                  termsOfUse:
                                    type: number
                                required:
                                  - patriotAct
                                  - termsOfUse
                              - type: object
                                properties:
                                  patriotActAcceptanceDate:
                                    type: string
                                  termsOfUseAcceptanceDate:
                                    type: string
                          allowedCoins:
                            type: array
                            items:
                              type: string
                          bitgoEmployee:
                            type: boolean
                          currency:
                            type: object
                            properties:
                              bitcoinUnit:
                                type: string
                              currency:
                                type: string
                            required:
                              - bitcoinUnit
                              - currency
                          disableReset2FA:
                            type: boolean
                          organizations:
                            type: array
                            items:
                              allOf:
                                - type: object
                                  properties:
                                    permissions:
                                      type: array
                                      items:
                                        type: string
                                        enum:
                                          - admin
                                  required:
                                    - permissions
                                - type: object
                                  properties:
                                    role:
                                      type: string
                                      enum:
                                        - admin
                                        - member
                                        - customer
                                  required:
                                    - role
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                    name:
                                      type: string
                          featureFlags:
                            type: array
                            items:
                              type: string
                          forceResetPassword:
                            type: boolean
                          identity:
                            type: object
                            properties:
                              kyc:
                                allOf:
                                  - type: object
                                    properties:
                                      available:
                                        type: boolean
                                      required:
                                        type: boolean
                                    required:
                                      - available
                                      - required
                                  - type: object
                                    properties:
                                      data:
                                        allOf:
                                          - type: object
                                            properties:
                                              state:
                                                type: string
                                                enum:
                                                  - unverified
                                                  - pending
                                                  - approved
                                                  - rejected
                                                  - qrscanned
                                                  - inreview
                                                  - flagged
                                                  - flagged_retry_allowed
                                            required:
                                              - state
                                          - type: object
                                            properties:
                                              fields:
                                                anyOf:
                                                  - nullable: true
                                                  - type: object
                                                    additionalProperties:
                                                      nullable: true
                                                  - nullable: true
                                      documents:
                                        type: object
                                        properties:
                                          state:
                                            type: string
                                            enum:
                                              - unverified
                                              - pending
                                              - approved
                                              - rejected
                                              - qrscanned
                                              - inreview
                                              - flagged
                                              - flagged_retry_allowed
                                        required:
                                          - state
                                      failureCount:
                                        type: number
                                      fullyRequired:
                                        type: boolean
                                      hasVideoID:
                                        type: boolean
                                      overallState:
                                        type: string
                                        enum:
                                          - unverified
                                          - pending
                                          - approved
                                          - rejected
                                          - qrscanned
                                          - inreview
                                          - flagged
                                          - flagged_retry_allowed
                                      passport:
                                        allOf:
                                          - type: object
                                            properties:
                                              required:
                                                type: boolean
                                            required:
                                              - required
                                          - type: object
                                            properties:
                                              state:
                                                type: string
                                                enum:
                                                  - unverified
                                                  - pending
                                                  - approved
                                                  - rejected
                                                  - qrscanned
                                                  - inreview
                                                  - flagged
                                                  - flagged_retry_allowed
                                      residency:
                                        type: object
                                        properties:
                                          state:
                                            type: string
                                            enum:
                                              - unverified
                                              - pending
                                              - approved
                                              - rejected
                                              - qrscanned
                                              - inreview
                                              - flagged
                                              - flagged_retry_allowed
                                        required:
                                          - state
                                      isScreeningRequired:
                                        type: boolean
                                      enterpriseVideoCallInfo:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            enterpriseId:
                                              type: string
                                            videoCallId:
                                              type: string
                                          required:
                                            - enterpriseId
                                            - videoCallId
                              verified:
                                type: boolean
                          otpDevices:
                            type: array
                            items:
                              allOf:
                                - type: object
                                  properties:
                                    createDate:
                                      type: string
                                    id:
                                      type: string
                                  required:
                                    - createDate
                                    - id
                                - type: object
                                  properties:
                                    backupPhone:
                                      type: string
                                    label:
                                      type: string
                                    lastValidatedDate:
                                      type: string
                                    phone:
                                      type: string
                                    registeredKey:
                                      type: object
                                      properties:
                                        certificate:
                                          type: string
                                        keyHandle:
                                          type: string
                                        publicKey:
                                          type: string
                                    type:
                                      type: string
                                      enum:
                                        - authy
                                        - totp
                                        - u2f
                                        - webauthn
                                        - yubikey
                                    verified:
                                      type: boolean
                                    scopes:
                                      type: array
                                      items:
                                        type: string
                                        enum:
                                          - wallet_hot
                                    extensions:
                                      type: object
                                      additionalProperties:
                                        type: boolean
                                    prfSalt:
                                      type: string
                          phone:
                            type: object
                            properties:
                              phone:
                                anyOf:
                                  - type: string
                                  - nullable: true
                                  - nullable: true
                              verified:
                                type: boolean
                            required:
                              - phone
                              - verified
                          timezone:
                            type: string
                        required:
                          - agreements
                          - allowedCoins
                          - bitgoEmployee
                          - currency
                          - disableReset2FA
                          - organizations
                          - featureFlags
                          - forceResetPassword
                          - identity
                          - otpDevices
                          - phone
                          - timezone
                      - type: object
                        properties:
                          apps:
                            nullable: true
                          country:
                            type: string
                          ecdhKeychain:
                            anyOf:
                              - type: string
                              - nullable: true
                              - nullable: true
                          isActive:
                            type: boolean
                          isFrozen:
                            type: boolean
                          freezeReason:
                            type: string
                          lastLogin:
                            type: string
                          locale:
                            type: string
                          pgpKey:
                            type: string
                          rateLimits:
                            nullable: true
                          referrer:
                            type: object
                            properties:
                              campaign:
                                anyOf:
                                  - type: string
                                  - nullable: true
                                  - nullable: true
                              source:
                                anyOf:
                                  - type: string
                                  - nullable: true
                                  - nullable: true
                          signupDomain:
                            type: string
                          state:
                            type: string
                          sourceVerificationRequired:
                            type: boolean
                          sourceVerificationRequiredForReadOnlyAccess:
                            type: boolean
                          recoveryCodeSet:
                            type: object
                            properties:
                              id:
                                type: string
                              allCodesUsed:
                                type: boolean
                            required:
                              - id
                              - allCodesUsed
                required:
                  - user
  /api/v1/enterprise/{enterpriseId}/user:
    get:
      tags:
        - Enterprise
      summary: List enterprise users
      operationId: enterprise.user.list
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId'
        - name: allowInactiveUsers
          in: query
          description: >-
            Whether inactive Users whose emails are unverified should be
            returned as well
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterpriseUsersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/enterprise/{enterpriseId}/walletLimits:
    get:
      tags:
        - Enterprise
      summary: Get enterprise's wallet limits
      operationId: enterprise.walletLimits
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId'
        - $ref: '#/components/parameters/coinSingleOrList'
        - name: isCustodial
          in: query
          description: Whether custodial limits should be returned
          schema:
            type: boolean
            enum:
              - true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletLimitsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/enterprise/{enterpriseId}/feeAddressBalance:
    get:
      tags:
        - Enterprise
      summary: Get gas tank balance
      description: Returns gas tank balance and address for an asset.
      operationId: v2.enterprise.feeAddressBalance
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId'
        - $ref: '#/components/parameters/pathCoin'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeAddressBalanceResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/enterprise/{enterpriseId}/transfer:
    get:
      tags:
        - Transfer
      summary: List all transfers on all wallets in an enterprise
      description: >
        Returns all the transfers without blockchain information (inputs,
        outputs, confirms). Use the coin specific route

        to annotate blockchain information.
      operationId: v2.enterprise.listtransfers
      parameters:
        - $ref: '#/components/parameters/coinArray'
        - $ref: '#/components/parameters/pathEnterpriseId'
        - $ref: '#/components/parameters/dateGte'
        - $ref: '#/components/parameters/dateLt'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/prevId'
        - $ref: '#/components/parameters/state'
        - $ref: '#/components/parameters/type'
        - name: sortBy
          description: Sorts by specified field, default sorting by heightId.
          in: query
          schema:
            type: string
            enum:
              - heightId
              - id
              - date
        - $ref: '#/components/parameters/txRequestSortDirection'
        - name: id
          in: query
          description: Filter for a transfer by one or more transfer ids
          schema:
            $ref: '#/components/schemas/Id'
        - name: address
          in: query
          description: >-
            Return transfers with elements in `entries` that have an `address`
            field set to this value
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AddressString3'
        - name: txid
          in: query
          description: Return transfers with a matching 'txid'
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  transfers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transfer'
                  nextBatchPrevId:
                    $ref: '#/components/schemas/NextBatchPrevId'
                required:
                  - transfers
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/transfer:
    get:
      tags:
        - Transfer
      summary: >-
        List transfers on all wallets in an enterprise for a given coin and
        block height
      description: >
        Returns all the transfers. Currently requires an enterpriseId and block
        height.
      operationId: v2.listtransfers
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - name: enterpriseId
          in: query
          description: The enterprise ID
          required: true
          schema:
            $ref: '#/components/schemas/Id'
        - name: height
          in: query
          description: The block or ledger height to query
          required: true
          schema:
            $ref: '#/components/schemas/IntegerString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransfersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/tx/fee:
    get:
      tags:
        - Transfer
      summary: Get fee estimate
      description: >-
        Returns the estimated fee for a transaction. UTXO coins will return a
        fee per kB, while Account-based coins will return a flat fee estimate.


        The fee estimate provided by BitGo is higher than the usual network fee.
        This additional fee is not charged by BitGo but is used to ensure that
        the transactions are processed faster and do not fail on the blockchain
        network.
      operationId: v2.tx.getfeeestimate
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - name: numBlocks
          schema:
            type: integer
          in: query
          description: target number of blocks
        - name: recipient
          schema:
            type: string
          in: query
          description: Recipient of the tx to estimate for (only for ETH)
        - name: data
          schema:
            type: string
          in: query
          description: ETH data of the tx to estimate for (only for ETH)
        - name: amount
          schema:
            type: string
          in: query
          description: Amount in base units being sent to estimate for (only for ETH)
        - name: hop
          schema:
            type: boolean
          in: query
          description: >-
            True if we are estimating for a hop tx, false or unspecified for a
            wallet tx (ETH, AVAXC and POLYGON)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/EstimateTransactionFees'
                  - $ref: '#/components/schemas/EstimateTransactionFeesAccountCoin'
                  - $ref: '#/components/schemas/EstimateTransactionFeesAlgo'
                  - $ref: '#/components/schemas/EstimateTransactionFeesEth'
                  - $ref: '#/components/schemas/EstimateTransactionFeesTrx'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/averagefee:
    post:
      tags:
        - Wallet
      summary: Get average fee
      description: >-
        Returns the average fee for a specific number of blocks. Only for ETH
        and TETH.
      operationId: v2.wallet.getaveragefee
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - name: numBlocks
          schema:
            type: integer
          in: query
          description: target number of blocks
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AverageFee'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/user/{id}:
    get:
      tags:
        - User
      summary: Get user
      description: |
        Returns the associated user
      operationId: user.get
      parameters:
        - name: id
          description: >-
            The user ID, email address, or `me` for the currently authenticated
            user
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/Id'
        - name: orgId
          description: The organization ID by which to filter the user's enterprises.
          in: query
          schema:
            type: string
        - name: maxEnterprises
          description: >-
            Specifies the maximum number of enterprises to return. An
            organization ID must be provided. The maximum limit is 50
            enterprises.
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    $ref: '#/components/schemas/User'
                  kycStatus:
                    type: string
                    description: >-
                      The user's KYC status. Only returned when the requester is
                      an org admin viewing another user.
                    enum:
                      - approved
                      - pending
                      - rejected
                      - unverified
                required:
                  - user
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidUserId'
        '404':
          description: Not Found
  /api/v2/user/sharingkey:
    post:
      tags:
        - User
      summary: Get another users public key for wallet sharing
      operationId: user.sharingkey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSharingKey'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/key:
    get:
      tags:
        - Key
      summary: List keys
      operationId: v2.key.list
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeysResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    post:
      tags:
        - Key
      summary: Create key
      operationId: v2.key.add
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKey'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Key'
                  - $ref: '#/components/schemas/KeyTSSCreated'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/policy/rule:
    post:
      tags:
        - Wallet Policy
      summary: Add wallet-policy rule
      description: |
        Adds a rule to a wallet’s policy. A wallet policy’s rules control the
        conditions under which BitGo will use its single key to sign a
        transaction. An email notification will be sent to all wallet users
        when a policy is updated. This email is NOT sent for the first time
        policy is added.
      operationId: v2.wallet.createpolicy
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePolicyRule'
            examples:
              Add Advanced Whitelist Example:
                value:
                  id: my-rule-id
                  type: advancedWhitelist
                  condition:
                    add:
                      type: my-wallet-id
                      item: my-item-id
                      metaData:
                        label: Recipient Wallet
                  action:
                    type: getApproval
                    userIds: []
              Remove Advanced Whitelist Example:
                value:
                  id: my-rule-id
                  type: advancedWhitelist
                  condition:
                    remove: my-address
                  action:
                    type: getApproval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
    put:
      tags:
        - Wallet Policy
      summary: Update wallet-policy rule
      description: Updates a rule on the policy attached to a wallet
      operationId: v2.wallet.updatepolicy
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRemovePolicyRule'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
    delete:
      tags:
        - Wallet Policy
      summary: Delete wallet-policy rule
      description: Deletes a rule from the policy attached to a wallet
      operationId: v2.wallet.removepolicy
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRemovePolicyRule'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/pendingApprovals:
    get:
      tags:
        - Pending approval
      summary: List pending approvals
      operationId: v2.approval.list
      parameters:
        - $ref: '#/components/parameters/prevId'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/coinArray'
        - $ref: '#/components/parameters/enterpriseId'
        - $ref: '#/components/parameters/organizationId'
        - name: requestType
          in: query
          schema:
            type: string
            enum:
              - enterpriseInviteRequest
              - genericRequest
              - policyRuleRequest
              - transactionRequest
              - transactionRequestFull
              - updateApprovalsRequiredRequest
              - updateEnterpriseRequest
              - updateOrganizationRequest
              - userChangeRequest
          description: >
            Filter by request type.  The default behavior is to return all
            request types.
        - name: state
          description: >
            Filter by state.  The default behavior is to return objects where
            state is `awaitingSignature`, `pending`, or `pendingFinalApproval`
          in: query
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PendingApprovalStatePending1'
        - $ref: '#/components/parameters/walletId'
        - name: expandWalletLabels
          description: >
            True, if adding `walletLabel` to each returned pending approval
            associated with a `wallet`
          in: query
          schema:
            type: boolean
        - $ref: '#/components/parameters/expandAddressLabels'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApprovals'
  /api/v2/{coin}/wallet/{walletId}/transfer:
    get:
      tags:
        - Transfer
      summary: List transfers
      description: |
        Returns deposits and withdrawals for a wallet.  Transfers are sorted
        in descending order by `height`, then `id`. Transfers with `rejected`
        and `pendingApproval` states are excluded by default.
      operationId: v2.wallet.listtransfers
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/allTokens'
        - $ref: '#/components/parameters/dateGte'
        - $ref: '#/components/parameters/dateLt'
        - $ref: '#/components/parameters/height'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/prevId'
        - $ref: '#/components/parameters/state'
        - $ref: '#/components/parameters/type'
        - $ref: '#/components/parameters/valueGte'
        - $ref: '#/components/parameters/valueLt'
        - $ref: '#/components/parameters/sortBy'
        - $ref: '#/components/parameters/reverse'
        - name: id
          in: query
          description: Filter for a transfer by one or more transfer ids
          schema:
            $ref: '#/components/schemas/Id'
        - name: pendingApprovalId
          in: query
          description: Filter for a transfer with a matching pendingApprovalId
          schema:
            $ref: '#/components/schemas/Id'
        - name: address
          in: query
          description: >-
            Return transfers with elements in `entries` that have an `address`
            field set to this value
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AddressString3'
        - name: includeHex
          in: query
          description: >-
            Include the raw hex data of the transaction in the response (this
            may be a large amount of data)
          schema:
            type: boolean
        - name: memoId
          in: query
          description: >-
            Return transfers with any of the payment identifiers in this array.
            Available for Stellar and EOS.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/IntegerString'
        - name: includeRbf
          in: query
          description: True, if including Replace-By-Fee (RBF) transfers.
          schema:
            type: boolean
        - name: includeOperational
          in: query
          description: >-
            Include operational transfers (channel opening/closing) in the
            response. Only applicable for Lightning wallets (lnbtc/tlnbtc).
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransfersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/depositinfo:
    get:
      tags:
        - Fiat
      summary: Get deposit information [DEPRECATED]
      description: >
        Collects all information needed for a deposit.

        DEPRECATED - The new API can be found at
        /api/v2/bankaccounts/deposit/info
      deprecated: true
      operationId: v2.wallet.depositinfo
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deposit'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/transfer/{transferId}:
    get:
      tags:
        - Transfer
      summary: Get transfer
      description: >
        A transfer is a wallet specific object. Each transfer will only output
        the respective wallet id which the

        transfer is associated with.


        If there is a transaction between two BitGo wallets, then two transfers
        will be created, one for wallet A,

        and one for wallet B. Transfer A will only annotate the walletId on
        entries where the address belongs to

        wallet A. Transfer B will only annotate the walletId on entries where
        the address belongs to wallet B.


        **Go Account / OFC transfers (front/backing transfer model):**


        For Go Account (OFC) wallets, a withdrawal is represented as two
        transfers:


        1. **Front transfer** — the record returned by this endpoint. Its `txid`
        and
           `normalizedTxHash` hold an internal BitGo front-transfer hash (e.g. prefixed
           with the OFC coin identifier). This value does **not** appear on any block
           explorer.
        2. **Backing transfer** — the actual on-chain transaction that settles
        the
           withdrawal. The on-chain transaction hash is stored in the front transfer's
           `metadata` array under the key `onChainTxId`.

        When reconciling a Go Account withdrawal against an on-chain explorer or
        an

        external ledger, use `metadata[].onChainTxId` rather than the top-level
        `txid`.

        The `onChainTxId` entry is absent while the transfer is in state
        `signed`; it is

        populated once the transfer reaches state `confirmed`. Poll until

        `state === 'confirmed'` before reading this field.


        For standard `ofc_deposit` transfers (non-lightning) the top-level
        `txid` and

        `metadata[].onChainTxId` are identical. For OFC lightning deposits the
        payment

        hash is stored under `metadata[].lightningPaymentHash` instead;
        `onChainTxId` is

        not present on lightning deposits.


        See the `subType` field for whether a transfer is an `ofc_withdrawal`,

        `ofc_deposit`, `ofc_book_transfer`, `ofc_stake`, or `ofc_unstake`.
      operationId: v2.wallet.gettransfer
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathTransferId'
        - name: includeTxRequestCreatedDate
          in: query
          description: >-
            True, if returning the `txRequestCreatedDate`. This field is only
            present on transfers associated with a transaction request.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs'
        '206':
          description: Partial Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotatedTransfer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidTransferId'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/transfer/sequenceId/{sequenceId}:
    get:
      tags:
        - Transfer
      summary: Get transfer by sequence id
      operationId: v2.wallet.gettransferbysequenceid
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathSequenceId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs'
        '206':
          description: Partial Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotatedTransfer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/user/lock:
    post:
      description: |
        Locks the current user session.  This disallows operations that require
        an unlocked token, such as sending a transaction.
      tags:
        - User
      summary: Lock session
      operationId: user.lock
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  session:
                    $ref: '#/components/schemas/LockedSession'
  /api/v2/user/unlock:
    post:
      description: >
        Unlocks the current user session, enabling operations that require

        an unlocked token, such as sending a transaction. Call this endpoint

        if an API returns a `401` response with the `needsUnlock`

        body parameter set to `true`.


        **Note:** Unlocking a token with spending limits, removes all spending
        limits from the token.
      tags:
        - User
      summary: Unlock session
      operationId: user.unlock
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnlockRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  session:
                    $ref: '#/components/schemas/Session1'
  /api/v2/{coin}/wallet:
    post:
      tags:
        - Wallet
      summary: \[DEPRECATED\] Add wallet (advanced only)
      description: >
        >**Note:** This route is deprecated in favor of [Add
        Wallet](/reference/v2walletadd).


        Add Wallet is for advanced API users. It lets you manually create and

        specify keys. The recommended (and simpler) method is [Generate
        Wallet](/reference/expresswalletgenerate)

        with the SDK or BitGo Express. You can also create wallets in the BitGo
        UI.


        This API creates a new wallet for the user or enterprise. The keys to

        use with the new wallet (passed in the 'keys' parameter) must be

        registered with BitGo prior to using this API.


        BitGo currently only supports 2-of-3 (e.g., m=2 and n=3) wallets. The

        third key, and only the third key, must be a BitGo key. The first key

        is by convention the user key, with its encrypted xprv stored on BitGo.


        Ethereum and XRP wallets can only be created under an enterprise. Pass
        in the

        id of the enterprise to associate the wallet with. Your enterprise id

        can be seen by clicking on the "Manage Organization" link in the

        enterprise dropdown. Using the Add Wallet API, you can create a wallet

        using either the enterprise fee address (used by default for all

        wallets in the enterprise), or a unique fee address (created manually

        with the Keychains API). Pass the desired key as the third key ID in

        the 'keys' array. In either case, the fee address must be funded

        before creating the wallet.


        You cannot generate a wallet by passing in a subtoken (i.e. ERC20 token)
        as the coin.

        Subtokens use the wallet of their parent coin and it is not possible to
        create a

        wallet specific to one token. For example, to create a wallet for an
        ERC20 token,

        create an Ethereum wallet. It can hold any ERC20 tokens as well as
        Ether.


        BitGo Ethereum wallet is a smart-contract implementing multi-signature
        scheme.

        Because contracts itself can not initiate transactions, fee addresses
        are used

        for this purpose. Ethereum transactions initiated by a given address,
        are

        confirmed by the network in order of creation, so one lower fee
        transaction can

        potentially delay all subsequent transactions. To help lower network fee
        costs,

        two fee addresses are provided.


        `feeAddress` is a main fee address usable for all operations.

        `lowPriorityFeeAddress` is a secondary fee address that can be used to
        pay

        lower fee for Create Address operations without risking delaying
        subsequent

        higher-priority transactions initiated by main fee address.
      operationId: v2.wallet.add.deprecated
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWallet'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    get:
      tags:
        - Wallet
      summary: List wallets by coin
      operationId: v2.wallet.listbycoin
      description: Lists all your wallets for a specific asset.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/prevId'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/allTokens'
        - $ref: '#/components/parameters/excludeSpendableBalance'
        - $ref: '#/components/parameters/searchLabelWallets'
        - $ref: '#/components/parameters/showAllWallets'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletsWithCoinResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
  /api/v2/{coin}/wallet/add:
    post:
      tags:
        - Wallet
      summary: Add wallet (advanced only)
      description: >
        Add Wallet is for advanced API users. It lets you manually create and

        specify keys. The recommended (and simpler) method is [Generate
        Wallet](/reference/expresswalletgenerate)

        with the SDK or BitGo Express. You can also create wallets in the BitGo
        UI.


        This API creates a new wallet for the user or enterprise. The keys to

        use with the new wallet (passed in the 'keys' parameter) must be

        registered with BitGo prior to using this API.


        BitGo currently only supports 2-of-3 (e.g., m=2 and n=3) wallets. The

        third key, and only the third key, must be a BitGo key. The first key

        is by convention the user key, with its encrypted xprv stored on BitGo.


        Ethereum and XRP wallets can only be created under an enterprise. Pass
        in the

        id of the enterprise to associate the wallet with. Your enterprise id

        can be seen by clicking on the "Manage Organization" link in the

        enterprise dropdown. Using the Add Wallet API, you can create a wallet

        using either the enterprise fee address (used by default for all

        wallets in the enterprise), or a unique fee address (created manually

        with the Keychains API). Pass the desired key as the third key ID in

        the 'keys' array. In either case, the fee address must be funded

        before creating the wallet.


        You cannot generate a wallet by passing in a subtoken (i.e. ERC20 token)
        as the coin.

        Subtokens use the wallet of their parent coin and it is not possible to
        create a

        wallet specific to one token. For example, to create a wallet for an
        ERC20 token,

        create an Ethereum wallet. It can hold any ERC20 tokens as well as
        Ether.


        BitGo Ethereum wallet is a smart-contract implementing multi-signature
        scheme.

        Because contracts itself can not initiate transactions, fee addresses
        are used

        for this purpose. Ethereum transactions initiated by a given address,
        are

        confirmed by the network in order of creation, so one lower fee
        transaction can

        potentially delay all subsequent transactions. To help lower network fee
        costs,

        two fee addresses are provided.


        `feeAddress` is a main fee address usable for all operations.

        `lowPriorityFeeAddress` is a secondary fee address that can be used to
        pay

        lower fee for Create Address operations without risking delaying
        subsequent

        higher-priority transactions initiated by main fee address.
      operationId: v2.wallet.add
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWallet'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidEnterpriseId1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/address/{address}:
    get:
      tags:
        - Wallet
      summary: Get wallet by address
      operationId: v2.wallet.getwalletbyaddress
      description: >-
        Get one wallet by its `coin` and receive `address`. Multiple receive
        addresses can map to one `walletId`.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathAddress'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
  /api/v2/{coin}/wallet/{walletId}/user/{userId}:
    delete:
      tags:
        - Wallet
      summary: Remove user from wallet
      description: |
        After a user has accepted a wallet share, they become a party on a
        wallet and the wallet share is considered “complete”. In order to
        revoke the share after they have accepted, you can remove the user
        from the wallet.

        This operation requires approval by another wallet administrator
        if there is more than a single administrator on a wallet.
      operationId: v2.wallet.removeuser
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathUserId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/CannotRemoveAdmin'
                  - $ref: '#/components/schemas/InvalidUserId'
                  - $ref: '#/components/schemas/InvalidWalletId'
        '404':
          description: Not Found
  /api/v2/{coin}/wallet/{walletId}/maximumSpendable:
    get:
      tags:
        - Wallet
      summary: Get maximum spendable
      description: |
        Returns the maximum amount that can be spent with a single transaction
        on the wallet.

        The maximum spendable amount can differ from a wallet’s total balance.
        A transaction can only use up to 200 unspents. Wallets that have more
        than 200 unspents cannot spend the full balance in one transaction.
        Additionally, the value returned for the maximum spendable amount
        accounts for the current fee level by deducting the estimated fees.
        The amount will only be calculated based on the unspents that fit the
        parameters passed.
      operationId: v2.wallet.maximumspendable
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/enforceMinConfirmsForChange'
        - $ref: '#/components/parameters/feeRate'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/maxFeeRate'
        - $ref: '#/components/parameters/maxValue'
        - $ref: '#/components/parameters/minConfirms'
        - $ref: '#/components/parameters/minHeight'
        - $ref: '#/components/parameters/minValue'
        - $ref: '#/components/parameters/numBlocks'
        - $ref: '#/components/parameters/unspentIds'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletMaximumSpendable'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/reservedunspents:
    post:
      tags:
        - Wallet
      summary: Make unspent reservation
      description: >-
        Mark the unspents as reserved and cannot be used in transactions until
        the given expire time.
      operationId: v2.wallet.reservedunspent.add
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                unspentIds:
                  type: array
                  minItems: 1
                  items:
                    $ref: '#/components/schemas/UnspentId'
                expireTime:
                  type: string
                  description: >-
                    Time when reservation expires. Use `date-time` format or
                    'never'. If 'never', reservation doesn't expire.
                type:
                  type: string
                  description: Type of reservation to make on the unspent.
                  enum:
                    - ordinal
                    - inscription
                inscriptionIds:
                  type: array
                  items:
                    $ref: '#/components/schemas/InscriptionId'
              required:
                - unspentIds
                - expireTime
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  unspents:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReservedUnspent'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    delete:
      tags:
        - Wallet
      summary: Release unspent reservation
      description: Release unspents from reservation to be accessible for transactions.
      operationId: v2.wallet.reservedunspent.delete
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - name: id
          in: query
          required: true
          schema:
            type: array
            items:
              $ref: '#/components/schemas/UnspentId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  unspents:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReservedUnspent'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    get:
      tags:
        - Wallet
      summary: List unspent reservation
      description: Query reserved unspents in the wallet.
      operationId: v2.wallet.reservedunspent.list
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
        - $ref: '#/components/parameters/limit'
        - name: expireTimeGt
          description: >-
            Returns reserved unspents with an `expireTime` greater than this
            value.
          in: query
          schema:
            type: string
            format: date-time
        - name: expireTimeLte
          description: >-
            Returns reserved unspents with an `expireTime` less than or equal to
            this value.
          in: query
          schema:
            type: string
            format: date-time
        - name: expireTime
          description: >-
            Returns reserved unspents with an `expireTime` equal to this value.
            If `never`, returns unspents without expiration dates.
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  unspents:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReservedUnspent'
                  nextBatchPrevId:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    put:
      tags:
        - Wallet
      summary: Modifying unspent reservation
      description: Modify expire time of reserved unspents.
      operationId: v2.wallet.reservedunspent.put
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                unspentIds:
                  type: array
                  minItems: 1
                  items:
                    $ref: '#/components/schemas/UnspentId'
                changes:
                  type: object
                  properties:
                    expireTime:
                      type: string
                      description: >-
                        Time in date-time format when reservation expires. If
                        'never', reservation doesn't expire.
              required:
                - unspentIds
                - changes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  unspents:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReservedUnspent'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/requestreshare:
    post:
      tags:
        - Wallet share
      summary: Request wallet reshare
      description: >-
        Indicates that the calling user has lost access to the user key and
        would like to it to be reshared with them.
      operationId: v2.wallet.sharing.requestreshare
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/share:
    post:
      tags:
        - Wallet share
      summary: Create a wallet share
      description: Share wallet with an existing BitGo user
      operationId: v2.wallet.sharing.createshare
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShareWalletRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShareWalletResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/requestaccess:
    post:
      tags:
        - Wallet
      summary: Request wallet access
      description: >-
        Allow users that are members of an org to send a notification out to
        admins of a wallet to get access. You must supply either a walletId or a
        enterpriseId and walletType
      operationId: v2.wallet.requestaccess
      parameters:
        - $ref: '#/components/parameters/enterprise'
        - name: type
          in: query
          schema:
            $ref: '#/components/schemas/WalletTypePublic'
        - name: id
          in: query
          schema:
            $ref: '#/components/schemas/Id'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/rejectreshare:
    post:
      tags:
        - Wallet share
      summary: Reject a wallet reshare request
      description: >-
        If a user requested a reshare, another admin on the wallet can use this
        endpoint to reject their reshare request.
      operationId: v2.wallet.sharing.rejectreshare
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RejectReshare'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/walletshares:
    get:
      tags:
        - Wallet share
      summary: List wallet shares
      description: >-
        List shares of all wallets with other BitGo users. Returns only wallets
        on which the current user has spend permission.
      operationId: v2.wallet.sharing.listallshares
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWalletSharesResponse'
  /api/v1/{coin}/walletshare/{shareId}:
    get:
      tags:
        - Wallet share
      summary: Get wallet share V1
      description: >-
        Returns a wallet share, requires unlock if the wallet share includes a
        keychain.
      operationId: v1.wallet.sharing.getshare
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathShareId'
        - name: skipUnlock
          in: query
          description: True, if skipping unlock. Excludes keychain in response.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletShare1'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/walletshare/{shareId}/resendemail:
    post:
      tags:
        - Wallet share
      summary: Resend a wallet share invitation email
      description: |
        Resends the wallet share invitation to the share recipient. The wallet
        share must not have been accepted yet.
      operationId: v2.wallet.sharing.resendemail
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathShareId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendShareEmailResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/webhooks/notifications:
    x-internal: false
    get:
      tags:
        - Webhook
      summary: List wallet webhook notifications
      description: |
        List webhook notifications for a wallet. Returns notifications
        that were triggered by webhooks on the specified wallet.
      operationId: v2.wallet.listwebhooknotifications
      parameters:
        - name: coin
          in: path
          required: true
          description: A cryptocurrency or token ticker symbol.
          schema:
            $ref: '#/components/schemas/Coin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/prevId'
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            example: 25
          description: Maximum number of results to return.
        - name: hash
          in: query
          schema:
            type: string
          description: Filter notifications by transaction hash.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhookNotifications:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookNotification'
                  nextBatchPrevId:
                    $ref: '#/components/schemas/Id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/webhooks/{webhookId}/simulate:
    post:
      tags:
        - Webhook
      summary: Simulate wallet webhook
      description: |
        Simulates and tests a webhook so you can view its response. A
        `transferId`, `pendingApprovalId` or `txRequestId` is required.
      operationId: v2.wallet.simulatewebhook
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathWebhookId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateWalletWebhookRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhookNotifications:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            wallet:
                              $ref: '#/components/schemas/Id'
                            transfer:
                              $ref: '#/components/schemas/Id'
                            hash:
                              $ref: '#/components/schemas/TxId'
                        - $ref: '#/components/schemas/WebhookNotification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/webhooks:
    post:
      tags:
        - Webhook
      summary: Add block webhook
      description: >
        Adds a webhook that will result in an HTTP callback at the

        specified URL from BitGo when events are triggered.


        Types of block webhooks:


        1. Block webhooks will fire when a new block is seen on the coin
        network.

        2. Wallet confirmation webhooks will fire when a wallet has been
        initialized.
      operationId: v2.webhooks.add
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBlockWebhook'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      type:
                        $ref: '#/components/schemas/WebhookTypeBlock'
                      userId:
                        $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/Webhook1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    get:
      tags:
        - Webhook
      summary: List block webhooks
      description: |
        Returns block webhooks. The types of webhooks are `block` and
        `wallet_confirmation` notifications.
      operationId: v2.webhooks.list
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhooks:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            type:
                              $ref: '#/components/schemas/WebhookTypeBlock'
                            userId:
                              $ref: '#/components/schemas/Id'
                        - $ref: '#/components/schemas/Webhook1'
    delete:
      tags:
        - Webhook
      summary: Remove block webhook
      description: |
        Removing a webhook will cause new events of the specified type to no
        longer trigger HTTP callbacks to your URLs.
      operationId: v2.webhooks.remove
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: '#/components/schemas/WebhookTypeBlock'
                url:
                  type: string
                  format: uri
                  example: https://your.server.com/user_webhook
                id:
                  $ref: '#/components/schemas/Id'
              required:
                - type
                - url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  removed:
                    type: integer
                    example: 1
                    description: Number of block webhooks removed.
  /api/v2/{coin}/webhooks/{webhookId}/simulate:
    post:
      tags:
        - Webhook
      summary: Simulate block webhook
      description: |
        Simulates and tests a block webhook so you can view its response.
      operationId: v2.webhooks.simulate
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWebhookId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                blockId:
                  $ref: '#/components/schemas/BlockHash'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhookNotifications:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            hash:
                              $ref: '#/components/schemas/BlockHash'
                        - $ref: '#/components/schemas/WebhookNotification'
  /api/v2/xlm/federation:
    get:
      tags:
        - Federation
      summary: Look up user accounts by their Stellar address or id
      description: |
        Types of searches available:

        1. By name: Resolve a Stellar address into an account
        2. By id: Resolve an account id into an account
      operationId: v2.federation
      parameters:
        - $ref: '#/components/parameters/queryFederationQ'
        - $ref: '#/components/parameters/queryFederationType'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  account_id:
                    type: string
                  stellar_address:
                    type: string
                  memo_type:
                    type: string
                  memo:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FederationError'
  /api/v2/{coin}/material:
    get:
      tags:
        - Wallet
      summary: Look up material
      description: >-
        Currently available only for Polkadot. Material contains some basic
        transaction information that is common to all transactions. For
        Polkadot, this data changes every release.
      operationId: v2.materialData
      parameters:
        - $ref: '#/components/parameters/pathCoin'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  genesisHash:
                    type: string
                  chainName:
                    type: string
                  specName:
                    type: string
                  specVersion:
                    type: number
                  txVersion:
                    type: number
                  metadata:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/sendlabels:
    get:
      tags:
        - Send label
      summary: List send labels
      description: >-
        List all send labels for the enterprise. Address and coin parameters
        optional.
      operationId: v2.sendlabels.list
      parameters:
        - $ref: '#/components/parameters/coin'
        - $ref: '#/components/parameters/address'
        - $ref: '#/components/parameters/enterpriseId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SendLabel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    post:
      tags:
        - Send label
      summary: Create send label
      operationId: v2.sendlabels.create
      description: Create an address send label for an id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSendLabel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendLabel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/sendlabels/{id}:
    get:
      tags:
        - Send label
      summary: Get send label by id
      operationId: v2.sendlabels.get
      description: Gets an address send label by the specified id
      parameters:
        - $ref: '#/components/parameters/pathId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendLabel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    put:
      tags:
        - Send label
      summary: Update send label
      operationId: v2.sendlabels.update
      description: Updates an address send label by the specified id
      parameters:
        - $ref: '#/components/parameters/pathId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSendLabel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendLabel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    delete:
      tags:
        - Send label
      summary: Delete send label
      operationId: v2.sendlabels.delete
      parameters:
        - $ref: '#/components/parameters/pathId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendLabel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/txrequests/{id}/signatureshares:
    post:
      tags:
        - Transaction request
      summary: Create a signature share for the transaction request
      description: >-
        Allows users to supply their signature share for signing. Use only with
        MPC wallets.
      operationId: v2.wallet.txrequest.signatureshare.create
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSignatureShareRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureShare'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
    delete:
      tags:
        - Transaction request
      summary: Delete signature shares on a transaction request.
      description: >-
        Allows users to clear the signature shares on a transaction request.
        This will also set the state to pendingUserSignature. Use only with MPC
        wallets.
      operationId: v2.wallet.txrequest.signatureshare.delete
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SignatureShare'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/txrequests/{id}/transactions/{transactionIdx}/signatureshares:
    post:
      tags:
        - Transaction request
      summary: Create a signature share for a transaction on a transaction request
      description: >
        Allows users to supply their signature share for signing.


        This route is only valid for transaction request full. Use only with MPC
        wallets.
      operationId: v2.wallet.txrequest.transaction.signatureshare.create
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathId'
        - $ref: '#/components/parameters/transactionIdx'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSignatureShareRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureShare'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/txrequests/{id}/transfers:
    post:
      tags:
        - Transaction request
      summary: Create transfer for transaction request
      description: >-
        Create a transfer for a transaction request and return that transfer.
        Use only with MPC wallets.
      operationId: v2.wallet.txrequest.transfers.create
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transfer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/tx/build:
    post:
      tags:
        - Wallet
      summary: Build a transaction
      operationId: v2.wallet.tx.build
      description: >
        Build a transaction from the wallet using provided options. Use only
        with multisignature wallets. For MPC wallets, use [Create transaction
        request](/reference/v2wallettxrequestcreate). If you want to build,
        sign, and send all in one call, use [Send
        transaction](/reference/expresswalletsendcoins).
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/destinationTag'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/TransactionBuildRequest'
                - $ref: '#/components/schemas/NonParticipationTransactionBuildRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionBuildResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidAddress'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/consolidateUnspents:
    post:
      tags:
        - Wallet
      summary: Consolidate unspents (advanced)
      operationId: v2.wallet.consolidateunspents
      description: >-
        Build a transaction to consolidate unspents in a wallet. Once built, you
        must sign and sent the transaction. Consolidating unspents is only for
        UTXO-based assets.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsolidateUnspentsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletConsolidateUnspentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/tx/initiate:
    post:
      tags:
        - Wallet
      summary: Initiate a transaction
      operationId: v2.wallet.tx.initiate
      description: >-
        Initiate an unsigned transaction to create a pending approval. This is
        useful to request funds to be sent from custodial wallets. Use only with
        custodial wallets.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/TransactionInitiateRequest'
                - type: object
                  properties:
                    videoApprovers:
                      $ref: '#/components/schemas/VideoApprovers'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/tx/send:
    post:
      tags:
        - Wallet
      summary: Send a half-signed transaction
      operationId: v2.wallet.tx.send
      description: >
        Send a half-signed transaction to BitGo for final signing (using the
        BitGo key) and broadcasting.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendTransaction'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
                  - $ref: '#/components/schemas/DuplicateSequenceId'
                  - $ref: '#/components/schemas/InvalidOFAC'
        '423':
          description: Locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformErrorNoName3'
  /api/v2/{coin}/wallet/{walletId}/trustline/initiate:
    post:
      tags:
        - Wallet
      summary: Initiate a trustline transaction
      operationId: v2.wallet.trustline.initiate
      description: >-
        Initiate an unsigned trustline transaction to create a pending approval.
        Trustline transactions manage trusted tokens on the account. Available
        for Stellar. Use only with custodial wallets.
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateTrustlineParams'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/requiredReserve:
    get:
      tags:
        - Wallet
      summary: Get balance reserve data
      description: >-
        Returns information about reserve requirements for an account. Currently
        only available for Stellar.
      operationId: v2.tx.fetchReserve
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            type: string
            enum:
              - txlm
              - xlm
              - tcspr
              - cspr
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceReserve'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/{coin}/wallet/{walletId}/consolidateAccount/build:
    post:
      tags:
        - Wallet
      summary: Consolidate account (advanced)
      operationId: v2.wallet.consolidateaccount.build
      description: >-
        Build a consolidation transaction for an account-based asset. Once
        built, you must sign and send the transaction. For account-based assets,
        consolidating the balances in the receive addresses to the base address
        maximizes the spendable balance of a wallet.
      parameters:
        - $ref: '#/components/parameters/pathAlgorand'
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsolidateAccountBuildRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsolidateAccountBuildResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidAddress'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/{coin}/wallet/{walletId}/transfer/{transferId}/comment:
    post:
      tags:
        - Transfer
      summary: Update comment
      operationId: v2.transfer.comment
      description: |
        Update the comment of a transfer
        Requirements:
          - Transaction must be generated from a BitGo wallet
      parameters:
        - $ref: '#/components/parameters/pathCoin'
        - $ref: '#/components/parameters/pathWalletId'
        - $ref: '#/components/parameters/pathTransferId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCommentRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transfer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
                  - $ref: '#/components/schemas/InvalidTransferId'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError3'
  /api/v2/wallet/{walletId}/lightning/invoices:
    get:
      tags:
        - Lightning
      summary: Lightning - List Invoices
      operationId: v2.wallet.lightning.invoice.list
      description: List Lightning Network invoices for the given wallet.
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressCreateInvoiceRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpressListInvoicesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/v2/wallet/{walletId}/lightning/backup:
    get:
      tags:
        - Lightning
      summary: Lightning - Get Channel Backup
      operationId: v2.wallet.lightning.backup
      description: >-
        This is only used for self-custody lightning. Retrieve the channel
        backup for the given wallet.
      parameters:
        - $ref: '#/components/parameters/pathWalletId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LightningBackupResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError3'
                  - $ref: '#/components/schemas/InvalidWalletId'
  /api/policy/v1/enterprises/{enterpriseId}/rules:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List policy rules
      description: Lists all policy rules for an enterprise.
      operationId: v1.policy.rules.list
      parameters:
        - $ref: '#/components/parameters/CreatedDateGte'
        - $ref: '#/components/parameters/CreatedDateLte'
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/EvaluationId'
        - $ref: '#/components/parameters/EvaluationStatus'
        - $ref: '#/components/parameters/PolicyRuleName'
        - $ref: '#/components/parameters/PolicyRuleStatus'
        - $ref: '#/components/parameters/ScopeName'
        - $ref: '#/components/parameters/Touchpoints'
        - $ref: '#/components/parameters/PolicyRuleIdQuery'
        - $ref: '#/components/parameters/Limit1'
        - $ref: '#/components/parameters/PrevId1'
        - $ref: '#/components/parameters/FilteringConditionParameterNameAndValue'
      responses:
        '200':
          description: Paginated list of policy rules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRulesResults'
              examples:
                PolicyRulesResultExample:
                  $ref: '#/components/examples/PolicyRulesResultsExample1'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/organizations/{organizationId}/rules:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List organization policy rules
      description: >
        Lists all policy rules for an organization.


        **Authorization:** Organization admins can access their organization's
        rules. BitGo admins have access to all organizations.
      operationId: v1.policy.organization.rules.list
      parameters:
        - name: organizationId
          in: path
          required: true
          description: The organization ID
          schema:
            type: string
            pattern: ^[0-9a-f]{32}$
        - $ref: '#/components/parameters/Touchpoints'
        - $ref: '#/components/parameters/PolicyRuleStatus'
        - name: page
          in: query
          description: Page number (1-based)
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: pageSize
          in: query
          description: Number of results per page
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 20
      responses:
        '200':
          description: List of organization policy rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRulesResults'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/rules/{id}:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: Get policy rule
      description: >-
        Returns a policy rule by its ID. If version is passed, returns the most
        recent `INACTIVE` policy rule. If version isn't passed, returns the
        currently `ACTIVE` policy rule.
      operationId: v1.policy.rules.get
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/PolicyRuleId'
        - $ref: '#/components/parameters/PolicyRuleVersion'
      responses:
        '200':
          description: A successful policy rule details response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRule1'
              examples:
                example:
                  $ref: '#/components/examples/PolicyRuleExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      x-internal: false
      tags:
        - Policy Builder
      summary: Deactivate policy rule
      description: Deactivates a policy rule.
      operationId: v1.policy.rules.delete
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/PolicyRuleId'
      responses:
        '200':
          description: The `INACTIVE` policy rule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRule1'
              examples:
                example:
                  $ref: '#/components/examples/InactivePolicyRuleExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/rules/{id}/versions:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List policy-rule versions
      description: List all versions of a policy rule.
      operationId: v1.policy.rule.versions.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/PolicyRuleId'
      responses:
        '200':
          description: All versions of the given policy rule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRuleVersions'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/touchpoints/{touchpointName}/rules:
    post:
      x-internal: false
      tags:
        - Policy Builder
      summary: Create policy rule
      description: Creates a new policy rule.
      operationId: v1.policy.rule.create
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/TouchpointName'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePolicyRuleRequest'
            examples:
              example:
                $ref: '#/components/examples/CreatePolicyRuleExample'
      responses:
        '201':
          description: The newly created policy rule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRule1'
              examples:
                example:
                  $ref: '#/components/examples/PolicyRuleExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/touchpoints/{touchpointName}/rules/{id}:
    put:
      x-internal: false
      tags:
        - Policy Builder
      summary: Update policy rule
      description: >-
        Updates a policy rule, resulting in a new version number that's equal to
        the highest existing version plus 1. The ID of the policy rule remains
        the unchanged.
      operationId: v1.policy.rule.update
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/TouchpointName'
        - $ref: '#/components/parameters/PolicyRuleId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePolicyRuleRequest'
            examples:
              example:
                $ref: '#/components/examples/CreatePolicyRuleExample'
      responses:
        '201':
          description: The updated policy rule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRule1'
              examples:
                example:
                  $ref: '#/components/examples/PolicyRuleExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/scopes:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List scopes
      description: Lists all scopes for a given policy rule.
      operationId: v1.policy.scope.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
      responses:
        '200':
          description: All available scopes for your enterprise.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scopes'
              examples:
                example:
                  $ref: '#/components/examples/ScopesExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/scopes/{scopeId}/conditions:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List conditions for scope
      description: Lists all conditions for a given scope.
      operationId: v1.policy.scope.condition.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/scope'
      responses:
        '200':
          description: All available Filtering Conditions for a scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteringConditions'
              examples:
                example:
                  $ref: '#/components/examples/FilteringConditionsExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/scopes/{scopeId}/touchpoints:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List touchpoints
      description: Lists all touchpoints for a given scope.
      operationId: v1.policy.scope.touchpoint.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/scope'
      responses:
        '200':
          description: Paginated list of available Touchpoints for a given scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TouchpointsResults'
              examples:
                example:
                  $ref: '#/components/examples/ScopeTouchpointsExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/touchpoints/{touchpointId}/conditions:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List conditions for touchpoint
      description: Lists all conditions available for a given touchpoint.
      operationId: v1.policy.touchpoint.condition.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/TouchpointId'
      responses:
        '200':
          description: All available Conditions on a given Touchpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conditions'
              examples:
                example:
                  $ref: '#/components/examples/TouchpointConditionsExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/touchpoints/{touchpointId}/filteringconditions/{filteringCondition}/actions:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: List actions
      description: Lists all available actions for a given touchpoint and scope.
      operationId: v1.policy.touchpoint.action.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - $ref: '#/components/parameters/TouchpointId'
        - $ref: '#/components/parameters/FilteringConditionName'
      responses:
        '200':
          description: All available Actions on a given Touchpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Actions'
              examples:
                example:
                  $ref: '#/components/examples/ActionsExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/organizations/{organizationId}/touchpoints/{touchpointName}/rules/{sharedId}:
    put:
      x-internal: false
      tags:
        - Policy Builder
      summary: Update organization policy rule
      description: >
        Updates an existing policy rule for an organization.


        **Authorization:** Organization admins can update their organization's
        rules. BitGo admins have access to all organizations.


        **Requirements:**

        - Cannot update if there is a pending change (PENDING_APPROVAL status)
        for the same rule

        - When the touchpoint has self_controlled=true, evaluation uses rules
        from that touchpoint instead of Policy Management
      operationId: v1.policy.organization.rules.update
      parameters:
        - name: organizationId
          in: path
          required: true
          description: The organization ID
          schema:
            type: string
            pattern: ^[0-9a-f]{32}$
        - name: touchpointName
          in: path
          required: true
          description: The touchpoint name where the rule exists
          schema:
            type: string
        - name: sharedId
          in: path
          required: true
          description: The policy rule shared ID
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePolicyRuleRequest'
            examples:
              example:
                $ref: '#/components/examples/CreatePolicyRuleExample'
      responses:
        '201':
          description: The updated policy rule (new version created)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRule1'
              examples:
                example:
                  $ref: '#/components/examples/PolicyRuleExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/webhooks/keys/{keyId}:
    delete:
      x-internal: false
      tags:
        - Webhook Keys
      summary: Revoke a webhook signing key
      description: >
        Revokes a webhook signing key for an enterprise. This is a soft delete —
        the key

        row is preserved for audit purposes but marked as REVOKED.


        Revoked keys cannot be used for webhook signature verification.

        Revocation is irreversible — a new key must be registered to restore
        access.


        **Key ID tombstoning:** Once a `keyId` is revoked, it is **permanently
        tombstoned**

        for this enterprise. Attempting to register a new key under the same
        `keyId` will

        return a 400 error, even after revocation. This is intentional security
        design that

        prevents key-reuse attacks. Choose a stable, unique `keyId` from the
        start (e.g.

        use a version suffix such as `my-key-v2`) so that key rotation does not
        require

        updating secrets or configuration files that reference the `keyId`.


        **Authorization:** Caller must be an admin of the specified enterprise.
      operationId: v1.enterprise.webhooks.keys.revoke
      parameters:
        - name: enterpriseId
          in: path
          required: true
          description: The enterprise ID.
          schema:
            type: string
        - name: keyId
          in: path
          required: true
          description: The customer-provided key identifier.
          schema:
            type: string
          example: customer-prod-key-2026
        - $ref: '#/components/parameters/OtpRequired'
      responses:
        '200':
          description: Key successfully revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeWebhookKeyResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/webhooks/keys:
    post:
      x-internal: false
      tags:
        - Webhook Keys
      summary: Register a webhook signing key
      description: >
        Registers a new webhook signing key for an enterprise. The key can be
        provided

        inline via a JWKS payload or referenced via a JWKS URI.


        **Key ID selection:** The `keyId` (derived from the `kid` field in the
        JWK, or

        supplied explicitly for JWKS URI registrations) must be unique within
        the

        enterprise. Once a `keyId` is used — even if the key is later revoked —
        it is

        **permanently tombstoned** and cannot be reused. Plan for this by
        choosing a

        stable, unique `keyId` from the start (e.g. `my-key-v2`).


        **Recommended rotation workflow:**

        1. Register the new key under a new `keyId` (e.g. `my-key-v2`).

        2. Update your service configuration to sign webhooks with the new key.

        3. Revoke the old key only after you have confirmed the new key is
        working.


        **Authorization:** Caller must be an admin of the specified enterprise.
      operationId: v1.enterprise.webhooks.keys.register
      parameters:
        - name: enterpriseId
          in: path
          required: true
          description: The enterprise ID.
          schema:
            type: string
        - $ref: '#/components/parameters/OtpRequired'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterWebhookKeyRequest'
      responses:
        '201':
          description: Key successfully registered.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterWebhookKeyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      x-internal: false
      tags:
        - Webhook Keys
      summary: List webhook signing keys
      description: >
        Lists all webhook signing keys registered for an enterprise.


        **Authorization:** Caller must be an admin of the specified enterprise.


        Returns key metadata only — actual public key material and JWK data are
        not included in the response.
      operationId: v1.enterprise.webhooks.keys.list
      parameters:
        - name: enterpriseId
          in: path
          required: true
          description: The enterprise ID.
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: Filter by key status.
          schema:
            type: string
            enum:
              - ACTIVE
              - REVOKED
        - name: limit
          in: query
          required: false
          description: Maximum number of results per page. Default 50, maximum 100.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
          example: 50
        - name: prevId
          in: query
          required: false
          description: Pagination offset. Default 0.
          schema:
            type: integer
            default: 0
            minimum: 0
          example: 0
      responses:
        '200':
          description: A paginated list of webhook signing keys.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWebhookKeysResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/policy/v1/enterprises/{enterpriseId}/recommendations:
    get:
      x-internal: false
      tags:
        - Policy Builder
      summary: Get policy recommendations
      description: >
        Returns policy recommendations for an enterprise.


        **Authorization:** Caller must have read-policy permissions, be an
        admin, or be a member of the enterprise.
      operationId: v1.policy.recommendations.list
      parameters:
        - $ref: '#/components/parameters/Enterprise1'
        - name: limit
          in: query
          description: >
            Number of recommendations to return. Default: 3, Minimum: 1,
            Maximum: 50.
          required: false
          schema:
            type: integer
            default: 3
            minimum: 1
            maximum: 50
          example: 3
      responses:
        '200':
          description: A list of policy recommendations for the enterprise.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyRecommendationResponse'
              examples:
                PolicyRecommendationsExample:
                  $ref: '#/components/examples/PolicyRecommendationsExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/prime/trading/v1/user/current:
    get:
      summary: Get Current User
      description: |-
        Get the current user’s public information.

        **Requires access token scope:** `trade_view`
      operationId: trade.user.current
      tags:
        - Accounts
      responses:
        '200':
          description: A user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradeUser'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts:
    get:
      summary: List Accounts
      description: |-
        Get the list of trading accounts that the current user belongs to.

        **Requires access token scope:** `trade_view`
      operationId: trade.accounts
      tags:
        - Accounts
      responses:
        '200':
          description: An array of accounts
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Accounts'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts/{accountId}/balances:
    get:
      summary: Get Account Balance
      description: |-
        Get balance information about a single trading account.

        **Requires access token scope:** `trade_view`
      operationId: trade.accounts.balances
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: includeUnsettledInAvailable
          in: query
          description: >-
            Include unsettled trading balance in available balance. Withdrawals
            may be initiated from the unsettled available balance, but trading
            settlement must occur before the withdrawal can be processed.
            Default is false.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
      responses:
        '200':
          description: An array of account balances
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AccountBalances'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/orders:
    get:
      summary: List Orders
      description: |-
        Lists all orders from the given trading account.

        **Requires access token scope:** `trade_view`
      operationId: trade.orders.detail
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: offset
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: limit
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: clientOrderId
          in: query
          description: The clientOrderId of the order to retrieve
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: dateGte
          in: query
          description: >-
            Return client orders with a `creationDate` that is greater than or
            equal to the given timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: dateLt
          in: query
          description: >-
            Return client orders with a `creationDate` that is less than the
            given timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: status
          in: query
          description: >-
            Return client orders with an order `status` that is equal to the
            given string
          required: false
          style: form
          explode: true
          schema:
            $ref: '#/components/schemas/OrderStatus'
        - $ref: '#/components/parameters/FundingTypeQueryParam'
      responses:
        '200':
          description: An array of orders
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Orders'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
    post:
      summary: Place Order
      description: >-
        Places a new order. There are several types of orders available -
        Market, Limit, TWAP, SteadyPace, and Stop (the latter three optionally
        support a limit price).

        Orders can be funded by your account balance or on margin.

        - When an order with funding type "funded" is placed, funds will be
        reserved from your Go account for the amount of the order. You must have
        sufficient available balance in your Go account to place a funded order.

        - When an order with funding type "margin" is placed, funds will be
        reserved from your Margin Trade Account. You must have sufficient
        available margin (NOP limit) to place a margin order.

        - Stop orders require a `triggerPrice`. When the market reaches the
        trigger price, the order is activated. A stop order without a
        `limitPrice` executes as a market order (stop-market). A stop order with
        a `limitPrice` places a limit order at the specified price (stop-limit).

        - Buy orders can be placed in either base or quote currency. A buy in
        base currency specifies an exact quantity to purchase (e.g., "buy 1
        BTC"), while a buy in quote currency specifies a total spend amount
        (e.g., "buy $10,000 of BTC"). Similarly, sell orders can be placed in
        either base or quote currency.

        - When no `limitPrice` is provided on a base-buy or quote-sell order,
        the system automatically computes a protective marketable limit price
        derived from the current reference price. This prevents orders from
        executing at an unexpectedly unfavorable price. For market (Sweep)
        orders, the computed limit is valid for a short window to avoid leaving
        orders open indefinitely if the market moves away.

        See our [Trade Guide](/docs/trade-overview) for more details on each
        order type and funding options.


        **Requires access token scope:** `trade_trade`
      operationId: trade.orders.add
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewOrderRequest'
        required: true
      responses:
        '200':
          description: An order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          description: Bad request - Invalid order parameters
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Error1'
                  - $ref: '#/components/schemas/ValidationError1'
              examples:
                invalidRequest:
                  summary: Request is invalid
                  value:
                    error: backend:common:invalidRequest
                    errorName: backend:common:invalidRequest
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidArgument:
                  summary: Generic parameter validation failure
                  value:
                    error: backend:common:invalidArgument key=type
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidArgumentWithFieldMessage:
                  summary: >-
                    Parameter validation with structured field and message
                    (subOrderSize)
                  value:
                    error: backend:common:invalidArgument key=subOrderSize
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                    context:
                      errorName: backend:common:invalidArgument
                      field: subOrderSize
                      message: >-
                        Sub-order size must be smaller than the total order
                        quantity.
                invalidLimitPricePrecisionWithContext:
                  summary: >-
                    Limit price exceeds quote precision (structured field and
                    message)
                  value:
                    error: backend:trade:invalidLimitPrice key=limitPrice
                    errorName: backend:trade:invalidLimitPrice
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                    context:
                      errorName: backend:trade:invalidLimitPrice
                      field: limitPrice
                      message: limitPrice exceeds maximum decimal precision of 2
                invalidQuantity:
                  summary: >-
                    Invalid quantity specified (e.g., below minimum or above
                    maximum order size). For marketable limit orders (where the
                    limit price would execute immediately), the message includes
                    additional context explaining that validation is performed
                    at the current market price.
                  value:
                    errorName: backend:trade:invalidQuantity
                    error:
                      currencySymbol: TUSD*
                      message: Amount must be at least 10 TUSD*.
                      minQuantity: '10'
                required:
                  summary: Required field is missing
                  value:
                    error: backend:common:required key=duration
                    errorName: backend:common:required
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidUserIntent:
                  summary: Invalid user intent (quantity vs funds)
                  value:
                    error: sell orders must be placed in base quantity
                    errorName: backend:trade:invalidUserIntent
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidClientOrderID:
                  summary: Client order ID format issue
                  value:
                    error: backend:trade:invalidClientOrderID
                    errorName: backend:trade:invalidClientOrderID
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                unsupportedProduct:
                  summary: Product not supported for trading
                  value:
                    error: backend:trade:unsupportedProduct
                    errorName: backend:trade:unsupportedProduct
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                positiveIntegerRequired:
                  summary: >-
                    A field requires a positive integer such as limitPrice,
                    duration, or interval
                  value:
                    error: backend:common:positiveIntegerRequired
                    errorName: backend:common:positiveIntegerRequired
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                tradingDisabled:
                  summary: All trading is currently disabled
                  value:
                    error: backend:trade:tradingDisabled
                    errorName: backend:trade:tradingDisabled
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                productTradingDisabled:
                  summary: Trading this specific product is disabled
                  value:
                    error: backend:trade:productTradingDisabled
                    errorName: backend:trade:productTradingDisabled
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                productSideTradingDisabled:
                  summary: Trading on this product and side (buy/sell) is disabled
                  value:
                    error: backend:trade:productSideTradingDisabled
                    errorName: backend:trade:productSideTradingDisabled
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                productMarginTradingDisabled:
                  summary: Margin trading for this product is disabled
                  value:
                    error: backend:trade:productMarginTradingDisabled
                    errorName: backend:trade:productMarginTradingDisabled
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                productAlgoStrategyDisabled:
                  summary: Requested algorithm is disabled for this product
                  value:
                    error: backend:trade:productAlgoStrategyDisabled
                    errorName: backend:trade:productAlgoStrategyDisabled
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                kycNotApproved:
                  summary: KYC not approved
                  value:
                    error: backend:trade:KYCNotApproved
                    errorName: backend:trade:KYCNotApproved
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                insufficientFunds:
                  summary: Insufficient funds to place order
                  value:
                    error: backend:trade:insufficientFunds
                    errorName: backend:trade:insufficientFunds
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                marginShortNOP:
                  summary: Short position limit is breached, or would be breached
                  value:
                    error: backend:trade:marginShortNOP
                    errorName: backend:trade:marginShortNOP
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                marginLongNOP:
                  summary: Long position limit is breached, or would be breached
                  value:
                    error: backend:trade:marginLongNOP
                    errorName: backend:trade:marginLongNOP
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                marginTotalShortNOP:
                  summary: >-
                    Account-level total short NOP is breached, or would be
                    breached
                  value:
                    error: backend:trade:marginTotalShortNOP
                    errorName: backend:trade:marginTotalShortNOP
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                willTriggerLiquidation:
                  summary: >-
                    Account is in liquidation, or trade would trigger
                    liquidation
                  value:
                    error: backend:trade:willTriggerLiquidation
                    errorName: backend:trade:willTriggerLiquidation
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                velocityLimitBreached:
                  summary: Trading velocity limit reached
                  value:
                    error: backend:trade:velocityLimitBreached
                    errorName: backend:trade:velocityLimitBreached
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                marginInsufficientCollateral:
                  summary: Insufficient collateral for margin trading
                  value:
                    error: backend:trade:marginInsufficientCollateral
                    errorName: backend:trade:marginInsufficientCollateral
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidStopTriggerPrice:
                  summary: >-
                    Stop-limit trigger price is on the wrong side of the limit
                    price (buy requires triggerPrice <= limitPrice, sell
                    requires triggerPrice >= limitPrice)
                  value:
                    error: backend:trade:invalidStopTriggerPrice key=triggerPrice
                    errorName: backend:trade:invalidStopTriggerPrice
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '409':
          description: Conflict - An identifier or resource is already in use
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderConflictError'
              examples:
                inUse:
                  summary: >-
                    An identifier or resource is already in use (e.g.,
                    clientOrderId)
                  value:
                    error: backend:common:inUse key=clientOrderId
                    errorName: backend:common:inUse
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/orders/{orderId}:
    get:
      summary: Get Order
      description: |-
        Get an order by order ID.

        **Requires access token scope:** `trade_view`
      operationId: trade.orders.order
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: orderId
          in: path
          description: >-
            The id of the order to retrieve. This is the value of the ID field
            returned when the order was created.
          required: true
          example: eee68637-6fb2-4ed5-ad8c-04afdb062b60
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: An order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          description: Bad request - Invalid order ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Invalid order ID format
                  value:
                    error: backend:common:invalidArgument key=orderID
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '404':
          description: Not Found - Order does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                notFound:
                  summary: Order not found
                  value:
                    error: backend:common:notFound key=orderID
                    errorName: backend:common:notFound
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/orders/{orderId}/cancel:
    put:
      summary: Cancel Order
      description: >-
        Submits a request to cancel a previously placed order. The successful
        response confirms the request submission only, not the final order
        cancellation.

        Use the Get Order endpoint or the orders websocket to confirm the final
        order status.


        **Requires access token scope:** `trade_trade`
      operationId: trade.orders.order.cancel
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: orderId
          in: path
          description: >-
            The ID of the order to cancel. This is the value of the ID field
            returned when the order was created.
          required: true
          example: eee68637-6fb2-4ed5-ad8c-04afdb062b60
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request - Invalid request or order cannot be cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidRequest:
                  summary: Request is invalid
                  value:
                    error: backend:common:invalidRequest
                    errorName: backend:common:invalidRequest
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidArgument:
                  summary: Invalid order ID format
                  value:
                    error: backend:common:invalidArgument key=orderID
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                required:
                  summary: Required field is missing
                  value:
                    error: backend:common:required
                    errorName: backend:common:required
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                orderNotCancelable:
                  summary: >-
                    Order cannot be cancelled (completed, cancelled, or error
                    status)
                  value:
                    error: backend:trade:orderNotCancelable
                    errorName: backend:trade:orderNotCancelable
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/trades:
    get:
      summary: List Trades
      description: >-
        Lists trades from the trading account. This will include trades that
        have not yet settled.


        **Requires access token scope:** `trade_view`
      operationId: trade.trades
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: offset
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: limit
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: orderId
          in: query
          description: The orderId of the trades to retrieve
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: uuid
        - name: dateGte
          in: query
          description: >-
            Return trades with a trade date that is greater than or equal to the
            given timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: dateLt
          in: query
          description: >-
            Return trades with a trade date that is less than the given
            timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: creationDateGte
          in: query
          description: >-
            Return trades with a creation date that is greater than or equal to
            the given timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: creationDateLt
          in: query
          description: >-
            Return trades with a creation date that is less than the given
            timestamp
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: isSettled
          in: query
          description: >-
            Return trades based on settlement status. true for settled trades,
            false for unsettled trades.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - $ref: '#/components/parameters/FundingTypeQueryParam'
      responses:
        '200':
          description: An array of trades
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Trades'
        '400':
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Invalid query parameter
                  value:
                    error: backend:common:invalidArgument
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/trades/{tradeId}:
    get:
      summary: Get Trade
      description: |-
        Get the details of a single trade by trade id.

        **Requires access token scope:** `trade_view`
      operationId: trade.trades.trade
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: tradeId
          in: path
          description: The id of the trade to retrieve
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: A trade
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrimeTrade'
        '400':
          description: Bad request - Invalid trade ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Invalid trade ID format
                  value:
                    error: backend:common:invalidArgument key=tradeID
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '404':
          description: Not Found - Trade does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                notFound:
                  summary: Trade not found
                  value:
                    error: backend:common:notFound key=tradeID
                    errorName: backend:common:notFound
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/currencies:
    get:
      summary: List Currencies
      description: |-
        Gets a list of all available currencies.

        **Requires access token scope:** `trade_view`
      operationId: trade.currencies
      tags:
        - Products
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: An array of currencies
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Currencies'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts/{accountId}/products:
    get:
      summary: List Products
      description: |-
        Gets a list of all available products.

        **Requires access token scope:** `trade_view`
      operationId: trade.products
      tags:
        - Products
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: An array of products
          content:
            application/json:
              schema:
                required:
                  - data
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Products'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts/{accountId}/products/{product}/level1:
    get:
      summary: Get Level1 Order Book
      description: |-
        Gets a snapshot of the level1 order book for product.

        **Requires access token scope:** `trade_view`
      operationId: trade.products.product.level1
      tags:
        - Order Book
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: product
          in: path
          description: The name of the product
          example: BTC-USD
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: A Level1OrderBookSnapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Level1OrderBookSnapshot'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts/{accountId}/products/{product}/level2:
    get:
      summary: Get Level2 Order Book
      description: Gets a snapshot of the order book for product
      operationId: products.product.level2
      tags:
        - Order Book
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: product
          in: path
          description: The name of the product
          example: BTC-USD
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: includeCumulative
          in: query
          required: false
          description: >
            Include `cumulative size` in each price level, which is the running
            total of `size` from the top of that side through the level.

            When `true`, each level is `[price, size, cumulativeSize]` instead
            of `[price, size]`.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: A Level2OrderBookSnapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Level2OrderBookSnapshot'
              examples:
                levelsPriceAndSize:
                  summary: Default — each level is [price, size]
                  description: Returned when default parameters are used.
                  value:
                    time: '2020-01-01T09:35:26.465Z'
                    product: TBTC-TUSD*
                    bids:
                      - - '7001.10'
                        - '1.5084'
                      - - '7000.50'
                        - '0.8000'
                    asks:
                      - - '7002.55'
                        - '2.7524'
                      - - '7003.00'
                        - '1.2000'
                levelsWithCumulativeSize:
                  summary: >-
                    With cumulative — each level is [price, size,
                    cumulativeSize]
                  description: Returned when `includeCumulative` is true.
                  value:
                    time: '2020-01-01T09:35:26.465Z'
                    product: TBTC-TUSD*
                    bids:
                      - - '7001.10'
                        - '1.5084'
                        - '1.5084'
                      - - '7000.50'
                        - '0.8000'
                        - '2.3084'
                    asks:
                      - - '7002.55'
                        - '2.7524'
                        - '2.7524'
                      - - '7003.00'
                        - '1.2000'
                        - '3.9524'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/currencies:
    get:
      summary: List available currencies for collateral
      description: Returns the list of currencies that are available for use as collateral.
      operationId: trade.margin.collateral.currencies.list
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: A list of available currencies for collateral
          content:
            application/json:
              schema:
                type: object
                properties:
                  availableCurrencies:
                    type: array
                    description: >-
                      Returns a Currency object that consists of the ID, Name,
                      Symbol, Increment, and PlatformSymbol for the instrument
                    items:
                      $ref: '#/components/schemas/Currency'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/transferred:
    get:
      summary: List transferred collateral
      description: >-
        Returns the balance of assets deposited as collateral for the specified
        account.
      operationId: trade.margin.collateral.transferred.list
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: A list of transferred collateral
          content:
            application/json:
              schema:
                type: object
                required:
                  - balances
                properties:
                  balances:
                    type: array
                    items:
                      type: object
                      required:
                        - currency
                        - quantity
                        - balanceValue
                      properties:
                        currency:
                          type: string
                          description: Symbol of the collateral asset
                        quantity:
                          type: string
                          description: >-
                            Number representing the balance for the specified
                            collateral
                        balanceValue:
                          allOf:
                            - $ref: '#/components/schemas/Amount3'
                            - type: object
                              description: >-
                                Returns the value of the collateral. Has 2
                                fields denoting the currency used and the actual
                                value.
                example:
                  balances:
                    - currency: BTC
                      quantity: '2'
                      balanceValue:
                        quantity: '1000000'
                        currency: USD
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/risksettings:
    get:
      summary: Get margin risk settings
      description: Returns the margin risk settings for the specified account.
      operationId: trade.margin.risksettings.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: Margin risk settings
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalShortPositionLimit:
                    allOf:
                      - $ref: '#/components/schemas/Amount3'
                      - type: object
                        description: >-
                          Quantity representing the total NOP limit across all
                          currencies. It sets a limit that is compared to the
                          total short position across all currencies (eg.
                          1000000). Currency represents the currency that the
                          quantity is valued in (eg. USD)
                  marginCallPercentage:
                    description: >-
                      Number representing the percentage at which a margin call
                      will be initiated if the margin percentage falls below
                      this number. It is in decimal form (eg. 0.8 to mean 80%)
                    type: string
                    pattern: ^[0-9]+(\.[0-9]+)?$
                    example: '0.8'
                  liquidationThresholdPercentage:
                    description: >-
                      Number representing the liquidation threshold percentage
                      at which positions will be automatically liquidated if the
                      margin utilization exceeds this level. It is in decimal
                      form (eg. 1.2 to mean 120%)
                    type: string
                    pattern: ^[0-9]+(\.[0-9]+)?$
                    example: '1.2'
                  marginRequirementPercentage:
                    description: >-
                      Number representing the margin requirement percentage
                      which is used with the NOP to determine the margin
                      required. It is in decimal form (eg.0.2 for 20%)
                    type: string
                    pattern: ^[0-9]+(\.[0-9]+)?$
                    example: '0.2'
                  minimumTransferredCollateral:
                    allOf:
                      - $ref: '#/components/schemas/Amount3'
                      - type: object
                        description: >-
                          Quantity representing the minimum transferred
                          collateral value required for margin trading. Currency
                          represents the currency that the quantity is valued in
                          (eg. USD)
                example:
                  totalShortPositionLimit:
                    quantity: '1000000'
                    currency: USD
                  marginCallPercentage: '1.1'
                  liquidationThresholdPercentage: '1.2'
                  marginRequirementPercentage: '0.2'
                  minimumTransferredCollateral:
                    quantity: '50000'
                    currency: USD
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/netopenpositions:
    get:
      summary: Get net open margin positions
      description: Returns the net open positions for the specified account.
      operationId: trade.margin.netopenpositions.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: currency
          in: query
          required: false
          description: >-
            Filters on provided currencies if provided, otherwise returns net
            open positions for all currencies
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Net open positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  netOpenPositions:
                    type: array
                    items:
                      $ref: '#/components/schemas/MarginNetOpenPosition'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/netopenpositions/snapshot:
    get:
      summary: Get net open positions snapshot
      description: >-
        Returns the net open positions snapshot as of a given time for the
        specified account.
      operationId: trade.margin.netopenpositions.snapshot.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: transactionDateLt
          in: query
          required: true
          description: >-
            Returns unsettled positions based on transactions that occurred
            before this timestamp.
          schema:
            type: string
            format: date-time
          example: '2025-12-02T00:00:00.000Z'
        - name: currency
          in: query
          required: false
          explode: true
          description: >-
            Filter results to specific currencies. If omitted, returns unsettled
            positions for all currencies with non-zero balances.
          schema:
            type: array
            items:
              type: string
          example:
            - BTC
            - ETH
        - name: useFutureTransfers
          in: query
          required: false
          description: >-
            If true, applies position transfers sent after transactionDateLt to
            cover short positions as of transactionDateLt.
          schema:
            type: boolean
            default: false
          example: true
      responses:
        '200':
          description: Net open positions snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarginGetNetOpenPositionsSnapshotResponse'
        '400':
          description: Bad request - Invalid or missing query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidTransactionDateLt:
                  summary: >-
                    transactionDateLt is missing or not a valid RFC3339
                    timestamp
                  value:
                    error: backend:common:invalidArgument key=transactionDateLt
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidUseFutureTransfers:
                  summary: useFutureTransfers is not a valid boolean
                  value:
                    error: backend:common:invalidArgument key=useFutureTransfers
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/activity:
    get:
      summary: Get positions activity
      description: >-
        Returns unsettled fill legs and position transfers that make up the
        unsettled position as of a specified historical time range.
      operationId: trade.margin.positions.activity.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: transactionDateGte
          in: query
          required: false
          description: >-
            Return activity with transactionDate greater than or equal to this
            timestamp.
          schema:
            type: string
            format: date-time
          example: '2025-12-01T00:00:00.000Z'
        - name: transactionDateLt
          in: query
          required: false
          description: Return activity with transactionDate less than this timestamp.
          schema:
            type: string
            format: date-time
          example: '2025-12-02T00:00:00.000Z'
        - name: currency
          in: query
          required: false
          explode: true
          description: >-
            Filter by currencies. If omitted, returns activity for all
            currencies.
          schema:
            type: array
            items:
              type: string
          example:
            - BTC
            - ETH
        - name: type
          in: query
          required: false
          explode: true
          description: Filter by activity type.
          schema:
            type: array
            items:
              type: string
              enum:
                - fill-base-leg
                - fill-quote-leg
                - position-transfer
          example:
            - fill-base-leg
            - position-transfer
        - name: offset
          in: query
          required: false
          description: Pagination offset.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          required: false
          description: Number of items per page.
          schema:
            type: integer
            default: 500
            maximum: 500
      responses:
        '200':
          description: Positions activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarginGetPositionsActivityResponse'
        '400':
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidType:
                  summary: Invalid activity type value
                  value:
                    error: backend:common:invalidArgument key=type
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidDate:
                  summary: Date parameter is not a valid RFC3339 timestamp
                  value:
                    error: backend:common:invalidArgument key=transactionDateGte
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidLimit:
                  summary: Limit is not a valid non-negative integer
                  value:
                    error: backend:common:invalidArgument key=limit
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/netopenpositionlimits:
    get:
      summary: Get net open margin position limits
      description: >-
        Returns the asset-specific net open position limits for the specified
        account.
      operationId: trade.margin.netopenpositionlimits.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: Net open position limits
          content:
            application/json:
              schema:
                type: object
                properties:
                  netOpenPositionLimits:
                    type: array
                    items:
                      $ref: '#/components/schemas/MarginNetOpenPositionLimit'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/riskprofile:
    get:
      summary: Get margin risk profile
      description: >-
        Runs margin calculations and returns the margin risk profile for the
        specified account.
      operationId: trade.margin.riskprofile.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      responses:
        '200':
          description: Margin risk profile
          content:
            application/json:
              schema:
                type: object
                required:
                  - riskProfile
                properties:
                  riskProfile:
                    type: object
                    required:
                      - netOpenPosition
                      - transferredCollateral
                      - unrealizedPnL
                      - marginBalance
                    properties:
                      netOpenPosition:
                        allOf:
                          - $ref: '#/components/schemas/Amount3'
                          - type: object
                            description: >-
                              Quantity representing the total NOP limit across
                              all currencies. It sets a limit that is compared
                              to the total short position across all currencies
                              (eg. 1000000). Currency represents the currency
                              that the quantity is valued in (eg. USD)
                      transferredCollateral:
                        allOf:
                          - $ref: '#/components/schemas/Amount3'
                          - type: object
                            description: >-
                              Quantity representing the notional value of all
                              collateral balances. This may change as the value
                              of collateral changes with market movements.
                              Currency represents the notional currency (eg.
                              USD)
                      unrealizedPnL:
                        allOf:
                          - $ref: '#/components/schemas/Amount3'
                          - type: object
                            description: >-
                              Quantity representing the sum of unrealized profit
                              and loss across all per-asset open positions.
                              Currency represents the notional currency (eg.
                              USD)
                      marginBalance:
                        allOf:
                          - $ref: '#/components/schemas/Amount3'
                          - type: object
                            description: >-
                              Quantity representing the sum of the
                              transferredCollateral and unrealizedPnL. Currency
                              represents the notional currency (eg. USD)
                      marginRequirement:
                        allOf:
                          - $ref: '#/components/schemas/Amount3'
                          - type: object
                            description: >-
                              Quantity representing the marginBalance required
                              to continue trading without risk of margin call or
                              liquidation. If margin requirement is not present,
                              either netOpenPosition is zero or there is no
                              requirement. Currency represents the notional
                              currency (eg. USD)
                      marginUtilizationPercentage:
                        type: string
                        pattern: ^[0-9]+(\.[0-9]+)?$
                        nullable: true
                        example: '0.85'
                        description: >-
                          Quantity representing the ratio of marginRequirement
                          to marginBalance, measured directly against
                          liquidation and margin call thresholds. This is null
                          if there is no margin requirement.
                example:
                  riskProfile:
                    netOpenPosition:
                      quantity: '1000000'
                      currency: USD
                    transferredCollateral:
                      quantity: '500000'
                      currency: USD
                    unrealizedPnL:
                      quantity: '200000'
                      currency: USD
                    marginBalance:
                      quantity: '700000'
                      currency: USD
                    marginRequirement:
                      quantity: '600000'
                      currency: USD
                    marginUtilizationPercentage: '0.85'
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/transfer:
    post:
      summary: Transfer collateral for margin
      description: Transfers collateral for the specified account.
      operationId: trade.margin.collateral.transfer
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                currency:
                  type: string
                quantity:
                  type: string
              example:
                currency: BTC
                quantity: '2'
      responses:
        '200':
          description: Collateral transfer response
          content:
            application/json:
              schema:
                type: object
                required:
                  - currency
                  - quantity
                  - balanceValue
                properties:
                  transferId:
                    type: string
                    format: uuid
                    description: The margin transfer ID (UUID) from Trade Falcon
                  currency:
                    type: string
                    description: Symbol of the collateral asset
                  quantity:
                    type: string
                    description: >-
                      Number representing the balance for the specified
                      collateral
                  balanceValue:
                    allOf:
                      - $ref: '#/components/schemas/Amount3'
                      - type: object
                        description: Returns the value of the collateral.
                example:
                  transferId: 2bf68bb7-513d-40af-9fc9-249060c3c7ac
                  currency: BTC
                  quantity: '2'
                  balanceValue:
                    quantity: '1000000'
                    currency: USD
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidCurrency:
                  summary: Currency not supported for collateral
                  value:
                    error: currency not supported
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidQuantity:
                  summary: Invalid quantity format
                  value:
                    error: invalid quantity
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                insufficientFunds:
                  summary: Insufficient balance in trust account to transfer collateral
                  value:
                    error: backend:trade:insufficientFunds
                    errorName: backend:trade:insufficientFunds
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/transfer:
    post:
      summary: Transfer margin position
      description: >-
        Transfers the amount specified to cover margin position for the
        specified account.
      operationId: trade.margin.positions.transfer
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                currency:
                  type: string
                quantity:
                  type: string
              example:
                currency: BTC
                quantity: '2'
      responses:
        '200':
          description: Margin positions transfer response
          content:
            application/json:
              schema:
                type: object
                required:
                  - balances
                properties:
                  balances:
                    type: array
                    description: List of position transfer balances
                    items:
                      type: object
                      required:
                        - currency
                        - quantity
                        - balanceValue
                      properties:
                        transferId:
                          type: string
                          format: uuid
                          description: The margin transfer ID (UUID) from Trade Falcon
                        currency:
                          type: string
                          description: Currency symbol
                        quantity:
                          type: string
                          description: Net position after the position transfer
                        balanceValue:
                          allOf:
                            - $ref: '#/components/schemas/Amount3'
                            - type: object
                              description: >-
                                Returns the value of the margin position. Has 2
                                fields denoting the currency used and the actual
                                value.
                example:
                  balances:
                    - transferId: 3af68cc8-624e-41b0-a0ca-350171d4c8bd
                      currency: BTC
                      quantity: '2'
                      balanceValue:
                        quantity: '1000000'
                        currency: USD
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidCurrency:
                  summary: Currency not supported
                  value:
                    error: currency not supported
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidQuantity:
                  summary: Quantity is not a positive decimal
                  value:
                    error: invalid quantity
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                insufficientFunds:
                  summary: Insufficient balance in trust account to cover the position
                  value:
                    error: backend:trade:insufficientFunds
                    errorName: backend:trade:insufficientFunds
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/cover:
    post:
      summary: Cover all short margin positions
      description: >-
        Transfers the exact amount to cover all short margin positions for the
        specified account.
      operationId: trade.margin.positions.cover
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    currencies:
                      type: array
                      items:
                        type: string
                  example:
                    currencies:
                      - BTC
                - type: object
                  properties:
                    all:
                      type: boolean
                  example:
                    all: true
      responses:
        '200':
          description: Margin positions cover response
          content:
            application/json:
              schema:
                type: object
                properties:
                  balances:
                    type: array
                    items:
                      type: object
                      properties:
                        currency:
                          type: string
                          description: Currency symbol
                        quantity:
                          type: string
                          description: Net position after the position transfer
                        balanceValue:
                          allOf:
                            - $ref: '#/components/schemas/Amount3'
                            - type: object
                              description: >-
                                Returns the value of the margin position. Has 2
                                fields denoting the currency used and the actual
                                value.
                example:
                  balances:
                    - currency: BTC
                      quantity: '2'
                      balanceValue:
                        quantity: '1000000'
                        currency: USD
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Must provide currencies list or all=true
                  value:
                    error: backend:common:invalidArgument key=currencies
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidCurrency:
                  summary: A currency in the list is not supported
                  value:
                    error: currency not supported
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/close:
    post:
      summary: Close all margin positions
      description: >-
        Initiates an asynchronous process to close margin positions by executing
        market trades to net positions to zero. Unlike 'cover' which transfers
        assets, 'close' creates trade orders to sell or buy assets. Returns
        immediately with a request ID that can be used to track progress via the
        close position requests endpoints.
      operationId: trade.margin.positions.close
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    currencies:
                      type: array
                      items:
                        type: string
                  example:
                    currencies:
                      - BTC
                - type: object
                  properties:
                    all:
                      type: boolean
                  example:
                    all: true
      responses:
        '202':
          description: >-
            Returns an acknowledgement that the action was received. Async
            process will kick off to perform trades to close out open positions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClosePositionRequestResponse'
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Must provide currencies list or all=true
                  value:
                    error: backend:common:invalidArgument key=currencies
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                noPositionsToClose:
                  summary: No open positions exist to close for specified currencies
                  value:
                    error: no positions to close
                    errorName: backend:common:invalidRequest
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '409':
          description: >-
            Conflict - A pending close position request already exists for this
            account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                inUse:
                  summary: Pending close position order already exists
                  value:
                    error: pending close position order already exists
                    errorName: backend:common:inUse
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/close/requests:
    get:
      summary: List close position requests
      description: >-
        List all close position requests for an account with optional filters on
        status and creation date.
      operationId: trade.margin.positions.close.requests.list
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: offset
          in: query
          required: false
          description: Pagination offset.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          required: false
          description: Number of items per page.
          schema:
            type: integer
            default: 500
            maximum: 500
        - name: status
          in: query
          required: false
          description: >-
            Filter by close position request status. Multiple statuses can be
            provided as comma-separated values.
          schema:
            type: string
            enum:
              - pending
              - in_progress
              - completed
              - failed
              - cancelled
        - name: dateGte
          in: query
          description: >-
            Return close position requests with a `creationDate` that is greater
            than or equal to the given timestamp.
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
        - name: dateLt
          in: query
          description: >-
            Return close position requests with a `creationDate` that is less
            than the given timestamp.
          required: false
          style: form
          explode: true
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: List of close position requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClosePositionRequestsResponse'
        '400':
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidStatus:
                  summary: Invalid status filter value
                  value:
                    error: backend:common:invalidArgument key=status
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidDate:
                  summary: Date parameter is not a valid RFC3339 timestamp
                  value:
                    error: backend:common:invalidArgument key=dateGte
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidLimit:
                  summary: Limit is not a valid non-negative integer
                  value:
                    error: backend:common:invalidArgument key=limit
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/close/requests/{closePositionRequestID}:
    get:
      summary: Get close position request details
      description: Get details of a specific close position request.
      operationId: trade.margin.positions.close.requests.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: closePositionRequestID
          in: path
          required: true
          description: The ID of the close position request
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Close position request details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClosePositionRequestResponse'
        '400':
          description: Bad request - Invalid path parameter format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Malformed UUID for closePositionRequestID
                  value:
                    error: backend:common:invalidArgument key=closePositionRequestID
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '404':
          description: Not Found - Close position request does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                notFound:
                  summary: Close position request not found
                  value:
                    error: backend:common:notFound key=closePositionRequestID
                    errorName: backend:common:notFound
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/positions/close/requests/{closePositionRequestID}/orders:
    get:
      summary: List orders for close position request
      description: List orders associated with a close position request.
      operationId: trade.margin.positions.close.requests.orders.list
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: closePositionRequestID
          in: path
          required: true
          description: The ID of the close position request
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Returns orders associated with the close position request. Returns
            an empty array if no orders exist yet — this endpoint does not
            validate that the close-position request itself exists. Use GET
            .../close/requests/{closePositionRequestID} to confirm the request
            exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClosePositionRequestOrdersResponse'
        '400':
          description: Bad request - Invalid path parameter format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidArgument:
                  summary: Malformed UUID for closePositionRequestID
                  value:
                    error: backend:common:invalidArgument key=closePositionRequestID
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/withdrawalrequests:
    post:
      summary: Create collateral withdrawal request
      description: Create a collateral withdrawal request.
      operationId: trade.margin.collateral.withdrawalrequests.create
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - currency
                - quantity
              properties:
                currency:
                  type: string
                  description: Currency symbol for withdrawal
                quantity:
                  type: string
                  format: decimal
                  description: Amount to withdraw
              example:
                currency: BTC
                quantity: '0.5'
      responses:
        '202':
          description: Collateral withdrawal request accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollateralWithdrawalRequestResponse'
        '400':
          description: Bad request - Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidCurrency:
                  summary: Currency not supported for collateral withdrawal
                  value:
                    error: currency not supported
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                invalidQuantity:
                  summary: Invalid quantity format
                  value:
                    error: invalid quantity
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
                insufficientFunds:
                  summary: Withdrawal amount exceeds available collateral balance
                  value:
                    error: insufficient collateral balance
                    errorName: backend:trade:insufficientFunds
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '409':
          description: >-
            Conflict - A pending withdrawal request already exists for this
            currency
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                inUse:
                  summary: >-
                    Pending collateral withdrawal request already exists for
                    this currency
                  value:
                    error: backend:common:inUse key=Currency
                    errorName: backend:common:inUse
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '422':
          $ref: '#/components/responses/MalformedJSONError'
        '429':
          $ref: '#/components/responses/RateLimitError'
        '500':
          $ref: '#/components/responses/internalServerError1'
    get:
      summary: List collateral withdrawal requests
      description: List all collateral withdrawal requests for an account.
      operationId: trade.margin.collateral.withdrawalrequests.list
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: offset
          in: query
          required: false
          description: Pagination offset
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          required: false
          description: Number of items per page
          schema:
            type: integer
            default: 50
            maximum: 100
      responses:
        '200':
          description: List of collateral withdrawal requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollateralWithdrawalRequestsResponse'
        '400':
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidStatus:
                  summary: Invalid status filter value
                  value:
                    error: backend:common:invalidArgument key=status
                    errorName: backend:common:invalidArgument
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/withdrawalrequests/{requestID}:
    get:
      summary: Get collateral withdrawal request
      description: Get details of a specific collateral withdrawal request.
      operationId: trade.margin.collateral.withdrawalrequests.get
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: requestID
          in: path
          required: true
          description: The ID of the withdrawal request
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Collateral withdrawal request details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollateralWithdrawalRequestResponse'
        '400':
          description: Bad request - Invalid path parameter format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidParameters:
                  summary: Malformed UUID for requestID
                  value:
                    error: 'invalid UUID length: 10'
                    errorName: backend:externalAPI:invalidParameters
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '404':
          description: Not Found - Collateral withdrawal request does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                notFound:
                  summary: Collateral withdrawal request not found
                  value:
                    error: backend:common:notFound key=requestID
                    errorName: backend:common:notFound
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/prime/trading/v1/accounts/{accountId}/margin/collateral/withdrawalrequests/{requestID}/cancel:
    patch:
      summary: Cancel collateral withdrawal request
      description: Cancel a collateral withdrawal request.
      operationId: trade.margin.collateral.withdrawalrequests.cancel
      tags:
        - Margin
      parameters:
        - $ref: '#/components/parameters/AccountIdPathParam'
        - name: requestID
          in: path
          required: true
          description: The ID of the withdrawal request
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Updated collateral withdrawal request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollateralWithdrawalRequestResponse'
        '400':
          description: Bad request - Invalid path parameter format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error1'
              examples:
                invalidParameters:
                  summary: Malformed UUID for requestID
                  value:
                    error: 'invalid UUID length: 10'
                    errorName: backend:externalAPI:invalidParameters
                    reqId: unk-nqo97l23l2ofpvgkbb8z
        '401':
          $ref: '#/components/responses/UnauthorizedError1'
        '403':
          $ref: '#/components/responses/ForbiddenError1'
        '500':
          $ref: '#/components/responses/internalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/requests/{stakingRequestId}:
    delete:
      tags:
        - Staking Request
      summary: Cancel staking request
      description: Cancel an existing staking request.
      operationId: v1.staking.request.cancel
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/pathStakingRequestId'
      responses:
        '200':
          description: Successful Cancellation of Staking Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestSchemas'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/requests/{stakingRequestId}/retry:
    post:
      tags:
        - Staking Request
      summary: Retry staking request
      description: Try to resubmit the failed staking transaction
      operationId: v1.staking.request.retry
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathStakingRequestId'
      responses:
        '202':
          description: Successful retried Staking Request Accepted and Needs Approval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestSchemas'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/requests:
    post:
      tags:
        - Staking Request
      summary: Create staking request
      description: Create a staking request of type STAKE or UNSTAKE.
      operationId: v1.staking.request.create
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AdaStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AdaUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AptStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AptUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AsiStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AsiUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/KavacosmosStakingRequestPOSTBody'
                - $ref: '#/components/schemas/KavacosmosUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AtomStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AtomUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AtomClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/AtomSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/AvaxCStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AvaxCUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/AvaxPStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BabyStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BabyUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BeraStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BeraUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BldStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BldUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BldClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/BldSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/BscStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BscUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BtcStakingRequestPOSTBody'
                - $ref: '#/components/schemas/BtcUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CoredaoStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CoredaoUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CoreumStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CoreumUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CoreumClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/CoreumSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/CosmosLikeUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CronosStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CronosUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CronosClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/CronosSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/CsprStakingRequestPOSTBody'
                - $ref: '#/components/schemas/CsprUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/DotStakingRequestPOSTBody'
                - $ref: '#/components/schemas/DotUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/EigenStakingRequestPOSTBody'
                - $ref: '#/components/schemas/EigenUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/EthStakingRequestPOSTBody'
                - $ref: '#/components/schemas/EthUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/EthUnStakingRequestPOSTBodyPrePectra'
                - $ref: '#/components/schemas/FlrPStakingRequestPOSTBody'
                - $ref: '#/components/schemas/HashStakingRequestPOSTBody'
                - $ref: '#/components/schemas/HashUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/InjectiveStakingRequestPOSTBody'
                - $ref: '#/components/schemas/InjectiveUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/InjectiveClaimRewardsRequestPOSTBody'
                - $ref: >-
                    #/components/schemas/InjectiveSwitchValidatorsRequestPOSTBody
                - $ref: '#/components/schemas/MaticStakingRequestPOSTBody'
                - $ref: '#/components/schemas/MaticUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/NearStakingRequestPOSTBody'
                - $ref: '#/components/schemas/NearUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/OgStakingRequestPOSTBody'
                - $ref: '#/components/schemas/OgUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/OsmoStakingRequestPOSTBody'
                - $ref: '#/components/schemas/OsmoUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/OsmoClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/OsmoSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/PolStakingRequestPOSTBody'
                - $ref: '#/components/schemas/PolUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/PolyxStakingRequestPOSTBody'
                - $ref: '#/components/schemas/PolyxUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/PolyxSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/RethRocketStakingRequestPOSTBody'
                - $ref: '#/components/schemas/RethRocketUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SeiStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SeiUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SeiClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/SeiSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/SeiEvmStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SeiEvmUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SeiEvmSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/SolStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SolUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SolClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/SomiStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SomiUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SomiClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/SomiSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/StxStakingRequestPOSTBody'
                - $ref: '#/components/schemas/StxUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SuiStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SuiUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SuiClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/SuiWalStakingRequestPOSTBody'
                - $ref: '#/components/schemas/SuiWalUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TaoStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TaoUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TaoSwitchValidatorRequestPOSTBody'
                - $ref: '#/components/schemas/TaoSwitchNetuidRequestPOSTBody'
                - $ref: '#/components/schemas/TiaStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TiaUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TiaClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/TiaSwitchValidatorsRequestPOSTBody'
                - $ref: '#/components/schemas/TonStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TonUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TrxStakingRequestPOSTBody'
                - $ref: '#/components/schemas/TrxUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/VetStakingRequestPOSTBody'
                - $ref: '#/components/schemas/VetUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WctStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WctUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WethStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WethUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WflrStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WflrUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/WflrClaimRewardsRequestPOSTBody'
                - $ref: '#/components/schemas/XdcStakingRequestPOSTBody'
                - $ref: '#/components/schemas/XdcUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/ZetaStakingRequestPOSTBody'
                - $ref: '#/components/schemas/ZetaUnStakingRequestPOSTBody'
                - $ref: '#/components/schemas/StoryStakingRequestPOSTBody'
                - $ref: '#/components/schemas/StoryUnStakingRequestPOSTBody'
            examples:
              AdaStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AdaStakingRequestPOSTBodyExample'
              AdaUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AdaUnStakingRequestPOSTBodyExample'
              AptStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AptStakingRequestPOSTBodyExample'
              AptUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AptUnStakingRequestPOSTBodyExample'
              AsiStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AsiStakingRequestPOSTBodyExample'
              AsiUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AsiUnStakingRequestPOSTBodyExample'
              KavacosmosStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/KavacosmosStakingRequestPOSTBodyExample'
              KavacosmosUnStakingRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/KavacosmosUnStakingRequestPOSTBodyExample
              AtomStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AtomStakingRequestPOSTBodyExample'
              AtomUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AtomUnStakingRequestPOSTBodyExample'
              AtomClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/AtomClaimRewardsRequestPOSTBodyExample'
              AtomSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/AtomSwitchValidatorRequestPOSTBodyExample
              AvaxCStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AvaxCStakingRequestPOSTBodyExample'
              AvaxCUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AvaxCUnStakingRequestPOSTBodyExample'
              AvaxPStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/AvaxPStakingRequestPOSTBodyExample'
              BabyStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BabyStakingRequestPOSTBodyExample'
              BabyUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BabyUnStakingRequestPOSTBodyExample'
              BeraStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BeraStakingRequestPOSTBodyExample'
              BeraUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BeraUnStakingRequestPOSTBodyExample'
              BldStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BldStakingRequestPOSTBodyExample'
              BldUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BldUnStakingRequestPOSTBodyExample'
              BldClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/BldClaimRewardsRequestPOSTBodyExample'
              BldSwitchValidatorRequestPOSTBodyExample:
                $ref: '#/components/examples/BldSwitchValidatorRequestPOSTBodyExample'
              BscStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BscStakingRequestPOSTBodyExample'
              BscUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BscUnStakingRequestPOSTBodyExample'
              BtcStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BtcStakingRequestPOSTBodyExample'
              BtcUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/BtcUnStakingRequestPOSTBodyExample'
              CoredaoStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CoredaoStakingRequestPOSTBodyExample'
              CoredaoUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CoredaoUnStakingRequestPOSTBodyExample'
              CoreumStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CoreumStakingRequestPOSTBodyExample'
              CoreumUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CoreumUnStakingRequestPOSTBodyExample'
              CoreumClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/CoreumClaimRewardsRequestPOSTBodyExample'
              CoreumSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/CoreumSwitchValidatorRequestPOSTBodyExample
              CronosStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CronosStakingRequestPOSTBodyExample'
              CronosUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CronosUnStakingRequestPOSTBodyExample'
              CronosClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/CronosClaimRewardsRequestPOSTBodyExample'
              CronosSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/CronosSwitchValidatorRequestPOSTBodyExample
              CsprStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CsprStakingRequestPOSTBodyExample'
              CsprUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/CsprUnStakingRequestPOSTBodyExample'
              DotStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/DotStakingRequestPOSTBodyExample'
              DotUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/DotUnStakingRequestPOSTBodyExample'
              EigenStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/EigenStakingRequestPOSTBodyExample'
              EigenUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/EigenUnStakingRequestPOSTBodyExample'
              EthStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/EthStakingRequestPOSTBodyExample'
              EthUnStakingRequestPOSTBodyExamplePectra:
                $ref: '#/components/examples/EthUnStakingRequestPOSTBodyExamplePectra'
              EthUnStakingRequestPOSTBodyExamplePrePectraSingle:
                $ref: >-
                  #/components/examples/EthUnStakingRequestPOSTBodyExamplePrePectraSingle
              EthUnStakingRequestPOSTBodyExamplePrePectraMultiple:
                $ref: >-
                  #/components/examples/EthUnStakingRequestPOSTBodyExamplePrePectraMultiple
              FlrPStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/FlrPStakingRequestPOSTBodyExample'
              HashStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/HashStakingRequestPOSTBodyExample'
              HashUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/HashUnStakingRequestPOSTBodyExample'
              InjectiveStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/InjectiveStakingRequestPOSTBodyExample'
              InjectiveUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/InjectiveUnStakingRequestPOSTBodyExample'
              InjectiveClaimRewardsRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/InjectiveClaimRewardsRequestPOSTBodyExample
              InjectiveSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/InjectiveSwitchValidatorRequestPOSTBodyExample
              MaticStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/MaticStakingRequestPOSTBodyExample'
              MaticUnstakingRequestPOSTBodyExample:
                $ref: '#/components/examples/MaticUnstakingRequestPOSTBodyExample'
              NearStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/NearStakingRequestPOSTBodyExample'
              NearUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/NearUnStakingRequestPOSTBodyExample'
              OsmoStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/OsmoStakingRequestPOSTBodyExample'
              OsmoUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/OsmoUnStakingRequestPOSTBodyExample'
              OsmoClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/OsmoClaimRewardsRequestPOSTBodyExample'
              OsmoSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/OsmoSwitchValidatorRequestPOSTBodyExample
              PolStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/PolStakingRequestPOSTBodyExample'
              PolUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/PolUnStakingRequestPOSTBodyExample'
              PolyxStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/PolyxStakingRequestPOSTBodyExample'
              PolyxMultiValidatorStakingRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/PolyxMultiValidatorStakingRequestPOSTBodyExample
              PolyxUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/PolyxUnStakingRequestPOSTBodyExample'
              PolyxSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/PolyxSwitchValidatorRequestPOSTBodyExample
              RethRocketStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/RethRocketStakingRequestPOSTBodyExample'
              RethRocketUnStakingRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/RethRocketUnStakingRequestPOSTBodyExample
              SeiStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiStakingRequestPOSTBodyExample'
              SeiUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiUnStakingRequestPOSTBodyExample'
              SeiClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiClaimRewardsRequestPOSTBodyExample'
              SeiSwitchValidatorRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiSwitchValidatorRequestPOSTBodyExample'
              SeiEvmStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiEvmStakingRequestPOSTBodyExample'
              SeiEvmUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SeiEvmUnStakingRequestPOSTBodyExample'
              SeiEvmSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/SeiEvmSwitchValidatorRequestPOSTBodyExample
              SolStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SolStakingRequestPOSTBodyExample'
              SolUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SolUnStakingRequestPOSTBodyExample'
              SomiStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SomiStakingRequestPOSTBodyExample'
              SomiUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SomiUnStakingRequestPOSTBodyExample'
              SomiClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/SomiClaimRewardsRequestPOSTBodyExample'
              SomiSwitchValidatorRequestPOSTBodyExample:
                $ref: >-
                  #/components/examples/SomiSwitchValidatorRequestPOSTBodyExample
              StxStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/StxStakingRequestPOSTBodyExample'
              StxUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/StxUnStakingRequestPOSTBodyExample'
              SuiStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SuiStakingRequestPOSTBodyExample'
              SuiUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SuiUnStakingRequestPOSTBodyExample'
              SuiWalStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SuiWalStakingRequestPOSTBodyExample'
              SuiWalUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/SuiWalUnStakingRequestPOSTBodyExample'
              TaoStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TaoStakingRequestPOSTBodyExample'
              TaoUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TaoUnStakingRequestPOSTBodyExample'
              TaoSwitchValidatorRequestPOSTBodyExample:
                $ref: '#/components/examples/TaoSwitchValidatorRequestPOSTBodyExample'
              TaoSwitchNetuidRequestPOSTBodyExample:
                $ref: '#/components/examples/TaoSwitchNetuidRequestPOSTBodyExample'
              TiaStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TiaStakingRequestPOSTBodyExample'
              TiaUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TiaUnStakingRequestPOSTBodyExample'
              TiaClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/TiaClaimRewardsRequestPOSTBodyExample'
              TiaSwitchValidatorRequestPOSTBodyExample:
                $ref: '#/components/examples/TiaSwitchValidatorRequestPOSTBodyExample'
              TonStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TonStakingRequestPOSTBodyExample'
              TonUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TonUnStakingRequestPOSTBodyExample'
              TrxStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TrxStakingRequestPOSTBodyExample'
              TrxUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/TrxUnStakingRequestPOSTBodyExample'
              VetStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/VetStakingRequestPOSTBodyExample'
              VetUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/VetUnStakingRequestPOSTBodyExample'
              WctStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WctStakingRequestPOSTBodyExample'
              WctUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WctUnStakingRequestPOSTBodyExample'
              WethStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WethStakingRequestPOSTBodyExample'
              WethUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WethUnStakingRequestPOSTBodyExample'
              WflrStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WflrStakingRequestPOSTBodyExample'
              WflrUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/WflrUnStakingRequestPOSTBodyExample'
              WflrClaimRewardsRequestPOSTBodyExample:
                $ref: '#/components/examples/WflrClaimRewardsRequestPOSTBodyExample'
              ZetaStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/ZetaStakingRequestPOSTBodyExample'
              ZetaUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/ZetaUnStakingRequestPOSTBodyExample'
              StoryStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/StoryStakingRequestPOSTBodyExample'
              StoryStakingRequestPOSTBodyExampleLong:
                $ref: '#/components/examples/StoryStakingRequestPOSTBodyExampleLong'
              StoryUnStakingRequestPOSTBodyExample:
                $ref: '#/components/examples/StoryUnStakingRequestPOSTBodyExample'
      responses:
        '202':
          description: Successful Staking Request Accepted and Needs Approval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestSchemas'
              examples:
                AdaStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AdaStakingRequestWithoutDelegationsExample
                AdaUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AdaUnStakingRequestWithoutDelegationsExample
                AsiStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AsiStakingRequestWithoutDelegationsExample
                AsiUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AsiUnStakingRequestWithoutDelegationsExample
                KavacosmosStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/KavacosmosStakingRequestWithoutDelegationsExample
                KavacosmosUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/KavacosmosUnStakingRequestWithoutDelegationsExample
                AtomStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AtomStakingRequestWithoutDelegationsExample
                AtomUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AtomUnStakingRequestWithoutDelegationsExample
                AvaxCStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AvaxCStakingRequestWithoutDelegationsExample
                AvaxCUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AvaxCUnStakingRequestWithoutDelegationsExample
                AvaxPStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AvaxPStakingRequestWithoutDelegationsExample
                BabyStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BabyStakingRequestWithoutDelegationsExample
                BabyUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BabyUnStakingRequestWithoutDelegationsExample
                BeraStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BeraStakingRequestWithoutDelegationsExample
                BeraUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BeraUnStakingRequestWithoutDelegationsExample
                BldStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BldStakingRequestWithoutDelegationsExample
                BldUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BldUnStakingRequestWithoutDelegationsExample
                BscStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BscStakingRequestWithoutDelegationsExample
                BscUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BscUnStakingRequestWithoutDelegationsExample
                BtcStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BtcStakingRequestWithoutDelegationsExample
                BtcUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/BtcUnStakingRequestWithoutDelegationsExample
                CoredaoStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CoredaoStakingRequestWithoutDelegationsExample
                CoredaoUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CoredaoUnStakingRequestWithoutDelegationsExample
                CoreumStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CoreumStakingRequestWithoutDelegationsExample
                CoreumUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CoreumUnStakingRequestWithoutDelegationsExample
                CronosStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CronosStakingRequestWithoutDelegationsExample
                CronosUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CronosUnStakingRequestWithoutDelegationsExample
                CsprStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CsprStakingRequestWithoutDelegationsExample
                CsprUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/CsprUnStakingRequestWithoutDelegationsExample
                DotStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/DotStakingRequestWithoutDelegationsExample
                DotUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/DotUnStakingRequestWithoutDelegationsExample
                EigenStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/EigenStakingRequestWithoutDelegationsExample
                EigenUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/EigenUnStakingRequestWithoutDelegationsExample
                EthStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/EthStakingRequestWithoutDelegationsExample
                EthUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/EthUnStakingRequestWithoutDelegationsExample
                FlrPStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/FlrPStakingRequestWithoutDelegationsExample
                HashStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/HashStakingRequestWithoutDelegationsExample
                HashUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/HashUnStakingRequestWithoutDelegationsExample
                InjectiveStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/InjectiveStakingRequestWithoutDelegationsExample
                InjectiveUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/InjectiveUnStakingRequestWithoutDelegationsExample
                MaticStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/MaticStakingRequestWithoutDelegationsExample
                MaticUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/MaticUnStakingRequestWithoutDelegationsExample
                NearStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/NearStakingRequestWithoutDelegationsExample
                NearUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/NearUnStakingRequestWithoutDelegationsExample
                OsmoStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/OsmoStakingRequestWithoutDelegationsExample
                OsmoUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/OsmoUnStakingRequestWithoutDelegationsExample
                PolStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/PolStakingRequestWithoutDelegationsExample
                PolUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/PolUnStakingRequestWithoutDelegationsExample
                PolyxStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/PolyxStakingRequestWithoutDelegationsExample
                PolyxUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/PolyxUnStakingRequestWithoutDelegationsExample
                PolyxSwitchValidatorRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/PolyxSwitchValidatorRequestWithoutDelegationsExample
                RethRocketStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/RethRocketStakingRequestWithoutDelegationsExample
                RethRocketUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/RethRocketUnStakingRequestWithoutDelegationsExample
                SeiStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SeiStakingRequestWithoutDelegationsExample
                SeiUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SeiUnStakingRequestWithoutDelegationsExample
                SolStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SolStakingRequestWithoutDelegationsExample
                SolUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SolUnStakingRequestWithoutDelegationsExample
                SomiStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SomiStakingRequestWithoutDelegationsExample
                SomiUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SomiUnStakingRequestWithoutDelegationsExample
                StxStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/StxStakingRequestWithoutDelegationsExample
                StxUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/StxUnStakingRequestWithoutDelegationsExample
                SuiStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SuiStakingRequestWithoutDelegationsExample
                SuiUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SuiUnStakingRequestWithoutDelegationsExample
                SuiWalStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SuiWalStakingRequestWithoutDelegationsExample
                SuiWalUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SuiWalUnStakingRequestWithoutDelegationsExample
                TaoStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TaoStakingRequestWithoutDelegationsExample
                TaoUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TaoUnStakingRequestWithoutDelegationsExample
                TiaStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TiaStakingRequestWithoutDelegationsExample
                TiaUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TiaUnStakingRequestWithoutDelegationsExample
                TonStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TonStakingRequestWithoutDelegationsExample
                TonUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TonUnStakingRequestWithoutDelegationsExample
                TrxStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TrxStakingRequestWithoutDelegationsExample
                TrxUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TrxUnStakingRequestWithoutDelegationsExample
                WctStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WctStakingRequestWithoutDelegationsExample
                WctUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WctUnStakingRequestWithoutDelegationsExample
                WethStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WethStakingRequestWithoutDelegationsExample
                WethUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WethUnStakingRequestWithoutDelegationsExample
                WflrStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WflrStakingRequestWithoutDelegationsExample
                WflrUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/WflrUnStakingRequestWithoutDelegationsExample
                ZetaStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/ZetaStakingRequestWithoutDelegationsExample
                ZetaUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/ZetaUnStakingRequestWithoutDelegationsExample
                StoryStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/StoryStakingRequestWithoutDelegationsExample
                StoryUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/StoryUnStakingRequestWithoutDelegationsExample
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
    get:
      tags:
        - Staking Request
      summary: List staking requests by asset
      description: Retrieve staking requests for a user's wallet.
      operationId: v1.user.staking.request
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
      responses:
        '200':
          description: Successful Retrieving Staking Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestsListResponse'
              examples:
                EthStakingRequestsExample:
                  $ref: '#/components/examples/EthStakingRequestsListResponseExample'
                MaticStakingRequestsExample:
                  $ref: >-
                    #/components/examples/MaticStakingRequestsListResponseExample
                MaticUnStakingRequestsExample:
                  $ref: >-
                    #/components/examples/MaticUnStakingRequestsListResponseExample
                NearStakingRequestsExample:
                  $ref: '#/components/examples/NearStakingRequestsListResponseExample'
                NearUnStakingRequestsExample:
                  $ref: >-
                    #/components/examples/NearUnStakingRequestsListResponseExample
                SolStakingRequestsExample:
                  $ref: '#/components/examples/SolStakingRequestsListResponseExample'
                SolUnStakingRequestsExample:
                  $ref: >-
                    #/components/examples/SolUnStakingRequestsListResponseExample
                DotStakingRequestsExample:
                  $ref: '#/components/examples/DotStakingRequestsListResponseExample'
                DotUnStakingRequestsExample:
                  $ref: >-
                    #/components/examples/DotUnStakingRequestsListResponseExample
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/wallets/{walletId}/requests:
    get:
      tags:
        - Staking Request
      summary: List Staking Requests for a Wallet
      description: List staking requests for a wallet.
      operationId: v1.staking.request.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/queryCoins'
        - name: requestType
          in: query
          description: Filter by Staking Request Type
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/StakingRequestType1'
        - name: requestStatus
          in: query
          description: Filter by Staking Request Status
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/StakingRequestStatus'
        - name: createdDateGte
          in: query
          description: Filter by created date greater than or equal to
          required: false
          schema:
            type: string
            format: date-time
        - name: createdDateLt
          in: query
          description: Filter by created date less than
          required: false
          schema:
            type: string
            format: date-time
        - name: id
          in: query
          description: Filter by staking request ID
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: searchString
          in: query
          description: Search by string match across request attributes
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - $ref: '#/components/parameters/querySortByCreatedDate'
      responses:
        '200':
          description: Successful Listing Staking Requests for Wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestsResponse'
              examples:
                EthStakingRequestResultsExample:
                  $ref: '#/components/examples/EthStakingResultsExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/requests/{stakingRequestId}:
    get:
      tags:
        - Staking Request
      summary: List staking requests by ID
      description: Retrieve A Specific Staking Request.
      operationId: v1.staking.request
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathStakingRequestId'
        - $ref: '#/components/parameters/queryExpandBuildParams'
      responses:
        '200':
          description: Successful Retrieving a Staking Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestSchemas'
              examples:
                AvaxPStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/AvaxPStakingRequestWithTransactionsExample
                EthStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/EthStakingRequestWithTransactionsExample
                EthPectraStakingRequestWithTransactionsExample:
                  $ref: >-
                    #/components/examples/EthPectraStakingRequestWithTransactionsExample
                MaticStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/MaticStakingRequestWithTransactionsExample
                MaticUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/MaticUnStakingRequestWithTransactionsExample
                NearStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/NearStakingRequestWithTransactionsExample
                NearUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/NearUnStakingRequestWithTransactionsExample
                SolStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SolStakingRequestWithTransactionsExample
                SolUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/SolUnStakingRequestWithTransactionsExample
                TaoStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TaoStakingRequestWithTransactionsExample
                TaoUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/TaoUnStakingRequestWithTransactionsExample
                DotStakingRequestExample:
                  $ref: >-
                    #/components/examples/DotStakingRequestWithTransactionsExample
                DotUnStakingRequestWithoutDelegationsExample:
                  $ref: >-
                    #/components/examples/DotUnStakingRequestWithTransactionsExample
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}/requests/transactions:
    get:
      deprecated: false
      tags:
        - Staking Request
      summary: List staking requests by enterprise
      description: >-
        Retrieve staking requests and staking transactions for a given
        enterprise and query params.
      operationId: v1.staking.transactions
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
        - $ref: '#/components/parameters/queryCoins'
        - name: walletType
          in: query
          description: >-
            Filter by one or more Wallet Types. Multiple values may be specified
            (e.g. ?walletType=cold&walletType=hot) and are combined with OR
            semantics.
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - cold
                - custodial
                - custodialPaired
                - hot
                - trading
          style: form
          explode: true
        - name: walletIds
          in: query
          description: Wallet Ids
          required: false
          schema:
            type: array
            items:
              type: string
        - name: permissions
          in: query
          description: Filter by user permissions
          required: false
          schema:
            type: array
            items:
              type: string
        - name: requestType
          in: query
          description: Filter by Staking Request Type
          required: false
          schema:
            $ref: '#/components/schemas/StakingRequestType1'
        - name: requestStatus
          in: query
          description: Filter by Staking Request status
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/StakingRequestStatus'
        - name: createdDateGte
          in: query
          description: Filter by created date greater than or equal to
          required: false
          schema:
            type: string
            format: date-time
        - name: createdDateLt
          in: query
          description: Filter by created date less than
          required: false
          schema:
            type: string
            format: date-time
        - name: searchString
          in: query
          description: Search by string match across request attributes
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/queryExpandBuildParams'
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - $ref: '#/components/parameters/querySortByCreatedDate'
      responses:
        '200':
          description: Successful Retrieving Staking Requests with Transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRequestsResponse'
              examples:
                EthStakingRequestResultsExample:
                  $ref: '#/components/examples/EthStakingResultsExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/requests/{stakingRequestId}/transactions/{stakingTransactionId}:
    get:
      tags:
        - Staking Request
      summary: Get a staking transaction
      description: >-
        Retrieve details of a staking transaction for a given wallet and staking
        request.
      operationId: v1.staking.transaction.get
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/pathStakingRequestId'
        - $ref: '#/components/parameters/pathStakingTransactionId'
        - $ref: '#/components/parameters/queryExpandBuildParams'
      responses:
        '200':
          description: Successful get on a Transaction
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BaseStakingTransaction'
                  - $ref: '#/components/schemas/BtcStakingTransaction'
                  - $ref: '#/components/schemas/EthStakingTransaction'
                  - $ref: '#/components/schemas/TrxStakingTransaction'
              example:
                - stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                  createdDate: '2022-01-10T14:32:28.000Z'
                  statusModifiedDate: '2022-01-10T14:32:28.000Z'
                  status: NEW
                  amount: '3200000000000000000'
                  transactionType: delegate
                  buildParams:
                    recipients:
                      amount: '3200000000000000000'
                      address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                      data: fds0934rnnio390nw
                    stakingParams:
                      requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                      amount: '3200000000000000000'
                      validator: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                      actionType: delegate
                    gasPrice: '1000000000000000'
                    gasLimit: '3000000000000000'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
    post:
      tags:
        - Staking Request
      summary: Sign staking transaction
      description: Use to act on a transaction like sending a transaction
      operationId: v1.staking.transaction.act
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/pathStakingRequestId'
        - $ref: '#/components/parameters/pathStakingTransactionId'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/EthStakingTransactionSendRequest'
                - $ref: '#/components/schemas/StakingTransactionSendRequest'
      responses:
        '200':
          description: Successful Acting on a Transaction
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BaseStakingTransaction'
                  - $ref: '#/components/schemas/EthStakingTransaction'
                  - $ref: '#/components/schemas/StakingTransaction'
                  - $ref: '#/components/schemas/TrxStakingTransaction'
              example:
                - stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                  createdDate: '2022-01-10T14:32:28.000Z'
                  statusModifiedDate: '2022-01-10T14:32:28.000Z'
                  status: NEW
                  amount: '3200000000000000000'
                  transactionType: delegate
                  buildParams:
                    recipients:
                      amount: '3200000000000000000'
                      address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                      data: fds0934rnnio390nw
                    stakingParams:
                      requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                      amount: '3200000000000000000'
                      validator: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                      actionType: delegate
                    gasPrice: '1000000000000000'
                    gasLimit: '3000000000000000'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}:
    get:
      tags:
        - Staking State Information
      summary: List staking details by wallet
      description: >-
        Get staking wallet information including staking delegated balance,
        rewards accrued, and rewards accrual annual percentage rate.
      operationId: v1.stakingWallet.get
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - name: excludeExtraWalletInformation
          in: query
          description: Exclude balance and attributes for the wallet
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Successful Get a Staking Wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingWallet'
              examples:
                StakingWalletExample:
                  $ref: '#/components/examples/StakingWalletExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/delegations:
    get:
      tags:
        - Staking State Information
      summary: List staking delegations
      description: Retrieve staking wallet delegation information.
      operationId: v1.staking.wallet.delegations
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - name: delegationIds
          in: query
          description: The delegation IDs.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: delegationStatus
          in: query
          description: The status of the delegation.
          required: false
          schema:
            $ref: '#/components/schemas/DelegationStatus'
        - name: unstakeable
          in: query
          description: Unsupported for staking
          required: false
          schema:
            type: boolean
        - name: delegationAddress
          in: query
          description: The address of of the delegation.
          required: false
          schema:
            type: string
        - name: delegationAddresses
          in: query
          description: The list of delegation addresses to query for.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: provider
          in: query
          description: The validator provider used for staking.
          required: false
          schema:
            type: string
        - name: subType
          in: query
          description: >-
            The delegation staking sub type to filter by, used with the
            unstakeable flag.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - $ref: '#/components/parameters/querySortByCreatedDate'
      responses:
        '200':
          description: Successful Retrieving a Staking Wallet Delegations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DelegationResults'
              examples:
                EthDelegationResultsExample:
                  $ref: '#/components/examples/EthDelegationResultsExample'
                AvaxPDelegationResultsExample:
                  $ref: '#/components/examples/AvaxPDelegationResultsExample'
                DotDelegationResultsExample:
                  $ref: '#/components/examples/DotDelegationResultsExample'
                MaticDelegationResultsExample:
                  $ref: '#/components/examples/MaticDelegationResultsExample'
                NearDelegationResultsExample:
                  $ref: '#/components/examples/NearDelegationResultsExample'
                SolDelegationResultsExample:
                  $ref: '#/components/examples/SolDelegationResultsExample'
                TaoDelegationResultsExample:
                  $ref: '#/components/examples/TaoDelegationResultsExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}:
    get:
      tags:
        - Staking State Information
      summary: Get staking totals at the enterprise level
      description: >-
        Retrieve staking totals across all coins for a given enterprise,
        including delegated balances, rewards, and staking metadata.
      operationId: v1.staking.enterprise.allCoins
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - name: staked
          in: query
          description: >-
            Filter results to only include staked assets if true, or unstaked if
            false.
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: >-
            Successful response containing staking totals for the enterprise
            across all coins.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterpriseStakingTotals'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/enterprises/{enterpriseId}:
    get:
      tags:
        - Staking State Information
      summary: List staking details by enterprise
      description: >-
        Retrieve staking information such as delegated balance, rewards accrued,
        and rewards accrual annual percentage rate.
      operationId: v1.staking.enterprise
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathEnterpriseId1'
      responses:
        '200':
          description: Successful Retrieving Staking Information For An Enterprise
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingEnterprise'
              example:
                ethEnterprise:
                  $ref: '#/components/examples/EthStakingEnterpriseExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/enterprises/{enterpriseId}/tokens:
    get:
      tags:
        - Staking State Information
      summary: List staking details by enterprise tokens
      description: Retrieve staking information at the enterprise and token level.
      operationId: v1.staking.enterprise.tokens
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathEnterpriseId1'
      responses:
        '200':
          description: >-
            Successful Retrieving Staking Information For An Enterprise At Token
            Level
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingEnterprise'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/reward-accrual-report:
    get:
      tags:
        - Staking History
      summary: Get staking reward history
      description: Retrieve staking reward history.
      operationId: v1.staking.reward.history
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - name: enterpriseId
          in: query
          description: The enterprise ID of the enterprise a user staked from.
          required: false
          schema:
            type: string
        - name: walletId
          in: query
          description: >-
            The wallet ID of the wallet a user staked from. Either the
            enterpriseId or walletId need to be passed in.
          required: false
          schema:
            $ref: '#/components/schemas/WalletId'
        - name: delegationId
          in: query
          description: The delegation ID to filter rewards for.
          required: false
          schema:
            type: string
        - name: aggregationLevel
          in: query
          description: >-
            The level of aggregation for rewards, accepts both uppercase
            (WALLET, DELEGATION) and lowercase (wallet, delegation) formats.
          required: false
          schema:
            type: string
            enum:
              - WALLET
              - DELEGATION
              - wallet
              - delegation
            default: WALLET
        - name: range
          in: query
          description: The time range for the data, either hourly or daily.
          required: false
          schema:
            $ref: '#/components/schemas/TimeRange'
        - name: startDate
          in: query
          description: The start date to search from.
          required: false
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: The end date to search from.
          required: false
          schema:
            type: string
            format: date-time
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - $ref: '#/components/parameters/querySortByDate'
      responses:
        '200':
          description: Successful Retrieving Staking History
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingRewards'
              examples:
                WalletLevelRewards:
                  summary: Wallet Level
                  value:
                    rewards:
                      - reward: '1000000000000000'
                        walletId: 2032e75g451052000636831abd797bd3
                        enterpriseId: 1032e75c451052000436831deb797af1
                        coin: eth
                        date: '2022-01-10T14:32:28.000Z'
                      - reward: '5000000000'
                        walletId: 3032e75g451052000636831abd797bd4
                        enterpriseId: 1032e75c451052000436831deb797af1
                        coin: sol
                        date: '2022-01-10T14:32:28.000Z'
                    page: 1
                    totalPages: 1
                    totalElements: 1
                DelegationLevelRewards:
                  summary: Delegation Level
                  value:
                    rewards:
                      - reward: '1000000000000000'
                        walletId: 2032e75g451052000636831abd797bd3
                        enterpriseId: 1032e75c451052000436831deb797af1
                        delegationId: d123456789
                        coin: eth
                        date: '2022-01-10T14:32:28.000Z'
                        properties:
                          consensusReward: 5
                          transactionReward: 3
                          mevReward: 2
                          provider: lido
                      - reward: '5000000000'
                        walletId: 3032e75g451052000636831abd797bd4
                        enterpriseId: 1032e75c451052000436831deb797af1
                        delegationId: d987654321
                        coin: sol
                        date: '2022-01-10T14:32:28.000Z'
                        properties: null
                    page: 1
                    totalPages: 1
                    totalElements: 1
                EnterpriseAccrual:
                  summary: Enterprise Level
                  value:
                    rewards:
                      - reward: '5000000000000000'
                        enterpriseId: 1032e75c451052000436831deb797af1
                        date: '2022-01-10T14:32:28.000Z'
                      - reward: '3500000000000000'
                        enterpriseId: 1032e75c451052000436831deb797af1
                        date: '2022-01-11T14:32:28.000Z'
                    page: 1
                    totalPages: 1
                    totalElements: 2
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/delegations/accruals:
    get:
      deprecated: true
      tags:
        - Staking History
      summary: Get staking accrual history
      description: >-
        **Deprecated.** This endpoint is being decommissioned. Please use
        `/{coin}/reward-accrual-report`
        (https://app.bitgo-test.com/api/staking/v1/{coin}/reward-accrual-report)
        for reward reports. Retrieve staking delegation accrual history.
      operationId: v1.staking.reward.accrual
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - name: range
          in: query
          description: The time range for the data.
          required: false
          schema:
            $ref: '#/components/schemas/TimeRange'
        - name: startDate
          in: query
          description: The start date to search from.
          required: false
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: The end date to search from.
          required: false
          schema:
            type: string
            format: date-time
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - $ref: '#/components/parameters/querySortByCreatedDate'
      responses:
        '200':
          description: Successful Retrieving Delegation Accrual History
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DelegationAccruals'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/tokens:
    get:
      tags:
        - Staking State Information
      summary: List staking wallet tokens
      description: >-
        Get staking wallets for a specific wallet ID that has been used for
        staking tokens.
      operationId: v1.staking.wallet.tokens
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
      responses:
        '200':
          description: Successful Retrieving Staking Wallet Tokens
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingWalletsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/attributes:
    get:
      tags:
        - Staking State Information
      summary: Get staking requirements
      description: Retrieve staking wallet state attribute information.
      operationId: v1.staking.wallet.attributes
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
      responses:
        '200':
          description: Successful Retrieving a Staking Wallet State Attribute Information
          content:
            application/json:
              schema:
                oneOf:
                  - allOf:
                      - title: AVAXP
                      - $ref: '#/components/schemas/AvaxpWalletStakingStateAttributes'
                  - allOf:
                      - title: DOT
                      - $ref: '#/components/schemas/DotWalletStakingStateAttributes'
                  - allOf:
                      - title: VET
                      - $ref: '#/components/schemas/VetWalletStakingStateAttributes'
                  - allOf:
                      - title: General
                      - $ref: '#/components/schemas/WalletStakingStateAttributes'
              examples:
                AdaWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/AdaWalletStakingStateAttributesExamples
                WalletStakingStateAttributesExamples:
                  $ref: '#/components/examples/WalletStakingStateAttributesExamples'
                DotWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/DotWalletStakingStateAttributesExamples
                AvaxPWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/AvaxPWalletStakingStateAttributesExamples
                SolWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/SolWalletStakingStateAttributesExamples
                MaticWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/MaticWalletStakingStateAttributesExamples
                NearWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/NearWalletStakingStateAttributesExamples
                TaoWalletStakingStateAttributesExamples:
                  $ref: >-
                    #/components/examples/TaoWalletStakingStateAttributesExamples
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/coins:
    get:
      tags:
        - Staking State Information
      summary: List coins available for staking
      description: >-
        Retrieve a list of coins available for staking and additional
        information.
      operationId: v1.staking.coins
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - name: comingSoon
          in: query
          description: >-
            If true, include coins that are coming soon but not yet available
            for staking.
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Successful Retrieving a List of Stakeable Coins
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakeableCoinsResult'
              examples:
                StakeableCoinsResultExample:
                  $ref: '#/components/examples/StakeableCoinsResultExample'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoinsUnauthorizedError'
              example:
                error: Unauthorized
                errorName: Error
                reqId: some-id
                context:
                  errorName: Error
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/validators:
    get:
      tags:
        - Staking State Information
      summary: List staking validators for a wallet
      description: >-
        Returns a list of staking validators for a wallet, and includes the
        total delegated amount and the amount of accrued rewards.
      operationId: v1.validators.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathCoin2'
        - $ref: '#/components/parameters/pathWalletId1'
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - name: status
          in: query
          description: >-
            Comma-separated list of delegation statuses to filter by. Defaults
            to `ACTIVE,PENDING`.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/DelegationStatus'
        - name: validatorAddress
          in: query
          description: Validator address to filter results by. Expect 1 item only.
          required: false
          schema:
            type: string
        - name: subType
          in: query
          description: >-
            The delegation staking sub type to filter by (e.g., LIDO, MARINADE,
            JITO for liquid staking variants).
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful Retrieving Staking Validators For A Wallet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingValidatorsResponse'
              examples:
                SolStakingValidatorsResultsExample:
                  $ref: '#/components/examples/SolStakingValidatorsResultsExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/validators:
    get:
      tags:
        - Staking State Information
      summary: List staking partnered validators
      description: Returns a list of staking partnered validators.
      operationId: v1.partneredValidators.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/coin1'
        - name: enterpriseId
          in: query
          description: The enterprise ID.
          required: false
          schema:
            type: string
        - name: walletId
          in: query
          description: The wallet ID
          required: false
          schema:
            $ref: '#/components/schemas/WalletId'
        - name: onlyActive
          in: query
          description: True only if validators with active delegations are requested
          required: false
          schema:
            type: boolean
            default: true
        - name: defaultValidator
          in: query
          description: True only if the default validator is requested
          required: false
          schema:
            type: boolean
        - name: isOperator
          in: query
          description: >-
            True only if the operators for restaking are requested (i.e Eigen
            layer restaking)
          required: false
          schema:
            type: boolean
        - name: stakingType
          in: query
          description: The staking type.
          required: false
          schema:
            type: string
            default: STAKE
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
      responses:
        '200':
          description: Successful Retrieving Staking Partnered Validators
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingPartneredValidatorsResponse'
              examples:
                SuiStakingPartneredValidatorsResultsExample:
                  $ref: >-
                    #/components/examples/SuiStakingPartneredValidatorsResultsExample
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}/license:
    get:
      tags:
        - Staking State Information
      summary: Get staking license
      description: Returns a staking license for the given enterprise.
      operationId: v1.license
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
      responses:
        '200':
          description: Successful Retrieving Staking License For An Enterprise
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingLicenseResponse'
              examples:
                SolStakingValidatorsResultsExample:
                  $ref: '#/components/examples/LicenseResultsExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}/wallets:
    get:
      tags:
        - Staking State Information
      summary: List staking rewards
      description: Returns total rewards per staking wallet for an enterprise.
      operationId: v1.enterprise.stakingWallets.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
        - $ref: '#/components/parameters/queryCoins'
        - $ref: '#/components/parameters/queryLabel'
        - name: walletType
          in: query
          description: >-
            Filter by Wallet Type (cold, custodial, custodialPaired, hot,
            trading)
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - cold
                - custodial
                - custodialPaired
                - hot
                - trading
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
      responses:
        '200':
          description: Successful List Enterprise Staking Wallets Rewards
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingWalletsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}/coins:
    get:
      tags:
        - Staking State Information
      summary: Get list of stake-able coins
      description: >-
        Returns a paginated list of stake-able coins for the given enterprise
        with basic attributes.
      operationId: v1.enterprise.stakingCoins.list
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
        - $ref: '#/components/parameters/queryPage'
        - $ref: '#/components/parameters/queryPageSize1'
        - name: staked
          in: query
          description: Filter by whether the coin is currently staked.
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: >-
            Successful response containing staking totals for the enterprise
            across all coins.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterpriseStakingTotals'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/enterprises/{enterpriseId}/stakeable-coins:
    get:
      tags:
        - Staking State Information
      summary: List coins available to enterprise for staking
      description: Retrieve a list of coins available for staking.
      operationId: v1.enterprise.stakeableCoins
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/pathEnterpriseId1'
      responses:
        '200':
          description: Successful Retrieving a List of Stakeable Coins
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StakeableCoins'
              examples:
                EnterpriseStakeableCoinsResultExample:
                  $ref: '#/components/examples/EnterpriseStakeableCoinsResultExample'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '404':
          $ref: '#/components/responses/NotFoundError1'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/staking/v1/{coin}/wallets/{walletId}/kyc/upload:
    post:
      tags:
        - Staking Request
      summary: Upload KYC document and get IPFS hash
      description: >
        Accepts a KYC PDF document, uploads it to the XinFin MasterNode IPFS
        API,

        and returns the authoritative IPFS hash assigned by the network.

        Only supported for XDC and TXDC coins.


        The returned hash must be included in the subsequent XDC stake request
        as `kycHash`.

        It is submitted to the validator contract in the AUTHORIZE (uploadKYC)
        transaction.
      operationId: xdc.kyc.upload
      x-internal: false
      parameters:
        - name: coin
          in: path
          required: true
          description: Must be xdc or txdc.
          schema:
            type: string
            enum:
              - xdc
              - txdc
        - name: walletId
          in: path
          required: true
          description: The wallet ID of the wallet used for staking.
          schema:
            $ref: '#/components/schemas/WalletId'
      requestBody:
        required: true
        description: The request body for uploading KYC.
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: The KYC PDF document to upload (max 5MB).
      responses:
        '200':
          description: IPFS hash computed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XdcKycUploadResponse'
        '400':
          $ref: '#/components/responses/BadRequestError1'
        '401':
          $ref: '#/components/responses/UnauthorizedError2'
        '403':
          $ref: '#/components/responses/ForbiddenError2'
        '500':
          $ref: '#/components/responses/InternalServerError1'
  /api/sumsub-service/v1/idv/{idvId}:
    get:
      summary: Get Sumsub IDV status
      description: >-
        Returns the current identity verification status for the given IDV
        record. Does not refresh the WebSDK URL — call POST /v1/idv to initiate
        or retry.
      operationId: sumsub.get.v1.idv.id
      tags:
        - Identity Verification (IDV)
      x-internal: false
      parameters:
        - name: idvId
          in: path
          required: true
          schema:
            type: string
          description: The IDV record ID
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  idvId:
                    type: string
                  status:
                    type: string
                    enum:
                      - pending
                      - action_required
                      - approved
                      - rejected
                  verificationType:
                    type: string
                    enum:
                      - penny-drop
                      - video-id
                      - liveness-only
                  userId:
                    type: string
                  enterpriseId:
                    type: string
                  organizationId:
                    type: string
                    nullable: true
                  rejectLabels:
                    type: array
                    items:
                      type: string
                    nullable: true
                required:
                  - idvId
                  - status
                  - verificationType
                  - userId
                  - enterpriseId
                  - organizationId
                  - rejectLabels
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
  /api/sumsub-service/v1/idv/{idvId}/change-verification-type:
    post:
      summary: Switch verification flow for an existing IDV
      description: >-
        Switches an existing IDV record from one verification flow to another
        (e.g. penny-drop to video-id). Only allowed when the current review is
        pending or action_required (null or RED+RETRY). Returns a fresh WebSDK
        link for the new level.
      operationId: sumsub.post.v1.idv.id.change-verification-type
      tags:
        - Identity Verification (IDV)
      x-internal: false
      parameters:
        - name: idvId
          in: path
          required: true
          schema:
            type: string
          description: The IDV record ID
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                verificationType:
                  type: string
                  enum:
                    - penny-drop
                    - video-id
                    - liveness-only
                  description: The verification flow to switch to.
                includeSdkToken:
                  type: boolean
                  description: >-
                    When true, generates and returns a Sumsub Mobile SDK access
                    token alongside the WebSDK URL. Not supported for penny-drop
                    verification — returns 400 if combined with verificationType
                    'penny-drop' (MobileSDK does not support the penny-drop
                    flow).
              required:
                - verificationType
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                  expiresAt:
                    type: string
                  sdkToken:
                    type: string
                required:
                  - url
                  - expiresAt
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '404':
          description: '404'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '409':
          description: '409'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
  /api/sumsub-service/v1/idv:
    post:
      summary: Initiate Sumsub IDV for a user
      description: >-
        Initiates the Sumsub identity verification flow for a user within an
        enterprise. Returns a WebSDK URL when verification is pending, or a
        completion status if the user has already been verified.
      operationId: sumsub.post.v1.idv
      tags:
        - Identity Verification (IDV)
      x-internal: false
      parameters: []
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The BitGo user ID
                enterpriseId:
                  type: string
                  description: The BitGo enterprise ID
                verificationType:
                  type: string
                  enum:
                    - penny-drop
                    - video-id
                    - liveness-only
                  description: >-
                    The verification flow to use. 'penny-drop' requires a bank
                    transfer step. 'video-id' uses a video identification step.
                    'liveness-only' uses a liveness check only.
                sumsubShareToken:
                  type: string
                  minLength: 1
                  description: >-
                    Share token to copy an existing applicant from another
                    Sumsub environment
                lang:
                  type: string
                  enum:
                    - ar
                    - hy
                    - az
                    - bn
                    - bg
                    - my
                    - ca
                    - km
                    - zh
                    - zh-tw
                    - hr
                    - cs
                    - da
                    - nl
                    - en
                    - et
                    - fl
                    - fi
                    - fr
                    - ka
                    - de
                    - el
                    - ha
                    - he
                    - hi
                    - hu
                    - id
                    - it
                    - ja
                    - kk
                    - ko
                    - lo
                    - lv
                    - lt
                    - ms
                    - 'no'
                    - fa
                    - pl
                    - pt
                    - pt-br
                    - ro
                    - ru
                    - sr
                    - sk
                    - sl
                    - es
                    - sw
                    - sv
                    - tg
                    - tr
                    - th
                    - uk
                    - ur
                    - uz
                    - vi
                    - zu
                  description: >-
                    Language code for the Sumsub WebSDK UI (ISO 639-1). Defaults
                    to en.
                includeSdkToken:
                  type: boolean
                  description: >-
                    When true, generates and returns a Sumsub Mobile SDK access
                    token alongside the WebSDK URL. Not supported for penny-drop
                    verification — returns 400 if combined with verificationType
                    'penny-drop' (MobileSDK does not support the penny-drop
                    flow).
              required:
                - userId
                - enterpriseId
                - verificationType
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: status
                oneOf:
                  - type: object
                    properties:
                      idvId:
                        type: string
                      status:
                        type: string
                        enum:
                          - pending
                      url:
                        type: string
                      expiresAt:
                        type: string
                      sdkToken:
                        type: string
                    required:
                      - idvId
                      - status
                      - url
                      - expiresAt
                    title: Pending
                  - type: object
                    properties:
                      idvId:
                        type: string
                      status:
                        type: string
                        enum:
                          - action_required
                      url:
                        type: string
                      expiresAt:
                        type: string
                      sdkToken:
                        type: string
                    required:
                      - idvId
                      - status
                      - url
                      - expiresAt
                    title: Action Required
                  - type: object
                    properties:
                      idvId:
                        type: string
                      status:
                        type: string
                        enum:
                          - approved
                    required:
                      - idvId
                      - status
                    title: Approved
                  - type: object
                    properties:
                      idvId:
                        type: string
                      status:
                        type: string
                        enum:
                          - rejected
                    required:
                      - idvId
                      - status
                    title: Rejected
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '403':
          description: '403'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message
                required:
                  - error
                additionalProperties: true
  /api/fiat/v1/transaction/ach-debit:
    post:
      x-internal: false
      summary: Initiate ACH deposit
      description: Initiate an ACH deposit transaction from a linked bank account.
      operationId: fiat.ach.deposit
      deprecated: true
      tags:
        - ACH Debits
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: string
                  description: The amount to deposit in USD cents (base units)
                  minLength: 1
                checkboxAgreement:
                  type: boolean
                  description: Indicates user agreement to the ACH terms
                bankId:
                  type: string
                  description: ID of the ACH bank account to debit from
                  minLength: 1
                goAccountId:
                  type: string
                  description: ID of the destination account
                  minLength: 1
                idempotencyKey:
                  type: string
                  description: Optional idempotency key to ensure idempotent requests
              required:
                - amount
                - checkboxAgreement
                - bankId
                - goAccountId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  txId:
                    type: string
                    description: The ID of the created transaction
                required:
                  - txId
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/enterprise-transfer-limits/{enterpriseId}/{currency}/{transferType}/{transferDirection}:
    get:
      x-internal: false
      summary: List enterprise transfer limits
      description: >-
        List the transfer limits for an enterprise based on currency, transfer
        type, and direction.
      operationId: tradfi.v1.enterprise.transfer.limits
      tags:
        - ACH Debits
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
          description: The ID of the enterprise
        - name: currency
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TradfyCurrency'
          description: The currency for the transfer limits
        - name: transferType
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TradfyTransferType'
          description: The type of transfer (e.g., ach-us)
        - name: transferDirection
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TradfyTransferDirection'
          description: The direction of the transfer (e.g., in for deposits)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for the transfer limit
                  maximumTransferAllowed:
                    type: string
                    description: Maximum transfer amount allowed in formatted currency
                  maximumTransferAllowedBase:
                    type: integer
                    description: >-
                      Maximum transfer amount allowed in base units (e.g., cents
                      for USD)
                  noLimit:
                    type: boolean
                    description: Indicates if there is no upper limit for transfers
                  transferDirection:
                    allOf:
                      - $ref: '#/components/schemas/TradfyTransferDirection'
                    description: Direction of the transfer
                  transferType:
                    allOf:
                      - $ref: '#/components/schemas/TradfyTransferType'
                    description: Type of transfer
                required:
                  - id
                  - maximumTransferAllowed
                  - maximumTransferAllowedBase
                  - noLimit
                  - transferDirection
                  - transferType
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '424':
          description: Failed Dependency - upstream service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/bank-transfers:
    post:
      x-internal: false
      summary: Create a bank transfer
      description: |-
        Creates a new bank transfer using the `walletId` and
        `bankAccountId` as counterparties. Most details are inferred
        from `bankAccountId`. The `walletId` and `bankAccountId`
        must be owned by the same `enterpriseId`.

        **Requires access token scope:** `wallet_spend_all`
      operationId: tradfi.v1.bank-transfers.create
      tags:
        - ACH Debits
      requestBody:
        required: true
        description: Bank transfer details including amount, direction, and counterparties
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBankTransferRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/enterprises/{enterpriseId}/ach-authorization:
    get:
      x-internal: false
      summary: Get ACH authorization language
      description: >-
        Returns the ACH debit authorization language that must be presented to
        and accepted by the end user before initiating an ACH debit transfer.
        Acceptance is mandatory — the `acceptAuthTerms` field on the initiate
        request must be `true`. This is a required part of BitGo's risk and
        compliance strategy for ACH debit origination. The ACH Terms URL in the
        response varies based on the enterprise's CaaS status.
      operationId: tradfi.v1.enterprises.ach-authorization
      tags:
        - ACH Debits
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
          description: ID of the enterprise
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - achAuthorizationLanguage
                properties:
                  achAuthorizationLanguage:
                    type: string
                    description: >-
                      The ACH authorization language containing the deposit
                      terms and a link to the full ACH Terms & Conditions.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/bank-transfers/{id}:
    get:
      x-internal: false
      summary: Get a bank transfer
      description: >-
        Gets a bank transfer by its `id` or `txid`. Either identifier may be
        used interchangeably.
      operationId: tradfi.v1.bank-transfers.get
      tags:
        - ACH Debits
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The transfer's primary key (`id`) or transaction ID (`txid`)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/fiat/v1/transaction/ach-debit/agreement:
    get:
      x-internal: false
      summary: Get ACH agreement
      description: Get the ACH agreement for a specific bank account.
      operationId: fiat.ach.agreement
      deprecated: true
      tags:
        - ACH Debits
      parameters:
        - name: bankId
          in: query
          schema:
            type: string
            minLength: 1
        - name: amount
          in: query
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  achAuthorizationLanguage:
                    type: object
                    required:
                      - reviewAuthorization
                      - accountInformation
                      - authorizationDetails
                      - acknowledgment
                    properties:
                      reviewAuthorization:
                        type: string
                        description: The authorization language for the ACH debit
                      accountInformation:
                        type: object
                        required:
                          - accountHolderName
                          - bankName
                          - accountNumber
                          - routingNumber
                          - accountType
                        properties:
                          accountHolderName:
                            type: string
                            description: Name of the account holder
                          bankName:
                            type: string
                            description: Name of the financial institution
                          accountNumber:
                            type: string
                            description: Masked account number
                          routingNumber:
                            type: string
                            description: Routing number of the financial institution
                          accountType:
                            type: string
                            description: Type of bank account (checking or savings)
                            enum:
                              - checking
                              - savings
                      authorizationDetails:
                        type: string
                        description: Details of the transaction being authorized
                      acknowledgment:
                        type: string
                        description: Legal acknowledgment text for the ACH transaction
                required:
                  - achAuthorizationLanguage
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/accounts/v1/address:
    get:
      x-internal: false
      tags:
        - Bank Accounts
      operationId: fiat.address.info
      summary: Get address format information
      description: >
        This endpoint serves two purposes:

        1. When called without a countryCode, it returns a list of all supported
        countries with their codes and full names

        2. When called with a specific countryCode, it returns the required
        address fields and format for that country


        This information is used to dynamically build address collection forms
        with the appropriate fields for each country.
      parameters:
        - name: countryCode
          in: query
          schema:
            type: string
            description: >-
              Optional ISO 3166-1 alpha-2 country code. If not provided, all
              supported countries will be returned.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CountryListResponse'
                  - $ref: '#/components/schemas/CountryAddressFormatResponse'
              examples:
                countryListResponse:
                  summary: Response when no countryCode is provided
                  value:
                    countries:
                      US: United States of America
                      CA: Canada
                      GB: United Kingdom
                      DE: Germany
                countryAddressFormatResponse:
                  summary: Response when a countryCode is provided
                  value:
                    rules:
                      country: US
                      address_line_1:
                        label: Street Address
                        required: true
                        type: text
                        maxLength: 100
                      city_locality:
                        label: City
                        required: true
                        type: text
                        maxLength: 50
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/banks/{bankType}/{routingNumber}:
    get:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Verify routing number by bank type
      description: Endpoint for routing number verification.
      operationId: V1GetBankAccountsRoutingNumberRoute
      parameters:
        - name: bankType
          in: path
          required: true
          description: The banking system where a bank operates.
          schema:
            type: string
            enum:
              - aba
        - name: routingNumber
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BankRoutingResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/plaid/link/token:
    post:
      x-internal: false
      summary: Create Plaid Link token
      description: >
        Creates a Plaid Link token for initiating the Plaid Link flow.

        The token is used to open Plaid Link in the client application, allowing

        users to connect their bank accounts. After the user completes the Plaid

        Link flow, use the `/api/tradfi/v1/plaid/link/token/exchange` endpoint

        with the returned `token` (as `linkToken`) and the `publicToken`
        received

        from Plaid Link to complete the bank account linking process.
      operationId: tradfi.v1.plaid.link.token.create
      tags:
        - Plaid
      requestBody:
        required: true
        description: Enterprise identification for the Plaid Link token request
        content:
          application/json:
            schema:
              type: object
              properties:
                enterpriseId:
                  type: string
                  description: The ID of the enterprise
                  minLength: 1
                androidPackageName:
                  type: string
                  description: >
                    The Android package name for OAuth redirect flows. Required
                    when initializing Plaid Link on Android.
                redirectUri:
                  type: string
                  description: The OAuth redirect URI for mobile and web flows.
              required:
                - enterpriseId
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        description: The Plaid Link token to use in the client
                      expiration:
                        type: string
                        format: date-time
                        description: The expiration time of the link token
                    required:
                      - token
                      - expiration
                required:
                  - data
        '404':
          description: Not Found - Enterprise not found or user does not have access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '424':
          description: Failed Dependency - Plaid service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '428':
          description: Precondition Required - Plaid is not configured for this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/tradfi/v1/plaid/link/token/exchange:
    post:
      x-internal: false
      summary: Exchange Plaid Public Token
      description: |
        Exchanges a public token received from Plaid Link for secure storage.
        After a user completes the Plaid Link flow, the client receives a public
        token which must be exchanged using this endpoint to complete the bank
        account linking process.
      operationId: tradfi.v1.plaid.link.token.exchange
      tags:
        - Plaid
      requestBody:
        required: true
        description: Tokens required to complete the Plaid Link exchange
        content:
          application/json:
            schema:
              type: object
              properties:
                enterpriseId:
                  type: string
                  description: The ID of the enterprise
                  minLength: 1
                publicToken:
                  type: string
                  description: The public token received from the Plaid Link Widget
                  minLength: 1
                linkToken:
                  type: string
                  description: The link token used to initiate the Plaid Link flow
                  minLength: 1
                ipAddress:
                  type: string
                  format: ipv4
                  description: >-
                    IP address of the end-user who completed the Plaid Link
                    flow. Although optional, it is highly recommended to provide
                    this value as it may impact the user's trust score.
                  example: 203.0.113.42
              required:
                - enterpriseId
                - publicToken
                - linkToken
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      publicToken:
                        type: string
                        description: The public token that was exchanged
                      linkToken:
                        type: string
                        description: The link token associated with this exchange
                    required:
                      - publicToken
                      - linkToken
                required:
                  - data
        '400':
          description: Bad Request - Missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found - Enterprise or link token not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/fiat/v1/sandbox/transaction/simulate:
    post:
      tags:
        - Fiat
      summary: Simulate a test deposit
      operationId: fiat-indexer.transaction.simulate
      x-internal: false
      description: >-
        Creates a simulated test deposit transaction for a wallet in
        non-production environments. Requires the calling user to be an owner or
        member of the wallet's enterprise. Blocked in production.
      parameters:
        - name: user-id
          in: header
          required: true
          description: The authenticated user's ID (set by auth-service).
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateTransactionRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
                example: >-
                  Transaction sim-abc123 created successfully. Please allow a
                  few moments for it to appear in the Go Account. Contact
                  support if there is more than a 5 minute delay.
        '400':
          description: Bad Request – invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: >-
            Forbidden – missing user-id header or user does not have access to
            the wallet's enterprise
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/v2/bankaccounts:
    get:
      x-internal: false
      tags:
        - Bank Accounts
      summary: List bank accounts
      description: List all bank accounts associated with a BitGo enterprise.
      operationId: v2.bankaccount.list
      parameters:
        - name: bankAccountId
          in: query
          schema:
            type: string
            minLength: 1
        - name: bankAccountIdHash
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: enterpriseId
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: idHash
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
        - name: verificationState
          in: query
          schema:
            type: string
            enum:
              - approved
              - rejected
              - pending
              - removed
              - revise
        - name: trustOrg
          in: query
          schema:
            type: string
            enum:
              - BitGo Trust
              - BitGo New York
              - BitGo Germany
              - BitGo Switzerland
              - BitGo Europe ApS
              - Frankfurt DE Trust
              - BitGo Singapore
              - BitGo Korea
              - BitGo Custody MENA FZE
              - BitGo Sister Trust 1
        - name: type
          in: query
          schema:
            type: string
            enum:
              - wire
              - cbit
              - ach
              - blinc
              - swift
              - sepa
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GetBankAccountsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    post:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Add bank account
      description: >
        Add a bank account to a BitGo enterprise so you can deposit and withdraw
        fiat. Required address parameters vary by country. Determine required
        parameters by calling [Get address format
        information](/reference/fiataddressinfo).


        >**CaaS clients:** If you are integrating as a Crypto as a Service
        (CaaS) client, follow the [Fund Go account integration
        guide](/docs/crypto-as-a-service-fund-go-accounts#steps) instead of
        using this endpoint directly.
      operationId: v2.bankaccount.add
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBankAccountRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1CreateBankAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/v2/bankaccounts/{bankAccountId}:
    delete:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Delete bank account
      description: Delete a bank account associated with a BitGo enterprise.
      operationId: v2.bankaccount.delete
      parameters:
        - name: bankAccountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1DeleteBankAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    get:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Get bank account
      description: Get a bank account associated with a BitGo enterprise by its ID.
      operationId: v2.bankaccount.get
      parameters:
        - name: bankAccountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GetBankAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
    put:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Update bank account
      description: Update a bank account associated with a BitGo enterprise.
      operationId: v2.bankaccount.update
      parameters:
        - name: bankAccountId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                address:
                  type: string
                  minLength: 1
                ownerAddress:
                  type: string
                  minLength: 1
                shortCountryCode:
                  type: string
                  minLength: 1
                ownerName:
                  type: string
                  minLength: 1
                furtherCreditTo:
                  type: string
                  minLength: 1
                intermediaryBankName:
                  type: string
                  minLength: 1
                intermediaryBankId:
                  type: string
                  minLength: 1
                description:
                  type: string
                accountType:
                  type: string
                  enum:
                    - checking
                    - saving
                    - unknown
                address1:
                  type: string
                  minLength: 1
                address2:
                  type: string
                  minLength: 1
                address3:
                  type: string
                  minLength: 1
                owner:
                  type: object
                  properties:
                    address1:
                      $ref: '#/components/schemas/NullableString1'
                    address2:
                      $ref: '#/components/schemas/NullableString1'
                    address3:
                      $ref: '#/components/schemas/NullableString1'
                    name:
                      type: string
                      minLength: 1
                ownerAddressLine1:
                  type: string
                  minLength: 1
                ownerAddressLine2:
                  type: string
                  minLength: 1
                ownerAddressCityLocality:
                  type: string
                  minLength: 1
                ownerAddressStateProvince:
                  type: string
                  minLength: 1
                ownerAddressPostalCode:
                  type: string
                  minLength: 1
                ownerAddressCountryCode:
                  type: string
                  minLength: 1
                bankAddressLine1:
                  type: string
                  minLength: 1
                bankAddressLine2:
                  type: string
                  minLength: 1
                bankAddressCityLocality:
                  type: string
                  minLength: 1
                bankAddressStateProvince:
                  type: string
                  minLength: 1
                bankAddressPostalCode:
                  type: string
                  minLength: 1
                bankAddressCountryCode:
                  type: string
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1UpdateBankAccountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/v2/bankaccounts/deposit/info:
    get:
      x-internal: false
      tags:
        - Bank Accounts
      summary: Get deposit info
      description: >-
        Get BitGo's bank account information so you can deposit fiat into a Go
        Account.
      operationId: fiat.get.deposit.info
      parameters:
        - name: currency
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/BackingFiatCoin'
        - name: goAccountId
          in: query
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1GetDepositBankAccountsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ErrorResponse'
  /api/stablecoin/v1/{token}/constants:
    get:
      summary: Get Token Constants
      description: Retrieves token constants.
      operationId: stablecoin.v1.token.constants.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokenConstantsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/assets:
    get:
      summary: List supported assets
      description: Returns a list of assets.
      operationId: stablecoin.v1.assets.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: ids
          description: Unique identifier for the asset.
          in: query
          schema:
            type: string
            example: d1c27189-764c-4197-af06-e2623658f410
            minLength: 1
            format: uuid
        - name: token
          description: Token symbol or identifier for the stablecoin.
          in: query
          schema:
            type: string
            example: eth:usd1
            minLength: 1
        - name: chain
          description: Blockchain network or chain name where the asset exists.
          in: query
          schema:
            type: string
            example: eth
            minLength: 1
        - name: baseAsset
          description: Base asset type to filter by.
          in: query
          schema:
            type: string
            example: usd1
            minLength: 1
        - name: isIssuedByBitgo
          description: Flag to filter assets based on whether they were issued by BitGo.
          in: query
          schema:
            type: boolean
        - name: isEnabledGlobally
          description: Filter assets by global enabled status for mint/burn operations.
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/agreement:
    put:
      summary: Accept Minting Terms
      description: Accepts minting terms for a given enterprise.
      operationId: stablecoin.v1.enterprise.agreement.put
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: enterpriseId
          description: Enterprise identifier
          in: path
          required: true
          schema:
            type: string
            example: 6437d9ae435d8b0007635c3f0db52154
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Agreement acceptance details
              properties:
                version:
                  type: number
                  description: Agreement version to accept
                  example: 1
              required:
                - version
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptStablecoinAgreementResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/issuer/orders:
    get:
      summary: List issuer stablecoin orders
      description: >-
        Fetches orders for all stablecoin assets issued by the authenticated
        enterprise (e.g., GoUSD, SoFiD, USD1). Returns an object containing an
        `orders` array of mixed order responses.
      operationId: stablecoin.v1.issuer.order.list.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: searchLabel
          description: SearchLabel can represent either an Order Id or a Transaction Id.
          in: query
          schema:
            type: string
            example: 512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
            minLength: 1
        - name: ids
          description: Specific order identifiers
          in: query
          schema:
            type: string
            minLength: 1
        - name: stablecoinAssetId
          description: Stablecoin asset identifier
          in: query
          schema:
            type: string
            example: d1c27189-764c-4197-af06-e2623658f410
            minLength: 1
        - name: baseAsset
          description: Base asset type(s) to filter orders across all chains
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - gousd
                    - usd1
                    - sofid
                    - cusd
                    - fyusd
                    - qxmp
                    - scaasacme
                    - usd
              - type: string
                enum:
                  - gousd
                  - usd1
                  - sofid
                  - cusd
                  - fyusd
                  - qxmp
                  - scaasacme
                  - usd
            example: usd1
        - name: type
          description: Order type
          in: query
          schema:
            type: string
            enum:
              - mint
              - burn
              - reward
            example: mint
        - name: status
          description: >-
            Order processing status — accepts both user-facing (created,
            pending, fulfilled) and internal statuses
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/IssuerOrderStatusFilter'
              - type: array
                items:
                  type: string
                  enum:
                    - created
                    - confirmed_fiat_deposit
                    - confirmed_token_deposit
                    - initiated_burn_token_transfer
                    - completed_burn_token_transfer
                    - approved_mint
                    - triggering_mint
                    - triggering_burn
                    - completed_burn
                    - approved_client_disbursal
                    - initiated_client_disbursal
                    - fulfilled
                    - failed_mint_initiation
                    - failed_mint_transaction
                    - failed_burn_transaction
                    - failed_burn_token_transfer
                    - failed_to_mint
                    - failed_to_burn
                    - failed_to_initiate_disbursal
                    - failed_to_complete_disbursal
                    - rejected
                    - failed
                    - expired
                    - triggering_mint_request
                    - completed_mint_request
                    - triggering_mint_offer
                    - completed_mint_offer
                    - triggering_mint_accept
                    - completed_mint_accept
                    - triggering_mint_transfer
                    - failed_to_mint_request
                    - failed_to_mint_offer
                    - failed_to_mint_accept
                    - failed_to_mint_transfer
                    - rejected_mint_transfer
                    - cancelled_mint_transfer
                    - expired_mint_transfer
                    - triggering_burn_request
                    - completed_burn_request
                    - triggering_burn_accept
                    - failed_to_burn_request
                    - failed_to_burn_accept
                    - pending
            example: pending
        - name: fromDate
          description: Start date for order search
          in: query
          schema:
            type: string
            example: '2025-05-24T07:28:17.042Z'
            format: date-time
            title: ISO Date String
        - name: toDate
          description: End date for order search
          in: query
          schema:
            type: string
            example: '2025-06-23T07:28:17.042Z'
            format: date-time
            title: ISO Date String
        - name: limit
          description: Maximum results per page
          in: query
          schema:
            type: string
            example: '10'
            pattern: ^[1-9][0-9]*$
        - name: skip
          description: Results to skip
          in: query
          schema:
            type: string
            example: '0'
            pattern: ^[0-9]+$
        - name: sortBy
          description: Field name for sorting
          in: query
          schema:
            type: string
            enum:
              - createdAt
            example: createdAt
        - name: sortOrder
          description: Sort direction
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
            example: DESC
        - name: token
          description: Token identifier to filter orders
          in: query
          schema:
            type: string
            example: eth:usd1
            minLength: 1
        - name: chain
          description: Blockchain network identifier
          in: query
          schema:
            type: string
            example: eth
            minLength: 1
        - name: clientEnterpriseId
          description: Enterprise ID(s) of the client enterprise(s) that placed the orders
          in: query
          schema:
            oneOf:
              - type: string
                minLength: 1
              - type: array
                items:
                  type: string
                  minLength: 1
            example: 67bc4ae090e8af8f9b412d3d67e85252
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuerOrdersResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
    post:
      summary: Create issuer-direct stablecoin order
      description: >-
        Creates a mint or burn order via the issuer-direct (Path 2) flow,
        bypassing the standard client deposit verification.
      operationId: stablecoin.v1.issuer.order.post
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Parameters for creating issuer-direct stablecoin orders (bypass
                deposit verification, no fees applied)
              properties:
                type:
                  type: string
                  enum:
                    - mint
                    - burn
                  description: Type of order operation (mint or burn)
                  example: mint
                asset:
                  type: string
                  description: Full asset identifier (e.g., "eth:usd1", "hteth:sofid")
                  example: eth:usd1
                  minLength: 1
                amount:
                  type: string
                  description: >-
                    Amount in base units.

                    For `burn`, this is stablecoin base-units.

                    For `mint`: stablecoin base-units when the enterprise has
                    the

                    `stablecoins-issuer-mint-stablecoin-units` flag enabled;

                    otherwise USD base-units (e.g. cents) for legacy behavior.
                  example: '100000000000000000000'
                  pattern: ^[1-9][0-9]*$
                destinationType:
                  type: string
                  enum:
                    - go_account
                  description: >-
                    Type of destination for the order. Only go_account is
                    supported for both mint and burn.
                  example: go_account
                destinationWalletId:
                  type: string
                  description: Destination wallet identifier. Required for all order types.
                  example: 8iMXoeSpS1d1ziEJ
                  minLength: 1
              required:
                - type
                - asset
                - amount
                - destinationType
                - destinationWalletId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuerOrderResponseType'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/order:
    post:
      summary: Create stablecoin order
      description: Creates a mint or burn order.
      operationId: stablecoin.v1.enterprise.order.post
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - mint
                    - burn
                  description: Type of order operation (mint or burn)
                  example: mint
                fromAssetId:
                  type: string
                  description: Source asset identifier
                  example: 9025338d-ed25-4da0-aff3-ad970be213a9
                  title: uuid
                fromAmount:
                  type: string
                  description: >-
                    Amount to be transferred from source asset, specified in its
                    lowest denomination.
                  example: '100'
                  pattern: ^[1-9][0-9]*$
                toAssetId:
                  type: string
                  description: Destination asset identifier
                  example: d634310c-3359-4fc3-b7d0-96e593f7660e
                  title: uuid
                destinationType:
                  type: string
                  enum:
                    - go_account
                    - address
                    - wallet
                  description: Type of destination for the order
                  example: go_account
                destinationWalletId:
                  type: string
                  description: Destination wallet identifier for go_account type
                  example: 8iMXoeSpS1d1ziEJ
                  minLength: 1
                destinationAddress:
                  type: string
                  description: Destination blockchain address
                  minLength: 1
                sourceWalletId:
                  type: string
                  minLength: 1
              required:
                - type
                - fromAssetId
                - fromAmount
                - toAssetId
                - destinationType
                - sourceWalletId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/orders:
    get:
      summary: List stablecoin orders by enterprise
      description: Retrieves a list of orders for a specific enterprise.
      operationId: stablecoin.v1.enterprise.order.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: searchLabel
          description: SearchLabel can represent either an Order Id or a Transaction Id.
          in: query
          schema:
            type: string
            example: 512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
            minLength: 1
        - name: ids
          description: Specific order identifiers
          in: query
          schema:
            type: string
            minLength: 1
        - name: stablecoinAssetId
          description: Stablecoin asset identifier
          in: query
          schema:
            type: string
            example: d1c27189-764c-4197-af06-e2623658f410
            minLength: 1
        - name: baseAsset
          description: Base asset type(s) to filter orders across all chains
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - gousd
                    - usd1
                    - sofid
                    - cusd
                    - fyusd
                    - qxmp
                    - scaasacme
                    - usd
              - type: string
                enum:
                  - gousd
                  - usd1
                  - sofid
                  - cusd
                  - fyusd
                  - qxmp
                  - scaasacme
                  - usd
            example: usd1
        - name: type
          description: Order type
          in: query
          schema:
            type: string
            enum:
              - mint
              - burn
              - reward
            example: mint
        - name: status
          description: Order processing status
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - created
                    - confirmed_fiat_deposit
                    - confirmed_token_deposit
                    - initiated_burn_token_transfer
                    - completed_burn_token_transfer
                    - approved_mint
                    - triggering_mint
                    - triggering_burn
                    - completed_burn
                    - approved_client_disbursal
                    - initiated_client_disbursal
                    - fulfilled
                    - failed_mint_initiation
                    - failed_mint_transaction
                    - failed_burn_transaction
                    - failed_burn_token_transfer
                    - failed_to_mint
                    - failed_to_burn
                    - failed_to_initiate_disbursal
                    - failed_to_complete_disbursal
                    - rejected
                    - failed
                    - expired
                    - triggering_mint_request
                    - completed_mint_request
                    - triggering_mint_offer
                    - completed_mint_offer
                    - triggering_mint_accept
                    - completed_mint_accept
                    - triggering_mint_transfer
                    - failed_to_mint_request
                    - failed_to_mint_offer
                    - failed_to_mint_accept
                    - failed_to_mint_transfer
                    - rejected_mint_transfer
                    - cancelled_mint_transfer
                    - expired_mint_transfer
                    - triggering_burn_request
                    - completed_burn_request
                    - triggering_burn_accept
                    - failed_to_burn_request
                    - failed_to_burn_accept
              - type: string
                enum:
                  - created
                  - confirmed_fiat_deposit
                  - confirmed_token_deposit
                  - initiated_burn_token_transfer
                  - completed_burn_token_transfer
                  - approved_mint
                  - triggering_mint
                  - triggering_burn
                  - completed_burn
                  - approved_client_disbursal
                  - initiated_client_disbursal
                  - fulfilled
                  - failed_mint_initiation
                  - failed_mint_transaction
                  - failed_burn_transaction
                  - failed_burn_token_transfer
                  - failed_to_mint
                  - failed_to_burn
                  - failed_to_initiate_disbursal
                  - failed_to_complete_disbursal
                  - rejected
                  - failed
                  - expired
                  - triggering_mint_request
                  - completed_mint_request
                  - triggering_mint_offer
                  - completed_mint_offer
                  - triggering_mint_accept
                  - completed_mint_accept
                  - triggering_mint_transfer
                  - failed_to_mint_request
                  - failed_to_mint_offer
                  - failed_to_mint_accept
                  - failed_to_mint_transfer
                  - rejected_mint_transfer
                  - cancelled_mint_transfer
                  - expired_mint_transfer
                  - triggering_burn_request
                  - completed_burn_request
                  - triggering_burn_accept
                  - failed_to_burn_request
                  - failed_to_burn_accept
            example: created
        - name: fromDate
          description: Start date for order search
          in: query
          schema:
            type: string
            example: '2025-05-24T07:28:17.042Z'
            format: date-time
            title: ISO Date String
        - name: toDate
          description: End date for order search
          in: query
          schema:
            type: string
            example: '2025-06-23T07:28:17.042Z'
            format: date-time
            title: ISO Date String
        - name: limit
          description: Maximum results per page
          in: query
          schema:
            type: string
            example: '10'
            pattern: ^[1-9][0-9]*$
        - name: skip
          description: Results to skip
          in: query
          schema:
            type: string
            example: '0'
            pattern: ^[0-9]+$
        - name: sortBy
          description: Field name for sorting
          in: query
          schema:
            type: string
            enum:
              - createdAt
            example: createdAt
        - name: sortOrder
          description: Sort direction
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
            example: DESC
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - type: object
                      properties:
                        sourceWalletId:
                          type: string
                          description: Source wallet identifier for the order
                          example: 67bc4b038f5408faefbfc8edcf6e6577
                          minLength: 1
                          pattern: ^[0-9a-f]{32}$
                        destinationWalletId:
                          type: string
                          description: Destination wallet identifier for go_account type
                          example: 67bc4b038f5408faefbfc8edcf6e6577
                          pattern: ^[0-9a-f]{32}$
                        destinationAddress:
                          type: string
                          description: Destination blockchain address
                          example: default_address
                          minLength: 1
                        userId:
                          type: string
                          description: User identifier who initiated the order
                          example: 677cfdceca8396cf5f7534ddeb8d11e3
                          minLength: 1
                          pattern: ^[0-9a-f]{32}$
                        clientDepositTxHash:
                          type: string
                          description: Transaction hash of the client deposit
                          example: >-
                            512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
                          minLength: 1
                        orderHistories:
                          type: array
                          items:
                            allOf:
                              - $ref: '#/components/schemas/OrderHistoryBase'
                            description: Array of order status changes with timestamps
                        transactions:
                          type: array
                          items:
                            type: object
                            properties:
                              txId:
                                nullable: true
                                type: string
                                minLength: 1
                                description: Transaction identifier
                                example: >-
                                  512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
                              orderId:
                                type: string
                                description: Associated order identifier
                                example: 95bdbd9c-9cdc-41a4-ae70-165387b7aa51
                                format: uuid
                                title: uuid
                              assetId:
                                type: string
                                description: Asset identifier involved in transaction
                                example: 08c1271e-b15d-4af8-8929-f75383903da4
                                format: uuid
                                title: uuid
                              type:
                                type: string
                                enum:
                                  - clientDeposit
                                  - mint
                                  - burn
                                  - burnTokenTransfer
                                  - clientDisbursement
                                  - treasuryMintTransfer
                                  - treasuryBurnTransfer
                                  - mintRequest
                                  - mintOffer
                                  - mintAccept
                                  - mintTransfer
                                  - burnRequest
                                  - burnAccept
                                description: Type of transaction
                                example: clientDeposit
                              sender:
                                type: string
                                description: Sender identifier
                                example: client
                                minLength: 1
                              senderType:
                                type: string
                                enum:
                                  - go_account
                                  - address
                                  - wallet
                                description: Type of sender
                                example: go_account
                              senderId:
                                type: string
                                description: Unique identifier of sender
                                example: 67bc4b038f5408faefbfc8edcf6e6577
                                minLength: 1
                                pattern: ^[0-9a-f]{32}$
                              sendAmount:
                                type: string
                                description: Amount sent in transaction
                                example: '500'
                                minLength: 1
                              receiver:
                                type: string
                                description: Receiver identifier
                                example: trust
                                minLength: 1
                              receiverType:
                                type: string
                                enum:
                                  - go_account
                                  - address
                                description: Type of receiver
                                example: go_account
                              receiverId:
                                type: string
                                description: Unique identifier of receiver
                                example: 6698e670115059e2efe672436a3aea3b
                                minLength: 1
                                pattern: ^[0-9a-f]{32}$
                              receiveAmount:
                                type: string
                                description: Amount received in transaction
                                example: '500'
                                minLength: 1
                              status:
                                type: string
                                enum:
                                  - initiated
                                  - signed
                                  - unconfirmed
                                  - confirmed
                                  - rejected
                                  - failed
                                description: Current status of transaction
                                example: confirmed
                              createdAt:
                                type: string
                                description: Timestamp when transaction was created
                                example: '2025-04-04T09:26:21.600Z'
                              updatedAt:
                                type: string
                                description: Timestamp when transaction was last updated
                                example: '2025-04-04T09:26:21.600Z'
                              pendingApprovalId:
                                nullable: true
                                type: string
                                minLength: 1
                                description: Pending approval id
                            required:
                              - txId
                              - orderId
                              - assetId
                              - type
                              - sender
                              - senderType
                              - senderId
                              - sendAmount
                              - receiver
                              - receiverType
                              - receiverId
                              - receiveAmount
                              - status
                              - createdAt
                              - updatedAt
                              - pendingApprovalId
                            description: List of transactions associated with the order
                        metadata:
                          type: string
                          description: Additional metadata about the order
                          minLength: 1
                        orderMethod:
                          type: string
                          enum:
                            - issuer_direct
                            - client_deposit
                          description: >-
                            How the order was initiated: issuer-direct or
                            standard client deposit flow
                          example: issuer_direct
                        createdAt:
                          type: string
                          description: Timestamp when the order was created
                          example: '2025-04-04T09:25:48.216Z'
                          format: date-time
                          title: ISO Date String
                        updatedAt:
                          type: string
                          description: Timestamp when the order was last updated
                          example: '2025-04-04T09:55:09.136Z'
                          format: date-time
                          title: ISO Date String
                    - $ref: '#/components/schemas/OrderResponseBase'
                    - $ref: '#/components/schemas/OrderResponseRequiredFields'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/orders-summary:
    get:
      summary: Get orders summary for enterprise
      description: >-
        Returns aggregated order amounts and counts by asset.

        Amounts are returned as strings in lowest denomination (no decimal
        formatting).

        By default, includes all non-failed orders (created, pending, and
        fulfilled).

        Use the optional status parameter to filter by specific order statuses.
      operationId: stablecoin.v1.enterprise.orders.summary.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: stablecoin
          description: Stablecoin name(s) to filter across all chains
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - gousd
                    - usd1
                    - sofid
                    - cusd
                    - fyusd
                    - qxmp
                    - scaasacme
              - type: string
                enum:
                  - gousd
                  - usd1
                  - sofid
                  - cusd
                  - fyusd
                  - qxmp
                  - scaasacme
            example: usd1
        - name: chain
          description: Blockchain network identifier to filter summary
          in: query
          schema:
            type: string
            example: hteth
            minLength: 1
        - name: status
          description: >-
            Order processing status(es) to filter summary - accepts only
            user-facing statuses
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - created
                    - pending
                    - fulfilled
              - type: string
                enum:
                  - created
                  - pending
                  - fulfilled
            example: created
        - name: groupBy
          description: >-
            Time period grouping for time-series data. When provided, returns
            timeSeries array in response.
          in: query
          schema:
            type: string
            enum:
              - hour
              - day
              - week
              - month
              - year
            example: month
        - name: fromDate
          description: >-
            Start date for time-series data (inclusive). Defaults to 1 year ago
            if groupBy is provided.
          in: query
          schema:
            type: string
            example: '2024-01-01T00:00:00.000Z'
            format: date-time
            title: ISO Date String
        - name: toDate
          description: >-
            End date for time-series data (inclusive). Defaults to current
            timestamp if groupBy is provided.
          in: query
          schema:
            type: string
            example: '2024-12-31T23:59:59.999Z'
            format: date-time
            title: ISO Date String
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrdersSummaryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/enterprise/{enterpriseId}/orders/{orderId}:
    get:
      summary: Get stablecoin order by ID
      description: Retrieves a order by its ID for a specific enterprise.
      operationId: stablecoin.v1.enterprise.order.getById
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: enterpriseId
          description: Enterprise id
          in: path
          required: true
          schema:
            type: string
            example: 67bc4ae090e8af8f9b412d3d67e85252
            minLength: 1
        - name: orderId
          description: Order identifier
          in: path
          required: true
          schema:
            type: string
            example: ec84b11f-491b-465f-a118-403a3485452b
            title: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/issuer/orders-summary:
    get:
      summary: Get orders summary for issuer (across all enterprises)
      description: >-
        Returns aggregated order amounts and counts for all assets issued by the
        authenticated enterprise,

        aggregated across all enterprises that hold those assets.

        Amounts are returned as strings in lowest denomination (no decimal
        formatting).

        By default, includes all non-failed orders (created, pending, and
        fulfilled).

        Use the optional status parameter to filter by specific order statuses.
      operationId: stablecoin.v1.issuer.orders.summary.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: stablecoin
          description: Stablecoin name(s) to filter across all chains
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - gousd
                    - usd1
                    - sofid
                    - cusd
                    - fyusd
                    - qxmp
                    - scaasacme
              - type: string
                enum:
                  - gousd
                  - usd1
                  - sofid
                  - cusd
                  - fyusd
                  - qxmp
                  - scaasacme
            example: usd1
        - name: chain
          description: Blockchain network identifier to filter summary
          in: query
          schema:
            type: string
            example: hteth
            minLength: 1
        - name: status
          description: >-
            Order processing status(es) to filter summary - accepts only
            user-facing statuses
          in: query
          schema:
            oneOf:
              - type: array
                items:
                  type: string
                  enum:
                    - created
                    - pending
                    - fulfilled
              - type: string
                enum:
                  - created
                  - pending
                  - fulfilled
            example: created
        - name: groupBy
          description: >-
            Time period grouping for time-series data. When provided, returns
            timeSeries array in response.
          in: query
          schema:
            type: string
            enum:
              - hour
              - day
              - week
              - month
              - year
            example: month
        - name: fromDate
          description: >-
            Start date for time-series data (inclusive). Defaults to 1 year ago
            if groupBy is provided.
          in: query
          schema:
            type: string
            example: '2024-01-01T00:00:00.000Z'
            format: date-time
            title: ISO Date String
        - name: toDate
          description: >-
            End date for time-series data (inclusive). Defaults to current
            timestamp if groupBy is provided.
          in: query
          schema:
            type: string
            example: '2024-12-31T23:59:59.999Z'
            format: date-time
            title: ISO Date String
        - name: clientEnterpriseId
          description: Enterprise ID(s) of the client enterprise(s) to filter summary data
          in: query
          schema:
            oneOf:
              - type: string
                minLength: 1
              - type: array
                items:
                  type: string
                  minLength: 1
            example: 67bc4ae090e8af8f9b412d3d67e85252
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrdersSummaryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/stablecoin/v1/tokens/{token}/details:
    get:
      summary: Get cross-chain total supply for a token
      description: >-
        Returns the aggregated total supply for a token across all supported
        chains.
      operationId: stablecoin.v1.tokens.totalSupply.get
      tags:
        - Stablecoin
      x-internal: false
      parameters:
        - name: useCached
          description: >-
            Whether to return a cached response. Defaults to true (cached data).
            Set to false to force live data from the blockchain.
          in: query
          schema:
            type: boolean
            example: true
        - name: token
          description: >-
            Token symbol or identifier for the stablecoin to get total supply
            for.
          in: path
          required: true
          schema:
            type: string
            example: usd1
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokenDetailsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /api/v1/user/login:
    post:
      summary: Login Request
      operationId: user.login
      tags:
        - User
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: The email address of the user
                extensible:
                  type: boolean
                otp:
                  type: string
                  description: The one-time password
                password:
                  type: string
                  description: The password
              required:
                - email
                - otp
                - password
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/key/{id}:
    get:
      summary: Get key
      description: >-
        Get Key using either the key id or the pub. When using the public key,
        it will only

        return the mandatory fields.
      operationId: v2.key.get
      tags:
        - Key
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: id
          description: The key ID or the public key
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/tss/pubkey:
    get:
      summary: Get Bitgo MPC GPG public key
      description: >-
        It is necessary to use correct MPC BitGo public GPG key when performing
        MPC operations. Different public keys might be necessary in different
        cases. This endpoint returns a valid GPG public key taking into account
        all factors, including: coin, user and enterprise feature flags. Using
        incorrect key may cause signing and wallet creation errors.
      operationId: v2.tsspubkey.getbycoin
      tags:
        - Key
      parameters:
        - name: enterpriseId
          description: >-
            Filter by enterprise. Allows to take enterprise settings into
            consideration.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitgoTSSPublicKeyResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/tx/{txId}:
    get:
      summary: Get transaction information
      description: >-
        Returns transaction details (transfers, send queue items, transaction
        requests and pending

        approvals) for a transaction id, scoped to the wallets the requesting
        user has access to.
      operationId: v2.tx.get
      tags:
        - Transfer
      x-internal: false
      parameters:
        - name: txId
          description: The transaction ID to look up
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: coin
          description: The cryptocurrency symbol (e.g. btc, eth)
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/CoinNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTxInfoResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/address:
    post:
      summary: Create address
      description: >-
        Creates a new receive address for a wallet. If you create a forwarder
        address, whenever it receives assets, BitGo automatically deploys a
        forwarder smart contract to flush the balance to the base address. See
        [Blockchain Reference](https://assets.bitgo.com/coins/agoric) topics to
        learn more about address management, fees, and consolidations for
        specific assets.

        **Note:** New Ethereum addresses require blockchain confirmation before
        you can consolidate from them.
      operationId: v2.wallet.newaddress
      tags:
        - Address
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                chain:
                  type: number
                  default: 1
                  example: 1
                forwarderVersion:
                  type: number
                  description: >-
                    (ETH only) Specify forwarder version to use in address
                    creation. To reduce the cost of creating ETH forwarders,
                          BitGo uses a set  of forwarder contracts that deploy as a simple proxy to a single  implementation
                          (https://eips.ethereum.org/EIPS/eip-1167).  Additionally, forwarders deploy using opcode, CREATE2, enabling  them
                          to deploy only when needed (https://eips.ethereum.org/EIPS/eip-1014).  These forwarders otherwise operate
                          identically to prior ETH forwarders. Use this flag to specify the forwarder contract version when  deploying a
                          forwarder contract. Use 0 for the older forwarder  (https://github.com/BitGo/eth-multisig-v2). Use 1 for the new
                          fee-improved  forwarder (https://github.com/BitGo/eth-multisig-v4). Use 2 for  NFT-supported forwarders and
                          version 2 wallets. Use 3 for MPC wallets.  Use 4 for forwarders with the same functionality as v2 but with some
                          changes. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in
                          the future. Use 5 for new MPC based wallets with wallet-version 6
                  minimum: 0
                  maximum: 5
                evmKeyRingReferenceAddress:
                  type: string
                onToken:
                  type: string
                  description: Create an address for the given token
                  example: ofcbtc
                label:
                  type: string
                  description: A human-readable label for the address
                  example: Bob's Hot Wallet Address
                  maxLength: 250
                lowPriority:
                  type: boolean
                  default: false
                  description: >-
                    Whether the deployment of the address forwarder contract
                    should use a low priority fee key (ETH only)
                gasPrice:
                  oneOf:
                    - type: string
                    - type: number
                  description: >-
                    Explicit gas price to use when deploying the forwarder
                    contract (ETH only). If not given, defaults to the current
                          estimated network gas price.
                eip1559:
                  type: object
                  description: >-
                    (ETH forwarderVersion: 0 wallets only) Specify eip1559 fee
                    parameters in forwarder creation transactions.
                  properties:
                    maxFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max total gasPrice for EIP1559 transactions. Only for
                        ETH and ERC20 tokens.
                    maxPriorityFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max priority tip price for EIP1559 transactions. Only
                        for ETH and ERC20 tokens.
                  required:
                    - maxFeePerGas
                    - maxPriorityFeePerGas
                format:
                  type: string
                  description: >-
                    Format to use for the new address, if the coin which
                    supports multiple formats for an address. Currently, Bitcoin
                    Cash is the only coin which has support for multiple address
                    formats. For Bitcoin Cash, BitGo supports both the base58
                    (legacy) address format, as well as the newer CashAddr
                    format. The default address format is base58. To request a
                    CashAddr formatted address instead, use the value 'cashaddr'
                    as the format.
                  example: cashaddr
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletAddressUnion'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/address/{addressId}/deployment:
    post:
      summary: Deploy address
      description: This API call is to manually deploy an ETH address
      operationId: v2.wallet.deployForwarder
      tags:
        - Address
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: addressId
          description: Address or Id which will be used for information lookup
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                forceDeploy:
                  type: boolean
                  default: false
                  description: >-
                    Use forceDeploy: true to deploy the forwarder even if
                    pendingDeployment flag is set as false
                gasPrice:
                  type: number
                  description: >-
                    Explicit gas price to use when deploying the forwarder
                    contract (ETH only). If not given, defaults to the current
                    estimated network gas price.
                eip1559:
                  type: object
                  description: >-
                    Specify eip1559 fee parameters in forwarder creation
                    transactions.
                  properties:
                    maxFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max total gasPrice for EIP1559 transactions. Only for
                        ETH and ERC20 tokens.
                    maxPriorityFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max priority tip price for EIP1559 transactions. Only
                        for ETH and ERC20 tokens.
                  required:
                    - maxFeePerGas
                    - maxPriorityFeePerGas
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployAddressAndForwardTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/address/{addressId}/tokenforward:
    post:
      summary: Forward tokens from address
      description: This API call is to manually forward tokens from an ETH or CELO address
      operationId: v2.wallet.forwardToken
      tags:
        - Address
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: addressId
          description: Address or Id which will be used for information lookup
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                tokenName:
                  type: string
                  description: Name of token that needs to be forwarded from the address
                forceFlush:
                  type: boolean
                  default: false
                  description: >-
                    Use forceFlush: true to flush the tokens from forwarder
                    irrespective of the balance of the forwarders
                gasPrice:
                  type: number
                  description: >-
                    Explicit gas price to use when forwarding token from the
                    forwarder contract (ETH and Celo only). If not given,
                    defaults to the current estimated network gas price.
                eip1559:
                  type: object
                  description: >-
                    Specify eip1559 fee parameters in token forwarding
                    transaction.
                  properties:
                    maxFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max total gasPrice for EIP1559 transactions. Only for
                        ETH and ERC20 tokens.
                    maxPriorityFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max priority tip price for EIP1559 transactions. Only
                        for ETH and ERC20 tokens.
                  required:
                    - maxFeePerGas
                    - maxPriorityFeePerGas
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployAddressAndForwardTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/address/{addressOrId}:
    get:
      summary: Get address
      description: Gets a receive address on a wallet
      operationId: v2.wallet.singlewalletaddress
      tags:
        - Address
      parameters:
        - name: dt
          description: For XRP addresses
          in: query
          schema:
            type: string
        - name: memoId
          description: For XLM addresses
          in: query
          schema:
            type: string
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: addressOrId
          description: The address or ID which will be used for information lookup
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletAddressUnion'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    put:
      summary: Update address
      description: Update a receive address on a wallet
      operationId: v2.wallet.updateaddress
      tags:
        - Address
      parameters:
        - name: dt
          description: For XRP addresses
          in: query
          schema:
            type: string
        - name: memoId
          description: For XLM addresses
          in: query
          schema:
            type: string
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: addressOrId
          description: Address or Id which will be used for information lookup
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  nullable: true
                  allOf:
                    - $ref: '#/components/schemas/AddressLabelString'
                  description: >-
                    New label which should apply to this address. The caller
                    needs admin permissions for the associated wallet if the
                          label already has a value. Otherwise view or spend permissions are fine because the label has not been set yet.
                          This is due to the fact that customers use address labels to associate addresses with their customers.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletAddress'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/address/{addressOrId}/proof:
    get:
      summary: Get proof of address ownership
      description: >-
        Gets proof of ownership for an address of a TRUST wallet. Returns a
        unique BTC proof that you can use with your

        travel-rule solutions. Only available for BTC.


        Before using this endpoint, BitGo must configure the VASP ID for your
        enterprise. Contact support@bitgo.com and

        provide your enterprise ID, environment (production or testnet), role at
        your company, and your VASP ID.
      operationId: v2.wallet.addressProof
      tags:
        - Address
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: addressOrId
          description: Address or Id which will be used for information lookup
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressProofResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/addresses:
    get:
      summary: List addresses
      description: List receive addresses on a wallet
      operationId: v2.wallet.addresses
      tags:
        - Address
      parameters:
        - name: includeBalances
          description: Whether to include address balances
          in: query
          schema:
            type: boolean
            default: false
        - name: includeTokens
          description: Whether to include token addresses
          in: query
          schema:
            type: boolean
            default: false
        - name: includeAllTokenAddresses
          description: Whether to include all token addresses for receiver addresses
          in: query
          schema:
            type: boolean
            default: false
        - name: labelContains
          description: >-
            A case-insensitive regular expression which will be used to filter
            returned addresses based on their address label.
          in: query
          schema:
            type: string
        - name: limit
          description: Maximum number of results to return
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
        - name: sort
          description: >-
            Sort order of returned addresses. (1 for ascending, -1 for
            descending)
          in: query
          schema:
            type: string
            default: '1'
        - name: sortedField
          description: >-
            The field by which addresses will be sorted, if not provided then
            sort by id by default
          in: query
          schema:
            type: string
            enum:
              - token
              - label
        - name: sortedFieldDirection
          description: Sort order of the returned addresses on the sortedField
          in: query
          schema:
            type: string
            enum:
              - '1'
              - '-1'
        - name: chains
          description: Filter by address chains
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - '0'
                - '1'
                - '10'
                - '11'
                - '20'
                - '21'
                - '30'
                - '31'
                - '40'
                - '41'
              description: Filter by address chains
              example: '1'
        - name: includeTotalAddressCount
          description: >-
            For large wallets (>100k addresses), include total count of
            addresses (including addresses pending on-chain) matching the query.
          in: query
          schema:
            type: boolean
            default: false
        - name: prevId
          description: >-
            Return the next batch of results, based on the nextBatchPrevId value
            from the previous batch
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: token
          description: >-
            This param is used to query and filter addresses by token names in
            case of ofc wallets
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                This param is used to query and filter addresses by token names
                in case of ofc wallets
              example: ofctbtc
        - name: returnBalancesForToken
          description: >-
            Name of the token that the response should include balances for.
            (Eth and Celo only)
          in: query
          schema:
            type: string
        - name: pendingDeployment
          description: >-
            Filter the addresses based on their deployment status. Return the
            deployed addresses if this param is passed as false and return
            undeployed addresses if it is passed as true. (Eth only)
          in: query
          schema:
            type: string
        - name: segwit
          description: >-
            DEPRECATED. Mutually exclusive with 'chains'. Returns only
            'p2shP2wsh' unspents/addresses on true. Returns only 'p2sh'
            unspents/addresses on false. Equivalent to passing 10 and 11 as the
            only value in 'chains' on true, 0 and 1 on false.
          in: query
          schema:
            type: boolean
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressQueryResult'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/addresses/balances:
    get:
      summary: List addresses sorted by balance
      description: |-
        List addresses by sorted balances on a wallet.
        Supported coins: TRX.
      operationId: v2.wallet.addresses.balances
      tags:
        - Address
      parameters:
        - name: page
          description: page number
          in: query
          schema:
            type: string
            default: '1'
            minimum: 1
            format: number
        - name: limit
          description: Maximum number of results to return
          in: query
          schema:
            type: string
            default: '500'
            minimum: 1
            maximum: 500
            format: number
        - name: sort
          description: >-
            Sort order of returned addresses based on balance. (1 for ascending,
            -1 for descending)
          in: query
          schema:
            type: string
            enum:
              - '1'
              - '-1'
            default: '-1'
        - name: token
          description: Name of the token for which the addresses need to be fetched
          in: query
          schema:
            type: string
        - name: nftCollectionId
          description: NFT collection ID for which the addresses need to be fetched
          in: query
          schema:
            type: string
        - name: nftId
          description: NFT ID for which the addresses need to be fetched
          in: query
          schema:
            type: string
        - name: coin
          description: A cryptocurrency symbol or token ticker symbol
          in: path
          required: true
          schema:
            type: string
            example: trx
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressWithBalanceQueryResult'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/allowance:
    get:
      summary: Get the token allowance for a specific token contract address
      operationId: v2.wallet.token.allowance
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenAllowanceResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidAddress1'
  /api/v2/{coin}/wallet/{walletId}/crossChainUnspents:
    get:
      summary: Get Wallet Cross Chain Unspents
      description: |-
        Returns atomic cross-chain unspents that can be imported by the wallet.
        Supported coins: AVAX.
      operationId: v2.wallet.crosschainunspents
      tags:
        - Wallet
      parameters:
        - name: sourceChain
          description: |-
            Returns unspents exported from the source chain.
            If not provided, returns outputs from all chains.
          in: query
          schema:
            type: string
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletCrossChainUnspentResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/delegateResources/build:
    post:
      summary: Build bulk resource delegation transactions
      description: |-
        Builds one delegation transaction per entry, collecting per-entry errors
        rather than aborting the batch on first failure.
      operationId: v2.wallet.delegateresources.build
      tags:
        - Wallet
      x-internal: false
      parameters:
        - name: coin
          description: The coin ticker symbol (e.g. 'trx', 'ttrx')
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/CoinString'
        - name: walletId
          description: The wallet ID
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Build Resource Delegations Request Body


                Request body for building bulk resource delegation transactions.

                Each entry delegates a resource (ENERGY or BANDWIDTH) from the
                wallet's root address to a receiver address.
              properties:
                delegations:
                  type: array
                  items:
                    type: object
                    properties:
                      receiverAddress:
                        type: string
                        description: The address receiving the delegated resource
                      amount:
                        type: string
                        description: Amount of resource to delegate (in sun for TRX)
                      resource:
                        type: string
                        description: >-
                          Resource type to delegate, e.g. 'ENERGY' or
                          'BANDWIDTH'
                    required:
                      - receiverAddress
                      - amount
                      - resource
                    description: >-
                      Array of resource delegation entries, each specifying a
                      receiver address, amount, and resource type
              required:
                - delegations
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildDelegationsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/forwarders/balances:
    get:
      summary: List forwarder addresses and balances
      description: >-
        Lists all forwarder addresses and their balances for a wallet. By
        default, returns low-balance forwarder addresses. A forwarder address
        has a low balance if the number of assets in it is less than the balance
        times by the current gas price times the transaction gas limit.
      operationId: v2.wallet.forwarders.balance
      tags:
        - Wallet
      parameters:
        - name: minimumBalance
          description: Lower bound of balance range.
          in: query
          schema:
            type: string
            format: number
        - name: maximumBalance
          description: Upper bound of balance range.
          in: query
          schema:
            type: string
            format: number
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/forwardersBalanceResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
  /api/v2/{coin}/wallet/{walletId}/freeze:
    post:
      summary: Freeze the wallet for the given coin and wallet id.
      description: |-
        Permissions:
        - spender for the given wallet and coin
      operationId: v2.wallet.freeze
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                duration:
                  nullable: true
                  oneOf:
                    - type: number
                    - type: string
                      enum:
                        - max
                  default: 3600 (1 hour)
                  description: How long to freeze the wallet
                reason:
                  allOf:
                    - $ref: '#/components/schemas/FreezeReason'
                  description: Reason for freezing the wallet
                referenceId:
                  type: string
                  description: Used for tracking purposes
                metadata:
                  allOf:
                    - $ref: '#/components/schemas/FreezeMetadata'
                  description: Provides more context on why a wallet was frozen
              required:
                - duration
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletFreezeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/fundforwarders:
    post:
      summary: Send funds to forwarder
      description: >-
        Send funds from a fee address to forwarder. Only supports account-based
        coins and tokens (like ETH).
      operationId: v2.wallet.fundforwarders
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                forwarders:
                  type: array
                  items:
                    type: object
                    properties:
                      forwarderAddress:
                        type: string
                        description: Address of the forwarder to send funds to
                      amount:
                        type: string
                        description: >-
                          Amount to send to the forwarder. If not given,
                          defaults to sending an estimate of the amount needed
                          for a fund recovery.
                    required:
                      - forwarderAddress
              required:
                - forwarders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  failed:
                    type: array
                    items:
                      type: object
                      properties:
                        forwarderAddress:
                          type: string
                          description: Failed forwarder address
                        errMsg:
                          type: string
                      required:
                        - forwarderAddress
                        - errMsg
                  successTxIds:
                    type: array
                    items:
                      type: object
                      properties:
                        forwarderAddress:
                          type: string
                          description: Successful forwarder address
                        txId:
                          type: string
                          description: On-chain transaction ID
                      required:
                        - forwarderAddress
                        - txId
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/getAccountResources:
    post:
      summary: Get account resources
      description: Retrieves bandwidth and energy resource information for TRON addresses
      operationId: v2.wallet.getAccountResources
      tags:
        - Wallet
      x-internal: false
      parameters:
        - name: coin
          description: Coin or token identifier (e.g. trx, ttrx:usdt)
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          description: Wallet ID to retrieve account resources for
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: List of TRON addresses to retrieve resource information for
              title: GetAccountResourcesBody
              properties:
                addresses:
                  type: array
                  items:
                    type: string
                    description: >-
                      List of TRON addresses to retrieve resource information
                      for
                destinationAddress:
                  type: string
                  description: >-
                    Optional destination address for resource deficit
                    calculation
              required:
                - addresses
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccountResourcesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/potentialStuckTxs:
    get:
      summary: List stuck transactions
      description: >-
        Gets a list of potentially problematic transactions, their nonces, the
        reason they

        are stuck, and possible solutions for a given wallet.
      operationId: v2.wallet.getpotentialstucktxs
      tags:
        - Wallet
      parameters:
        - name: expandSendTransferMetadata
          description: >-
            True, if expanding the send transfer for each stuck transaction if
            one is available.
          in: query
          schema:
            type: boolean
            default: false
        - name: txid
          description: The transaction ID of the stuck transaction.
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPotentialStuckTxsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/resourcedelegations:
    get:
      summary: Get resource delegations
      description: >-
        Retrieves outgoing and incoming resource delegation information for a
        TRON wallet
      operationId: v2.wallet.getResourceDelegations
      tags:
        - Wallet
      x-internal: false
      parameters:
        - name: type
          description: >-
            Filter by delegation direction: 'outgoing' for delegations from this
            address, 'incoming' for delegations to this address; omit to fetch
            both
          in: query
          schema:
            type: string
            enum:
              - outgoing
              - incoming
        - name: resource
          description: >-
            Filter by resource type (case-insensitive: ENERGY, energy,
            BANDWIDTH, bandwidth)
          in: query
          schema:
            type: string
        - name: limit
          description: Maximum number of results to return
          in: query
          schema:
            type: string
            format: number
        - name: nextBatchPrevId
          description: Pagination cursor from previous response
          in: query
          schema:
            type: string
        - name: coin
          description: Coin or token identifier (e.g. trx, ttrx)
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          description: Wallet ID to retrieve active delegations for
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResourceDelegationsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/sequenceIds:
    get:
      summary: List last 10 contract sequenceIds of a wallet
      description: >-
        Lists last 10 contract sequenceIds of the base address of a wallet
        alongwith

        their transaction ids.
      operationId: v2.wallet.getSequenceIds
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSequenceIdsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
  /api/v2/{coin}/wallet/{walletId}/token/approval/build:
    post:
      summary: Build an approval transaction for ERC20 token
      operationId: v2.wallet.token.approval.build
      tags:
        - Wallet
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                tokenName:
                  type: string
                  minLength: 1
                amount:
                  type: string
                  minLength: 1
                gasLimit:
                  type: number
                gasPrice:
                  type: number
                eip1559:
                  type: object
                  properties:
                    maxFeePerGas:
                      type: number
                    maxPriorityFeePerGas:
                      type: number
                  required:
                    - maxFeePerGas
                    - maxPriorityFeePerGas
              required:
                - tokenName
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildTokenApprovalResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/tx/changeFee:
    post:
      summary: Change Fee
      description: >-
        Change the fee rate of a transaction in an attempt to accelerate its
        confirmation.

        Supported by: ETH, ERC20 tokens, CELO, RSK, ETC


        Requirements:

        - Transaction gas price must increase by at least 10 Gwei or 20% higher
        than the original transaction fee

        - At least 15 minutes must have passed since original send
      operationId: v2.wallet.changefee
      tags:
        - Transfer
      parameters:
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                txid:
                  type: string
                  description: >-
                    Transaction ID of the transaction for which we are changing
                    the fee for.
                  example: >-
                    b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
                  minLength: 1
                fee:
                  type: number
                  description: The new fee for the transaction.
                eip1559:
                  type: object
                  description: EIP-1559 transaction parameters
                  properties:
                    maxFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max total gasPrice for EIP1559 transactions. Only for
                        ETH and ERC20 tokens.
                    maxPriorityFeePerGas:
                      allOf:
                        - $ref: '#/components/schemas/NumberLike'
                      description: >-
                        Max priority tip price for EIP1559 transactions. Only
                        for ETH and ERC20 tokens.
                  required:
                    - maxFeePerGas
                    - maxPriorityFeePerGas
                txType:
                  type: string
                  description: >-
                    Use `txType` to change fee of address initialization
                    transaction for V5 wallets
                  example: AddressInitialization
              required:
                - txid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeFeeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/undelegateResources/build:
    post:
      summary: Build bulk resource undelegation transactions
      description: >-
        Builds one undelegation transaction per entry, collecting per-entry
        errors

        rather than aborting the batch on first failure.
      operationId: v2.wallet.undelegateresources.build
      tags:
        - Wallet
      x-internal: false
      parameters:
        - name: coin
          description: The coin ticker symbol (e.g. 'trx', 'ttrx')
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/CoinString'
        - name: walletId
          description: The wallet ID
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Build Resource Undelegations Request Body


                Request body for building bulk resource undelegation
                transactions.

                Each entry undelegates a resource (ENERGY or BANDWIDTH)
                previously delegated from the wallet's root address.
              properties:
                undelegations:
                  type: array
                  items:
                    type: object
                    properties:
                      receiverAddress:
                        type: string
                        description: The address receiving the delegated resource
                      amount:
                        type: string
                        description: Amount of resource to delegate (in sun for TRX)
                      resource:
                        type: string
                        description: >-
                          Resource type to delegate, e.g. 'ENERGY' or
                          'BANDWIDTH'
                    required:
                      - receiverAddress
                      - amount
                      - resource
                    description: >-
                      Array of resource undelegation entries, each specifying a
                      receiver address, amount, and resource type
              required:
                - undelegations
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildDelegationsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/{walletId}/unspents:
    get:
      summary: List unspents on a wallet
      operationId: v2.wallet.unspents
      tags:
        - Wallet
      parameters:
        - name: limit
          description: Limit the number of results.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 0
            maximum: 2000
            format: number
        - name: prevId
          description: Only return results created after this ID
          in: query
          schema:
            type: string
            minLength: 1
        - name: chains
          description: Filter by chains. May be given mutiple times
          in: query
          schema:
            type: array
            items:
              type: string
              format: number
              description: Filter by chains. May be given mutiple times
        - name: minConfirms
          description: The minimum number of confirmations for the unspents
          in: query
          schema:
            type: string
            format: number
        - name: enforceMinConfirmsForChange
          description: >-
            Whether to enforce the minimum number of confirmations for change
            outputs
          in: query
          schema:
            type: boolean
        - name: minValue
          description: >-
            The minimum value of unspents to return (in base units, e.g.
            satoshis)
          in: query
          schema:
            type: string
            minLength: 1
        - name: maxValue
          description: >-
            The maximum value of unspents to return (in base units, e.g.
            satoshis)
          in: query
          schema:
            type: string
            minLength: 1
        - name: unspentIds
          description: >-
            Canton: filter to specific IMS unspent contract ids (repeat param or
            comma-separated).

            Ignored for other chains that use this route.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                Canton: filter to specific IMS unspent contract ids (repeat
                param or comma-separated).

                Ignored for other chains that use this route.
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinNonEmptyString'
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletUnspentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/{coin}/wallet/balances:
    get:
      summary: List total balances by coin
      description: >-
        Returns total balances by asset (including tokens and NFTs) across all
        wallets in an enterprise.
      operationId: v2.wallet.gettotalbalancesbycoin
      tags:
        - Wallet
      parameters:
        - name: allTokens
          description: >-
            Include balances for all subtokens (i.e. ERC20 Tokens, Stellar
            Tokens)
          in: query
          schema:
            type: boolean
        - name: enterprise
          description: Filter by enterprise ID
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/EnterpriseIdString'
              - type: array
                items:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
        - name: showAllWallets
          description: >-
            Include wallets that have 'deleted' or 'creationFailed' set to
            **true**
          in: query
          schema:
            type: boolean
            default: false
        - name: includeStakingBalances
          description: >-
            Include `stakingBalanceString` and `rewardBalanceString` properties
            for each staking wallet.
          in: query
          schema:
            type: boolean
            default: false
        - name: coin
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/CoinString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWalletBalancesByCoinResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/auditlog:
    get:
      summary: List audit logs
      operationId: v2.auditlog.list
      tags:
        - Audit log
      parameters:
        - name: allTokens
          description: Whether to include all tokens
          in: query
          schema:
            type: boolean
        - name: dateGte
          description: Date greater than or equal to
          in: query
          schema:
            type: string
            example: '2025-04-26T18:30:00.000Z'
        - name: dateLt
          description: Date less than
          in: query
          schema:
            type: string
            example: '2025-04-26T18:30:00.000Z'
        - name: enterpriseId
          description: The enterprise ID to filter by
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: includeV1
          description: Whether to include v1 audit logs
          in: query
          schema:
            type: boolean
        - name: limit
          description: Limit the number of results
          in: query
          schema:
            type: string
            format: number
        - name: prevId
          description: The ID of the previous audit log
          in: query
          schema:
            type: string
        - name: type
          description: The types of audit log to filter by
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/AuditLogType1'
              - type: array
                items:
                  type: string
                  x-enumsDeprecated:
                    - adminUnblockUserEmail
        - name: userId
          description: The user ID to filter by
          in: query
          schema:
            type: string
        - name: walletId
          description: The wallet ID to filter by
          in: query
          schema:
            type: string
        - name: sharedPolicyRuleId
          description: The shared policy rule ID to filter by
          in: query
          schema:
            type: string
        - name: vaspId
          description: The VASPs ID to filter by
          in: query
          schema:
            type: string
        - name: coin
          description: The coin(s) to filter by
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/CoinNonEmptyString'
              - type: array
                items:
                  type: string
                  description: A cryptocurrency symbol or token ticker symbol
                  example: btc
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAuditLogsResponse'
  /api/v2/enterprise:
    get:
      summary: List enterprises
      operationId: enterprise.list
      tags:
        - Enterprise
      parameters:
        - name: expandTotalWalletCounts
          description: True, if returning the total number of wallets for each enterprise.
          in: query
          schema:
            type: boolean
        - name: excludeWalletMemberships
          description: >-
            True, if excluding enterprises that the user joined only through
            wallet memberships.
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterprisesResponse1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/availableassets:
    get:
      summary: List available assets
      description: >-
        Lists all available assets for a given enterprise. Must have view
        permissions on the enterprise
      operationId: v2.enterprise.availableassets.get
      tags:
        - Enterprise
      parameters:
        - name: includeTokens
          description: True, if returning tokens.
          in: query
          schema:
            type: boolean
            default: false
        - name: excludeOfcCoins
          description: True, if excluding off-chain assets.
          in: query
          schema:
            type: boolean
            default: false
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                example:
                  - btc
                  - eth
                  - usdt
                  - sol
                  - ton
                items:
                  type: string
                  description: A list of cryptocurrency or token ticker symbols
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/freeze:
    post:
      summary: Freeze the enterprise
      operationId: enterprise.freeze
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                duration:
                  type: string
                  default: '3600'
                  description: Seconds to freeze the enterpise for
                  format: number
              required:
                - duration
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Freeze'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema: {}
  /api/v2/enterprise/{enterpriseId}/pin/count:
    get:
      summary: Get pinned wallet count
      description: >-
        Returns the count of pinned wallets for the current user on the
        specified enterprise.
      operationId: v2.enterprise.pin.count
      tags:
        - Wallet
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPinnedWalletsCountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/points/optOut:
    put:
      summary: Opt out of points system
      operationId: v2.enterprise.points.optOut
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
        - name: authorization
          description: The authorization header
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: JSON
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/regionalfeatures:
    get:
      summary: Get enterprise regional features
      description: Get the regional features available to an enterprise by its location.
      operationId: v2.enterprise.regional.features.get
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegionalFeatures'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/tssconfig:
    get:
      summary: Get enterprise MPC config
      description: >-
        This api fetches the enterprise MPC config if it exists. The caller of
        this API must have view permissions on the enterprise.
      operationId: v2.enterprise.tssconfig.get
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          description: The enterprise ID
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TssConfig'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/tssconfig/ecdsa/challenge:
    put:
      summary: Update enterprise ECDSA MPC challenge
      description: >-
        This api is used to upload a new ECDSA challenge for the enterprise.
        This will replace the existing challenge if one exists.
      operationId: v2.enterprise.tssconfig.ecdsa.challenge.update
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enterprise:
                  $ref: '#/components/schemas/UpdateEnterpriseChallenge'
                bitgoNitroHsm:
                  $ref: '#/components/schemas/UpdateBitgoChallenge'
                bitgoInstitutionalHsm:
                  $ref: '#/components/schemas/UpdateBitgoChallenge'
              required:
                - enterprise
                - bitgoNitroHsm
                - bitgoInstitutionalHsm
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChallengePartyConfig'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/txrequests:
    get:
      summary: Get transaction requests by enterprise
      description: Get a paginated list of transaction requests filtered by enterprise.
      operationId: v2.enterprise.txrequest.get
      tags:
        - Transaction request
      parameters:
        - name: txRequestIds
          description: >-
            If provided, only the specified transaction requests will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                If provided, only the specified transaction requests will be
                returned.
        - name: idempotencyKeys
          description: >-
            If provided, only transaction requests with the matching
            idempotencyKeys will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                If provided, only transaction requests with the matching
                idempotencyKeys will be returned.
        - name: sequenceIds
          description: >-
            A "sequenceId" is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a "sequenceId" you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            the system only confirms one send request per "sequenceId" (and
            fails all subsequent attempts), you can retry sending without the
            risk of double spending. The "sequenceId" is only visible to users
            on the wallet and is not shared publicly.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                A "sequenceId" is a unique and arbitrary wallet identifier
                applied to transfers and transactions at creation. It is
                optional but highly recommended. With a "sequenceId" you can
                easily reference transfers and transactions&mdash;for example,
                to safely retry sending. Because the system only confirms one
                send request per "sequenceId" (and fails all subsequent
                attempts), you can retry sending without the risk of double
                spending. The "sequenceId" is only visible to users on the
                wallet and is not shared publicly.
        - name: intentTypes
          description: >-
            If provided, only transaction requests with the specified intent
            types will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - payment
                - consolidate
                - consolidateToken
                - fanout
                - vote
                - createAccount
                - updateAccount
                - addTrustLine
                - removeTrustLine
                - signMessage
                - signTypedStructuredData
                - enableToken
                - acceleration
                - transferToken
                - fillNonce
                - walletRecovery
                - contractCall
                - customTx
                - closeAssociatedTokenAccount
                - export
                - import
                - importtoc
                - transferAcknowledge
                - transferAccept
                - transferReject
                - transferOfferWithdrawn
                - cosignDelegationProposal
                - cosignDelegationAccept
                - allocationRequest
                - allocationAllocate
                - cantonCommand
                - cantonEndInvestorOnboardingOffer
                - cantonEndInvestorOnboardingAccept
                - cantonEndInvestorOnboardingReject
                - cantonParticipantOnboardingRequest
                - stake
                - unstake
                - delegate
                - undelegate
                - switchValidator
                - claim
                - stakeClaimRewards
                - pledge
                - voteDelegation
                - authorize
                - deactivate
                - createBtcDelegation
                - goUnstake
                - stakeWithCallData
                - unstakeWithCallData
                - validatorRegistration
                - increaseStake
                - decreaseStake
                - signalExit
                - withdrawStake
                - switchValidatorWithCallData
                - spotTransfer
                - delegateResource
                - undelegateResource
              description: >-
                If provided, only transaction requests with the specified intent
                types will be returned.
        - name: excludeIntentTypes
          description: >-
            If provided, transaction requests with the specified intent types
            will be excluded.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - payment
                - consolidate
                - consolidateToken
                - fanout
                - vote
                - createAccount
                - updateAccount
                - addTrustLine
                - removeTrustLine
                - signMessage
                - signTypedStructuredData
                - enableToken
                - acceleration
                - transferToken
                - fillNonce
                - walletRecovery
                - contractCall
                - customTx
                - closeAssociatedTokenAccount
                - export
                - import
                - importtoc
                - transferAcknowledge
                - transferAccept
                - transferReject
                - transferOfferWithdrawn
                - cosignDelegationProposal
                - cosignDelegationAccept
                - allocationRequest
                - allocationAllocate
                - cantonCommand
                - cantonEndInvestorOnboardingOffer
                - cantonEndInvestorOnboardingAccept
                - cantonEndInvestorOnboardingReject
                - cantonParticipantOnboardingRequest
                - stake
                - unstake
                - delegate
                - undelegate
                - switchValidator
                - claim
                - stakeClaimRewards
                - pledge
                - voteDelegation
                - authorize
                - deactivate
                - createBtcDelegation
                - goUnstake
                - stakeWithCallData
                - unstakeWithCallData
                - validatorRegistration
                - increaseStake
                - decreaseStake
                - signalExit
                - withdrawStake
                - switchValidatorWithCallData
                - spotTransfer
                - delegateResource
                - undelegateResource
              description: >-
                If provided, transaction requests with the specified intent
                types will be excluded.
        - name: states
          description: >-
            If provided, only transaction requests of the specified state will
            be returned.

            - `canceled`: Canceled by a wallet spender before approval or
            sending.

            - `delivered`: Inserted into the send queue (or rejected by BitGo
            through circuit breakers). This state is only used with apiVersion
            "full".

            - `failed` : Catch-all state indicating an unrecoverable failure
            (such as a duplicate key error when creating a transfer).

            - `initialized`: First state when a transaction request is created
            (before any policy evaluation occurs).

            - `pendingApproval`: Triggered a policy that requires approval to
            proceed.

            - `pendingDelivery`: Requires further action to proceed (such as
            pending signature, or accepting/rejecting due to triggering a
            circuit breaker). This state is only used with apiVersion "full".

            - `pendingUserCommitment`: Ready to receive your user commitments.
            This state is only used with apiVersion "lite" and EdDSA assets with
            commitment signing states.

            - `pendingUserGShare`: Ready to receive your gShare.

            - `pendingUserRShare`: Ready to receive your rShare.

            - `pendingUserSignature`: Ready to receive your user signature (get
            the unsigned transaction from BitGo and sign it). This state is only
            used with apiVersion "lite" and EdDSA assets without commitment
            signing states.

            - `readyToSend`: Ready send (share combination is complete).

            - `rejected`: Rejected by an approver.

            - `signed`: All transactions in the transaction request were signed.
            All future updates will be in the transfer document.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - pendingApproval
                - canceled
                - rejected
                - initialized
                - pendingDelivery
                - delivered
                - pendingUserSignature
                - pendingUserCommitment
                - pendingUserRShare
                - pendingUserGShare
                - readyToSend
                - signed
                - failed
              description: >-
                If provided, only transaction requests of the specified state
                will be returned.

                - `canceled`: Canceled by a wallet spender before approval or
                sending.

                - `delivered`: Inserted into the send queue (or rejected by
                BitGo through circuit breakers). This state is only used with
                apiVersion "full".

                - `failed` : Catch-all state indicating an unrecoverable failure
                (such as a duplicate key error when creating a transfer).

                - `initialized`: First state when a transaction request is
                created (before any policy evaluation occurs).

                - `pendingApproval`: Triggered a policy that requires approval
                to proceed.

                - `pendingDelivery`: Requires further action to proceed (such as
                pending signature, or accepting/rejecting due to triggering a
                circuit breaker). This state is only used with apiVersion
                "full".

                - `pendingUserCommitment`: Ready to receive your user
                commitments. This state is only used with apiVersion "lite" and
                EdDSA assets with commitment signing states.

                - `pendingUserGShare`: Ready to receive your gShare.

                - `pendingUserRShare`: Ready to receive your rShare.

                - `pendingUserSignature`: Ready to receive your user signature
                (get the unsigned transaction from BitGo and sign it). This
                state is only used with apiVersion "lite" and EdDSA assets
                without commitment signing states.

                - `readyToSend`: Ready send (share combination is complete).

                - `rejected`: Rejected by an approver.

                - `signed`: All transactions in the transaction request were
                signed. All future updates will be in the transfer document.
        - name: latest
          description: >-
            If provided, only the latest transaction request version will be
            returned.
          in: query
          schema:
            type: boolean
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: version
          in: query
          schema:
            type: string
            format: number
        - name: sortBy
          description: Sorts by specified field, default sorting by id.
          in: query
          schema:
            type: string
            enum:
              - id
              - createdDate
        - name: sortDirection
          description: Sorts order by field in specified sort direction, default ascending.
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: dateLt
          description: Optional get transaction requests less than date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: dateGte
          description: Optional get transaction requests greater than or equal to date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: includeEvmKeyringTxRequests
          description: >-
            If true, include transaction requests for all EVM keyring related
            wallets (main + derived).
          in: query
          schema:
            type: boolean
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionRequestsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/txrequests/bypermission:
    get:
      summary: Get transaction requests by enterprise filtering by wallet permissions
      description: >-
        Supports both lite and full transaction requests. Use the apiVersion
        query parameter to filter by version.
      operationId: v2.enterprise.txrequest.getByPermission
      tags:
        - Transaction request
      parameters:
        - name: apiVersion
          description: >-
            If present, filters transaction requests by the specified API
            version (lite or full).

            If not provided, returns all transaction requests regardless of API
            version.
          in: query
          schema:
            type: string
            enum:
              - lite
              - full
        - name: walletTypes
          description: >-
            If present, filters transaction requests by the specified wallet
            types
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - backing
                - cold
                - custodial
                - custodialPaired
                - hot
                - advanced
                - trading
              description: >-
                If present, filters transaction requests by the specified wallet
                types
        - name: excludeIntentTypes
          description: >-
            If provided, transaction requests with the specified intent types
            will be excluded.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - payment
                - consolidate
                - consolidateToken
                - fanout
                - vote
                - createAccount
                - updateAccount
                - addTrustLine
                - removeTrustLine
                - signMessage
                - signTypedStructuredData
                - enableToken
                - acceleration
                - transferToken
                - fillNonce
                - walletRecovery
                - contractCall
                - customTx
                - closeAssociatedTokenAccount
                - export
                - import
                - importtoc
                - transferAcknowledge
                - transferAccept
                - transferReject
                - transferOfferWithdrawn
                - cosignDelegationProposal
                - cosignDelegationAccept
                - allocationRequest
                - allocationAllocate
                - cantonCommand
                - cantonEndInvestorOnboardingOffer
                - cantonEndInvestorOnboardingAccept
                - cantonEndInvestorOnboardingReject
                - cantonParticipantOnboardingRequest
                - stake
                - unstake
                - delegate
                - undelegate
                - switchValidator
                - claim
                - stakeClaimRewards
                - pledge
                - voteDelegation
                - authorize
                - deactivate
                - createBtcDelegation
                - goUnstake
                - stakeWithCallData
                - unstakeWithCallData
                - validatorRegistration
                - increaseStake
                - decreaseStake
                - signalExit
                - withdrawStake
                - switchValidatorWithCallData
                - spotTransfer
                - delegateResource
                - undelegateResource
              description: >-
                If provided, transaction requests with the specified intent
                types will be excluded.
        - name: states
          description: >-
            If provided, only transaction requests of the specified state will
            be returned.

            - `canceled`: Canceled by a wallet spender before approval or
            sending.

            - `delivered`: Inserted into the send queue (or rejected by BitGo
            through circuit breakers). This state is only used with apiVersion
            "full".

            - `failed` : Catch-all state indicating an unrecoverable failure
            (such as a duplicate key error when creating a transfer).

            - `initialized`: First state when a transaction request is created
            (before any policy evaluation occurs).

            - `pendingApproval`: Triggered a policy that requires approval to
            proceed.

            - `pendingDelivery`: Requires further action to proceed (such as
            pending signature, or accepting/rejecting due to triggering a
            circuit breaker). This state is only used with apiVersion "full".

            - `pendingUserCommitment`: Ready to receive your user commitments.
            This state is only used with apiVersion "lite" and EdDSA assets with
            commitment signing states.

            - `pendingUserGShare`: Ready to receive your gShare.

            - `pendingUserRShare`: Ready to receive your rShare.

            - `pendingUserSignature`: Ready to receive your user signature (get
            the unsigned transaction from BitGo and sign it). This state is only
            used with apiVersion "lite" and EdDSA assets without commitment
            signing states.

            - `readyToSend`: Ready send (share combination is complete).

            - `rejected`: Rejected by an approver.

            - `signed`: All transactions in the transaction request were signed.
            All future updates will be in the transfer document.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - pendingApproval
                - canceled
                - rejected
                - initialized
                - pendingDelivery
                - delivered
                - pendingUserSignature
                - pendingUserCommitment
                - pendingUserRShare
                - pendingUserGShare
                - readyToSend
                - signed
                - failed
              description: >-
                If provided, only transaction requests of the specified state
                will be returned.

                - `canceled`: Canceled by a wallet spender before approval or
                sending.

                - `delivered`: Inserted into the send queue (or rejected by
                BitGo through circuit breakers). This state is only used with
                apiVersion "full".

                - `failed` : Catch-all state indicating an unrecoverable failure
                (such as a duplicate key error when creating a transfer).

                - `initialized`: First state when a transaction request is
                created (before any policy evaluation occurs).

                - `pendingApproval`: Triggered a policy that requires approval
                to proceed.

                - `pendingDelivery`: Requires further action to proceed (such as
                pending signature, or accepting/rejecting due to triggering a
                circuit breaker). This state is only used with apiVersion
                "full".

                - `pendingUserCommitment`: Ready to receive your user
                commitments. This state is only used with apiVersion "lite" and
                EdDSA assets with commitment signing states.

                - `pendingUserGShare`: Ready to receive your gShare.

                - `pendingUserRShare`: Ready to receive your rShare.

                - `pendingUserSignature`: Ready to receive your user signature
                (get the unsigned transaction from BitGo and sign it). This
                state is only used with apiVersion "lite" and EdDSA assets
                without commitment signing states.

                - `readyToSend`: Ready send (share combination is complete).

                - `rejected`: Rejected by an approver.

                - `signed`: All transactions in the transaction request were
                signed. All future updates will be in the transfer document.
        - name: walletPermissions
          description: >-
            If present, filters transaction requests by wallet permissions. If
            not present will default to view permissions
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - admin
                - spend
              description: >-
                If present, filters transaction requests by wallet permissions.
                If not present will default to view permissions
        - name: limit
          description: ''
          in: query
          schema:
            type: string
            example: '5'
            format: number
        - name: prevId
          description: ''
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: sortBy
          description: Optional field to sort by.
          in: query
          schema:
            type: string
            enum:
              - id
              - createdDate
        - name: sortDirection
          description: Optional direction of sorting.
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: dateLt
          description: Optional get transaction requests less than date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: dateGte
          description: Optional get transaction requests greater than or equal to date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/GetTransactionRequestsWithWalletPermissionsResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/user/{userId}/signingkey:
    get:
      summary: Get enterprise user signing key
      description: >-
        Get the signing key for an enterprise user. The signing key is used to
        sign arbitrary messages, which other enterprise users can verify. The
        caller of this API must have view permissions on the enterprise.
      operationId: v2.enterprise.user.signingkey.get
      tags:
        - Enterprise
      parameters:
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: userId
          description: ''
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            pattern: ^([0-9a-f]{32}|me)$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEnterpriseUserSigningKeyResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidEnterpriseId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/webhook/{webhookId}:
    delete:
      summary: Delete enterprise webhook
      description: >-
        Remove a webhook from the enterprise. This will permanently delete the
        webhook.

        To call this endpoint, you must have the user_manage scope on a
        short-lived

        access token created either in the web app or programmatically using

        the [Login](/reference/userlogin#/) endpoint.
      operationId: v2.enterprise.webhook.delete
      tags:
        - Enterprise Webhooks
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '204':
          description: No Content
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/webhook/{webhookId}/bankaccount/{bankaccountId}/simulate:
    get:
      summary: Simulate bank account webhook
      description: >-
        Simulate a bank account webhook for testing purposes. To call this
        endpoint, you must have the user_manage scope on a short-lived access
        token created either in the web app or programmatically using the
        [Login](/reference/userlogin#/) endpoint.
      operationId: v2.enterprise.webhook.bankaccount.simulate
      tags:
        - Enterprise Webhooks
      parameters:
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/EnterpriseIdString'
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: bankaccountId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateEnterpriseWebhookResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/webhook/{webhookId}/simulate:
    get:
      summary: Simulate enterprise webhook
      description: >-
        Simulate a webhook for testing purposes. To call this endpoint, you must
        have the user_manage scope on a short-lived access token created either
        in the web app or programmatically using the
        [Login](/reference/userlogin#/) endpoint.
      operationId: v2.enterprise.webhook.simulate
      tags:
        - Enterprise Webhooks
      parameters:
        - name: enterpriseId
          description: ''
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/EnterpriseIdString'
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  title: Bank Account
                  properties:
                    bankAccountId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - bankAccountId
                - type: object
                  title: Access Token
                  properties:
                    accessTokenId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - accessTokenId
                - type: object
                  title: Policy Balance Change
                  properties:
                    enterpriseId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - enterpriseId
                - type: object
                  title: Reversal
                  properties:
                    transferId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - transferId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateEnterpriseWebhookResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/enterprise/{enterpriseId}/webhooks:
    get:
      summary: List enterprise webhooks
      description: List all webhooks for the specified enterprise.
      operationId: v2.enterprise.webhook.list
      tags:
        - Enterprise Webhooks
      parameters:
        - name: type
          in: query
          schema:
            type: string
            enum:
              - bankAccount
              - accessToken
              - policyBalanceChange
              - reversal
        - name: prevId
          in: query
          schema:
            type: string
            minLength: 1
        - name: limit
          in: query
          schema:
            type: string
            format: number
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEnterpriseWebhooksResponseScoped'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create enterprise webhook
      description: >-
        Create a webhook that will fire for any bank account associated with the
        enterprise.

        Must be an organization or enterprise admin to perform this action. To
        call this

        endpoint, you must have the user_manage scope on a short-lived access
        token created

        either in the web app or programmatically using the
        [Login](/reference/userlogin#/) endpoint.
      operationId: v2.enterprise.webhook.add
      tags:
        - Enterprise Webhooks
      parameters:
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: '#/components/schemas/EnterpriseWebhookType'
                url:
                  type: string
                  minLength: 1
                label:
                  type: string
              required:
                - type
                - url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterpriseWebhookResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/keys:
    get:
      summary: Get keys
      description: |-
        Retrieve user keys using wallet IDs.
        User must have spender permissions for the specified wallets.
      operationId: v2.wallet.key.list
      tags:
        - Key
      parameters:
        - name: walletIds
          description: An array of wallet IDs. A maximum of 50 wallet ids are permitted.
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
              example: 59cd72485007a239fb00282ed480da1f
              minLength: 1
              pattern: ^[0-9a-f]{32}$
              description: >-
                An array of wallet IDs. A maximum of 50 wallet ids are
                permitted.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization:
    get:
      summary: List User Organizations
      operationId: v2.organization.list
      tags:
        - User Management
      parameters:
        - name: role
          description: The optional user role
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/OrganizationRole'
              - type: array
                items:
                  type: string
                  enum:
                    - serviceUser
                    - admin
                    - member
                    - customer
                  example: admin
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUserOrganizationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{id}:
    get:
      summary: Get Organization
      description: >-
        Retrieve an organization by its ID. The caller must be a member of the
        organization.
      operationId: v2.organization.get
      tags:
        - Organization Management
      x-internal: false
      parameters:
        - name: id
          description: The organization ID
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationGetResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/enterprise:
    get:
      summary: List enterprises for an organization
      description: List all enterprises in the specified organization.
      operationId: v2.organization.enterprise.list
      tags:
        - Enterprise Management
      parameters:
        - name: idempotencyKey
          description: |-
            A unique identifier used when creating the enterprise. Adding this
            query parameter will return the enterprise created with the
            given idempotency key.
          in: query
          schema:
            type: string
            title: uuid
        - name: limit
          description: |-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value

            from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: search
          description: |-
            Filter by enterprise name or by enterprise id.
            Cannot be combined with `idempotencyKey` or `prevId`.
          in: query
          schema:
            type: string
            example: abc@email.com
            minLength: 1
            pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
        - name: kycState
          description: >-
            Filter by one or more KYC states. Repeatable:
            ?kycState=approved&kycState=pending
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - unverified
                - approved
                - rejected
                - pending
              description: >-
                Filter by one or more KYC states. Repeatable:
                ?kycState=approved&kycState=pending
        - name: accountType
          description: Filter by account type (individual or entity).
          in: query
          schema:
            type: string
            enum:
              - individual
              - entity
        - name: businessModel
          description: Filter by business model (e.g. cryptoAsAServiceChild).
          in: query
          schema:
            type: string
            enum:
              - bitgoAsAService
              - cryptoAsAServiceParent
              - cryptoAsAServiceChild
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterprisesPaginatedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create an enterprise for an organization
      description: >-
        Create an enterprise in the specified organization. Also create a user
        if it doesn't already exist.

        This endpoint is intended for creating enterprises in
        Crypto-as-a-Service (CaaS) organizations. For non-CaaS organizations,
        set isCaaS to false to skip validation.
      operationId: v2.organization.enterprise.create
      tags:
        - Enterprise Management
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  minLength: 1
                idempotencyKey:
                  type: string
                  description: >-
                    A unique identifier for the enterprise creation request.
                    Multiple

                    enterprises with the same organizationId and idempotencyKey

                    will not be created.
                  title: uuid
                additionalAdmins:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    example: 59cd72485007a239fb00282ed480da1f
                isCaaS:
                  type: boolean
                  default: true
                  description: >-
                    Indicates if this is a Crypto-as-a-Service (CaaS)
                    organization. If set to true, validates that the
                    organization

                    configuration is complete before creating child enterprises.
                accountType:
                  type: string
                  enum:
                    - individual
                    - entity
                  description: >-
                    The account type for the enterprise. Defaults to
                    'individual' if not specified.
                thirdPartyIdentifier:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Identifier of the third party
                        minLength: 1
                      label:
                        type: string
                        description: Label for the third party
                        minLength: 1
                    required:
                      - id
                      - label
              required:
                - email
                - idempotencyKey
                - additionalAdmins
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrganizationEnterpriseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/enterprise/{enterpriseId}/contract:
    post:
      summary: Sign a contract for an enterprise within an organization
      description: >-
        Sign a contract (MPA, CSA, etc.) for an enterprise under the specified
        organization.
      operationId: v2.organization.enterprise.contract.sign
      tags:
        - Enterprise Management
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                contractType:
                  type: string
                  enum:
                    - trade-mpa
                    - custody-sa
                    - staking-sa
                    - master-agreement
                    - distributed-custody-mic
                    - accredited-investor-cl
                signedDate:
                  type: string
              required:
                - contractType
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SignOrganizationEnterpriseContractResponseC
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/enterprise/{enterpriseId}/user:
    post:
      summary: Add a user to an enterprise within an organization
      description: Add an existing user to an enterprise under the specified organization.
      operationId: v2.organization.enterprise.user.add
      tags:
        - Enterprise Management
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
        - name: enterpriseId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EnterpriseIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  minLength: 1
                permissions:
                  type: array
                  items:
                    type: string
                    enum:
                      - admin
                      - auditor
                    description: >-
                      This type represents the permissions that can be assigned
                      to a user when adding them to an enterprise


                      1. 'admin': Add/remove users, Create wallets, Manage
                      enterprise policies, Add Bank Accounts, Receive
                      invitations to wallets

                      2. 'auditor': View audit logs across the enterprise,
                      Receive invitations to wallets
              required:
                - email
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddUserToOrganizationEnterpriseResponseC'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/enterprise/search:
    get:
      summary: List enterprises for an organization
      description: >-
        List all enterprises in the specified organization for the authenticated
        user.
      operationId: v2.organization.enterprise.search
      tags:
        - Enterprise Management
      parameters:
        - name: limit
          description: |-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value

            from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: q
          description: |-
            Filter by enterprise name or by enterprise id.
            Cannot be combined with `prevId`.
          in: query
          schema:
            type: string
            example: abc@email.com
            minLength: 1
            pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterprisesPaginatedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/enterprises/summary:
    get:
      summary: Get enterprise summary for an organization
      description: >-
        Returns counts of CaaS child enterprises grouped by KYC state and
        account type.
      operationId: v2.organization.enterprises.summary
      tags:
        - Enterprise Management
      x-internal: false
      parameters:
        - name: organizationId
          description: The organization ID
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterprisesSummaryResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/reports:
    get:
      summary: List org-level reports
      description: Lists generated reports.
      operationId: v2.organization.reports.list
      tags:
        - Reports
      parameters:
        - name: limit
          description: Number of reports to return
          in: query
          schema:
            type: string
            default: '25'
            maximum: 500
            format: number
        - name: createdAtGt
          description: Only return reports created after this date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: enterprise
          description: Only return reports that includes this enterprise
          in: query
          schema:
            type: string
            minLength: 1
        - name: wallet
          description: Only return reports for this wallet
          in: query
          schema:
            type: string
            minLength: 1
        - name: walletType
          description: Only return reports for this wallet type
          in: query
          schema:
            type: string
            minLength: 1
        - name: reportType
          description: Only return reports for this report type
          in: query
          schema:
            type: string
            enum:
              - holdings
              - transactions
              - trades
              - staking
              - holdingsByAddress
              - userAccess
              - policies
              - costBasis
              - organizationHoldings
              - organizationHoldingsByAddress
              - organizationTransactions
              - organizationTrades
              - organizationStaking
              - quarterly
        - name: status
          description: Only return rports for this report status
          in: query
          schema:
            type: string
            enum:
              - pending
              - processing
              - completed
              - failed
        - name: prevId
          description: Only return reports created after this ID
          in: query
          schema:
            type: string
            minLength: 1
        - name: format
          description: Only return reports for this report format
          in: query
          schema:
            type: string
            enum:
              - csv
              - pdf
        - name: asset
          description: Only return reports for this report asset
          in: query
          schema:
            type: string
            minLength: 1
        - name: reportParams
          description: Only return reports for this report asset
          in: query
          schema: {}
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportsJSON'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Generate org-level report
      description: Creates a new report in pending status.
      operationId: v2.organization.reports.create
      tags:
        - Reports
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Restricted request body for the organization-scoped
                report-create endpoints

                (`POST /api/v2/organization/{organizationId}/reports` and its
                `/admin/organization`

                variant). Narrows `type` to only the values accepted at runtime
                by

                `validateOrganizationReportParams`, so the OpenAPI/dev-docs
                contract matches

                the controller behavior.
              properties:
                type:
                  $ref: '#/components/schemas/OrganizationSnowflakeReportType'
                format:
                  $ref: '#/components/schemas/ReportFormatType'
                holdings:
                  type: object
                  description: Holdings report
                  properties:
                    byWallet:
                      type: boolean
                    enterprise:
                      type: string
                      description: ID of the enterprise
                      example: 59cd72485007a239fb00282ed480da1f
                      minLength: 1
                      pattern: ^[0-9a-f]{32}$
                    includeStaking:
                      type: boolean
                    snapshotDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - enterprise
                    - snapshotDate
                transactions:
                  type: object
                  description: Transactions report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isAddressReport:
                      type: boolean
                    isDetailed:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - enterprise
                    - startDate
                quarterly:
                  type: object
                  description: Quarterly report
                  properties:
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
                trades:
                  type: object
                  description: Trades report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isCostBasisReport:
                      type: boolean
                    isFillsReport:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
                staking:
                  type: object
                  description: Staking report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isBalanceReport:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - enterprise
                    - startDate
                holdingsByAddress:
                  type: object
                  description: Address-level Holdings report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    enterprise:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - enterprise
                    - snapshotDate
                organizationHoldings:
                  type: object
                  description: Organization-level Holdings report
                  properties:
                    byWallet:
                      type: boolean
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    includeStaking:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - organization
                    - snapshotDate
                organizationTransactions:
                  type: object
                  description: Organization-level Transactions report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isAddressReport:
                      type: boolean
                    isDetailed:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - organization
                    - startDate
                organizationHoldingsByAddress:
                  type: object
                  description: Organization-level Holdings by Address report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    organization:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - organization
                    - snapshotDate
                organizationStaking:
                  type: object
                  description: Organization-level Staking report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isBalanceReport:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - organization
                    - startDate
                organizationTrades:
                  type: object
                  description: Organization-level Trades report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isFillsReport:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - organization
                    - startDate
                userAccess:
                  type: object
                  description: Organization-level User Access Review report (DE-519)
                  properties:
                    allEnterprises:
                      type: boolean
                    asOfDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    organization:
                      type: string
                      minLength: 1
                    reportContents:
                      $ref: '#/components/schemas/UserAccessReportContents'
                  required:
                    - asOfDate
                    - organization
                    - reportContents
                policies:
                  type: object
                  description: Policies report
                  properties:
                    completeHistory:
                      type: boolean
                    enterprise:
                      type: string
                      minLength: 1
                  required:
                    - enterprise
                costBasis:
                  type: object
                  deprecated: true
                  properties:
                    account:
                      type: string
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
              required:
                - type
                - format
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportJSON'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/user:
    delete:
      summary: Remove a user from an organization
      description: >-
        Remove a user from an organization. Must be an organization manager to
        perform this action.
      operationId: v2.organization.user.remove
      tags:
        - User Management
      parameters:
        - name: userId
          description: ''
          in: query
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: JSON
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidOrganizationId'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Add a user to an organization
      description: |-
        Add a user in the organization with a specified role.
        Must be an organization manager to perform this action.
      operationId: v2.organization.user.create
      tags:
        - User Management
      parameters:
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  example: user@email.com
                  format: email
                role:
                  type: string
                  enum:
                    - admin
                    - member
                  description: Role of the user in the organization
                  example: admin
              required:
                - username
                - role
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: JSON
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidOrganizationId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    put:
      summary: Update users role in organization
      description: >-
        Modify a users role in the organization. Must be an organization manager
        to perform this action.
      operationId: v2.organization.user.update
      tags:
        - User Management
      parameters:
        - name: userId
          description: ''
          in: query
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: role
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationRole'
        - name: organizationId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/OrganizationIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: JSON
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PendingApproval'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidOrganizationId'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/webhook:
    get:
      summary: List organization webhooks
      description: List all webhooks for a specified organization.
      operationId: v2.organization.webhook.list
      tags:
        - Organization Webhooks
      parameters:
        - name: type
          in: query
          schema:
            type: string
            enum:
              - transfer
              - txRequest
              - pendingapproval
              - txRequestTransaction
              - bankAccount
              - identityStatus
              - idvStatus
              - userKycState
              - enterpriseKycState
              - accessToken
              - reversal
              - tradeOrder
        - name: prevId
          in: query
          schema:
            type: string
            minLength: 1
        - name: limit
          in: query
          schema:
            type: string
            format: number
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOrganizationWebhooksResponseScoped'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create organization webhook
      description: >-
        Create a webhook that sends an HTTP callback from BitGo to a specified
        URL when

        specific conditions occur within an organization. Must be an
        organization

        manager to perform this action. To call this endpoint, you must have the

        `user_manage` scope on a short-lived access token created either in the
        web app

        or programmatically using the [Login](/reference/userlogin#/) endpoint.
      operationId: v2.organization.webhook.add
      tags:
        - Organization Webhooks
      parameters:
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  title: Transfer
                  properties:
                    allToken:
                      type: boolean
                    coin:
                      type: string
                    includeRbf:
                      type: boolean
                    label:
                      type: string
                    listenToFailureStates:
                      type: boolean
                    numConfirmations:
                      type: number
                    type:
                      type: string
                      enum:
                        - transfer
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Transaction Request
                  properties:
                    label:
                      type: string
                    txRequestStates:
                      type: array
                      items:
                        type: string
                        enum:
                          - pendingApproval
                          - canceled
                          - rejected
                          - initialized
                          - pendingDelivery
                          - delivered
                          - pendingUserSignature
                          - pendingUserCommitment
                          - pendingUserRShare
                          - pendingUserGShare
                          - readyToSend
                          - signed
                          - failed
                        description: >-
                          If supplied, only transaction request state changes
                          from the provided list

                          will trigger notifications. If not provided, all
                          transaction request state

                          changes will trigger notifications.
                    type:
                      type: string
                      enum:
                        - txRequest
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Transaction Request Transaction
                  properties:
                    label:
                      type: string
                    txRequestTransactionStates:
                      type: array
                      items:
                        type: string
                        enum:
                          - initialized
                          - pendingSignature
                          - eddsaPendingCommitment
                          - eddsaPendingRShare
                          - eddsaPendingGShare
                          - ecdsaMPCv2Round1
                          - ecdsaMPCv2Round2
                          - ecdsaMPCv2Round3
                          - eddsaMPCv2Round1
                          - eddsaMPCv2Round2
                          - eddsaMPCv2Round3
                          - readyToCombineShares
                          - signed
                          - held
                          - delivered
                          - invalidSignature
                          - rejected
                        description: >-
                          If supplied, only transaction request transaction
                          state changes from the provided

                          list will trigger notifications. If not provided, all
                          transaction request

                          transaction state changes will trigger notifications.
                    type:
                      type: string
                      enum:
                        - txRequestTransaction
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Pending Approval
                  properties:
                    allToken:
                      type: boolean
                    coin:
                      type: string
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - pendingapproval
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Bank Account
                  properties:
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - bankAccount
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Identity Status
                  properties:
                    label:
                      type: string
                    status:
                      type: array
                      items:
                        type: string
                        enum:
                          - created
                          - approved
                          - declined
                          - needs review
                          - input error
                          - ssn error
                          - gov id error
                          - ssn verified
                          - gov id verified
                          - enrichment
                          - awaiting document upload
                          - records uploaded
                          - in review
                          - incomplete verifications
                          - records uploaded 2
                          - awaiting signature
                          - signature submitted
                          - initiating
                          - additional information submitted
                    type:
                      type: string
                      enum:
                        - identityStatus
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: User KYC State
                  properties:
                    kycState:
                      type: array
                      items:
                        type: string
                        enum:
                          - approved
                          - rejected
                          - pending
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - userKycState
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Enterprise KYC State
                  properties:
                    kycState:
                      type: array
                      items:
                        type: string
                        enum:
                          - approved
                          - rejected
                          - pending
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - enterpriseKycState
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Reversal
                  properties:
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - reversal
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: Trade Order
                  properties:
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - tradeOrder
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
                - type: object
                  title: IDV Status
                  properties:
                    label:
                      type: string
                    type:
                      type: string
                      enum:
                        - idvStatus
                    url:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationWebhookResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/webhook/{webhookId}:
    delete:
      summary: Delete organization webhook
      description: >-
        Remove a webhook from the organization. This permanently deletes the
        webhook.

        To call this endpoint, you must have the `user_manage` scope on a
        short-lived access

        token created either in the web app or programmatically using the

        [Login](/reference/userlogin#/) endpoint.
      operationId: v2.organization.webhook.delete
      tags:
        - Organization Webhooks
      parameters:
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '204':
          description: No Content
          content:
            application/json: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    get:
      summary: Get organization webhook
      description: Get an organization webhook by its ID.
      operationId: v2.organization.webhook.get
      tags:
        - Organization Webhooks
      parameters:
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationWebhookResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/webhook/{webhookId}/notification:
    get:
      summary: List webhook notification for an organization
      description: List all webhook notifications for the specified organization.
      operationId: v2.organization.webhook.listnotifications
      tags:
        - Organization Webhooks
      parameters:
        - name: type
          description: The webhook type
          in: query
          schema:
            type: string
            enum:
              - txRequest
              - txRequestTransaction
              - transfer
              - transaction
              - transactionRemoved
              - transactionExpire
              - pendingapproval
              - block
              - admin
              - address_confirmation
              - lowFee
              - circuitBreaker
              - lowFeeAddressBalance
              - wallet_confirmation
              - bankAccount
              - userKycState
              - enterpriseKycState
              - identityStatus
              - idvStatus
              - accessToken
              - accountCreated
              - contractSigned
              - fundsDeposited
              - kycResult
              - policyBalanceChange
              - reversal
              - transaction_finality_on_l1
              - stuckTx
              - tradeOrder
              - unspentExpiry
              - twoStepTransfer
              - twoStepDeposit
              - twoStepWithdrawal
            example: transfer
        - name: prevId
          description: The ID of the item to start at
          in: query
          schema:
            type: string
            minLength: 1
        - name: limit
          description: The maximum number of items to return
          in: query
          schema:
            type: string
            format: number
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ListOrganizationWebhookNotificationResponseC
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/organization/{organizationId}/webhook/{webhookId}/simulate:
    post:
      summary: Simulate organization webhook
      description: >-
        Simulate an organization webhook for testing purposes. To call this
        endpoint,

        you must have the `user_manage` scope on a short-lived access token
        created

        either in the web app or programmatically using the
        [Login](/reference/userlogin#/)

        endpoint.
      operationId: v2.organization.webhook.simulate
      tags:
        - Organization Webhooks
      parameters:
        - name: organizationId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: webhookId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  title: Transfer
                  properties:
                    transferId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - transferId
                - type: object
                  title: Transaction Request
                  properties:
                    txRequestId:
                      $ref: '#/components/schemas/TransactionRequestId'
                  required:
                    - txRequestId
                - type: object
                  title: Pending Approval
                  properties:
                    pendingApprovalId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - pendingApprovalId
                - type: object
                  title: Bank Account
                  properties:
                    bankAccountId:
                      type: string
                  required:
                    - bankAccountId
                - type: object
                  title: Enterprise KYC State
                  properties:
                    enterpriseId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                    kycState:
                      $ref: '#/components/schemas/VerifiedKycState1'
                  required:
                    - enterpriseId
                    - kycState
                - type: object
                  title: User KYC State
                  properties:
                    kycState:
                      $ref: '#/components/schemas/VerifiedKycState1'
                    userId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - kycState
                    - userId
                - type: object
                  title: Identity Status
                  properties:
                    identityId:
                      type: string
                      format: UUID
                    identityStatus:
                      $ref: '#/components/schemas/IdentityStatusEnum'
                  required:
                    - identityId
                    - identityStatus
                - type: object
                  title: Reversal
                  properties:
                    transferId:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - transferId
                - type: object
                  title: Trade Order
                  properties:
                    orderId:
                      type: string
                      example: 550e8400-e29b-41d4-a716-446655440000
                      format: UUID
                  required:
                    - orderId
                - type: object
                  title: IDV Status
                  properties:
                    idvId:
                      type: string
                      example: 550e8400-e29b-41d4-a716-446655440000
                      format: UUID
                  required:
                    - idvId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateOrganizationWebhookResponseBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/pendingapprovals:
    get:
      summary: List pending approvals
      description: >-
        Returns pending approvals for the authenticated user, filterable by
        wallet, enterprise,

        coin, state, and request type. By default includes approvals in
        awaitingSignature, pending,

        or pendingFinalApproval states.
      operationId: v2.approval.list1
      tags:
        - Pending approval
      x-internal: false
      parameters:
        - name: walletId
          description: Filter by wallet ID
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: enterpriseId
          description: Filter by enterprise (single ID or up to 20 IDs)
          in: query
          schema:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
        - name: organizationId
          description: Filter by organization
          in: query
          schema:
            type: string
        - name: scope
          description: Filter by scope
          in: query
          schema:
            type: string
            enum:
              - enterprise
              - wallet
              - organization
              - global
        - name: coin
          description: Filter by coin
          in: query
          schema:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
        - name: coins
          description: Filter by coins
          in: query
          schema:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
        - name: state
          description: Filter by state
          in: query
          schema:
            type: array
            items:
              oneOf:
                - $ref: '#/components/schemas/PendingApprovalStatePending'
                - $ref: '#/components/schemas/PendingApprovalStateResolved'
                - $ref: '#/components/schemas/PendingApprovalStateTrust'
                - $ref: '#/components/schemas/PendingApprovalStateProtected'
              description: Filter by state
        - name: allTokens
          description: When true, include all tokens for each coin filter
          in: query
          schema:
            type: boolean
        - name: expandWalletLabels
          description: When true, add walletLabel to each returned pending approval
          in: query
          schema:
            type: boolean
        - name: prevId
          description: Return the next batch of results from the previous nextBatchPrevId
          in: query
          schema:
            type: string
        - name: limit
          description: >-
            Maximum number of results to return. If truncated, use
            nextBatchPrevId for the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: offset
          description: Number of documents to skip for offset-based pagination
          in: query
          schema:
            type: string
            format: number
        - name: expandAddressLabels
          description: When true, adds addressLabels to each returned pending approval
          in: query
          schema:
            type: boolean
        - name: requestType
          description: Filter by request type
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/PendingApprovalType'
              - type: array
                items:
                  type: string
                  enum:
                    - userChangeRequest
                    - transactionRequest
                    - transactionRequestFull
                    - policyRuleRequest
                    - updateApprovalsRequiredRequest
                    - updateEnterpriseRequest
                    - updateOrganizationRequest
                    - genericRequest
                    - enterpriseInviteRequest
                    - updateWalletSettingRequest
        - name: requestResourceType
          description: Filter by generic request resource type
          in: query
          schema:
            type: string
            enum:
              - countersigningSettlement
              - policyRule
              - signingSettlement
              - ethUnstake
              - userEmail
              - organizationAdmin
              - organizationAdminInvite
              - crossChainRecovery
        - name: includeEvmKeyringWallets
          description: >-
            When true, include pending approvals from all wallets in the same
            EVM keyring
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalListResponse'
  /api/v2/pendingapprovals/{approvalId}/transfer:
    get:
      summary: Get Transfer By Approval Id
      description: Route to get transfer by approval id
      operationId: v2.pendingapprovals.gettransfer
      tags:
        - Pending approval
      parameters:
        - name: approvalId
          description: The approval ID
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransferByApprovalIdResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/pendingapprovals/bulkupdate:
    put:
      summary: Bulk update non-withdrawal pending approvals
      operationId: v2.pendingapprovals.bulkUpdate
      tags:
        - Pending approval
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                approvals:
                  type: array
                  items:
                    type: object
                    description: List of approvals to process
                    properties:
                      paId:
                        type: string
                        description: Pending approval ID
                        example: 59cd72485007a239fb00282ed480da1f
                        pattern: ^[0-9a-f]{32}$
                      status:
                        allOf:
                          - $ref: '#/components/schemas/ApprovalAction'
                        description: Approval action status
                    required:
                      - paId
                      - status
                bailOnError:
                  type: boolean
                  default: false
                  description: |-
                    If true, stops processing on the first error.
                    If false (default), continues processing all items.
              required:
                - approvals
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/pendingapprovals/count:
    get:
      summary: List counts of pending approvals
      description: >-
        List counts of pending approvals by enterprises that the current user is
        a part of.
      operationId: v2.pendingapprovals.count.list
      tags:
        - Pending approval
      parameters:
        - name: actionable
          description: >-
            True, if returning pending approvals that are actionable by the
            current user.
          in: query
          schema:
            type: boolean
        - name: byOrganization
          description: >-
            True, if returning counts of pending approvals by organizations that
            the

            current user is a part of.
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ListPendingApprovalsCountByEnterpriseResponse
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/policy/rule/bulk:
    put:
      summary: Bulk update wallet policy rules
      description: >-
        Updates whitelist policy rules across multiple wallets in a single
        request.

        Only advancedWhitelist rules are supported.
      operationId: v2.policy.rule.bulk
      tags:
        - Wallet Policy
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                updates:
                  type: array
                  items:
                    type: object
                    description: >-
                      Request body for a single wallet policy rule update in a
                      bulk request
                    properties:
                      walletId:
                        type: string
                        description: The ID of the wallet to update
                      coin:
                        type: string
                        description: The coin type for this rule
                      id:
                        type: string
                        description: The id of the rule
                      type:
                        type: string
                        enum:
                          - advancedWhitelist
                        description: Must be advancedWhitelist
                      action:
                        allOf:
                          - $ref: '#/components/schemas/BulkPolicyRuleAction'
                        description: The action to take when the rule is triggered
                      condition:
                        allOf:
                          - $ref: '#/components/schemas/BulkWhitelistCondition'
                        description: The condition for the rule (add/remove address)
                      lockDate:
                        type: string
                        description: >-
                          ISO date string for when the whitelist policy locks.
                          Omit to auto-lock after ~48h.
                      generatePolicy:
                        type: boolean
                        description: >-
                          When true, creates the wallet whitelist policy in the
                          Policy Service if it doesn't exist
                    required:
                      - walletId
                      - coin
                      - id
                      - type
                      - action
                      - condition
              required:
                - updates
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPolicyRuleUpdateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/reports:
    get:
      summary: List reports
      description: Lists generated reports.
      operationId: v2.reports.list
      tags:
        - Reports
      parameters:
        - name: limit
          description: Number of reports to return
          in: query
          schema:
            type: string
            default: '25'
            maximum: 500
            format: number
        - name: createdAtGt
          description: Only return reports created after this date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: createdAtLte
          description: Only return reports created before or on this date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: enterprise
          description: Only return reports for this enterprise
          in: query
          schema:
            type: string
            minLength: 1
        - name: wallet
          description: Only return reports for this wallet
          in: query
          schema:
            type: string
            minLength: 1
        - name: walletType
          description: Only return reports for this wallet type
          in: query
          schema:
            type: string
            minLength: 1
        - name: reportType
          description: Only return reports for this report type
          in: query
          schema:
            type: string
            enum:
              - holdings
              - transactions
              - trades
              - staking
              - holdingsByAddress
              - userAccess
              - policies
              - costBasis
              - organizationHoldings
              - organizationHoldingsByAddress
              - organizationTransactions
              - organizationTrades
              - organizationStaking
              - quarterly
        - name: status
          description: Only return rports for this report status
          in: query
          schema:
            type: string
            enum:
              - pending
              - processing
              - completed
              - failed
        - name: prevId
          description: Only return reports created after this ID
          in: query
          schema:
            type: string
            minLength: 1
        - name: format
          description: Only return reports for this report format
          in: query
          schema:
            type: string
            enum:
              - csv
              - pdf
        - name: asset
          description: Only return reports for this report asset
          in: query
          schema:
            type: string
            minLength: 1
        - name: reportParams
          description: Only return reports for this report asset
          in: query
          schema: {}
        - name: sortOrder
          description: Sort order of returned reports based on _id.
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportsJSON'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Generate report
      description: Creates a new report in pending status.
      operationId: v2.reports.create
      tags:
        - Reports
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Restricted request body for the enterprise-scoped report-create
                endpoints

                (`POST /api/v2/reports` and its `/admin/enterprise` variant).
                Narrows

                `type` to only the values accepted at runtime by
                `validateReportParams`,

                so the OpenAPI/dev-docs contract matches the controller
                behavior.
              properties:
                type:
                  $ref: '#/components/schemas/EnterpriseSnowflakeReportType'
                format:
                  $ref: '#/components/schemas/ReportFormatType'
                holdings:
                  type: object
                  description: Holdings report
                  properties:
                    byWallet:
                      type: boolean
                    enterprise:
                      type: string
                      description: ID of the enterprise
                      example: 59cd72485007a239fb00282ed480da1f
                      minLength: 1
                      pattern: ^[0-9a-f]{32}$
                    includeStaking:
                      type: boolean
                    snapshotDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - enterprise
                    - snapshotDate
                transactions:
                  type: object
                  description: Transactions report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isAddressReport:
                      type: boolean
                    isDetailed:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - enterprise
                    - startDate
                quarterly:
                  type: object
                  description: Quarterly report
                  properties:
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
                trades:
                  type: object
                  description: Trades report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isCostBasisReport:
                      type: boolean
                    isFillsReport:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
                staking:
                  type: object
                  description: Staking report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    isBalanceReport:
                      type: boolean
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - enterprise
                    - startDate
                holdingsByAddress:
                  type: object
                  description: Address-level Holdings report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    enterprise:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - enterprise
                    - snapshotDate
                organizationHoldings:
                  type: object
                  description: Organization-level Holdings report
                  properties:
                    byWallet:
                      type: boolean
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    includeStaking:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - organization
                    - snapshotDate
                organizationTransactions:
                  type: object
                  description: Organization-level Transactions report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isAddressReport:
                      type: boolean
                    isDetailed:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - organization
                    - startDate
                organizationHoldingsByAddress:
                  type: object
                  description: Organization-level Holdings by Address report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    organization:
                      type: string
                      minLength: 1
                    snapshotDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - organization
                    - snapshotDate
                organizationStaking:
                  type: object
                  description: Organization-level Staking report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isBalanceReport:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    wallets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        example: 59cd72485007a239fb00282ed480da1f
                    walletTypes:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - endDate
                    - organization
                    - startDate
                organizationTrades:
                  type: object
                  description: Organization-level Trades report
                  properties:
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    isFillsReport:
                      type: boolean
                    organization:
                      type: string
                      minLength: 1
                    startDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - organization
                    - startDate
                userAccess:
                  type: object
                  description: Organization-level User Access Review report (DE-519)
                  properties:
                    allEnterprises:
                      type: boolean
                    asOfDate:
                      type: string
                      format: date-time
                      title: ISO Date String
                    enterprises:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    organization:
                      type: string
                      minLength: 1
                    reportContents:
                      $ref: '#/components/schemas/UserAccessReportContents'
                  required:
                    - asOfDate
                    - organization
                    - reportContents
                policies:
                  type: object
                  description: Policies report
                  properties:
                    completeHistory:
                      type: boolean
                    enterprise:
                      type: string
                      minLength: 1
                  required:
                    - enterprise
                costBasis:
                  type: object
                  deprecated: true
                  properties:
                    account:
                      type: string
                    assets:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    endDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                    enterprise:
                      $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
                    startDate:
                      type: string
                      description: Date of the snapshot
                      format: date-time
                      title: ISO Date String
                  required:
                    - endDate
                    - enterprise
                    - startDate
              required:
                - type
                - format
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportJSON'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/reports/{reportId}:
    get:
      summary: Get report
      description: Returns a single report by report ID.
      operationId: v2.reports.getById
      tags:
        - Reports
      parameters:
        - name: reportId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportJSON'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/reports/{reportId}/document:
    get:
      summary: Download report
      description: Returns binary data encoded based on report format (pdf/csv).
      operationId: v2.reports.download
      tags:
        - Reports
      parameters:
        - name: reportId
          description: ''
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/tss/settings:
    get:
      summary: Get MPC settings.
      description: Get the MPC settings for the user.
      operationId: v2.tss.setting
      tags:
        - Transaction request
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TssSettings'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/tssconfigs/ecdsa:
    delete:
      summary: Delete ECDSA MPC configurations
      description: >-
        Deletes the ECDSA MPC configurations from all enterprises the user is an
        admin of.
      operationId: v2.tssconfigs.ecdsa.delete
      tags:
        - Transaction request
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                createdBy:
                  type: string
                  description: The user who created the configurations
                  minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  deletedCount:
                    type: number
                    description: The number of deleted configurations
                required:
                  - deletedCount
    get:
      summary: List ECDSA MPC configurations per enterprise
      description: >-
        List all ECDSA MPC configurations from all enterprises for a user.
        Returns an empty array if the user's enterprise doesn't have any ECDSA
        MPC configurations.
      operationId: v2.tssconfigs.ecdsa.get
      tags:
        - Transaction request
      parameters:
        - name: createdBy
          description: >-
            Filter by the user who created the config. Pass in "me" to filter by
            the current user's id.
          in: query
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    enterpriseId:
                      type: string
                      description: The enterprise ID
                      example: 5d1a61a5c30ae10025f9b2b3
                    ecdsa:
                      $ref: '#/components/schemas/EcdsaConfig'
                  required:
                    - enterpriseId
                    - ecdsa
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/accesstoken:
    get:
      summary: List access tokens
      description: >-
        Returns all non-expired long-lived access tokens for the authenticated
        user.

        Results are paginated using cursor-based pagination. Use the `prevId`
        query

        parameter with the `nextBatchPrevId` value from the previous response to
        fetch

        the next page. The default page size is server-configured (currently
        100);

        maximum is 200.
      operationId: v2.accesstoken.list
      tags:
        - User
      x-internal: false
      parameters:
        - name: limit
          description: >-
            Maximum number of results to return (server-configured default, max:
            200)
          in: query
          schema:
            type: string
            format: number
        - name: prevId
          description: >-
            Cursor for pagination; use the `nextBatchPrevId` value from the
            previous response
          in: query
          schema:
            type: string
        - name: sort
          description: >-
            Sort order for results. `ASC` (default) returns oldest-first; `DESC`
            returns newest-first
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAccessTokensResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create access token
      description: >-
        Create an access token to use BitGo APIs. BitGo restricts access tokens
        in the production environment to specific IP addresses. However, access
        tokens in the test environment don't require an IP address restriction.
        If you omit a spending limit, you must unlock the token using the
        [Unlock session](/reference/userunlock#/) endpoint on a regular basis to
        permit operations such as withdrawals. Therefore, BitGo recommends
        including a spending limit.
      operationId: v2.accesstoken.add
      tags:
        - User
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                scope:
                  oneOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - openid
                          - profile
                          - user_manage
                          - enterprise_view_all
                          - enterprise_manage_all
                          - auditlogs_view_all
                          - wallet_view
                          - wallet_view_enterprise
                          - wallet_view_all
                          - wallet_create
                          - wallet_freeze
                          - wallet_freeze_all
                          - wallet_manage
                          - wallet_manage_all
                          - wallet_approve
                          - wallet_approve_all
                          - wallet_spend
                          - wallet_spend_all
                          - wallet_edit
                          - wallet_edit_all
                          - wallet_stake
                          - wallet_stake_all
                          - wallet_edit_enterprise
                          - wallet_spend_enterprise
                          - wallet_approve_enterprise
                          - wallet_manage_enterprise
                          - settlement_network_read
                          - settlement_network_write
                          - portfolio_view
                          - trade_view
                          - trade_trade
                          - trade_fix
                          - pending_approval_update
                          - metamask_institutional
                          - crypto_compare
                          - all
                    - type: array
                      items:
                        type: string
                  description: >-
                    The permissions granted by this access token.


                    - `all` - Access all actions in the test environment.

                    - `crypto_compare` - Call CryptoCompare API.

                    - `enterprise_manage_all` - Manage users and settings for
                    any enterprise to which the user belongs.

                    - `enterprise_view_all` - View any enterprise to which the
                    user belongs.

                    - `metamask_institutional` - [DEPRECATED] Enables using
                    BitGo wallets in the MetaMask Institutional extension.

                    - `openid` - Verify your BitGo user ID using OpenID Connect.

                    - `pending_approval_update` - Approve or reject pending
                    actions that require approval to proceed.

                    - `portfolio_view` - [DEPRECATED] Call the Portfolio API.

                    - `profile` - View your BitGo Profile.

                    - `settlement_network_read` - View your client's Go Network
                    data, enabling allocations to and from your platform. Only
                    for Go Network partners.

                    - `settlement_network_write` - Update your client's Go
                    Network data, enabling allocations to and from your
                    platform. Only for Go Network partners.

                    - `trade_trade` - Initiate trades.

                    - `trade_view` - View trades.

                    - `trade_fix` - Access the Trade FIX API gateway.

                    - `wallet_approve` - Approve policies and transactions for a
                    wallet where the user is a wallet admin. Requires wallet
                    context: use `["wallet_approve:walletId"]`.

                    - `wallet_approve_all` - Approve transactions for any wallet
                    where the user is a wallet admin within any enterprise to
                    which the user belongs.

                    - `wallet_approve_enterprise` - Approve transactions for any
                    wallet where the user is a wallet admin within a single
                    enterprise.

                    - `wallet_create` - Create wallets.

                    - `wallet_edit` - Edit comments on a transfer. Requires
                    wallet context: use `["wallet_edit:walletId"]`.

                    - `wallet_edit_all` - Edit comments on all transfers within
                    multiple enterprises.

                    - `wallet_edit_enterprise` - [DEPRECATED] Edit comments on
                    all transfers within a single enterprise.

                    - `wallet_freeze` - Freeze a wallet. Requires wallet
                    context: use `["wallet_freeze:walletId"]`.

                    - `wallet_freeze_all` - Freeze any wallet within any
                    enterprises to which the user belongs.

                    - `wallet_manage` - Manage settings for a wallet where the
                    user is a wallet admin. Requires wallet context: use
                    `["wallet_manage:walletId"]` where `walletId` is the
                    specific wallet ID. For managing multiple or all wallets,
                    use `wallet_manage_all` or `wallet_manage_enterprise`.

                    - `wallet_manage_all` - Manage settings for any wallet where
                    the user is a wallet admin within any enterprise to which
                    the user belongs.

                    - `wallet_manage_enterprise` - Manage settings for any
                    wallet where the user is a wallet admin within a single
                    enterprise.

                    - `wallet_spend` - Initiate transactions from a wallet.
                    Requires wallet context: use `["wallet_spend:walletId"]`.

                    - `wallet_spend_all` - Initiate transactions from any wallet
                    within any enterprise to which the user belongs.

                    - `wallet_spend_enterprise` - Initiate transactions from any
                    wallet within a single enterprise.

                    - `wallet_stake` - Initiate staking transactions from a
                    wallet. Requires wallet context: use
                    `["wallet_stake:walletId"]`.

                    - `wallet_stake_all` - Initiate staking transactions from
                    any wallet within any enterprise to which the user belongs.

                    - `wallet_view` - View a wallet. Requires wallet context:
                    use `["wallet_view:walletId"]`.

                    - `wallet_view_all` - View any wallet within any enterprise
                    to which the user belongs.

                    - `wallet_view_enterprise` - View any wallet within a single
                    enterprise.
                duration:
                  type: number
                  description: The duration of the access token in seconds.
                label:
                  type: string
                  description: A label for the access token.
                otp:
                  type: string
                  description: The one-time password.
                admin:
                  type: boolean
                  description: True, if this access token has admin permissions.
                adminScope:
                  type: string
                  enum:
                    - read
                    - full
                  description: >-
                    Scope for admin permissions. Defaults to 'full' when
                    omitted.
                ipRestrict:
                  nullable: true
                  type: array
                  items:
                    type: string
                  description: >-
                    Restricts the access token to use only from the provided IP
                    addresses. Required for access tokens in the production
                    environment. Not required for access tokens in the test
                    environment.
                enterprise:
                  type: string
                  description: The enterprise ID that the user belongs to.
                spendingLimits:
                  type: array
                  items:
                    type: object
                    properties:
                      coin:
                        $ref: '#/components/schemas/CoinString'
                      maxLimit:
                        type: boolean
                      txValueLimit:
                        oneOf:
                          - type: string
                          - type: number
                    required:
                      - coin
                allErc20TokensLimit:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                    maxLimit:
                      type: boolean
                    txValueLimit:
                      oneOf:
                        - type: string
                        - type: number
                accessTokenTemplateId:
                  type: string
                  description: >-
                    ID of the AccessTokenTemplate to use as defaults for this
                    token.


                    Template fields act as defaults — they are used when the
                    corresponding field is absent from the

                    request body. Any value you provide in the request,
                    including an empty array, takes precedence.


                    For example, if the template has `scope: ['spend',
                    'transfer']` and you send `scope: ['read']`,

                    the created token will have `scope: ['read']`. If you omit
                    `scope` entirely, the token gets

                    `scope: ['spend', 'transfer']` from the template.
                permittedEnterprises:
                  type: array
                  items:
                    type: string
                    description: >-
                      Restricts the access token to the listed enterprise IDs
                      only.

                      Absence means no restriction (the token can access all
                      enterprises the user belongs to).
                permittedWallets:
                  type: array
                  items:
                    type: string
                    description: >-
                      Restricts the access token to the listed wallet IDs only.

                      Absence means no restriction (the token can access all
                      wallets the user has access to).
              required:
                - label
                - otp
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/accesstoken/{token}:
    delete:
      summary: Delete access token
      description: >-
        Revokes an access token by setting its expiration to the current time.
        The token can

        no longer be used for authentication. Returns the expired token
        document.
      operationId: v2.accesstoken.delete
      tags:
        - User
      x-internal: false
      parameters:
        - name: token
          description: >-
            The public ID of the access token to revoke (32-character lowercase
            hex string).
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/accesstokentemplate:
    get:
      summary: List access token templates
      description: >-
        Returns all access token templates belonging to the authenticated user.

        Results are paginated using cursor-based pagination. Use the `prevId`
        query parameter

        with the `nextBatchPrevId` value from the previous response to fetch the
        next page.

        Defaults to 25 results per page; maximum is 100.
      operationId: v2.accesstokentemplate.list
      tags:
        - User
      x-internal: false
      parameters:
        - name: limit
          description: 'Maximum number of results to return (default: 25, max: 100)'
          in: query
          schema:
            type: string
            format: number
        - name: prevId
          description: >-
            Cursor for pagination; use the `nextBatchPrevId` value from the
            previous response
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  accessTokenTemplates:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        userId:
                          type: string
                        enterpriseId:
                          type: string
                        tokenScopes:
                          type: array
                          items:
                            type: string
                        allowedIPs:
                          type: array
                          items:
                            type: string
                        tokenLimits:
                          $ref: '#/components/schemas/TokenLimits'
                        permittedEnterprises:
                          type: array
                          items:
                            type: string
                        permittedWallets:
                          type: array
                          items:
                            type: string
                        createdAt:
                          type: string
                          format: date-time
                          title: ISO Date String
                        updatedAt:
                          type: string
                          format: date-time
                          title: ISO Date String
                      required:
                        - id
                        - name
                        - userId
                  nextBatchPrevId:
                    type: string
                required:
                  - accessTokenTemplates
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create access token template
      description: Creates a reusable access token template for the authenticated user.
      operationId: v2.accesstokentemplate.create
      tags:
        - User
      x-internal: false
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Request body for creating an access token template.

                Defines a reusable configuration including spending limits and
                optional enterprise scope

                that can be applied when creating access tokens.
              properties:
                name:
                  type: string
                  description: Display name for the template (must be unique per user)
                enterpriseId:
                  type: string
                  description: >-
                    Scope the template to a specific enterprise; user must be a
                    member of the enterprise
                tokenScopes:
                  type: array
                  items:
                    type: string
                    enum:
                      - openid
                      - openid_enterprises
                      - profile
                      - user_manage
                      - enterprise_view_all
                      - enterprise_manage_all
                      - auditlogs_view_all
                      - wallet_view
                      - wallet_view_enterprise
                      - wallet_view_all
                      - wallet_create
                      - wallet_freeze
                      - wallet_freeze_all
                      - wallet_manage
                      - wallet_manage_all
                      - wallet_approve
                      - wallet_approve_all
                      - wallet_spend
                      - wallet_spend_all
                      - wallet_edit
                      - wallet_edit_all
                      - wallet_stake
                      - wallet_stake_all
                      - wallet_edit_enterprise
                      - wallet_spend_enterprise
                      - wallet_approve_enterprise
                      - wallet_manage_enterprise
                      - settlement_network_read
                      - settlement_network_write
                      - portfolio_view
                      - trade_view
                      - trade_trade
                      - trade_fix
                      - pending_approval_update
                      - metamask_institutional
                      - crypto_compare
                      - third_party_user_lookup
                      - private_verify_email
                      - scim
                      - all
                    description: >-
                      OAuth scopes to grant when tokens are created from this
                      template
                allowedIPs:
                  type: array
                  items:
                    type: string
                    description: >-
                      IP addresses allowed to use tokens created from this
                      template
                tokenLimits:
                  type: object
                  description: >-
                    Spending limits to apply when tokens are created from this
                    template
                  properties:
                    allErc20TokensLimit:
                      $ref: '#/components/schemas/AllErc20TokensTemplateLimit'
                    spendingLimits:
                      type: array
                      items:
                        type: object
                        properties:
                          coin:
                            type: string
                          maxLimit:
                            type: boolean
                          txValueLimit:
                            type: string
                        required:
                          - coin
                permittedEnterprises:
                  type: array
                  items:
                    type: string
                    description: >-
                      Enterprise IDs to restrict tokens created from this
                      template to. Absence means no enterprise restriction.

                      Cannot be set together with permittedWallets.
                permittedWallets:
                  type: array
                  items:
                    type: string
                    description: >-
                      Wallet IDs to restrict tokens created from this template
                      to. Absence means no wallet restriction.

                      Cannot be set together with permittedEnterprises.
              required:
                - name
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenTemplateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/accesstokentemplate/{id}:
    delete:
      summary: Delete access token template
      description: >-
        Permanently deletes an access token template owned by the authenticated
        user.

        Any access tokens that were created from this template will have their

        `accessTokenTemplateId` reference cleared but will otherwise remain
        intact.
      operationId: v2.accesstokentemplate.delete
      tags:
        - User
      x-internal: false
      parameters:
        - name: id
          description: The public ID of the template to delete
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                required:
                  - id
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    get:
      summary: Get access token template
      description: >-
        Returns a single access token template belonging to the authenticated
        user.
      operationId: v2.accesstokentemplate.get
      tags:
        - User
      x-internal: false
      parameters:
        - name: id
          description: The access token template ID
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenTemplateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    patch:
      summary: Update access token template
      description: >-
        Partially updates an access token template owned by the authenticated
        user.

        Only the fields provided in the request body will be updated.
      operationId: v2.accesstokentemplate.update
      tags:
        - User
      x-internal: false
      parameters:
        - name: id
          description: The public ID of the template to update
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: >-
                Request body for partially updating an access token template.

                Only the fields provided will be updated; omitted fields remain
                unchanged.
              properties:
                name:
                  type: string
                  description: New display name for the template (must be unique per user)
                tokenScopes:
                  type: array
                  items:
                    type: string
                    enum:
                      - openid
                      - openid_enterprises
                      - profile
                      - user_manage
                      - enterprise_view_all
                      - enterprise_manage_all
                      - auditlogs_view_all
                      - wallet_view
                      - wallet_view_enterprise
                      - wallet_view_all
                      - wallet_create
                      - wallet_freeze
                      - wallet_freeze_all
                      - wallet_manage
                      - wallet_manage_all
                      - wallet_approve
                      - wallet_approve_all
                      - wallet_spend
                      - wallet_spend_all
                      - wallet_edit
                      - wallet_edit_all
                      - wallet_stake
                      - wallet_stake_all
                      - wallet_edit_enterprise
                      - wallet_spend_enterprise
                      - wallet_approve_enterprise
                      - wallet_manage_enterprise
                      - settlement_network_read
                      - settlement_network_write
                      - portfolio_view
                      - trade_view
                      - trade_trade
                      - trade_fix
                      - pending_approval_update
                      - metamask_institutional
                      - crypto_compare
                      - third_party_user_lookup
                      - private_verify_email
                      - scim
                      - all
                    description: Updated OAuth scopes
                allowedIPs:
                  type: array
                  maxItems: 100
                  items:
                    type: string
                    description: >-
                      Updated IP allowlist. Each entry must be a valid IPv4,
                      IPv6, or CIDR block.
                tokenLimits:
                  type: object
                  description: Updated spending limits configuration
                  properties:
                    allErc20TokensLimit:
                      $ref: '#/components/schemas/AllErc20TokensTemplateLimit'
                    spendingLimits:
                      type: array
                      items:
                        type: object
                        properties:
                          coin:
                            type: string
                          maxLimit:
                            type: boolean
                          txValueLimit:
                            type: string
                        required:
                          - coin
                permittedEnterprises:
                  type: array
                  items:
                    type: string
                    description: >-
                      Updated enterprise IDs restriction. Omit to clear. Cannot
                      be set together with permittedWallets.
                permittedWallets:
                  type: array
                  items:
                    type: string
                    description: >-
                      Updated wallet IDs restriction. Omit to clear. Cannot be
                      set together with permittedEnterprises.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessTokenTemplateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/freeze:
    post:
      summary: Freeze User
      description: >-
        Route for users to freeze their account. Requires the `user_manage`
        scope.

        Session must be unlocked using the [Unlock](/reference/userunlock#/)
        endpoint, prior to hitting this route.

        In the UI, call to this route is followed by a call to
        [Logout](/reference/userlogout#/) endpoint.
      operationId: v2.user.freeze
      tags:
        - User
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/login:
    post:
      summary: Login
      description: >-
        Creates a short-lived (1 hour) access token for use with the API.
        Requires a verified email address. BitGo doesn't recommend using this
        endpoint for scripting. Instead, use the SDK or the web UI to create
        long-lived access tokens. However, short-lived access tokens are the
        only access tokens with the "user_manage" scope that enables you to
        programmatically add users to your enterprise using the [Add User to
        Enterprise](/reference/v2enterpriseuseradd#/) endpoint.
      operationId: v2.user.login
      tags:
        - User
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: The verified email address of the user
                  example: user@email.com
                  format: email
                extensible:
                  type: boolean
                  description: >-
                    "true" if the session is extensible beyond a one-hour
                    duration
                  example: false
                otp:
                  type: string
                  description: Second factor authentication token.
                  example: '123456'
                password:
                  type: string
                  example: secret
              required:
                - email
                - otp
                - password
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/logout:
    get:
      summary: Logout
      description: Disables an access token
      operationId: user.logout
      tags:
        - User
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/recoverycodes/{recoveryCodeSetId}:
    get:
      summary: Get Recovery Codes
      description: >-
        Get the recovery codes for the given recovery code set ID. Requires the
        `user_manage` scope.

        Session must be unlocked using the [Unlock](/reference/userunlock#/)

        endpoint, prior to hitting this route.
      operationId: v2.user.recoveryCodes.getById
      tags:
        - User
      parameters:
        - name: recoveryCodeSetId
          description: The ID of the recovery code set
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryCodesResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/user/validatepasswordresettoken:
    get:
      summary: Validate Password Reset Token
      description: Route to validate a user's password reset token.
      operationId: v2.user.validatepasswordresettoken
      tags:
        - User
      parameters:
        - name: token
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}:
    get:
      summary: Get wallet by ID
      description: >-
        Get one wallet by its 'walletId'. One 'walletId' can map to multiple
        receive addresses.
      operationId: v2.wallet.getbyid
      tags:
        - Wallet
      parameters:
        - name: allTokens
          description: Include data for all subtokens (i.e. ERC20 Tokens, Stellar Tokens)
          in: query
          schema:
            type: boolean
        - name: unspentCount
          description: True, if including unspent count for UTXO-based coins.
          in: query
          schema:
            type: boolean
        - name: includeRbf
          description: >-
            True, if including Replace-By-Fee (RBF) transactions in the total
            balance amount.
          in: query
          schema:
            type: boolean
        - name: expandAdvancedWhitelist
          description: >-
            True, if including the advanced whitelist wallet address in the
            response. The address is annotated as part of the whitelist entry
            metadata
          in: query
          schema:
            type: boolean
        - name: includeStakingBalances
          description: Includes the staked balance and reward balance of the wallet
          in: query
          schema:
            type: boolean
        - name: includeBalance
          description: Omit trying to fetch the wallet balance
          in: query
          schema:
            type: boolean
        - name: includeEvmKeyringWhitelist
          description: >-
            When true, includes whitelist policy rules from all EVM keyring
            derived wallets

            in addition to the main wallet's rules. Each merged rule is tagged
            with the

            source walletId so the caller can identify which network it belongs
            to.

            Only applicable for EVM keyring wallets (parent or derived).
          in: query
          schema:
            type: boolean
        - name: exactConfirmedBalance
          description: >-
            When set to true, the `confirmedBalance` in the response will be the
            exact on-chain balance

            without considering any unconfirmed transactions (for UTXO-based
            coins only).


            When `false`, the `confirmedBalance` will not include the outputs
            consumed of unconfirmed

            withdrawals. This may be inaccurate in certain situations


            Default value: false.
          in: query
          schema:
            type: boolean
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/address/{address}/crosschainbalances:
    get:
      summary: Get cross-chain address balances
      description: >-
        Gets balance information for a specific address across all enabled EVM
        keyring chains


        For EVM keyring wallets, this endpoint returns the balance of a specific
        receive address

        across all derived child wallets on different chains (e.g., ETH,
        Polygon, BSC).

        The same address exists on multiple chains due to shared key material.
      operationId: v2.wallet.address.crosschainbalances
      tags:
        - Address
      parameters:
        - name: includeAllChains
          description: >-
            Include all chains in the EVM keyring, even if the address doesn't
            exist on them yet.

            When true, returns placeholder entries with empty id field and zero
            balances for chains

            where the address hasn't been created.
          in: query
          schema:
            type: boolean
            default: false
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: address
          description: The address to check across chains
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/AddressString'
            example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  addresses:
                    type: array
                    items:
                      type: object
                      description: >-
                        List of addresses across all chains in the EVM keyring
                        with their balances
                      properties:
                        id:
                          type: string
                          description: Platform public ID for the address
                          example: 59cd72485007a239fb00282ed480da1f
                          pattern: ^[0-9a-f]{32}$
                        coin:
                          allOf:
                            - $ref: '#/components/schemas/CoinString'
                          description: The coin/chain for this address
                          example: eth
                        wallet:
                          type: string
                          description: Wallet ID containing this address
                          example: 59cd72485007a239fb00282ed480da1f
                          pattern: ^[0-9a-f]{32}$
                        address:
                          allOf:
                            - $ref: '#/components/schemas/AddressString'
                          description: >-
                            The address string (same across chains in an EVM
                            keyring)
                          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
                        chain:
                          allOf:
                            - $ref: '#/components/schemas/AddressChain'
                          description: Chain index (0 for receive addresses)
                        index:
                          type: number
                          description: Address index within the chain
                        label:
                          allOf:
                            - $ref: '#/components/schemas/AddressLabelString'
                          description: User-defined label for this address
                          maxLength: 250
                        token:
                          type: string
                          description: Token identifier if this is a token address
                          example: usdc
                        balance:
                          allOf:
                            - $ref: '#/components/schemas/TrimmedBalance'
                          description: Balance information for this address
                      required:
                        - id
                        - coin
                        - wallet
                        - address
                        - chain
                        - index
                  count:
                    type: number
                    description: Total count of addresses returned
                required:
                  - addresses
                  - count
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/bridgableBalance:
    get:
      summary: Get wallet bridgable balance for the root address
      description: This balance can be used for bridging funds between l1 and l2 chain.
      operationId: v2.wallet.bridgableBalance
      tags:
        - Wallet
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletBridgableBalance'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/derivedwallets:
    get:
      summary: List derived wallets for an EVM keyring
      description: >-
        Lists all child wallets derived from an EVM keyring parent wallet. This
        endpoint accepts

        either a parent wallet ID or a child wallet ID:

        - If given a parent wallet ID (wallet with `isParent=true`), returns all
        child wallets

        - If given a child wallet ID (wallet with
        `evmKeyRingReferenceWalletId`), returns all sibling

        child wallets that share the same parent


        Child wallets are identified by having the `evmKeyRingReferenceWalletId`
        field set to the

        parent wallet's ID. Child wallets can be on different chains (e.g., BSC,
        Polygon, Arbitrum)

        but share the same key material from the parent wallet.


        Returns wallets with the same structure as the normal list wallet API,
        including:

        - Balance information (balance, confirmedBalance, spendableBalance)

        - Token balances for all tokens on each chain

        - Staking balances (if includeStakingBalances is set)

        - Receive addresses (unless skipReceiveAddress is set)

        - Policy information (if expandPolicy is set)

        - All other wallet properties
      operationId: v2.wallet.listderivedwallets
      tags:
        - Wallet
      parameters:
        - name: id
          description: Filter by ID
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: Filter by ID
              pattern: ^[0-9a-f]{32}$
              example: '"59cd72485007a239fb00282ed480da1f"'
        - name: coin
          description: Filter by coin
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by coin
              example: '"btc"'
        - name: enterprise
          description: Filter by enterprise.
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by enterprise.
              pattern: ^[0-9a-f]{32}$
              example: '"59cd72485007a239fb00282ed480da1f"'
        - name: type
          description: Filter by wallet type
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by wallet type
        - name: subType
          description: Filter by wallet sub-type
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by wallet sub-type
        - name: deleted
          description: Filter by deleted state
          in: query
          schema:
            type: boolean
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: labelContains
          description: Filter by label substring.
          in: query
          schema:
            type: string
        - name: expandBalance
          description: >-
            Add "balanceString", "confirmedBalanceString" and
            "spendableBalanceString" to each wallet
          in: query
          schema:
            type: boolean
            default: false
        - name: excludeSpendableBalance
          in: query
          schema:
            type: boolean
        - name: expandPolicy
          in: query
          schema:
            type: boolean
        - name: expandCustodialWallet
          description: Whether linked custodial wallets should be expanded inline
          in: query
          schema:
            type: boolean
        - name: ignoreErrors
          in: query
          schema:
            type: boolean
        - name: includeStakingBalances
          description: >-
            Include `stakingBalanceString` and `rewardBalanceString` properties
            for each staking wallet. Requires `expandBalance` to be set to true.
          in: query
          schema:
            type: boolean
            default: false
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            format: number
        - name: offset
          description: Number of documents to skip for offset-based pagination.
          in: query
          schema:
            type: string
            default: '0'
            format: number
        - name: skipReceiveAddress
          description: Do not add "receiveAddress" to each wallet
          in: query
          schema:
            type: boolean
            default: false
        - name: permission
          description: Return only wallets for which the user has the given permission
          in: query
          schema:
            type: string
            enum:
              - admin
              - view
              - spend
        - name: pinnedWallets
          description: >-
            Return only pinned wallets ("pinnedOnly") or only unpinned wallets
            ("pinnedExcluded"), exclude to return both
          in: query
          schema:
            type: string
            enum:
              - pinnedOnly
              - pinnedExcluded
        - name: bitgoOrg
          description: Return only wallets belong to the BitGo trust org
          in: query
          schema:
            type: string
            enum:
              - BitGo Trust
              - BitGo New York
              - BitGo Germany
              - BitGo Switzerland
              - BitGo Europe ApS
              - Frankfurt DE Trust
              - BitGo Singapore
              - BitGo Korea
              - BitGo Custody MENA FZE
              - BitGo India
              - BitGo Sister Trust 1
        - name: skipUnsupportedCoins
          description: Skip unsupported coins instead of returning an error
          in: query
          schema:
            type: boolean
            default: false
        - name: frozen
          description: >-
            Filter derived wallets by freeze status.

            - true: Return only frozen wallets (freeze.expires >= current time)

            - false: Return only non-frozen wallets (no freeze or freeze
            expired)

            If not specified, returns all derived wallets regardless of freeze
            status.
          in: query
          schema:
            type: boolean
        - name: hasSendManyTokens
          description: >-
            When true, return only derived wallets that have at least one token
            in the sendManyTokens array

            on at least one chain (includes both pending and active token
            states).

            When false or not specified, returns all derived wallets.
          in: query
          schema:
            type: boolean
        - name: coinContains
          description: >-
            Filter by coin or display name (case-insensitive substring). E.g.
            "bsc", "Polygon", "Arbitrum".
          in: query
          schema:
            type: string
        - name: sendManyTokenContains
          description: >-
            Filter to wallets that have a sendMany token matching this string
            (case-insensitive). E.g. "usdc", "busd", "link".
          in: query
          schema:
            type: string
        - name: walletId
          description: >-
            The wallet ID - can be either a parent wallet ID or a child wallet
            ID
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdString'
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/feeAddressBalances:
    get:
      summary: Get wallet fee address balances
      description: >-
        Fetches gas tank balances of different chains available on the wallet.

        Uses the primary wallet coin's fee address to check balances across all
        available chains.
      operationId: v2.wallet.feeAddressBalances
      tags:
        - Wallet
      parameters:
        - name: coin
          description: >-
            Optional coin to include in the balance check even if not yet in
            enabledChildChains.
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletFeeAddressBalances'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/invoice:
    get:
      summary: Fetch lightning invoices
      description: |-
        This API call is used to fetch current lightning invoices which are
        used for requesting and receiving payments over the lightning network.
      operationId: v2.wallet.lightning.invoice.list1
      tags:
        - Lightning
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - open
              - settled
              - canceled
        - name: limit
          in: query
          schema:
            type: string
            format: number
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: prevId
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInvoicesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidWalletId1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create a lightning invoice
      description: |-
        This API call is used to create a new lightning invoice which can be
        used for requesting and receiving payments over the lightning network.
      operationId: v2.wallet.lightning.invoice.create
      tags:
        - Lightning
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                valueMsat:
                  type: string
                  description: >-
                    The value of the invoice in millisatoshis. Provide exactly
                    one of `valueMsat` or `valueSat`.

                    This field is not supported for Go wallets.
                  example: '50000000'
                  format: number
                valueSat:
                  type: number
                  description: >-
                    The value of the invoice in satoshis. Provide exactly one of
                    `valueMsat` or `valueSat`.
                  example: 50000
                memo:
                  type: string
                  description: Optional memo or description for the invoice
                  example: Payment for services
                expiry:
                  type: number
                  description: >-
                    Optional expiry time in seconds. By default, the invoice
                    will expire in 72 hours.

                    This field is not supported for Go wallets - it is
                    automatically set to the default.
                  example: 3600
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LightningInvoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidWalletId1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/invoice/{paymentHash}:
    get:
      summary: Fetch lightning invoice for a payment hash
      description: >-
        This API call is used to fetch lightning invoice for a given payment
        hash.

        Payment hash is a unique identifier for a lightning invoice.
      operationId: v2.wallet.lightning.invoice.get
      tags:
        - Lightning
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: paymentHash
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LightningInvoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidPaymentHash'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidPaymentHash'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/payment:
    get:
      summary: Fetch lightning payments
      description: >-
        This API call is used to fetch current lightning payments over the
        lightning network.
      operationId: v2.wallet.lightning.payment.list
      tags:
        - Lightning
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - in_flight
              - settled
              - failed
        - name: limit
          in: query
          schema:
            type: string
            format: number
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: paymentHash
          in: query
          schema:
            type: string
        - name: prevId
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidWalletId1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/payment/{paymentId}:
    get:
      summary: Fetch lightning payment for a payment id
      description: This API call is used to fetch lightning payment for a given payment id.
      operationId: v2.wallet.lightning.payment.get
      tags:
        - Lightning
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentInfo'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidPaymentId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidPaymentId'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/transaction:
    get:
      summary: Fetch lightning onchain transactions
      description: This API call is used to fetch current lightning onchain transactions.
      operationId: v2.wallet.lightning.transaction.list
      tags:
        - Lightning
      parameters:
        - name: blockHeight
          in: query
          schema:
            type: string
            format: number
        - name: limit
          in: query
          schema:
            type: string
            format: number
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: prevId
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidWalletId1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/lightning/transaction/{txid}:
    get:
      summary: Fetch lightning onchain transaction for a txid
      description: >-
        This API call is used to fetch lightning onchain transaction for a given
        txid.
      operationId: v2.wallet.lightning.transaction.get
      tags:
        - Lightning
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: txid
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlatformError'
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidTxId'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidWalletId1'
                  - $ref: '#/components/schemas/InvalidTxId'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/msgrequests:
    post:
      summary: Sign off-chain message
      description: >-
        Create a transaction request for signing an off-chain message with your
        keys for an MPC wallet. Use this endpoint when you need to produce a
        cryptographic signature over arbitrary data without broadcasting a
        transaction on-chain. Common use cases include proving wallet ownership
        to a dApp, signing authentication challenges, and signing EIP-191 or
        EIP-712 typed data.


        Use only for MPC wallets. Supported chains include EVM-compatible chains
        (ETH, BSC, Polygon, etc.), Solana, and Cardano. UTXO-based chains
        (Bitcoin, Litecoin, etc.) are not supported.


        To execute on-chain transactions with custom instructions (such as
        signing an on-chain message), use [Create transaction
        request](/reference/v2wallettxrequestcreate).
      operationId: v2.wallet.msgrequests.create
      tags:
        - Wallet
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                intent:
                  $ref: '#/components/schemas/MessageIntent'
                apiVersion:
                  $ref: '#/components/schemas/TransactionRequestApiVersion'
                preview:
                  type: boolean
                idempotencyKey:
                  type: string
              required:
                - intent
                - apiVersion
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/pin:
    put:
      summary: Pin or unpin a wallet
      description: >-
        Pins or unpins a wallet and returns updated pinned wallets for the
        current user's enterprise.
      operationId: v2.wallet.pin
      tags:
        - Wallet
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                isPinned:
                  type: boolean
              required:
                - isPinned
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdatePinnedWalletsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/potentialStuckTxs:
    get:
      summary: List stuck transactions for EVM keyring
      description: >-
        This endpoint aggregates stuck transactions from a wallet and its EVM
        keyring derived wallets (if applicable).


        Use cases:

        - EVM keyring parent wallet: Returns stuck txs from parent + all derived
        wallets (ETH, BSC, Polygon, etc.)

        - Non-keyring wallet: Returns stuck txs from that single wallet only


        The response includes both successful results and any errors encountered
        while querying individual wallets,

        allowing clients to handle partial failures gracefully.
      operationId: v2.wallet.getmultiwalletstucktxs
      tags:
        - Wallet
      parameters:
        - name: expandSendTransferMetadata
          description: >-
            True, if expanding the send transfer for each stuck transaction if
            one is available.
          in: query
          schema:
            type: boolean
            default: false
        - name: txid
          description: The transaction ID of the stuck transaction.
          in: query
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiWalletStuckTxsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/tss/updatereadiness:
    get:
      summary: Check if a GG18 Wallet is ready to update to DKLS.
      operationId: v2.wallet.mpcv2migrationstatus
      tags:
        - Wallet
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletMPCv2MigrationStatus'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests:
    get:
      summary: List transaction requests by wallet
      description: >-
        Get a paginated list of transaction requests filtered by wallet. Use
        only with MPC wallets.
      operationId: v2.wallet.txrequest.get
      tags:
        - Transaction request
      parameters:
        - name: txRequestIds
          description: >-
            If provided, only the specified transaction requests will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                If provided, only the specified transaction requests will be
                returned.
        - name: idempotencyKeys
          description: >-
            If provided, only transaction requests with the matching
            idempotencyKeys will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                If provided, only transaction requests with the matching
                idempotencyKeys will be returned.
        - name: sequenceIds
          description: >-
            A "sequenceId" is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a "sequenceId" you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            the system only confirms one send request per "sequenceId" (and
            fails all subsequent attempts), you can retry sending without the
            risk of double spending. The "sequenceId" is only visible to users
            on the wallet and is not shared publicly.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                A "sequenceId" is a unique and arbitrary wallet identifier
                applied to transfers and transactions at creation. It is
                optional but highly recommended. With a "sequenceId" you can
                easily reference transfers and transactions&mdash;for example,
                to safely retry sending. Because the system only confirms one
                send request per "sequenceId" (and fails all subsequent
                attempts), you can retry sending without the risk of double
                spending. The "sequenceId" is only visible to users on the
                wallet and is not shared publicly.
        - name: intentTypes
          description: >-
            If provided, only transaction requests with the specified intent
            types will be returned.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - payment
                - consolidate
                - consolidateToken
                - fanout
                - vote
                - createAccount
                - updateAccount
                - addTrustLine
                - removeTrustLine
                - signMessage
                - signTypedStructuredData
                - enableToken
                - acceleration
                - transferToken
                - fillNonce
                - walletRecovery
                - contractCall
                - customTx
                - closeAssociatedTokenAccount
                - export
                - import
                - importtoc
                - transferAcknowledge
                - transferAccept
                - transferReject
                - transferOfferWithdrawn
                - cosignDelegationProposal
                - cosignDelegationAccept
                - allocationRequest
                - allocationAllocate
                - cantonCommand
                - cantonEndInvestorOnboardingOffer
                - cantonEndInvestorOnboardingAccept
                - cantonEndInvestorOnboardingReject
                - cantonParticipantOnboardingRequest
                - stake
                - unstake
                - delegate
                - undelegate
                - switchValidator
                - claim
                - stakeClaimRewards
                - pledge
                - voteDelegation
                - authorize
                - deactivate
                - createBtcDelegation
                - goUnstake
                - stakeWithCallData
                - unstakeWithCallData
                - validatorRegistration
                - increaseStake
                - decreaseStake
                - signalExit
                - withdrawStake
                - switchValidatorWithCallData
                - spotTransfer
                - delegateResource
                - undelegateResource
              description: >-
                If provided, only transaction requests with the specified intent
                types will be returned.
        - name: excludeIntentTypes
          description: >-
            If provided, transaction requests with the specified intent types
            will be excluded.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - payment
                - consolidate
                - consolidateToken
                - fanout
                - vote
                - createAccount
                - updateAccount
                - addTrustLine
                - removeTrustLine
                - signMessage
                - signTypedStructuredData
                - enableToken
                - acceleration
                - transferToken
                - fillNonce
                - walletRecovery
                - contractCall
                - customTx
                - closeAssociatedTokenAccount
                - export
                - import
                - importtoc
                - transferAcknowledge
                - transferAccept
                - transferReject
                - transferOfferWithdrawn
                - cosignDelegationProposal
                - cosignDelegationAccept
                - allocationRequest
                - allocationAllocate
                - cantonCommand
                - cantonEndInvestorOnboardingOffer
                - cantonEndInvestorOnboardingAccept
                - cantonEndInvestorOnboardingReject
                - cantonParticipantOnboardingRequest
                - stake
                - unstake
                - delegate
                - undelegate
                - switchValidator
                - claim
                - stakeClaimRewards
                - pledge
                - voteDelegation
                - authorize
                - deactivate
                - createBtcDelegation
                - goUnstake
                - stakeWithCallData
                - unstakeWithCallData
                - validatorRegistration
                - increaseStake
                - decreaseStake
                - signalExit
                - withdrawStake
                - switchValidatorWithCallData
                - spotTransfer
                - delegateResource
                - undelegateResource
              description: >-
                If provided, transaction requests with the specified intent
                types will be excluded.
        - name: states
          description: >-
            If provided, only transaction requests of the specified state will
            be returned.

            - `canceled`: Canceled by a wallet spender before approval or
            sending.

            - `delivered`: Inserted into the send queue (or rejected by BitGo
            through circuit breakers). This state is only used with apiVersion
            "full".

            - `failed` : Catch-all state indicating an unrecoverable failure
            (such as a duplicate key error when creating a transfer).

            - `initialized`: First state when a transaction request is created
            (before any policy evaluation occurs).

            - `pendingApproval`: Triggered a policy that requires approval to
            proceed.

            - `pendingDelivery`: Requires further action to proceed (such as
            pending signature, or accepting/rejecting due to triggering a
            circuit breaker). This state is only used with apiVersion "full".

            - `pendingUserCommitment`: Ready to receive your user commitments.
            This state is only used with apiVersion "lite" and EdDSA assets with
            commitment signing states.

            - `pendingUserGShare`: Ready to receive your gShare.

            - `pendingUserRShare`: Ready to receive your rShare.

            - `pendingUserSignature`: Ready to receive your user signature (get
            the unsigned transaction from BitGo and sign it). This state is only
            used with apiVersion "lite" and EdDSA assets without commitment
            signing states.

            - `readyToSend`: Ready send (share combination is complete).

            - `rejected`: Rejected by an approver.

            - `signed`: All transactions in the transaction request were signed.
            All future updates will be in the transfer document.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - pendingApproval
                - canceled
                - rejected
                - initialized
                - pendingDelivery
                - delivered
                - pendingUserSignature
                - pendingUserCommitment
                - pendingUserRShare
                - pendingUserGShare
                - readyToSend
                - signed
                - failed
              description: >-
                If provided, only transaction requests of the specified state
                will be returned.

                - `canceled`: Canceled by a wallet spender before approval or
                sending.

                - `delivered`: Inserted into the send queue (or rejected by
                BitGo through circuit breakers). This state is only used with
                apiVersion "full".

                - `failed` : Catch-all state indicating an unrecoverable failure
                (such as a duplicate key error when creating a transfer).

                - `initialized`: First state when a transaction request is
                created (before any policy evaluation occurs).

                - `pendingApproval`: Triggered a policy that requires approval
                to proceed.

                - `pendingDelivery`: Requires further action to proceed (such as
                pending signature, or accepting/rejecting due to triggering a
                circuit breaker). This state is only used with apiVersion
                "full".

                - `pendingUserCommitment`: Ready to receive your user
                commitments. This state is only used with apiVersion "lite" and
                EdDSA assets with commitment signing states.

                - `pendingUserGShare`: Ready to receive your gShare.

                - `pendingUserRShare`: Ready to receive your rShare.

                - `pendingUserSignature`: Ready to receive your user signature
                (get the unsigned transaction from BitGo and sign it). This
                state is only used with apiVersion "lite" and EdDSA assets
                without commitment signing states.

                - `readyToSend`: Ready send (share combination is complete).

                - `rejected`: Rejected by an approver.

                - `signed`: All transactions in the transaction request were
                signed. All future updates will be in the transfer document.
        - name: latest
          description: >-
            If provided, only the latest transaction request version will be
            returned.
          in: query
          schema:
            type: boolean
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: version
          in: query
          schema:
            type: string
            format: number
        - name: sortBy
          description: Sorts by specified field, default sorting by id.
          in: query
          schema:
            type: string
            enum:
              - id
              - createdDate
        - name: sortDirection
          description: Sorts order by field in specified sort direction, default ascending.
          in: query
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - name: dateLt
          description: Optional get transaction requests less than date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: dateGte
          description: Optional get transaction requests greater than or equal to date
          in: query
          schema:
            type: string
            format: date-time
            title: ISO Date String
        - name: includeEvmKeyringTxRequests
          description: >-
            If true, include transaction requests for all EVM keyring related
            wallets (main + derived).
          in: query
          schema:
            type: boolean
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionRequestsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
    post:
      summary: Create transaction request
      description: |-
        Create a transaction request for an MPC (TSS) wallet. To learn more
        about transacting from other wallet types, see
        [Withdraw Overview](/docs/withdraw-overview).

        TRX (`trx`, `ttrx`) MPC wallets support native transfers, TRC-20
        tokens, consolidation, staking, and resource delegation via
        `delegateResource` and `undelegateResource` intents.
      operationId: v2.wallet.txrequest.create
      tags:
        - Transaction request
      x-internal: false
      parameters:
        - name: walletId
          description: The ID of the wallet
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/WalletIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: |-
                Request body for creating a transaction request.
                Specifies the intent and optional metadata for the transaction.
              properties:
                apiVersion:
                  type: string
                  enum:
                    - lite
                    - full
                  description: >-
                    Full or Light to differentiate between the different
                    transaction request flows.
                idempotencyKey:
                  type: string
                  description: >-
                    The combination of the idempotencyKey, version and walletId
                    has to be unique. If no idempotencyKey is specified then it
                    remains undefined for the txRequest. Note, version is an
                    internal field that is auto incremented on every update to a
                    txRequest.
                intent:
                  type: object
                  properties:
                    intentType:
                      allOf:
                        - $ref: '#/components/schemas/IntentType'
                      description: The type of the intent
                    comment:
                      type: string
                      description: >-
                        Only visible to users on the wallet and not shared
                        publicly
                    sequenceId:
                      type: string
                      description: >-
                        A unique wallet identifier applied to transfers and
                        transactions at creation
                    nonce:
                      oneOf:
                        - type: string
                        - type: number
                      description: The nonce of the transaction
                  required:
                    - intentType
                videoApprovers:
                  type: array
                  items:
                    type: string
                    description: >-
                      (Custodial) Specify who should perform the Video ID with
                      Trust if one should be required.
                preview:
                  type: boolean
                  description: >-
                    When set to true, the transaction request is returned
                    without being stored in the DB.
              required:
                - intent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/DuplicateSequenceId1'
                  - $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}:
    put:
      summary: Cancel transaction request
      description: >-
        Cancel a transaction request that has not yet been fully signed or
        delivered. The only supported state transition is to "canceled". For
        transaction request full, the request must be in "pendingApproval" or
        "pendingDelivery" state. For transaction request lite, the request must
        be in "pendingApproval", "pendingUserCommitment", "pendingUserGShare",
        "pendingUserRShare", or "pendingUserSignature" state.
      operationId: v2.wallet.txrequest.update
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: txRequestId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TransactionRequestId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  type: string
                  enum:
                    - canceled
                  description: >-
                    For transaction request full, the current state must be
                    "pendingApproval" or "pendingDelivery". For transaction
                    request lite, the current state must be "pendingApproval",
                    "pendingUserCommitment", "pendingUserGShare",
                    "pendingUserRShare", or "pendingUserSignature".
                cancellationReason:
                  type: string
                  description: The reason for the cancellation
              required:
                - state
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/send:
    post:
      summary: Send a transaction request.
      description: >-
        For MPC wallets - Combine all signature shares and submit the signed
        transaction for broadcast.
      operationId: v2.wallet.txrequest.send
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
        - name: resource
          in: path
          required: true
          schema:
            type: string
            enum:
              - messages
              - transactions
        - name: resourceIndex
          in: path
          required: true
          schema:
            type: string
            format: number
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/sign:
    post:
      summary: Sign transaction request
      description: >-
        Request BitGo to co-sign a resource (message or transaction) in a
        transaction request.
      operationId: v2.wallet.txrequest.sign
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          description: The transaction request ID
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
        - name: resource
          description: The resource type (messages or transactions)
          in: path
          required: true
          schema:
            type: string
            enum:
              - messages
              - transactions
        - name: resourceIndex
          description: The index of the resource
          in: path
          required: true
          schema:
            type: string
            format: number
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    signatureShares:
                      type: array
                      items:
                        type: object
                        properties:
                          from:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The source of the signature share.
                          share:
                            type: string
                            description: The signature share
                          to:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The recipient of the signature share.
                        required:
                          - from
                          - share
                          - to
                        description: The array of signature shares without VSS proof
                    signerGpgPublicKey:
                      type: string
                      description: The GPG public key of the signer
                      minLength: 1
                    type:
                      type: string
                      enum:
                        - ecdsaMpcV2
                      description: The type of the request body
                  required:
                    - signatureShares
                    - signerGpgPublicKey
                    - type
                - type: object
                  properties:
                    signatureShares:
                      type: array
                      items:
                        type: object
                        properties:
                          from:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The source of the signature share.
                          share:
                            type: string
                            description: The signature share
                          to:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The recipient of the signature share.
                        required:
                          - from
                          - share
                          - to
                        description: The array of signature shares without VSS proof
                    signerShare:
                      type: string
                      description: The share of the signer
                    type:
                      type: string
                      enum:
                        - eddsaMpcV1
                      description: The type of the request body
                  required:
                    - signatureShares
                    - type
                - type: object
                  properties:
                    signatureShares:
                      type: array
                      items:
                        type: object
                        properties:
                          from:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The source of the signature share.
                          share:
                            type: string
                            description: The signature share
                          to:
                            allOf:
                              - $ref: '#/components/schemas/SignatureShareType'
                            description: The recipient of the signature share.
                        required:
                          - from
                          - share
                          - to
                        description: The array of signature shares without VSS proof
                    signerGpgPublicKey:
                      type: string
                      description: The GPG public key of the signer
                      minLength: 1
                    type:
                      type: string
                      enum:
                        - eddsaMpcV2
                      description: The type of the request body
                  required:
                    - signatureShares
                    - signerGpgPublicKey
                    - type
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/coinSpecific:
    put:
      summary: Update coin-specific data for transaction request
      description: >-
        Update coin-specific metadata on an existing unsigned transaction within
        a transaction request. Requires spend permission on the wallet.
        Currently, this endpoint is for use only with Bitcoin Lightning.
      operationId: v2.wallet.txrequest.coinSpecific.update
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
        - name: txRequestId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TransactionRequestId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                unsignedCoinSpecific:
                  type: object
                  description: Can be expanded later to include more coins
                  properties:
                    coin:
                      type: string
                      enum:
                        - lnbtc
                        - tlnbtc
                      description: lightning coin
                    data:
                      allOf:
                        - $ref: '#/components/schemas/LightningCoinSpecificUpdateData'
                      description: Storing signature for lightning withdraw
                  required:
                    - coin
                    - data
              required:
                - unsignedCoinSpecific
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionRequest1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/commit:
    post:
      summary: Exchange commitments for EdDSA transactions (lite)
      description: >-
        Exchange commitments for signing EdDSA transactions. This route is only
        valid

        for transaction request lite. You must call this endpoint before calling

        [Create a signature share for the transaction
        request](/reference/v2wallettxrequestsignaturesharecreate#/).
      operationId: v2.wallet.txrequest.commitment.exchange
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          description: The ID of the transaction request
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                commitmentShare:
                  allOf:
                    - $ref: '#/components/schemas/CommitmentShare1'
                  description: The user or backup to the commitment share.
                encryptedSignerShare:
                  allOf:
                    - $ref: '#/components/schemas/EncryptedShare'
                  description: The encrypted signer share.
              required:
                - commitmentShare
                - encryptedSignerShare
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeEddsaCommitmentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/messages/{messageIdx}/challenge:
    post:
      summary: Create ECDSA MPC challenge for message
      description: >-
        Create the challenge required for signing ECDSA transactions. You must
        call this

        endpoint before calling [Create a signature share for the transaction
        request](/reference/v2wallettxrequestsignaturesharecreate#/).
      operationId: v2.wallet.txrequest.message.challenge.create
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
        - name: messageIdx
          in: path
          required: true
          schema:
            type: string
            format: number
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                paillierModulus:
                  type: string
                  description: >-
                    The 'n' value from an ECDSA wallets paillier public key.
                    Retrieved from xShare.n.
                  minLength: 1
              required:
                - paillierModulus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBitgoChallengeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/transactions/{transactionIdx}/challenge:
    post:
      summary: Create ECDSA MPC challenge for transaction
      description: >-
        Create the challenge required for signing ECDSA transactions. You must
        call this

        endpoint before calling [Create a signature share for the transaction
        request](/reference/v2wallettxrequestsignaturesharecreate#/).
      operationId: v2.wallet.txrequest.transaction.challenge.create
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
        - name: transactionIdx
          in: path
          required: true
          schema:
            type: string
            format: number
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                paillierModulus:
                  type: string
                  description: >-
                    The 'n' value from an ECDSA wallets paillier public key.
                    Retrieved from xShare.n.
                  minLength: 1
              required:
                - paillierModulus
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBitgoChallengeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/{txRequestId}/transactions/{transactionIdx}/commit:
    post:
      summary: Exchange commitments for EdDSA transactions (full)
      description: >-
        Exchange commitments for signing EdDSA transactions. This route is only
        valid for

        transaction request full. You must call this endpoint before calling
        [Create a signature share for the transaction
        request](/reference/v2wallettxrequestsignaturesharecreate#/).
      operationId: v2.wallet.txrequest.transaction.commitment.exchange
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: txRequestId
          description: The ID of the transaction request
          in: path
          required: true
          schema:
            allOf:
              - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString'
        - name: transactionIdx
          in: path
          required: true
          schema:
            type: string
            format: number
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                commitmentShare:
                  allOf:
                    - $ref: '#/components/schemas/CommitmentShare1'
                  description: The user or backup to the commitment share.
                encryptedSignerShare:
                  allOf:
                    - $ref: '#/components/schemas/EncryptedShare'
                  description: The encrypted signer share.
              required:
                - commitmentShare
                - encryptedSignerShare
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeEddsaCommitmentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/awaitingsignature:
    get:
      summary: Get transaction requests ready for signature
      operationId: v2.wallet.txrequest.awaitingsignature.list
      tags:
        - Transaction request
      parameters:
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            oneOf:
              - type: string
              - type: string
                format: number
            default: '25'
            minimum: 1
            maximum: 500
        - name: txRequestIds
          description: >-
            If provided, only the specified transaction requests will be
            returned.
          in: query
          schema:
            type: array
            items:
              type: string
              description: >-
                If provided, only the specified transaction requests will be
                returned.
        - name: walletPermissions
          description: >-
            If provided, the result will be filtered by the users wallet
            permissions.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - admin
                - spend
              description: >-
                If provided, the result will be filtered by the users wallet
                permissions.
        - name: signingStage
          description: >-
            If provided, only transaction requests in a particular signing stage
            will be returned.
          in: query
          schema:
            type: string
            enum:
              - 1-eddsa
              - 2-eddsa
              - 3-eddsa
              - 4-eddsa
              - 1-ecdsa
              - 2-ecdsa
              - 3-ecdsa
              - 1-ecdsa-mpcv2
              - 2-ecdsa-mpcv2
              - 3-ecdsa-mpcv2
              - 4-ecdsa-mpcv2
              - 1-eddsa-mpcv2
              - 2-eddsa-mpcv2
              - 3-eddsa-mpcv2
              - 4-eddsa-mpcv2
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: sortBy
          description: Sorts by specified field, default sorting by id.
          in: query
          schema:
            nullable: true
            type: string
            enum:
              - id
              - createdDate
        - name: sortDirection
          description: Sorts order by field in specified sort direction, default ascending.
          in: query
          schema:
            nullable: true
            type: string
            enum:
              - ASC
              - DESC
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ListTxRequestAwaitingSignatureForWalletResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/txrequests/rebuild:
    post:
      summary: Rebuild multiple transaction requests
      description: >-
        Rebuild the unsigned transactions for multiple transaction requests in a
        single call. A rebuild resets existing signature shares and reconstructs
        each unsigned transaction from its original intent, which is necessary
        when a previously built transaction becomes invalid (for example, due to
        a changed nonce or updated fee estimate). Transaction requests are
        rebuilt sequentially in creation-date order.
      operationId: v2.wallet.txrequests.rebuild
      tags:
        - Transaction request
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdString'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                txRequestIds:
                  type: array
                  items:
                    type: string
                    description: >-
                      Rebuilds all transaction requests for the given
                      txRequestIds.
              required:
                - txRequestIds
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                    - $ref: '#/components/schemas/TransactionRequestLite'
                    - $ref: '#/components/schemas/TransactionRequestFull'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/wirewithdrawals/{transferId}/confirm:
    put:
      summary: Update wire withdrawal
      description: >-
        Approve or reject a pending wire withdrawal. If approving, the `state`
        updates to `confirmed`, enabling

        BitGo Trust to wire transfer the funds. If rejecting, the `state`
        updates to `rejected`, canceling

        the pending wire transfer.
      operationId: v2.wallet.wireWithdrawals.confirm
      tags:
        - Transfer
      parameters:
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
        - name: transferId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  allOf:
                    - $ref: '#/components/schemas/WireWithdrawalConfirmationAction'
                  description: >-
                    The action to take on a wire withdrawal confirmation.
                    "approve" to confirm the withdrawal, "reject" to reject it.
                coin:
                  type: string
                  enum:
                    - tfiatusd
                    - tfiateuro
                    - tfiatgbp
                    - tfiatinr
                    - tfiataed
                    - tfiatsgd
                    - fiatusd
                    - fiateuro
                    - fiatgbp
                    - fiataed
                    - fiatsgd
                amount:
                  type: string
                  description: >-
                    String representation of the amount to send in base units of
                    the currency.
                  example: '2000000'
                  pattern: ^-?\d+$
                address:
                  type: string
                  description: The address to send to.
                  example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
                  maxLength: 250
              required:
                - action
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transfer1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/{walletId}/wirewithdrawals/confirm:
    get:
      summary: List account wire withdrawals
      description: List wire withdrawals for a specific Go Account wallet.
      operationId: v2.wallet.wireWithdrawals.get
      tags:
        - Transfer
      parameters:
        - name: state
          description: Filter by wire withdrawal state.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - confirmationPending
                - confirmationApproved
                - confirmationRejected
              description: Filter by wire withdrawal state.
        - name: coin
          description: Filter by supported fiat currency.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - tfiatusd
                - tfiateuro
                - tfiatgbp
                - tfiatinr
                - tfiataed
                - tfiatsgd
                - fiatusd
                - fiateuro
                - fiatgbp
                - fiataed
                - fiatsgd
              description: Filter by supported fiat currency.
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            minimum: 1
            maximum: 500
            format: number
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
        - name: walletId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/WalletIdNonEmptyString'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireWithdrawalsPaginatedResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallet/balances:
    get:
      summary: List total balances
      description: Returns total balances by asset across all wallets in an enterprise.
      operationId: v2.wallet.gettotalbalances
      tags:
        - Wallet
      parameters:
        - name: allTokens
          description: >-
            Include balances for all subtokens (i.e. ERC20 Tokens, Stellar
            Tokens)
          in: query
          schema:
            type: boolean
        - name: coin
          description: Filter by coin
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/CoinNonEmptyString'
              - type: array
                items:
                  type: string
                  description: A cryptocurrency symbol or token ticker symbol
                  example: btc
                  minLength: 1
            example: btc | ['btc', 'eth']
        - name: deleted
          description: Filter by deleted state
          in: query
          schema:
            type: boolean
            default: false
        - name: enterprise
          description: Filter by enterprise ID
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/EnterpriseIdString'
              - type: array
                items:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
        - name: excludeEmptyBalances
          description: >-
            Exclude tokens with zero balance. When allTokens is passed, then
            every token supported by BitGo will be included, regardless of
            balance.
          in: query
          schema:
            type: boolean
            default: false
        - name: excludeSpendableBalances
          description: >-
            Skip spendable balance calculations and only include confirmed
            balances. If absent, defaults to false.
          in: query
          schema:
            type: boolean
            default: false
        - name: expandCustodialWallet
          description: Whether balances of linked custodial wallets should be included
          in: query
          schema:
            type: boolean
            default: false
        - name: id
          description: Filter by wallet ID
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/WalletIdString'
              - type: array
                items:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
        - name: includeEvmKeyring
          description: >-
            If true and wallet ID(s) are provided, include all wallets in the
            same EVM keyring family (parent + all children)
          in: query
          schema:
            type: boolean
            default: false
        - name: includeStakingBalances
          description: >-
            Include `stakingBalanceString` and `rewardBalanceString` properties
            for each staking wallet.
          in: query
          schema:
            type: boolean
            default: false
        - name: labelContains
          description: Filter by label substring
          in: query
          schema:
            type: string
        - name: skipPendingTxs
          description: >-
            Do not include pending withdrawals when determining total balances.
            By default, pending withdrawals will be considered.
          in: query
          schema:
            type: boolean
            default: false
        - name: skipTxCounts
          description: >-
            True, if excluding transfer counts when calculating total balances.
            If absent, defaults to false.
          in: query
          schema:
            type: boolean
            default: false
        - name: type
          description: Filter by wallet type
          in: query
          schema:
            oneOf:
              - $ref: '#/components/schemas/WalletType'
              - type: array
                items:
                  type: string
                  enum:
                    - backing
                    - cold
                    - custodial
                    - custodialPaired
                    - hot
                    - advanced
                    - trading
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWalletBalanceResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallets:
    get:
      summary: List wallets
      description: >-
        Lists all wallets you can access when the enterprise ID is provided,
        including:

        - Wallets you have a role on (admin, spender, or viewer).

        - Wallets in enterprises you belong to that have the `View All Wallets`
        option enabled

        from the enterprise settings.


        If the enterprise ID is not provided, lists only the wallets you have a
        role on.
      operationId: v2.wallet.list
      tags:
        - Wallet
      parameters:
        - name: id
          description: Filter by ID
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: Filter by ID
              pattern: ^[0-9a-f]{32}$
              example: '"59cd72485007a239fb00282ed480da1f"'
        - name: coin
          description: Filter by coin
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by coin
              example: '"btc"'
        - name: enterprise
          description: Filter by enterprise.
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by enterprise.
              pattern: ^[0-9a-f]{32}$
              example: '"59cd72485007a239fb00282ed480da1f"'
        - name: type
          description: Filter by wallet type
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by wallet type
        - name: subType
          description: Filter by wallet sub-type
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by wallet sub-type
        - name: deleted
          description: Filter by deleted state
          in: query
          schema:
            type: boolean
        - name: prevId
          description: >-
            Return the next batch of results, based on the "nextBatchPrevId"
            value from the previous batch.
          in: query
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
        - name: labelContains
          description: Filter by label substring.
          in: query
          schema:
            type: string
        - name: expandBalance
          description: >-
            Add "balanceString", "confirmedBalanceString" and
            "spendableBalanceString" to each wallet
          in: query
          schema:
            type: boolean
            default: false
        - name: excludeSpendableBalance
          in: query
          schema:
            type: boolean
        - name: expandPolicy
          in: query
          schema:
            type: boolean
        - name: expandCustodialWallet
          description: Whether linked custodial wallets should be expanded inline
          in: query
          schema:
            type: boolean
        - name: ignoreErrors
          in: query
          schema:
            type: boolean
        - name: includeStakingBalances
          description: >-
            Include `stakingBalanceString` and `rewardBalanceString` properties
            for each staking wallet. Requires `expandBalance` to be set to true.
          in: query
          schema:
            type: boolean
            default: false
        - name: limit
          description: >-
            Maximum number of results to return. If the result set is truncated,
            use the "nextBatchPrevId" value to get the next batch.
          in: query
          schema:
            type: string
            default: '25'
            format: number
        - name: offset
          description: Number of documents to skip for offset-based pagination.
          in: query
          schema:
            type: string
            default: '0'
            format: number
        - name: skipReceiveAddress
          description: Do not add "receiveAddress" to each wallet
          in: query
          schema:
            type: boolean
            default: false
        - name: permission
          description: Return only wallets for which the user has the given permission
          in: query
          schema:
            type: string
            enum:
              - admin
              - view
              - spend
        - name: pinnedWallets
          description: >-
            Return only pinned wallets ("pinnedOnly") or only unpinned wallets
            ("pinnedExcluded"), exclude to return both
          in: query
          schema:
            type: string
            enum:
              - pinnedOnly
              - pinnedExcluded
        - name: bitgoOrg
          description: Return only wallets belong to the BitGo trust org
          in: query
          schema:
            type: string
            enum:
              - BitGo Trust
              - BitGo New York
              - BitGo Germany
              - BitGo Switzerland
              - BitGo Europe ApS
              - Frankfurt DE Trust
              - BitGo Singapore
              - BitGo Korea
              - BitGo Custody MENA FZE
              - BitGo India
              - BitGo Sister Trust 1
        - name: skipUnsupportedCoins
          description: Skip unsupported coins instead of returning an error
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/wallets/count:
    get:
      summary: Get wallets count
      description: >-
        Get a count of all wallets you can access, including:

        - Wallets you have a role on (admin, spender, or viewer).

        - Wallets in enterprises you belong to that have the `View All Wallets`
        option

        enabled from the enterprise settings.


        You can use this endpoint in conjunction with the <b>List wallets</b>
        endpoint to

        enable paginating a list of wallets. For example, once you get the
        wallets count,

        you can use the total count to calculate the number of pages you need in
        order to

        display all the wallets.
      operationId: v2.wallet.count
      tags:
        - Wallet
      parameters:
        - name: id
          description: Filter by ID.
          in: query
          schema:
            type: array
            items:
              type: string
              minLength: 1
              description: Filter by ID.
              pattern: ^[0-9a-f]{32}$
              example: 59cd72485007a239fb00282ed480da1f
        - name: coin
          description: Filter by coin
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by coin
              example: btc
        - name: enterprise
          description: Filter by enterprise
          in: query
          schema:
            type: array
            items:
              type: string
              description: Filter by enterprise
              pattern: ^[0-9a-f]{32}$
              example: 59cd72485007a239fb00282ed480da1f
        - name: type
          description: Filter by wallet type.
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - backing
                - cold
                - custodial
                - custodialPaired
                - hot
                - advanced
                - trading
              description: Filter by wallet type.
        - name: deleted
          description: Filter by deleted state.
          in: query
          schema:
            type: boolean
        - name: labelContains
          description: Filter by label substring
          in: query
          schema:
            type: string
        - name: bitgoOrg
          description: Return only wallets belong to the BitGo trust org
          in: query
          schema:
            type: string
            enum:
              - BitGo Trust
              - BitGo New York
              - BitGo Germany
              - BitGo Switzerland
              - BitGo Europe ApS
              - Frankfurt DE Trust
              - BitGo Singapore
              - BitGo Korea
              - BitGo Custody MENA FZE
              - BitGo India
              - BitGo Sister Trust 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletCountResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/walletsharerequests:
    get:
      summary: List wallet share requests
      description: >-
        Lists all wallet share requests:

        - List of the wallets and the users for which wallet share request is
        present.
      operationId: v2.walletsharerequest.list
      tags:
        - Wallet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWalletShareRequestResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/walletshares/count:
    get:
      summary: List counts of wallet shares
      description: >-
        List counts of wallet shares by enterprises that the current user is the
        receiver
      operationId: v2.walletshares.count.list
      tags:
        - Wallet share
      parameters:
        - name: state
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/WalletShareState'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWalletSharesCountByEnterpriseResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/webhook/{webhookId}/verify:
    post:
      summary: Verify Webhook Notification
      description: >-
        Verify that a webhook notification comes from BitGo based on webhook
        signature and payload.

        If the X-Signature-SHA256 header is absent from the notification, use
        the [Create webhook secret](/reference/v2webhooksecretcreate#/) endpoint
        to generate a secret for your enterprise or organization.

        The requester must be an admin of the specified enterprise or
        organization.
      operationId: v2.webhook.notification.verify
      tags:
        - Webhook
      parameters:
        - name: webhookId
          description: Webhook public id
          in: path
          required: true
          schema:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            minLength: 1
            pattern: ^[0-9a-f]{32}$
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                signature:
                  type: string
                  description: >-
                    Webhook notification signature calculated based on the
                    payload and webhook secret.

                    Found in the HTTP header X-Signature-SHA256 of the
                    notification.
                  example: >-
                    f34538037a1ae6f79bd7cee9d9a5552f21bee3027983d7730f424d94d9bab04a
                  pattern: ^[0-9a-f]{64}$
                notificationPayload:
                  type: string
                  description: Webhook notification payload as JSON string
                  example: >-
                    {"userId":"66cd72485007a239fb00282ed480da1f","username":"username@email.com","tokenCreateTime":"2024-09-18T14:36:41.793Z","59cd72485007a239fb00282ed480da1f"}"
              required:
                - signature
                - notificationPayload
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyWebhookNotificationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
  /api/v2/webhook/secret:
    post:
      summary: Create webhook secret
      description: >-
        Create a webhook secret for a specified enterprise or organization.

        This secret will be used to generate webhook notification signatures so
        that you can verify that the notification comes from BitGo using the
        v2.webhook.notification.verify endpoint.

        The secret can be rotated by calling this endpoint again at a cadence of
        once every 5 minutes.

        You must specify exactly one of `enterpriseId` or `organizationId`.

        The requester must be an admin of the specified enterprise or
        organization.
      operationId: v2.webhook.secret.create
      tags:
        - Webhook
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enterpriseId:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
                organizationId:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWebhookSecretResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformError'
components:
  callbacks: {}
  examples:
    ActionsExample:
      summary: Touchpoint Actions
      description: A successful response with 3 Touchpoint Actions.
      value:
        actions:
          - name: approvals.always.deny
            label: Deny
            description: Automatically reject
            status: ACTIVE
            adminOnly: false
            parameters: []
          - name: approvals.customer.walletAdmin
            label: Wallet Admin
            description: Require approval from wallet admins
            status: ACTIVE
            adminOnly: false
            parameters:
              - name: minRequired
                label: Approvals Required
                description: Minimum required number of approvers
                type: NON_NEGATIVE_NUMBER
                required: OPTIONAL
                allowMultiple: false
                values: []
          - name: approvals.customer.finalApproval
            label: Require final approval from wallet users
            description: Require final approval from wallet users
            status: ACTIVE
            adminOnly: false
            parameters:
              - name: userIds
                label: Users
                description: List of users for final approval
                type: BITGO_ID
                required: ONE_OR_MORE
                allowMultiple: true
                values: []
    AdaStakingRequestPOSTBodyExample:
      summary: Ada Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    AdaStakingRequestWithoutDelegationsExample:
      summary: Ada Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: addr1q9w2c6x5f2u0g3f9r5h7v8x0k3m9p5j4q2d0l6v7e8y9t
        rewardAddress: addr1q9w2c6x5f2u0g3f9r5h7v8x0k3m9p5j4q2d0l6v7e8y9t
        dRepId: drep1abc123xyz456
        walletType: custodial
        type: STAKE
        coin: ada
        isVoteDelegationRequest: false
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    AdaUnStakingRequestPOSTBodyExample:
      summary: Ada UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    AdaUnStakingRequestWithoutDelegationsExample:
      summary: Ada UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: addr1q9w2c6x5f2u0g3f9r5h7v8x0k3m9p5j4q2d0l6v7e8y9t
        rewardAddress: addr1q9w2c6x5f2u0g3f9r5h7v8x0k3m9p5j4q2d0l6v7e8y9t
        dRepId: drep1abc123xyz456
        walletType: custodial
        type: UNSTAKE
        coin: ada
        isVoteDelegationRequest: false
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    AdaWalletStakingStateAttributesExamples:
      summary: ADA Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >-
                In order to get ADA rewards, users must stake and be approved
                which takes about 20 days. Afterwards, users must wait til the
                next epoch which is about 5 days to claim your rewards.
                Afterwards, staked rewards can be claimed after each epoch.
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: 15-20 Days
            rewardPercentageRate: '3.00'
            rewardsCompounding: true
            period:
              periodLow: '432000'
              periodHigh: '432000'
              coin: tada
              type: WARMUP
            minStake: '2000000'
          unstaking:
            info:
              - >-
                ADA staked balance is liquid. You can withdraw any time without
                unstaking.
            transactionsNeeded: 0
            unStakeCooldownPeriodDesc: ''
          claimRewards:
            info:
              - >-
                Rewards are accrued after each epoch and can be claimed once
                accrued.
            transactionsNeeded: 1
          nextRewards:
            rewardCycle: 86400
        permission:
          staking:
            enabled: false
            disabledReason: >-
              Wallet is already staking. Delegated: 5118.53216 tada.Pending
              delegation: 0 tada
            allowClientToUseOwnValidator: true
            allowClientToUseOwnDRep: true
            allowVoteDelegation: true
            requireVoteDelegation: false
          unstaking:
            enabled: false
            disabledReason: >-
              ADA staked balance is liquid. You can withdraw any time without
              unstaking.
          claimRewards:
            enabled: false
            disabledReason: Wallet does not have any available rewards to be claimed
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
            useValidatorList: false
            skipAddressValidation: false
            allowPartialUnstake: true
            validatorNotNeededForStake: false
        spendable:
          staking:
            fee: '200000'
            max: '0'
            min: '0'
            multiplier: '1'
            netMax: '0'
            netMin: '0'
            isStakingDurationNeeded: false
            minStakeMore: '0'
            fields:
              - name: dRepId
                label: DRep ID
                required: false
                type: dRepId
                coin: tada
                useValidatorList: false
                readonly: false
            isDelegated: false
          unstaking:
            fee: '200000'
            max: '5118532160'
            min: '0'
            multiplier: '1'
            multipleDelegations: false
            requiresAmount: true
            requiresDelegationId: false
            requiresDelegationIds: false
          claimRewards:
            fee: '200000'
            max: '0'
            min: '0'
            multiplier: '1'
            requiresDelegationId: false
    AptStakingRequestPOSTBodyExample:
      summary: Apt Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1100000000'
        type: STAKE
        validator: '0xa4e5e77b47a2a9731f24a717b23ad65f7c6c446e05a02413df096a4240533e7b'
    AptUnStakingRequestPOSTBodyExample:
      summary: Apt UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1100000000'
        type: UNSTAKE
        delegationId: 123e4567-e89b-12d3-a456-426614174000
    AsiStakingRequestPOSTBodyExample:
      summary: Asi Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    AsiStakingRequestWithoutDelegationsExample:
      summary: Asi Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: asi
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    AsiUnStakingRequestPOSTBodyExample:
      summary: Asi UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    AsiUnStakingRequestWithoutDelegationsExample:
      summary: Asi UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: asi
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    AtomClaimRewardsRequestPOSTBodyExample:
      summary: Example ATOM Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174000
        type: CLAIM_REWARDS
        delegationId: atom-delegation-1
    AtomStakingRequestPOSTBodyExample:
      summary: Atom Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    AtomStakingRequestWithoutDelegationsExample:
      summary: Atom Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: atom
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    AtomSwitchValidatorRequestPOSTBodyExample:
      summary: Example ATOM Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174100
        type: SWITCH_VALIDATOR
        delegationId: atom-delegation-1
        validator: cosmosvaloper1abcxyz
    AtomUnStakingRequestPOSTBodyExample:
      summary: Atom UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    AtomUnStakingRequestWithoutDelegationsExample:
      summary: Atom UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: atom
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    AvaxCStakingRequestPOSTBodyExample:
      summary: AvaxC Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '100000000'
        type: STAKE
        subType: STAVAX_STAKE
    AvaxCStakingRequestWithoutDelegationsExample:
      summary: AVAXC Staking Request Example
      value:
        id: f1234567-89ab-4cde-9012-3456789abcde
        clientId: a1b2c3d4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: C-avax1q8k8ehv0yx3lkn2f0j0y5rjkx6s0tk4lptv8xv
        coin: avaxc
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '1000000000'
        subType: STAVAX_STAKE
    AvaxCUnStakingRequestPOSTBodyExample:
      summary: AVAXC UnStaking Request POST Body Example
      value:
        clientId: c155adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: a0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '500000000'
    AvaxCUnStakingRequestWithoutDelegationsExample:
      summary: AVAXC UnStaking Request Example
      value:
        id: e1234567-89ab-4cde-9012-3456789abcde
        clientId: g1h2i3j4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: C-avax1r9y8ehv0yx3lkn2f0j0y5rjkx6s0tk4lpavx9
        walletType: custodial
        type: UNSTAKE
        coin: avaxc
        createdDate: '2025-09-08T14:32:28.000Z'
        statusModifiedDate: '2025-09-08T14:32:28.000Z'
        status: NEW
        amount: '2000000000'
    AvaxPDelegationResultsExample:
      summary: AvaxP Delegation Results Example
      value:
        delegations:
          - id: 2e550a3c-27cb-43b4-8133-5750558d91ba
            delegationAddress: NodeID-Gof5KiqjhevjgjRLDttdv3anJaf5FNE6v
            withdrawalAddress: P-fuji1vwdl7xr6kz794kewvjhj34n3gy5737uwacucur
            provider: BYOV
            providerType: ''
            delegated: '0'
            coin: tavaxp
            walletId: 6397a6c908ffea000728623654de5e92
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '1000000000'
            reserved: '0'
            pendingReserved: '0'
            apy: '8.5000'
            durationSeconds: '86400'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: Delegation is not active.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: Delegation is not active.
          - id: c59aa5c5-7ff1-4d13-80c4-dd17fdb77892
            delegationAddress: NodeID-B6x4xVRXKHdU24pV7RZgLujb75aGCq7WF
            withdrawalAddress: P-fuji1vwdl7xr6kz794kewvjhj34n3gy5737uwacucur
            provider: Figment
            providerType: FIGMENT
            delegated: '0'
            coin: tavaxp
            walletId: 6397a6c908ffea000728623654de5e92
            status: REJECTED
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '8.5000'
            durationSeconds: '1728000'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: Delegation is not active.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: Delegation is not active.
          - id: 0249e45f-7f8f-415b-a86a-ef8f8bea3160
            delegationAddress: NodeID-LnNiEzk1mYHFrwY7v4nteBt59VZFZzJX9
            withdrawalAddress: P-fuji1vwdl7xr6kz794kewvjhj34n3gy5737uwacucur
            provider: Figment
            providerType: FIGMENT
            delegated: '5000000000'
            coin: tavaxp
            walletId: 6397a6c908ffea000728623654de5e92
            status: ACTIVE
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '8.5000'
            durationSeconds: '172800'
            startTime: '1702443204'
            endTime: '1702616004'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: User does not have permission to stake.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: AVAXP is auto-unstaked
        page: 1
        totalPages: 1
        totalElements: 3
    AvaxPStakingRequestPOSTBodyExample:
      summary: AvaxP Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000'
        type: STAKE
        durationSeconds: 604800
    AvaxPStakingRequestWithTransactionsExample:
      summary: AvaxP UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        durationSeconds: 604800
        walletType: custodial
        type: STAKE
        coin: avaxp
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: READY
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            delegated: '10012000000'
            status: ACTIVE
            rewards: '12000000'
            lockedRewards: '0'
            pendingUnstake: '10012000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: READY
            amount: '1012'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
          - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: WAITING
            amount: '10012000000'
            transactionType: withdraw_undelegated
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10012000000'
    AvaxPStakingRequestWithoutDelegationsExample:
      summary: AvaxP Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        durationSeconds: 604800
        walletType: hot
        type: STAKE
        coin: avaxp
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    AvaxPWalletStakingStateAttributesExamples:
      summary: AvaxP Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >-
                Minimum staking period is 14 days. Maximum staking period is 1
                year (365 days). Minimum to stake is 2000 AVAX. Maximum to stake
                is 3M AVAX.
            transactionsNeeded: 1
            rewardPercentageRate: '2'
            rewardsCompounding: false
          unstaking:
            info:
              - >-
                Once staked you CANNOT unstake. It will auto-unstake at the end
                of your staking period.
            transactionsNeeded: 0
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: true
          unstaking:
            enabled: false
            disabledReason: AVAXP is auto-unstaked
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
        spendable:
          staking:
            fee: '0'
            max: '13995243325'
            min: '1000000000'
            netMax: '13995243325'
            netMin: '1000000000'
            isStakingDurationNeeded: true
            minStakeMore: '0'
            minDuration: '86400'
            maxDuration: '31536000'
          unstaking:
            fee: '0'
            max: '0'
            min: '0'
            multipleDelegations: false
    BabyStakingRequestPOSTBodyExample:
      summary: Baby Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    BabyStakingRequestWithoutDelegationsExample:
      summary: Baby Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: baby
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    BabyUnStakingRequestPOSTBodyExample:
      summary: Baby UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    BabyUnStakingRequestWithoutDelegationsExample:
      summary: Baby UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: baby
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    BeraStakingRequestPOSTBodyExample:
      summary: BERA Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000000'
        type: STAKE
        subType: INFRARED_LIQUID_STAKE
        gasPrice: '1000000000000000'
    BeraStakingRequestWithoutDelegationsExample:
      summary: BERA Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: a1b2c3d4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: bera1q2w3e4r5t6y7u8i9o0pqlkmn3j4h5g6f7d8s9
        coin: bera
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '1000000000'
        gasPrice: '1000000'
        subType: NATIVE_STAKE
        operator: beraoper1q2w3e4r5t6y7u8i9o0pqlkmn3j4h5g6f7d8s9
    BeraUnStakingRequestPOSTBodyExample:
      summary: BERA UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '1000000000000000000'
    BeraUnStakingRequestWithoutDelegationsExample:
      summary: BERA UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: a1b2c3d4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: bera1q2w3e4r5t6y7u8i9o0pqlkmn3j4h5g6f7d8s9
        coin: bera
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '500000000'
        gasPrice: '1000000'
        subType: NATIVE_STAKE
        operator: beraoper1q2w3e4r5t6y7u8i9o0pqlkmn3j4h5g6f7d8s9
    BldClaimRewardsRequestPOSTBodyExample:
      summary: Example BLD Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174001
        type: CLAIM_REWARDS
        delegationId: bld-delegation-1
    BldStakingRequestPOSTBodyExample:
      summary: Bld Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    BldStakingRequestWithoutDelegationsExample:
      summary: Bld Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: bld
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    BldSwitchValidatorRequestPOSTBodyExample:
      summary: Example BLD Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174101
        type: SWITCH_VALIDATOR
        delegationId: bld-delegation-1
        validator: bldvaloper1abcxyz
    BldUnStakingRequestPOSTBodyExample:
      summary: Bld UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    BldUnStakingRequestWithoutDelegationsExample:
      summary: Bld UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: bld
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    BscStakingRequestPOSTBodyExample:
      summary: Bsc Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    BscStakingRequestWithoutDelegationsExample:
      summary: Bsc Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: bsc
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    BscUnStakingRequestPOSTBodyExample:
      summary: Bsc UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    BscUnStakingRequestWithoutDelegationsExample:
      summary: Bsc UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: bsc
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    BtcStakingRequestPOSTBodyExample:
      summary: BTC Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000'
        type: STAKE
        validator: '0x1234567890abcdef1234567890abcdef12345678'
        coredao:
          expireAt: '2025-01-01T00:00:00.000Z'
          rewardAddress: '0x1234567890abcdef1234567890abcdef12345678'
    BtcStakingRequestWithoutDelegationsExample:
      summary: BTC Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
        coin: btc
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '100000000'
    BtcUnStakingRequestPOSTBodyExample:
      summary: BTC UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    BtcUnStakingRequestWithoutDelegationsExample:
      summary: BTC UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
        coin: btc
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '50000000'
    CoredaoStakingRequestPOSTBodyExample:
      summary: Coredao Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    CoredaoStakingRequestWithoutDelegationsExample:
      summary: CoreDAO Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: coredao
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    CoredaoUnStakingRequestPOSTBodyExample:
      summary: Coredao UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    CoredaoUnStakingRequestWithoutDelegationsExample:
      summary: CoreDAO UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: coredao
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    CoreumClaimRewardsRequestPOSTBodyExample:
      summary: Example COREUM Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174002
        type: CLAIM_REWARDS
        delegationId: coreum-delegation-1
    CoreumStakingRequestPOSTBodyExample:
      summary: Coreum Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    CoreumStakingRequestWithoutDelegationsExample:
      summary: Coreum Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: coreum
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    CoreumSwitchValidatorRequestPOSTBodyExample:
      summary: Example COREUM Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174102
        type: SWITCH_VALIDATOR
        delegationId: coreum-delegation-1
        validator: coreumvaloper1abcxyz
    CoreumUnStakingRequestPOSTBodyExample:
      summary: Coreum UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    CoreumUnStakingRequestWithoutDelegationsExample:
      summary: Coreum UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: coreum
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    CreatePolicyRuleExample:
      summary: A create policy rule request
      value:
        name: Get approval if transferring more than 2 BTC in a minute
        adminOnly: false
        clauses:
          - conditions:
              - name: transfer.velocity.limit
                parameters:
                  amount: '2000000'
                  timeWindow: '60'
                  coin: btc
            actions:
              - name: approvals.customer.walletAdmin
                parameters: {}
        filteringConditions:
          - name: wallet.ids
            parameters:
              walletId:
                - 643f146bb13653000765c478a384a656
        lockType: LOCK_AFTER_DATE
        lockDate: '2023-11-13T14:49:48.830522Z'
    CronosClaimRewardsRequestPOSTBodyExample:
      summary: Example CRONOS Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174003
        type: CLAIM_REWARDS
        delegationId: cronos-delegation-1
    CronosStakingRequestPOSTBodyExample:
      summary: Cronos Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    CronosStakingRequestWithoutDelegationsExample:
      summary: Cronos Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: cronos
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    CronosSwitchValidatorRequestPOSTBodyExample:
      summary: Example CRONOS Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174103
        type: SWITCH_VALIDATOR
        delegationId: cronos-delegation-1
        validator: cronosvaloper1abcxyz
    CronosUnStakingRequestPOSTBodyExample:
      summary: Cronos UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    CronosUnStakingRequestWithoutDelegationsExample:
      summary: Cronos UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: cronos
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    CsprStakingRequestPOSTBodyExample:
      summary: Cspr Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    CsprStakingRequestWithoutDelegationsExample:
      summary: Cspr Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: cspr
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    CsprUnStakingRequestPOSTBodyExample:
      summary: Cspr UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    CsprUnStakingRequestWithoutDelegationsExample:
      summary: Cspr UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: cspr
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    DotDelegationResultsExample:
      summary: Dot Delegation Results Example
      value:
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '0'
            coin: dot
            walletId: 63110fc78b108e00071df2d3c3879dd0
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '1000'
            apy: '6.5100'
            unstakeable: false
        page: 1
        totalPages: 1
        totalElements: 1
    DotStakingRequestPOSTBodyExample:
      summary: Dot Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    DotStakingRequestWithTransactionsExample:
      summary: Dot Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: STAKE
        coin: dot
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            delegated: '10000000000'
            status: ACTIVE
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: CONFIRMED
            amount: '10000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
    DotStakingRequestWithoutDelegationsExample:
      summary: Dot Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: STAKE
        coin: dot
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    DotStakingRequestsListResponseExample:
      summary: Dot Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            walletType: custodial
            type: STAKE
            coin: dot
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
                delegated: '10000000000'
                status: ACTIVE
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '0'
                pendingStaking: '0'
                apy: '8.3'
                unstakingFee: '1000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: CONFIRMED
                amount: '10000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '10000000000'
    DotUnStakingRequestPOSTBodyExample:
      summary: Dot UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    DotUnStakingRequestWithTransactionsExample:
      summary: Dot UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: UNSTAKE
        coin: dot
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            delegated: '10012000000'
            status: ACTIVE
            rewards: '12000000'
            lockedRewards: '0'
            pendingUnstake: '10012000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: READY
            amount: '1012'
            transactionType: undelegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
          - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: WAITING
            amount: '10012000000'
            transactionType: withdraw_undelegated
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10012000000'
    DotUnStakingRequestWithoutDelegationsExample:
      summary: Dot UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: UNSTAKE
        coin: dot
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    DotUnStakingRequestsListResponseExample:
      summary: Dot UnStaking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            walletType: custodial
            type: UNSTAKE
            coin: dot
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
                delegated: '10012000000'
                status: ACTIVE
                rewards: '12000000'
                lockedRewards: '0'
                pendingUnstake: '10012000000'
                pendingStake: '0'
                apy: '8.3'
                unstakingFee: '1000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: READY
                amount: '1012'
                transactionType: undelegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
              - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: WAITING
                amount: '10012000000'
                transactionType: withdraw_undelegated
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '10012000000'
    DotWalletStakingStateAttributesExamples:
      summary: Dot Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - 'Minimum staking period is: 1 day.'
              - Once staked, the unstaking takes 28 eras (about 28 days).
              - >-
                Unstaking requires approving 2 transactions: the transaction to
                unstake and the transaction to claim your staking balance plus
                rewards.
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: '172800'
            rewardPercentageRate: '13.80'
            rewardsCompounding: true
            minStake: '2162300000000'
          unstaking:
            info:
              - >-
                Unstaking broadcasts 2 transactions: the transaction to unbond
                and the transaction to claim your staking amount. The network
                has to confirm the unbonding transaction then the claim
                transaction will be automatically created.
            transactionsNeeded: 2
            unStakeCooldownPeriodDesc: 28 days
            period:
              periodLow: '2419200'
              periodHigh: '2419200'
              coin: tdot
              type: COOLDOWN
          nextRewards:
            rewardCycle: 86400
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: true
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 0
            useValidatorList: false
            skipAddressValidation: false
            allowPartialUnstake: true
            validatorNotNeededForStake: false
        spendable:
          staking:
            fee: '100000000000'
            max: '18947032731951'
            min: '2162300000000'
            multiplier: '1'
            netMax: '17744982731951'
            netMin: '3364350000000'
            isStakingDurationNeeded: false
            minStakeMore: '0'
            breakdown:
              balance: '18973523480463'
              stakingFee: '-100000000000'
              unstakingFee: '-100000000000'
              proxyCost: '-1002050000000'
              maxSpendable: '17744982731951'
              minSpendable: '3364350000000'
            isDelegated: false
          unstaking:
            fee: '100000000000'
            max: '0'
            min: '100000000000'
            multiplier: '1'
            multipleDelegations: false
            breakdown:
              balance: '18973523480463'
              unstakingFee: '-100000000000'
              maxSpendable: '18873523480463'
              unstakeable:
                stakedBalance: '0'
                pendingUnstake: '0'
                maxUnstakeable: '0'
            requiresAmount: true
            requiresDelegationId: false
            requiresDelegationIds: false
    EigenStakingRequestPOSTBodyExample:
      summary: Eigen Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    EigenStakingRequestWithoutDelegationsExample:
      summary: Eigen Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: eigen
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    EigenUnStakingRequestPOSTBodyExample:
      summary: Eigen UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    EigenUnStakingRequestWithoutDelegationsExample:
      summary: Eigen UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: eigen
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    EnterpriseStakeableCoinsResultExample:
      summary: Enterprise Stakeable Coins Result Example
      value:
        - symbol: tsol
          baseUnit: lamport
          isToken: false
          isTss: true
          isMultiSig: false
          comingSoon: false
          jurisdictions: []
          disclaimer:
            staking:
              info:
                - >-
                  Staking has 1 transaction but takes on average 1 epoch (~36
                  hours) to activate the stake account and start earning rewards
              transactionsNeeded: 1
              stakeWarmupPeriodDesc: 3 to 6 days
              rewardPercentageRate: '6.50153'
              rewardsCompounding: false
              period:
                periodLow: '172800'
                periodHigh: '172800'
                coin: TSOL
                type: WARMUP
              minStake: '1000'
              stakingSubTypes:
                - type: MARINADE
                  name: Marinade Staking
                  info:
                    - Stake your SOL with Marinade Finance.
                    - >-
                      Your staking position will be automatically managed and
                      delegated to the best-performing validators while you
                      retain full custody of your assets.
                  transactionsNeeded: 1
                  rewardsCompounding: false
                  minStake: '1100000000'
                  defaultApy: '8.83'
                - type: MARINADE_SELECT
                  name: Marinade Select Staking
                  info:
                    - Stake your SOL with Marinade Select.
                    - >-
                      Your staking position will be automatically managed and
                      delegated through a curated set of validators with
                      verified identity and zero tolerance for malicious MEV by
                      Marinade.
                    - >-
                      Marinade does not take custody of the keys to withdraw
                      unstaked SOL.
                  transactionsNeeded: 1
                  rewardsCompounding: false
                  minStake: '1100000000'
                  defaultApy: '8.18'
                - type: JITO
                  name: JITO Staking
                  info:
                    - Stake your SOL with JitoSOL.
                  transactionsNeeded: 1
                  rewardsCompounding: false
                  minStake: '0'
                  defaultApy: '7.27'
            unstaking:
              info:
                - >-
                  Unstaking broadcasts 2 transactions: the transaction to
                  unstake and the transaction to claim your reward. The network
                  has to confirm the unstaking transaction then the claim
                  transaction will be automatically created.
              transactionsNeeded: 2
              unStakeCooldownPeriodDesc: 3 to 6 days
              period:
                periodLow: '172800'
                periodHigh: '172800'
                coin: TSOL
                type: COOLDOWN
            nextRewards:
              rewardCycle: 172800
        - symbol: tsui
          baseUnit: mist
          isToken: false
          isTss: true
          isMultiSig: false
          comingSoon: false
          disclaimer:
            staking:
              info:
                - >-
                  Pending requests can take up to 24 hours to process. Please
                  await the next epoch.
              transactionsNeeded: 1
              stakeWarmupPeriodDesc: 1 epoch (1 day)
              rewardPercentageRate: '2.10'
              rewardsCompounding: true
              period:
                periodLow: '86400'
                periodHigh: '86400'
                coin: TSUI
                type: WARMUP
              minStake: '1000000000'
            unstaking:
              info:
                - >-
                  Unstaking requires 1 transaction to unstake. Rewards are
                  claimed when user unstakes only. The unbonding period is 1
                  epoch (~1 day).
              transactionsNeeded: 1
              unStakeCooldownPeriodDesc: 1 epoch (1 day)
              period:
                periodLow: '86400'
                periodHigh: '86400'
                coin: TSUI
                type: COOLDOWN
            nextRewards:
              rewardCycle: 86400
    EthDelegationResultsExample:
      summary: Ethereum Delegation Results Example
      value:
        page: 1
        totalPages: 1
        totalElements: 3
        delegations:
          - id: 911517c3-7f6b-4a35-abbf-a0e59a0fb8ca
            delegationAddress: >-
              0xa1675ba9254ec5d495b163aca0a8b88d6ee553eefe1f0fbc06ff3626f1d16ddcee506419f1a278353042aa97884cf575
            provider: Figment
            providerType: FIGMENT
            withdrawalAddress: '0x3fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2'
            delegated: '0'
            coin: hteth
            walletId: 689a4b770d175ec5b42b4a49974c0668
            properties:
              withdrawalCredentials: >-
                0x0200000000000000000000003fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2
              signature: >-
                0xb459188d5e1744d2ce1eda650a1203d031738e8fcbf04c8c3862ecbaad64042e...
              depositDataRoot: >-
                0xa523b0c4a59692bbeb82e815b3bf2ac34b0c1ed8a2c2ea248e6a302af5eab33d
              depositMessageRoot: >-
                0x373cb0bebd641fc75ba5843879a789436de0e81b45bb95d7461bdbe7cccf0dd8
              depositCliVersion: 2.8.0
              forkVersion: '0x10000910'
              eth2NetworkName: hoodi
              effectiveBalance: '0'
              seenInPartialWithdrawalQueue: false
              seenInPendingDepositQueue: false
              stakingType: ETH_STAKE_PECTRA
              provisionAmount: '32000000000'
              properties:
                amount: 32000000000
                region: ca-central-1
                figmentId: 2bfa1132-3c5a-4c67-8422-a4d309e1cdc3
                statusSyncedAt: '2025-09-11T19:06:10.000Z'
                figmentRequestId: e88497eb-f74d-4ff2-83cb-cf2a3231e430
              type: ETH
              amount: 32000000000
              region: ca-central-1
              figmentId: 2bfa1132-3c5a-4c67-8422-a4d309e1cdc3
              statusSyncedAt: '2025-09-11T19:06:10.000Z'
              figmentRequestId: e88497eb-f74d-4ff2-83cb-cf2a3231e430
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '32000000000000000000'
            reserved: '0'
            pendingReserved: '0'
            apy: '4.38'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: Delegation is not active.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: Delegation is not active.
          - id: 35e168f5-83f8-4ca6-ba7e-81f20b411dfc
            delegationAddress: >-
              0x93688c58fc284c242791a9893d6c505ad9b96580dae993b8b17cadd36fd707756f69a6f03485871ce0d5f91b111ae265
            provider: Figment
            providerType: FIGMENT
            withdrawalAddress: '0x3fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2'
            delegated: '0'
            coin: hteth
            walletId: 689a4b770d175ec5b42b4a49974c0668
            properties:
              withdrawalCredentials: >-
                0x0200000000000000000000003fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2
              signature: >-
                0xa163a8b9bb26e1242d344a72fad75a374845a0d7eb76c25c7a4e5f02a411c2dd...
              depositDataRoot: >-
                0x1b5c14d2e69430aa089aad3d1105809ecdbbaf9fc23a5591c2686fdaf1394d4d
              depositMessageRoot: >-
                0xa380441d0339f82cc19efd8de28350bb4e74136b44992b019b63fedddf59f937
              depositCliVersion: 2.8.0
              forkVersion: '0x10000910'
              eth2NetworkName: hoodi
              index: '1212130'
              activationEligibilityEpoch: '36265'
              activationEpoch: '36271'
              exitEpoch: '36977'
              withdrawableEpoch: '37233'
              modifiedSlot: '1197952'
              lastRewardEpochProcessed: '37435'
              lastRewardEpochQueried: '37435'
              effectiveBalance: '0'
              seenInPartialWithdrawalQueue: false
              seenInPendingDepositQueue: false
              stakingType: ETH_STAKE_PECTRA
              provisionAmount: '32000000000'
              properties:
                amount: 32000000000
                region: ca-central-1
                figmentId: f3730efb-5281-46fc-9081-ff2ed9879ea8
                statusSyncedAt: '2025-08-25T16:02:15.000Z'
                figmentRequestId: 5eff1a25-aa0e-44f5-b5d1-75f26e435250
              type: ETH
              amount: 32000000000
              region: ca-central-1
              figmentId: f3730efb-5281-46fc-9081-ff2ed9879ea8
              statusSyncedAt: '2025-08-25T16:02:15.000Z'
              figmentRequestId: 5eff1a25-aa0e-44f5-b5d1-75f26e435250
            status: COMPLETE
            rewards: '5494091000000000'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '4.38'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: Delegation is not active.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: Delegation is not active.
          - id: 30045922-768f-4de5-bae8-b7e5553bfa2f
            delegationAddress: >-
              0xa874e8e2593126551f272f0774788fda88d596b587ccdd0cba200e2d8360a73dd944082984db83494cdd3b64053aea5e
            provider: Figment
            providerType: FIGMENT
            withdrawalAddress: '0x3fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2'
            delegated: '33061188715000000000'
            coin: hteth
            walletId: 689a4b770d175ec5b42b4a49974c0668
            properties:
              withdrawalCredentials: >-
                0x0200000000000000000000003fcd2c8c0ce0ec81ebf1a61dccd6915a7141b2e2
              signature: >-
                0x8b5c5db0e477399e982552cbc052cc868a7cbdf86c9b19f4a4ed4ea327409651...
              depositDataRoot: >-
                0xae8b185a9e4d9c701ff261f2a5053bd4065b18e7b18b3cc2cc5e1d80fd9a894b
              depositMessageRoot: >-
                0x5c933c6a295cd315209c19dd98cbf0b39bdb86b30edb02db85b02c9774e0e4a1
              depositCliVersion: 2.8.0
              forkVersion: '0x10000910'
              eth2NetworkName: hoodi
              index: '1212129'
              activationEligibilityEpoch: '36265'
              activationEpoch: '36271'
              bondingTimestamp: '1756141464'
              modifiedSlot: '1414016'
              lastRewardEpochProcessed: '44000'
              lastRewardEpochQueried: '44000'
              effectiveBalance: '32000000000000000000'
              seenInPartialWithdrawalQueue: false
              seenInPendingDepositQueue: false
              stakingType: ETH_STAKE_PECTRA
              provisionAmount: '32000000000'
              properties:
                amount: 32000000000
                region: ca-central-1
                figmentId: 2a29eeb9-3111-48ea-b360-0c79d89c7419
                statusSyncedAt: '2025-08-25T16:00:26.000Z'
                figmentRequestId: 0e92d6d8-370d-4f27-930a-276c09208714
              type: ETH
              amount: 32000000000
              region: ca-central-1
              figmentId: 2a29eeb9-3111-48ea-b360-0c79d89c7419
              statusSyncedAt: '2025-08-25T16:00:26.000Z'
              figmentRequestId: 0e92d6d8-370d-4f27-930a-276c09208714
            status: ACTIVE
            rewards: '59711492000000000'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '4.38'
            unstakeable: true
            permissionAttributes:
              staking:
                enabled: true
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: true
    EthPectraStakingRequestWithTransactionsExample:
      summary: Ethereum Pectra Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        walletType: custodial
        type: STAKE
        coin: eth
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '3200000000000000000'
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '3200000000000000000'
            pendingStake: '0'
            apy: '8.3'
            coin: eth
            walletId: 2032e75g451052000636831abd797bd3
            unstakingFee: '100000000000000'
            unstakingMin: '0'
          - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
            delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '3200000000000000000'
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '3200000000000000000'
            pendingStake: '0'
            apy: '8.3'
            coin: eth
            walletId: 2032e75g451052000636831abd797bd3
            unstakingFee: '1000000000000000'
            unstakingMin: '0'
        transactions:
          - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: PENDING
            amount: '6400000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            buildParams:
              recipients:
                amount: '6400000000000000000'
                address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                data: fds0934rnnio390nw
              stakingParams:
                requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                amount: '6400000000000000000'
                validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                actionType: delegate
              gasPrice: '1000000000000000'
              gasLimit: '3000000000000000'
              properties:
                delegationRequest:
                  - validator: validator1
                    amount: '3200000000000000000'
                  - validator: validator2
                    amount: '3200000000000000000'
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: PENDING
            amount: '3200000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
            buildParams:
              recipients:
                amount: '3200000000000000000'
                address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                data: fds0934rnnio390nw
              stakingParams:
                requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                amount: '3200000000000000000'
                validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                actionType: delegate
              gasPrice: '1000000000000000'
              gasLimit: '3000000000000000'
        amount: '6400000000000000000'
        gasPrice: '1000000000000000'
    EthStakingEnterpriseExample:
      summary: ETH Enterprise Staking Example
      value:
        enterpriseId: 60c7f599fdbda8000657d147f5c08f6e
        coin: hteth
        delegated: '64001153236000000000'
        rewards: '100747413000000000'
        apy: '4.38'
        baseUnit: wei
        isToken: false
        isTss: false
        isMultiSig: true
        comingSoon: false
        disclaimer:
          staking:
            info:
              - >-
                Each 32 ETH requires its own validator. Once staking
                transactions are confirmed, there is a dynamic activation period
                before your validator begins to earn rewards.
              - >-
                Currently the activation queue is: 3 days, 12 hours. Rewards
                will periodically be auto-claimed back to your wallet.
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: >-
              There is a dynamic activation period of 3 days, 12 hours before
              you begin earning ETH staking rewards.
            rewardPercentageRate: '2.89839'
            rewardsCompounding: false
            period:
              periodLow: '302400'
              periodHigh: '302400'
              coin: hteth
              type: WARMUP
            minStake: '32000000000000000000'
          unstaking:
            info:
              - >-
                To unstake, select the Unstake button and select your
                validator(s). Once unstaked, validators will enter an exit queue
                in order to withdraw back to your staking wallet.
              - >-
                There is no partial unstaking; once you have unstaked, the
                entire staked amount for your selected validator will unstake
                and exit
              - >-
                Currently the exit queue is between 36 days, 17 hours and 45
                days, 15 hours
            transactionsNeeded: 1
            unStakeCooldownPeriodDesc: >-
              There is a dynamic exit period between between 36 days, 17 hours
              and 45 days, 15 hours before your total unstaked ETH becomes
              available.
            period:
              periodLow: '3171600'
              periodHigh: '3942000'
              coin: hteth
              type: COOLDOWN
          nextRewards:
            rewardCycle: 360
        walletCount: 1
    EthStakingRequestPOSTBodyExample:
      summary: Ethereum Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '64000000000000000000'
        gasPrice: '1000000000000000'
        type: STAKE
    EthStakingRequestWithTransactionsExample:
      summary: Ethereum Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        walletType: custodial
        type: STAKE
        coin: eth
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '3200000000000000000'
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '3200000000000000000'
            pendingStake: '0'
            apy: '8.3'
            coin: eth
            walletId: 2032e75g451052000636831abd797bd3
            unstakingFee: '100000000000000'
            unstakingMin: '0'
          - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
            delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '3200000000000000000'
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '3200000000000000000'
            pendingStake: '0'
            apy: '8.3'
            coin: eth
            walletId: 2032e75g451052000636831abd797bd3
            unstakingFee: '1000000000000000'
            unstakingMin: '0'
        transactions:
          - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: PENDING
            amount: '3200000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            buildParams:
              recipients:
                amount: '3200000000000000000'
                address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                data: fds0934rnnio390nw
              stakingParams:
                requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                amount: '3200000000000000000'
                validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                actionType: delegate
              gasPrice: '1000000000000000'
              gasLimit: '3000000000000000'
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: PENDING
            amount: '3200000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
            buildParams:
              recipients:
                amount: '3200000000000000000'
                address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                data: fds0934rnnio390nw
              stakingParams:
                requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                amount: '3200000000000000000'
                validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                actionType: delegate
              gasPrice: '1000000000000000'
              gasLimit: '3000000000000000'
        amount: '6400000000000000000'
        gasPrice: '1000000000000000'
    EthStakingRequestWithoutDelegationsExample:
      summary: Ethereum Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        walletType: custodial
        type: STAKE
        coin: eth
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
        amount: '6400000000000000000'
        gasPrice: '1000000000000000'
    EthStakingRequestsListResponseExample:
      summary: Ethereum Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            walletType: custodial
            type: STAKE
            coin: eth
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '3200000000000000000'
                status: PENDING
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '3200000000000000000'
                pendingStake: '0'
                apy: 8.3
                coin: eth
                walletId: 2032e75g451052000636831abd797bd3
                unstakingFee: '100000000000000'
                unstakingMin: '0'
              - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
                delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '3200000000000000000'
                status: PENDING
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '3200000000000000000'
                pendingStake: '0'
                apy: '8.3'
                coin: eth
                walletId: 2032e75g451052000636831abd797bd3
                unstakingFee: '1000000000000000'
                unstakingMin: '0'
            transactions:
              - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: PENDING
                amount: '3200000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                buildParams:
                  recipients:
                    amount: '3200000000000000000'
                    address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                    data: fds0934rnnio390nw
                  stakingParams:
                    requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                    amount: '3200000000000000000'
                    validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                    actionType: delegate
                  gasPrice: '1000000000000000'
                  gasLimit: '3000000000000000'
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: PENDING
                amount: '3200000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
                buildParams:
                  recipients:
                    amount: '3200000000000000000'
                    address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                    data: fds0934rnnio390nw
                  stakingParams:
                    requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                    amount: '3200000000000000000'
                    validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                    actionType: delegate
                  gasPrice: '1000000000000000'
                  gasLimit: '3000000000000000'
            amount: '6400000000000000000'
            gasPrice: '1000000000000000'
    EthStakingResultsExample:
      summary: Ethereum Staking Request Results Example
      value:
        page: 1
        totalPages: 1
        totalElements: 1
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            walletLabel: My ETH Staking Wallet
            walletType: custodial
            type: STAKE
            coin: eth
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '3200000000000000000'
                status: PENDING
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '3200000000000000000'
                pendingStake: '0'
                apy: '8.3'
                coin: eth
                walletId: 2032e75g451052000636831abd797bd3
                unstakingFee: '100000000000000'
                unstakingMin: '0'
              - id: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
                delegationAddress: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '3200000000000000000'
                status: PENDING
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '3200000000000000000'
                pendingStake: '0'
                apy: '8.3'
                coin: eth
                walletId: 2032e75g451052000636831abd797bd3
                unstakingFee: '1000000000000000'
                unstakingMin: '0'
            transactions:
              - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: PENDING
                amount: '3200000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                buildParams:
                  recipients:
                    amount: '3200000000000000000'
                    address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                    data: fds0934rnnio390nw
                  stakingParams:
                    requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                    amount: '3200000000000000000'
                    validator: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                    actionType: delegate
                  gasPrice: '1000000000000000'
                  gasLimit: '3000000000000000'
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: PENDING
                amount: '3200000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-55b43-5tta-9a9d-726a05bca0ai
                buildParams:
                  recipients:
                    amount: '3200000000000000000'
                    address: '0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b'
                    data: fds0934rnnio390nw
                  stakingParams:
                    requestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                    amount: '3200000000000000000'
                    validator: 0x3b6406c9710f588ca733360bfa8033d0ef9ecre4
                    actionType: delegate
                  gasPrice: '1000000000000000'
                  gasLimit: '3000000000000000'
            amount: '6400000000000000000'
            gasPrice: '1000000000000000'
    EthUnStakingRequestPOSTBodyExamplePectra:
      summary: ETH UnStaking Request POST Body Example (Pectra)
      value:
        clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: c0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '32000000000000000000'
    EthUnStakingRequestPOSTBodyExamplePrePectraMultiple:
      summary: >-
        ETH UnStaking Request POST Body Example (Pre-Pectra, multiple
        delegations)
      value:
        clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationIds:
          - c0225adbc-66a3-4ccd-9a9d-726a05bca0cf
          - d1337adbc-77b4-5dde-9b1d-826a05bca1df
        type: UNSTAKE
    EthUnStakingRequestPOSTBodyExamplePrePectraSingle:
      summary: ETH UnStaking Request POST Body Example (Pre-Pectra, single delegation)
      value:
        clientId: e355adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: c0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    EthUnStakingRequestWithoutDelegationsExample:
      summary: ETH UnStaking Request Example
      value:
        id: g1234567-89ab-4cde-9012-3456789abcde
        clientId: i1j2k3l4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
        walletType: custodial
        type: UNSTAKE
        coin: eth
        createdDate: '2025-09-08T14:32:28.000Z'
        statusModifiedDate: '2025-09-08T14:32:28.000Z'
        status: NEW
        amount: '32000000000000000000'
    FilteringConditionsExample:
      summary: Filtering Conditions
      description: A successful response with two Filtering Conditions.
      value:
        conditions:
          - name: wallet.type
            label: Wallet Type
            description: Allows creating a condition based on the Wallet Type
            status: ACTIVE
            parameters:
              - name: walletType
                label: Type
                description: The Wallet Type
                type: ENUMERATED
                required: ALWAYS
                allowMultiple: true
                values:
                  - value: custodial
                    label: Custodial Wallet
                    description: A custodial wallet
                  - value: hot
                    label: Hot Wallet
                    description: A hot wallet
                  - value: cold
                    label: Cold Wallet
                    description: A cold wallet
                  - value: trading
                    label: Trading Wallet
                    description: A trading wallet
                  - value: custodialPaired
                    label: Hot Wallet paired with a Custodial Wallet
                    description: A hot wallet that is paired with a custodial wallet
                  - value: backing
                    label: Backing Wallet
                    description: A backing wallet
          - name: wallet.ids
            label: Wallet Ids
            description: Allows creating a condition based on the Wallet Id
            status: ACTIVE
            parameters:
              - name: walletId
                label: Wallet Id
                description: The Wallet Ids
                type: BITGO_WALLET_ID
                required: ALWAYS
                allowMultiple: false
                values: []
    FinalizeGoStakingRequestExample:
      summary: Example request for finalizing an unstake
      value:
        type: UNSTAKE
        amount: 3000000
    FinalizeStakeGoStakingRequestExample:
      summary: Example request for finalizing a stake
      value:
        type: STAKE
        amount: 3000000
        frontTransferSendRequest:
          halfSigned:
            coin: ofctsol
            recipients:
              - address: BpkMFStkryPDkVYqTbEGLqWD3FLoPLCwTV4sdN1XKBPF
                amount: '3000000'
            fromAccount: 62182dc6685f820007002502234b4dfc
            nonce: 2d876188-d8e7-4a32-924b-3b8ab5d7aa99
            timestamp: '2025-08-12T18:43:36.210Z'
            feeString: '0'
            shortCircuitBlockchainTransfer: false
            isIntraJXTransfer: false
            payload: >-
              {"coin":"ofctsol","recipients":[{"address":"BpkMFStkryPDkVYqTbEGLqWD3FLoPLCwTV4sdN1XKBPF","amount":"3000000"}],"fromAccount":"62182dc6685f820007002502234b4dfc","nonce":"2d876188-d8e7-4a32-924b-3b8ab5d7aa99","timestamp":"2025-08-12T18:43:36.210Z","feeString":"0","shortCircuitBlockchainTransfer":false,"isIntraJXTransfer":false}
            signature: >-
              20d491740f989049aa42f819f6f24d6d4063f168c304e61c1a7b837d532c95faac244cbb30a70f0a3b745053adb9d6f8e6db472ece4dbf39de08659180fe6eb4b3
    FlrPStakingRequestPOSTBodyExample:
      summary: FLRP Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '50000000000000'
        type: STAKE
        validator: NodeID-9bAbQj1s9qEuC4QyF4u7ZqPzKLvr7dVW7
        duration: 30
    FlrPStakingRequestWithoutDelegationsExample:
      summary: FLRP Staking Request Example
      value:
        id: f1234567-89ab-4cde-9012-3456789abcde
        clientId: h1i2j3k4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: P-flare1q8k8ehv0yx3lkn2f0j0y5rjkx6s0tk4lp12345
        coin: flrp
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '50000000000000'
        validator: NodeID-9bAbQj1s9qEuC4QyF4u7ZqPzKLvr7dVW7
        duration: 30
        rewardAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
    HashStakingRequestPOSTBodyExample:
      summary: Hash Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    HashStakingRequestWithoutDelegationsExample:
      summary: Hash Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: hash
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    HashUnStakingRequestPOSTBodyExample:
      summary: Hash UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    HashUnStakingRequestWithoutDelegationsExample:
      summary: Hash UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: hash
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    InactivePolicyRuleExample:
      summary: An `INACTIVE` policy rule
      value:
        uniqueId: c5a818c7-1831-4fe2-8363-d469378bb106
        id: 4fa8326b-4f5f-4065-8cfc-85a08c290c49
        name: Get approval if transferring more than 2 BTC in a minute
        status: INACTIVE
        version: 1
        adminOnly: false
        touchpointLabel: Transfer from a Segregated Wallet
        scopeLabel: Wallet
        clauses:
          - actions:
              - name: approvals.customer.walletAdmin
                parameters: {}
            conditions:
              - name: transfer.velocity.limit
                parameters:
                  amount: '2000000'
                  timeWindow: '60'
                  coin: btc
        filteringConditions:
          - parameters:
              walletId:
                - 643f146bb13653000765c478a384a656
            name: wallet.ids
        locked: true
        lockType: LOCK_AFTER_DATE
        lockDate: '2023-11-13T14:49:48.830522Z'
        enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        lastTriggeredDate: '2023-11-13T14:49:48.830522Z'
        lastTriggeredEvaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
        createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
    InjectiveClaimRewardsRequestPOSTBodyExample:
      summary: Example INJ Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174004
        type: CLAIM_REWARDS
        delegationId: inj-delegation-1
    InjectiveStakingRequestPOSTBodyExample:
      summary: Injective Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    InjectiveStakingRequestWithoutDelegationsExample:
      summary: Injective Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: injective
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    InjectiveSwitchValidatorRequestPOSTBodyExample:
      summary: Example INJ Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174104
        type: SWITCH_VALIDATOR
        delegationId: inj-delegation-1
        validator: injvaloper1abcxyz
    InjectiveUnStakingRequestPOSTBodyExample:
      summary: Injective UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    InjectiveUnStakingRequestWithoutDelegationsExample:
      summary: Injective UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: injective
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    KavacosmosStakingRequestPOSTBodyExample:
      summary: Kavacosmos Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    KavacosmosStakingRequestWithoutDelegationsExample:
      summary: Kavacosmos Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: kava1abcdefabcdefabcdefabcdefabcdefabcdef
        walletType: custodial
        type: STAKE
        coin: kavacosmos
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    KavacosmosUnStakingRequestPOSTBodyExample:
      summary: Kavacosmos UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    KavacosmosUnStakingRequestWithoutDelegationsExample:
      summary: Kavacosmos UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: kava1abcdefabcdefabcdefabcdefabcdefabcdef
        walletType: custodial
        type: UNSTAKE
        coin: kavacosmos
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    LicenseResultsExample:
      summary: Staking License Result Example
      value:
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        fees:
          - coin: near
            fee: '4'
          - coin: sol
            fee: '5'
        defaultFee: '10'
    MaticDelegationResultsExample:
      summary: Matic Delegation Results Example
      value:
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '0'
            coin: matic
            walletId: 63110fc78b108e00071df2d3c3879dd0
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '1000'
            apy: '6.5100'
            unstakeable: false
        page: 1
        totalPages: 1
        totalElements: 1
    MaticStakingRequestPOSTBodyExample:
      summary: Matic Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    MaticStakingRequestWithTransactionsExample:
      summary: Matic Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        walletType: custodial
        withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
        coin: matic
        status: NEW
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        createdDate: '2022-01-10T14:32:28.000Z'
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '3200000000000000000'
            coin: matic
            walletId: 2032e75g451052000636831abd797bd3
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '3200000000000000000'
            pendingStake: '1000'
            apy: '8.3'
            unstakeable: false
        transactions:
          - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            transactionType: delegate
            status: PENDING
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            amount: '3200000000000000000'
            gasPrice: '1000000000000000'
        totalStaked: '0'
        amount: '3200000000000000000'
        gasPrice: '1000000000000000'
    MaticStakingRequestWithoutDelegationsExample:
      summary: Matic Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: matic
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        delegations: []
        transactions: []
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    MaticStakingRequestsListResponseExample:
      summary: Matic Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestingUserId: 6092e75c451052000636831deb797bd1
            type: STAKE
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            walletType: custodial
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            coin: matic
            status: NEW
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            createdDate: '2022-01-10T14:32:28.000Z'
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '3200000000000000000'
                coin: matic
                walletId: 2032e75g451052000636831abd797bd3
                status: PENDING
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '3200000000000000000'
                pendingStake: '1000'
                apy: '8.3'
                unstakeable: false
            transactions:
              - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                transactionType: delegate
                status: PENDING
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                amount: '3200000000000000000'
                gasPrice: '1000000000000000'
            totalStaked: '0'
            amount: '3200000000000000000'
            gasPrice: '1000000000000000'
    MaticUnStakingRequestWithTransactionsExample:
      summary: Matic UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        walletType: custodial
        withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
        coin: matic
        status: NEW
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        createdDate: '2022-01-10T14:32:28.000Z'
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '1600000000000000000'
            coin: matic
            walletId: 2032e75g451052000636831abd797bd3
            status: PENDING
            rewards: '1000000000000000'
            lockedRewards: '0'
            pendingUnstake: '4800000000000000000'
            pendingStake: '1000'
            apy: '8.3'
            unstakeable: false
        transactions:
          - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            transactionType: delegate
            status: PENDING
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            amount: '3200000000000000000'
            gasPrice: '1000000000000000'
        totalStaked: '0'
        amount: '6400000000000000000'
        gasPrice: '1000000000000000'
    MaticUnStakingRequestWithoutDelegationsExample:
      summary: Matic UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: matic
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        delegations: []
        transactions: []
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    MaticUnStakingRequestsListResponseExample:
      summary: Matic Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestingUserId: 6092e75c451052000636831deb797bd1
            type: UNSTAKE
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            walletType: custodial
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            coin: matic
            status: NEW
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            createdDate: '2022-01-10T14:32:28.000Z'
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
                withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
                delegated: '1600000000000000000'
                coin: matic
                walletId: 2032e75g451052000636831abd797bd3
                status: PENDING
                rewards: '1000000000000000'
                lockedRewards: '0'
                pendingUnstake: '4800000000000000000'
                pendingStake: '1000'
                apy: '8.3'
                unstakeable: false
            transactions:
              - id: d0355adbc-55b43-5tta-9a9d-726a05bca0ai
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                transactionType: delegate
                status: PENDING
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                amount: '3200000000000000000'
                gasPrice: '1000000000000000'
            totalStaked: '0'
            amount: '6400000000000000000'
            gasPrice: '1000000000000000'
    MaticUnstakingRequestPOSTBodyExample:
      summary: Matic UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '2000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    MaticWalletStakingStateAttributesExamples:
      summary: Matic Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >
                'Unstaking broadcasts 2 transactions: the transaction to unstake
                and the transaction to claim your reward. The network has to
                confirm the unstaking transaction then the claim transaction
                will be automatically created.'
            transactionsNeeded: 2
            stakeWarmupPeriodDesc: tbd
            rewardPercentageRate: '6.5100'
            rewardsCompounding: false
          unstaking:
            info:
              - >
                'Unstaking broadcasts 2 transactions: the transaction to unstake
                and the transaction to claim your reward. The network has to
                confirm the unstaking transaction then the claim transaction
                will be automatically created.'
            transactionsNeeded: 2
            unStakeCooldownPeriodDesc: tbd
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: true
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 2
        spendable:
          staking:
            fee: '888546618800000'
            max: '2010492598925385321'
            min: '1'
            netMax: '2009604052306585321'
            netMin: '888546618800001'
            isStakingDurationNeeded: false
            minStakeMore: '0'
          unstaking:
            multipleDelegations: true
    NearDelegationResultsExample:
      summary: Near Delegation Results Example
      value:
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: 0x5a6406c9710f588ca733360bfa8033d0ef9ecdy5
            withdrawalAddress: '0x5a6406c9710f588ca733360bfa8033d0ef9ecd7c'
            delegated: '0'
            coin: near
            walletId: 63110fc78b108e00071df2d3c3879dd0
            status: PENDING
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '1000'
            apy: '6.5100'
            unstakeable: false
        page: 1
        totalPages: 1
        totalElements: 1
    NearStakingRequestPOSTBodyExample:
      summary: Near Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '12000000000000000000'
        type: STAKE
    NearStakingRequestWithTransactionsExample:
      summary: Near Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
        walletType: custodial
        type: STAKE
        coin: near
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
            delegated: '1300000000000000000'
            status: ACTIVE
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '1300000000000000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '100000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            amount: '1300000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1300000000000000000'
    NearStakingRequestWithoutDelegationsExample:
      summary: Near Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
        walletType: custodial
        type: STAKE
        coin: near
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1300000000000000000'
    NearStakingRequestsListResponseExample:
      summary: Near Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
            walletType: custodial
            type: STAKE
            coin: near
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: >-
                  b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
                delegated: '1300000000000000000'
                status: ACTIVE
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '1300000000000000000'
                pendingStake: '0'
                apy: '8.3'
                unstakingFee: '100000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: NEW
                amount: '1300000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '1300000000000000000'
    NearUnStakingRequestPOSTBodyExample:
      summary: Near UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '12000000000000000000'
        type: UNSTAKE
    NearUnStakingRequestWithTransactionsExample:
      summary: Near UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
        walletType: custodial
        type: UNSTAKE
        coin: near
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
            delegated: '1310000000000000000'
            status: ACTIVE
            rewards: '100000000000000000'
            lockedRewards: '0'
            pendingUnstake: '1310000000000000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '100000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            amount: '1300000000000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1300000000000000000'
    NearUnStakingRequestWithoutDelegationsExample:
      summary: Near UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
        walletType: custodial
        type: UNSTAKE
        coin: near
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1310000000000000000'
    NearUnStakingRequestsListResponseExample:
      summary: Near UnStaking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
            walletType: custodial
            type: UNSTAKE
            coin: near
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: >-
                  b80db6c80057404d4ed82f8e007a007192aac2499563af81909212a6a2c33d55
                delegated: '1310000000000000000'
                status: ACTIVE
                rewards: '100000000000000000'
                lockedRewards: '0'
                pendingUnstake: '1310000000000000000'
                pendingStake: '0'
                apy: '8.3'
                unstakingFee: '100000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: NEW
                amount: '1300000000000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '1300000000000000000'
    NearWalletStakingStateAttributesExamples:
      summary: Near Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - Minimum staking period is 12 hours.
              - Once staked, unstaking takes 4 epochs (about 36-48 hours).
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: ''
            rewardPercentageRate: '4.76'
            rewardsCompounding: false
            period:
              periodLow: '43200'
              periodHigh: '43200'
              coin: TNEAR
              type: WARMUP
            minStake: '1000000000000000000000000'
          unstaking:
            info:
              - To unstake, select the Unstake button.
              - >-
                Unstaking requires approving 2 transactions: the transaction to
                unstake and the transaction to claim your reward.
            transactionsNeeded: 2
            unStakeCooldownPeriodDesc: 3 days
            period:
              periodLow: '259200'
              periodHigh: '259200'
              coin: TNEAR
              type: COOLDOWN
          nextRewards:
            rewardCycle: 43200
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: false
            disabledReason: >-
              Wallet 62b45ac6901da50007c75ea820ecf947 has pending unstake: 1
              tnear
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
            useValidatorList: true
            skipAddressValidation: false
            allowPartialUnstake: true
            validatorNotNeededForStake: false
        spendable:
          staking:
            fee: '44859695062500000198'
            max: '36345221320046229699999802'
            min: '0'
            multiplier: '1'
            netMax: '36345176460351167199999604'
            netMin: '44859695062500000198'
            isStakingDurationNeeded: false
            minStakeMore: '0'
            isDelegated: false
          unstaking:
            fee: '89719390125000000396'
            max: '0'
            min: '0'
            multiplier: '1'
            multipleDelegations: false
            requiresAmount: true
            requiresDelegationId: false
            requiresDelegationIds: false
    OfcTxBuildResponseExample:
      summary: Example response for an OFC transaction build preview
      value:
        payload: >-
          {"coin":"ofctsol","recipients":[{"address":"BpkMFStkryPDkVYqTbEGLqWD3FLoPLCwTV4sdN1XKBPF","amount":"1000000"}],"fromAccount":"62182dc6685f820007002502234b4dfc","nonce":"0d9472b2-69ed-4bc1-9f8b-799fb54a75f1","timestamp":"2025-08-08T21:12:56.395Z","feeString":"0","shortCircuitBlockchainTransfer":false,"isIntraJXTransfer":false}
        feeInfo:
          feeString: '0'
        coin: ofc
        token: ofctsol
    OsmoClaimRewardsRequestPOSTBodyExample:
      summary: Example OSMO Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174005
        type: CLAIM_REWARDS
        delegationId: osmo-delegation-1
    OsmoStakingRequestPOSTBodyExample:
      summary: Osmo Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    OsmoStakingRequestWithoutDelegationsExample:
      summary: Osmo Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: osmo
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    OsmoSwitchValidatorRequestPOSTBodyExample:
      summary: Example OSMO Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174105
        type: SWITCH_VALIDATOR
        delegationId: osmo-delegation-1
        validator: osmovaloper1abcxyz
    OsmoUnStakingRequestPOSTBodyExample:
      summary: Osmo UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    OsmoUnStakingRequestWithoutDelegationsExample:
      summary: Osmo UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: osmo
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    PolStakingRequestPOSTBodyExample:
      summary: Pol Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    PolStakingRequestWithoutDelegationsExample:
      summary: Pol Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: pol
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    PolUnStakingRequestPOSTBodyExample:
      summary: Pol UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    PolUnStakingRequestWithoutDelegationsExample:
      summary: Pol UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: pol
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    PolicyRecommendationsExample:
      summary: Policy recommendations
      description: A successful response with policy recommendations for an enterprise.
      value:
        enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        recommendations:
          - recommendationId: rec-spend-limit-001
            adoptionPercentage: 0.75
            confidenceScore: 0.85
            explanation: >-
              75% of enterprises enforce a spending limit on segregated wallet
              transfers.
            description: >-
              Protect against unauthorized large transfers by requiring approval
              above a threshold.
            source: PEER_POPULAR
            enterpriseAdoptionCount: 150
            totalPeers: 200
            title: Add spending limit on wallet transfers
            template:
              name: Spending limit on segregated wallet transfers
              scopeCondition:
                name: wallet.type
                label: Wallet Type
                description: Allows creating a condition based on the Wallet Type
                status: ACTIVE
                parameters: []
                adminOnly: false
                bitgoManaged: false
              touchpoint:
                id: 0441ea9f-cd66-4d60-a52a-471aecd3e54e
                name: wallet.segregated.transfer
                status: ACTIVE
                label: Transfer from a Segregated Wallet
                description: When transferring from a BitGo Segregated Wallet
                adminOnly: false
              touchpointConditions:
                - condition:
                    name: transfer.amount
                    label: Spending limit
                    description: Allows creating a condition based on the Transfer Amount
                    status: ACTIVE
                    adminOnly: false
                    parameters:
                      - name: operator
                        label: Comparison Operator
                        description: >-
                          The comparison operator to use when comparing the
                          transfer amount with the given limit
                        type: ENUMERATED
                        required: ALWAYS
                        allowMultiple: false
                        values: []
                      - name: amount
                        label: The amount to compare to
                        description: The transfer amount will be compared with this limit
                        type: NON_NEGATIVE_NUMBER
                        required: ALWAYS
                        allowMultiple: false
                        values: []
                      - name: coin
                        label: Currency
                        description: >-
                          This condition only applies to transfers of this
                          currency
                        type: COIN_OR_USD
                        required: ALWAYS
                        allowMultiple: false
                        values: []
                    bitgoManaged: false
                  conditionParameters:
                    operator: '>'
                    amount: '10000000'
                    coin: btc
              touchpointActions:
                - action:
                    name: approvals.customer.walletAdmin
                    label: Wallet Admin
                    description: Require approval from wallet admins
                    status: ACTIVE
                    adminOnly: false
                    parameters:
                      - name: minRequired
                        label: Approvals Required
                        description: Minimum required number of approvers
                        type: NON_NEGATIVE_NUMBER
                        required: OPTIONAL
                        allowMultiple: false
                        values: []
                    bitgoManaged: false
                  actionParameters: {}
              touchpointConditionsOperator: AND
    PolicyRuleExample:
      summary: A policy rule
      description: A successful policy rule details response.
      value:
        uniqueId: c3ff569e-e30a-4405-8b76-38de240c724a
        id: 4fa8326b-4f5f-4065-8cfc-85a08c290c49
        name: Get approval if transferring more than 2 BTC in a minute
        status: ACTIVE
        version: 1
        adminOnly: false
        touchpointLabel: Transfer from a Segregated Wallet
        scopeLabel: Wallet
        clauses:
          - actions:
              - name: approvals.customer.walletAdmin
                parameters: {}
            conditions:
              - name: transfer.velocity.limit
                parameters:
                  amount: '2000000'
                  timeWindow: '60'
                  coin: btc
        filteringConditions:
          - parameters:
              walletId:
                - 643f146bb13653000765c478a384a656
            name: wallet.ids
        locked: true
        lockType: PERMANENT
        enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        lastTriggeredDate: '2023-11-13T14:49:48.830522Z'
        lastTriggeredEvaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
        createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
    PolicyRulesResultsExample1:
      summary: policy rules.
      description: A successful response with 3 policy rules.
      value:
        rules:
          - uniqueId: cb4e0a0a-2768-4024-904a-178ca6d2cd54
            id: 81d00054-72b5-4e7c-95cf-74d4f1f7d946
            name: Get final approval on custodial wallets
            status: ACTIVE
            version: 5
            adminOnly: false
            touchpointLabel: Transfer from a Segregated Wallet
            scopeLabel: Wallet
            clauses:
              - actions:
                  - name: approvals.customer.finalApproval
                    parameters:
                      userIds:
                        - 63f949ed0d96f8000718b29585ce0765
                conditions: []
            filteringConditions:
              - parameters:
                  walletType: custodial
                name: wallet.type
            locked: true
            lockType: LOCK_AFTER_DATE
            lockDate: '2023-11-13T14:49:48.830522Z'
            enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            lastTriggeredDate: '2023-11-13T14:49:48.830522Z'
            lastTriggeredEvaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
            createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            lockModifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
          - uniqueId: c57851e0-4cab-4d50-9dc4-3d58a1a34e34
            id: 4fa8326b-4f5f-4065-8cfc-85a08c290c49
            name: Get approval if transferring more than 2 BTC in a minute
            status: ACTIVE
            version: 1
            adminOnly: false
            touchpointLabel: Transfer from a Segregated Wallet
            scopeLabel: Wallet
            clauses:
              - actions:
                  - name: approvals.customer.walletAdmin
                    parameters: {}
                conditions:
                  - name: transfer.velocity.limit
                    parameters:
                      amount: '2000000'
                      timeWindow: '60'
                      coin: btc
            filteringConditions:
              - parameters:
                  walletId:
                    - 643f146bb13653000765c478a384a656
                name: wallet.ids
            locked: true
            lockType: PERMANENT
            enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            lastTriggeredDate: '2023-11-13T14:49:48.830522Z'
            lastTriggeredEvaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
            createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
          - uniqueId: b06b4009-cbc8-4926-9984-9ed30a7b6cbe
            id: 4bbe1f5c-12e3-4648-aab1-c1dc1da4cdb5
            name: Test Rule
            status: ACTIVE
            version: 1
            adminOnly: false
            touchpointLabel: Get approval when transferring to a non whitelisted destination
            scopeLabel: Wallet
            clauses:
              - actions:
                  - name: approvals.customer.walletAdmin
                    parameters: {}
                conditions:
                  - name: transfer.destination.type
                    parameters:
                      type: nonWhitelistedAddress
            filteringConditions:
              - parameters:
                  walletId:
                    - 643f146bb13653000765c478a384a656
                name: wallet.ids
            locked: true
            lockType: PERMANENT
            enterpriseId: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            lastTriggeredDate: '2023-11-13T14:49:48.830522Z'
            lastTriggeredEvaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
            createdBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            modifiedBy: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
            evaluationId: 306258df-dcab-489e-a9fe-ff28ce9fa312
        nextBatchPrevId: 5
    PolyxMultiValidatorStakingRequestPOSTBodyExample:
      summary: Polyx Staking Request POST Body Example (multi-validator nomination)
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
        validators:
          - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
          - 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty
          - 5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy
    PolyxStakingRequestPOSTBodyExample:
      summary: Polyx Staking Request POST Body Example (single validator)
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
        validator: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
    PolyxStakingRequestWithoutDelegationsExample:
      summary: Polyx Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: polyx
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    PolyxSwitchValidatorRequestPOSTBodyExample:
      summary: >-
        Polyx Switch Validator Request POST Body Example (multi-validator
        nomination)
      value:
        clientId: polyx-switch-001
        type: SWITCH_VALIDATORS
        validators:
          - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
          - 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty
    PolyxSwitchValidatorRequestWithoutDelegationsExample:
      summary: Polyx Switch Validator Request Example
      value:
        id: a155adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: polyx-switch-001
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
        walletType: custodial
        type: SWITCH_VALIDATOR
        coin: polyx
        createdDate: '2024-01-10T14:32:28.000Z'
        statusModifiedDate: '2024-01-10T14:32:28.000Z'
        status: NEW
        amount: '0'
    PolyxUnStakingRequestPOSTBodyExample:
      summary: Polyx UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    PolyxUnStakingRequestWithoutDelegationsExample:
      summary: Polyx UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: polyx
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    PreviewGoStakingRequestExample:
      summary: Example request for previewing a staking transaction
      value:
        amount: 3000000
    RethRocketStakingRequestPOSTBodyExample:
      summary: RethRocket Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    RethRocketStakingRequestWithoutDelegationsExample:
      summary: RETH-ROCKET Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: reth-rocket
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    RethRocketUnStakingRequestPOSTBodyExample:
      summary: RethRocket UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    RethRocketUnStakingRequestWithoutDelegationsExample:
      summary: RETH-ROCKET UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: reth-rocket
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    ScopeTouchpointsExample:
      summary: scope Touchpoints
      description: A successful response with one Touchpoint.
      value:
        touchpoints:
          - id: 0441ea9f-cd66-4d60-a52a-471aecd3e54e
            name: wallet.segregated.transfer
            status: ACTIVE
            label: Transfer from a Segregated Wallet
            description: When transferring from a BitGo Segregated Wallet
            adminOnly: false
        page: 1
        totalPages: 1
        totalElements: 1
    ScopesExample:
      summary: scopes
      description: A successful response with one scope.
      value:
        scopes:
          - id: c8234a0f-7722-44d7-bedc-bfded7bd24a7
            name: wallet.segregated
            label: Wallet
            description: A BitGo Wallet
            conditions:
              - name: wallet.type
                label: Wallet Type
                description: Allows creating a condition based on the Wallet Type
                status: ACTIVE
                parameters:
                  - name: walletType
                    label: Type
                    description: The Wallet Type
                    type: ENUMERATED
                    required: ALWAYS
                    allowMultiple: true
                    values:
                      - value: custodial
                        label: Custodial Wallet
                        description: A custodial wallet
                      - value: hot
                        label: Hot Wallet
                        description: A hot wallet
              - name: wallet.ids
                label: Wallet Ids
                description: Allows creating a condition based on the Wallet Id
                status: ACTIVE
                parameters:
                  - name: walletId
                    label: Wallet Id
                    description: The Wallet Ids
                    type: BITGO_ID
                    required: ALWAYS
                    allowMultiple: true
                    values: []
    SeiClaimRewardsRequestPOSTBodyExample:
      summary: Example SEI Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174006
        type: CLAIM_REWARDS
        delegationId: sei-delegation-1
    SeiEvmStakingRequestPOSTBodyExample:
      summary: SeiEvm Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000000'
        validator: seivaloper1abc123...
        type: STAKE
    SeiEvmSwitchValidatorRequestPOSTBodyExample:
      summary: SeiEvm Switch Validator Request POST Body Example (Partial Redelegation)
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: SWITCH_VALIDATOR
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        validator: seivaloper1newvalidator7za6nz3r0dylm0eln2clpvhtawu
        amount: '10000000000000000000'
    SeiEvmUnStakingRequestPOSTBodyExample:
      summary: SeiEvm UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000'
        validator: seivaloper19tup24vtzed7za6nz3r0dylm0eln2clpvhtawu
        type: UNSTAKE
    SeiStakingRequestPOSTBodyExample:
      summary: Sei Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    SeiStakingRequestWithoutDelegationsExample:
      summary: Sei Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: sei
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    SeiSwitchValidatorRequestPOSTBodyExample:
      summary: Example SEI Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174106
        type: SWITCH_VALIDATOR
        delegationId: sei-delegation-1
        validator: seivaloper1abcxyz
    SeiUnStakingRequestPOSTBodyExample:
      summary: Sei UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    SeiUnStakingRequestWithoutDelegationsExample:
      summary: Sei UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: sei
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    SolDelegationResultsExample:
      summary: Sol Delegation Results Example
      value:
        delegations:
          - id: c4669d97-b824-4752-8501-862bb77da83c
            delegationAddress: ECuwzjAEg7kPVBmmW7xa6Wz9xkK5pbN8cTn4SCdp5PPp
            validatorAddress: ECuwzjAEg7kPVBmmW7xa6Wz9xkK5pbN8cTn4SCdp5PPp
            withdrawalAddress: NEtLszFgREjHcgwe1HkVRiRuTvcTv5JQqGPp235G3jV
            provider: Figment
            providerType: FIGMENT
            delegated: '0'
            coin: tsol
            walletId: 63ea93986277750007c3f5500a17e610
            properties:
              validatorAddress: ECuwzjAEg7kPVBmmW7xa6Wz9xkK5pbN8cTn4SCdp5PPp
              stakingType: SOL_STAKE
              type: SOL
            status: REJECTED
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '7.00'
            unstakingFee: '4342160'
            unstakingMin: '0'
            unstakeable: false
            permissionAttributes:
              staking:
                enabled: false
                disabledReason: Delegation is not active.
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: false
                disabledReason: Delegation is not active.
        page: 1
        totalPages: 1
        totalElements: 1
    SolStakingRequestPOSTBodyExample:
      summary: Sol Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000'
        type: STAKE
    SolStakingRequestWithTransactionsExample:
      summary: Sol Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: STAKE
        coin: sol
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            delegated: '1000000000'
            status: ACTIVE
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: CONFIRMED
            amount: '1000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000'
    SolStakingRequestWithoutDelegationsExample:
      summary: Sol Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: STAKE
        coin: sol
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1000000000'
    SolStakingRequestsListResponseExample:
      summary: Sol Staking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            walletType: custodial
            type: STAKE
            coin: sol
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
                delegated: '1000000000'
                status: ACTIVE
                rewards: '0'
                lockedRewards: '0'
                pendingUnstake: '0'
                pendingStaking: '0'
                apy: '8.3'
                unstakingFee: '1000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: CONFIRMED
                amount: '1000000000'
                transactionType: delegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '1000000000'
    SolStakingValidatorsResultsExample:
      summary: Solana Staking Validators Results Example
      value:
        page: 1
        totalPages: 1
        totalElements: 1
        validators:
          - coin: tsol
            delegationAddress: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
            delegated: '8470613312'
            rewards: '970399418'
            apy: '6.60'
            historicRatePerformance: '0'
            type: Go
            pendingStake: '0'
            pendingUnstake: '0'
            permissionAttributes:
              staking:
                enabled: true
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: true
            count: '0'
            preferred: false
            stakingType: STAKE
    SolUnStakingRequestPOSTBodyExample:
      summary: Sol UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    SolUnStakingRequestWithTransactionsExample:
      summary: Sol UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: UNSTAKE
        coin: sol
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            delegated: '1012000000'
            status: ACTIVE
            rewards: '12000000'
            lockedRewards: '0'
            pendingUnstake: '1012000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: READY
            amount: '1012'
            transactionType: undelegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
          - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: WAITING
            amount: '1012000000'
            transactionType: withdraw_undelegated
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1012000000'
    SolUnStakingRequestWithoutDelegationsExample:
      summary: Sol UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: UNSTAKE
        coin: sol
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1012000000'
    SolUnStakingRequestsListResponseExample:
      summary: Sol UnStaking Request List Response Example
      value:
        requests:
          - id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
            requestUserId: 6092e75c451052000636831deb797bd1
            enterpriseId: 1032e75c451052000436831deb797af1
            walletId: 2032e75g451052000636831abd797bd3
            withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
            walletType: custodial
            type: UNSTAKE
            coin: sol
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: NEW
            delegations:
              - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
                delegationAddress: string
                withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
                delegated: '1012000000'
                status: ACTIVE
                rewards: '12000000'
                lockedRewards: '0'
                pendingUnstake: '1012000000'
                pendingStake: '0'
                apy: '8.3'
                unstakingFee: '1000000'
                unstakingMin: '0'
            transactions:
              - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: READY
                amount: '1012'
                transactionType: undelegate
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
              - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
                stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
                createdDate: '2022-01-10T14:32:28.000Z'
                statusModifiedDate: '2022-01-10T14:32:28.000Z'
                status: WAITING
                amount: '1012000000'
                transactionType: withdraw_undelegated
                delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            amount: '1012000000'
    SolWalletStakingStateAttributesExamples:
      summary: Sol Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >-
                Staking has 1 transaction but takes on average 1 epoch (~36
                hours) to activate the stake account and start earning rewards
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: 3 to 6 days
            rewardPercentageRate: '6.50153'
            rewardsCompounding: false
            period:
              periodLow: '172800'
              periodHigh: '172800'
              coin: TSOL
              type: WARMUP
            minStake: '1000'
            stakingSubTypes:
              - type: MARINADE
                name: Marinade Staking
                info:
                  - Stake your SOL with Marinade Finance.
                  - >-
                    Your staking position will be automatically managed and
                    delegated to the best-performing validators while you retain
                    full custody of your assets.
                transactionsNeeded: 1
                rewardsCompounding: false
                minStake: '1100000000'
                defaultApy: '8.83'
              - type: MARINADE_SELECT
                name: Marinade Select Staking
                info:
                  - Stake your SOL with Marinade Select.
                  - >-
                    Your staking position will be automatically managed and
                    delegated through a curated set of validators with verified
                    identity and zero tolerance for malicious MEV by Marinade.
                  - >-
                    Marinade does not take custody of the keys to withdraw
                    unstaked SOL.
                transactionsNeeded: 1
                rewardsCompounding: false
                minStake: '1100000000'
                defaultApy: '8.18'
              - type: JITO
                name: JITO Staking
                info:
                  - Stake your SOL with JitoSOL.
                transactionsNeeded: 1
                rewardsCompounding: false
                minStake: '0'
                defaultApy: '7.27'
          unstaking:
            info:
              - >-
                Unstaking broadcasts 2 transactions: the transaction to unstake
                and the transaction to claim your reward. The network has to
                confirm the unstaking transaction then the claim transaction
                will be automatically created.
            transactionsNeeded: 2
            unStakeCooldownPeriodDesc: 3 to 6 days
            period:
              periodLow: '172800'
              periodHigh: '172800'
              coin: TSOL
              type: COOLDOWN
          nextRewards:
            rewardCycle: 172800
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: true
          unstaking:
            enabled: true
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
            useValidatorList: true
            skipAddressValidation: false
            allowPartialUnstake: true
            validatorNotNeededForStake: false
        spendable:
          staking:
            fee: '2049280'
            max: '2502004280'
            min: '2282880'
            multiplier: '1'
            netMax: '2495612840'
            netMin: '8674320'
            isStakingDurationNeeded: false
            minStakeMore: '0'
            stakingSubTypes:
              - name: Marinade Staking
                type: MARINADE
                fee: '2049280'
                max: '2502004280'
                min: '1100000000'
                netMax: '2495612840'
                netMin: '1100000000'
                isStakingDurationNeeded: false
                minStakeMore: '0'
                multiplier: '1'
                fields: []
              - name: Marinade Select Staking
                type: MARINADE_SELECT
                fee: '2049280'
                max: '2502004280'
                min: '1100000000'
                netMax: '2495612840'
                netMin: '1100000000'
                isStakingDurationNeeded: false
                minStakeMore: '0'
                multiplier: '1'
                fields: []
              - name: JITO Staking
                type: JITO
                fee: '2049280'
                max: '2502004280'
                min: '0'
                netMax: '2495612840'
                netMin: '0'
                isStakingDurationNeeded: false
                minStakeMore: '0'
                multiplier: '1'
                fields: []
            isDelegated: false
          unstaking:
            fee: '4342160'
            max: '8470613312'
            min: '2282880'
            multiplier: '1'
            multipleDelegations: true
            requiresAmount: true
            requiresDelegationId: true
            requiresDelegationIds: false
    SomiClaimRewardsRequestPOSTBodyExample:
      summary: Example SOMI Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174007
        type: CLAIM_REWARDS
        delegationId: somi-delegation-1
    SomiStakingRequestPOSTBodyExample:
      summary: Somi Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '5000000000000000000'
        type: STAKE
        validator: '0x1234567890123456789012345678901234567890'
    SomiStakingRequestWithoutDelegationsExample:
      summary: SOMI Staking Request Example
      value:
        id: c1234567-89ab-4cde-9012-3456789abcde
        clientId: e1f2g3h4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: somi1q8k8ehv0yx3lkn2f0j0y5rjkx6s0tk4lp12345
        coin: somi
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '2500000000'
    SomiSwitchValidatorRequestPOSTBodyExample:
      summary: Example SOMI Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174107
        type: SWITCH_VALIDATOR
        delegationId: somi-delegation-1
        validator: somivaloper1abcxyz
    SomiUnStakingRequestPOSTBodyExample:
      summary: Somi UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '2000000000000000000'
    SomiUnStakingRequestWithoutDelegationsExample:
      summary: SOMI UnStaking Request Example
      value:
        id: d1234567-89ab-4cde-9012-3456789abcde
        clientId: f1g2h3i4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: somi1r9y8ehv0yx3lkn2f0j0y5rjkx6s0tk4lp67890
        walletType: custodial
        type: UNSTAKE
        coin: somi
        createdDate: '2025-09-08T14:32:28.000Z'
        statusModifiedDate: '2025-09-08T14:32:28.000Z'
        status: NEW
        amount: '1000000000'
    StakeGoStakingRequestResponseExample:
      summary: Example response for a stake request
      value:
        id: 66c2a620-a92c-42da-9a2b-d692b0042f23
        type: STAKE
        coin: tsol
        status: NEW
        goSpecificStatus: NEW
        statusModifiedDate: '2025-08-08T21:45:27.382305322Z'
        createdDate: '2025-08-08T21:45:27.382261Z'
        amount: 1000000
        frontTransferSendRequest:
          halfSigned:
            payload: >-
              {"coin":"ofctsol","recipients":[{"address":"BpkMFStkryPDkVYqTbEGLqWD3FLoPLCwTV4sdN1XKBPF","amount":"1000000"}],"fromAccount":"62182dc6685f820007002502234b4dfc","nonce":"0d9472b2-69ed-4bc1-9f8b-799fb54a75f1","timestamp":"2025-08-08T21:12:56.395Z","feeString":"0","shortCircuitBlockchainTransfer":false,"isIntraJXTransfer":false}
            signature: >-
              202569fdd4ae4e505ae2ec51c98d71d93a741379983f634e40a6fa6dcf630752504abde87e1f995f0af8c73a4b53107811695c50597cf8a99b4b82e72dd83def6c
    StakeableCoinsResultExample:
      summary: Stakeable Coins Result Example
      value:
        coins:
          - symbol: tmatic
            baseUnit: wei
            isToken: true
            isMultiSig: true
            isTss: false
            l1Chain: hteth
            comingSoon: false
            jurisdictions: []
            disclaimer:
              staking:
                info:
                  - >-
                    First staking action requires 2 transactions but subsequent
                    staking only need 1 transaction
                transactionsNeeded: 2
                rewardPercentageRate: '6.15'
                rewardsCompounding: false
                minStake: '1000000000000000000'
              unstaking:
                info:
                  - >-
                    Unstaking broadcasts 2 transactions: the transaction to
                    unstake and the transaction to claim your reward. The
                    network has to confirm the unstaking transaction then the
                    claim transaction will be automatically created.
                transactionsNeeded: 2
                period:
                  periodLow: '288000'
                  periodHigh: '288000'
                  coin: TMATIC
                  type: COOLDOWN
              nextRewards:
                rewardCycle: 3600
          - symbol: gteth
            baseUnit: wei
            isToken: false
            isMultiSig: true
            isTss: true
            jurisdictions: []
        page: 1
        totalPages: 1
        totalElements: 2
    StakingWalletExample:
      summary: Example staking wallet response
      value:
        coin: hteth
        enterpriseId: 71d1aa51184c4f1117ff88c3b1ceb2fd
        walletId: 79972a79ff76457539f5c4c17d2g3ace
        stakingWalletId: 71574c4e-4f61-5eg5-c317-6872g18269d5
        walletType: custodial
        label: Treasury staking wallet
        delegated: '89213531397000000000'
        pendingUnstake: '0'
        pendingStake: '12000000000000000000'
        spendableAttributes:
          staking:
            fee: '634164472610000'
            max: '193000000000000000000'
            min: '2000000000000000000'
            multiplier: '22000000000000000000'
            netMax: '193000000000000000000'
            netMin: '2000000000000000000'
            isStakingDurationNeeded: false
            minStakeMore: '0'
            breakdown:
              balance: '115522435289094000777'
              stakingFee: '-634164472610000'
              unstakingFee: '-134945999800000'
              pendingStake: '-12000000000000000000'
              maxSpendable: '103522435289094000777'
            stakingSubTypes:
              - name: Pectra Staking
                type: ETH_STAKE_PECTRA
                fee: '634164472610000'
                max: '193000000000000000000'
                min: '2000000000000000000'
                netMax: '193000000000000000000'
                netMin: '2000000000000000000'
                isStakingDurationNeeded: false
                minStakeMore: '2000000000000000000'
                multiplier: '1'
                fields:
                  - name: validator
                    label: Validator Partner
                    required: true
                    type: address
                    useValidatorList: true
                    readonly: false
              - name: Pectra SSV Staking
                type: ETH_STAKE_SSV
                fee: '634164472610000'
                max: '193000000000000000000'
                min: '22000000000000000000'
                netMax: '193000000000000000000'
                netMin: '22000000000000000000'
                isStakingDurationNeeded: false
                minStakeMore: '2000000000000000000'
                multiplier: '1'
                fields:
                  - name: validator
                    label: Validator Partner
                    required: true
                    type: address
                    useValidatorList: true
                    readonly: false
            isDelegated: false
          unstaking:
            fee: '134945999800000'
            max: '89213531397000000000'
            min: '2000000000000000000'
            multiplier: '2000000000000000000'
            multipleDelegations: true
            breakdown:
              balance: '115522435289094000777'
              unstakingFee: '-134945999800000'
              maxSpendable: '115522435289094000777'
              unstakeable:
                stakedBalance: '89213531397000000000'
                pendingUnstake: '0'
                maxUnstakeable: '89213531397000000000'
            requiresAmount: false
            requiresDelegationId: false
            requiresDelegationIds: true
            unstakingSubTypes:
              - name: Pectra Unstaking
                type: ETH_STAKE_PECTRA
                fee: '134945999800000'
                max: '22106501632000000000'
                min: '2000000000000000000'
                netMax: '22106501632000000000'
                netMin: '2000000000000000000'
                requiresAmount: true
                requiresDelegationId: true
                requiresDelegationIds: false
                allowPartialUnstake: true
                multipleDelegations: false
        permissionAttributes:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: true
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
            useValidatorList: true
            skipAddressValidation: true
            allowPartialUnstake: false
            validatorNotNeededForStake: false
        rewards: '113195558094000778'
        pendingClaimRewards: '0'
        lockedRewards: '0'
        pendingReserved: '0'
        reserved: '0'
        apy: '3.88'
        createdDate: '2025-07-21T14:12:34.261104Z'
        modifiedDate: '2025-07-21T14:12:34.261107Z'
        properties:
          walletMultisigType: onchain
          type: ETH
    StoryStakingRequestPOSTBodyExample:
      summary: Story Protocol Staking Request POST Body Example (Flexible)
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1536000000000000000000'
        type: STAKE
        validator: '0x03a2911a2ad7158b2fe68550cfc77c608974363db76d7a368cb1ee8bbdb2d76062'
        stakingPeriod: FLEXIBLE
    StoryStakingRequestPOSTBodyExampleLong:
      summary: Story Protocol Staking Request POST Body Example (Long Lock-up)
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '2048000000000000000000'
        type: STAKE
        validator: '0x03a2911a2ad7158b2fe68550cfc77c608974363db76d7a368cb1ee8bbdb2d76062'
        stakingPeriod: LONG
    StoryStakingRequestWithoutDelegationsExample:
      summary: Story Protocol Staking Request Example (Flexible)
      value:
        id: e155adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f154adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: tip
        status: NEW
        statusModifiedDate: '2025-11-06T14:00:00.000Z'
        createdDate: '2025-11-06T14:00:00.000Z'
        amount: '1536000000000000000000'
        validatorAddress: '0x03a2911a2ad7158b2fe68550cfc77c608974363db76d7a368cb1ee8bbdb2d76062'
        stakingPeriod: FLEXIBLE
    StoryUnStakingRequestPOSTBodyExample:
      summary: Story Protocol UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '512000000000000000000'
    StoryUnStakingRequestWithoutDelegationsExample:
      summary: Story Protocol UnStaking Request Example
      value:
        id: f155adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: g154adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: tip
        status: COOLDOWN
        statusModifiedDate: '2025-11-06T15:00:00.000Z'
        createdDate: '2025-11-06T15:00:00.000Z'
        amount: '512000000000000000000'
    StxStakingRequestPOSTBodyExample:
      summary: STX Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000'
        type: STAKE
        subType: STACK
        duration: '100'
        btcRewardAddress: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
        contractName: pox-4
    StxStakingRequestWithoutDelegationsExample:
      summary: STX Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: SP3FBR2AGK5G5R7QZJYQJMWPV4D0KX9JZ7V1VZKX3
        coin: stx
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '1000000000'
        subType: STACK
        duration: '100000'
    StxUnStakingRequestPOSTBodyExample:
      summary: STX UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    StxUnStakingRequestWithoutDelegationsExample:
      summary: STX UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: SP3FBR2AGK5G5R7QZJYQJMWPV4D0KX9JZ7V1VZKX3
        coin: stx
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '500000000'
    SuiStakingPartneredValidatorsResultsExample:
      summary: SUI Staking Partnered Validators Results Example
      value:
        page: 1
        totalPages: 1
        totalElements: 1
        validators:
          - coin: tsui
            delegationAddress: '0x2ade594485fb795616b74156c91097ec517a05ac488364dd3ad1ec5f536db3f4'
            totalStaked: '21080253613261837'
            rewards: '914179581074358'
            apy: '2.1'
            historicRatePerformance: '2.10'
            commission: '10'
            type: Staketab
            count: '0'
            preferred: false
            stakingType: STAKE
    SuiStakingRequestPOSTBodyExample:
      summary: Sui Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    SuiStakingRequestWithoutDelegationsExample:
      summary: Sui Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: sui
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    SuiUnStakingRequestPOSTBodyExample:
      summary: Sui UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    SuiUnStakingRequestWithoutDelegationsExample:
      summary: Sui UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: sui
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    SuiWalStakingRequestPOSTBodyExample:
      summary: SuiWal Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    SuiWalStakingRequestWithoutDelegationsExample:
      summary: Sui Wallet Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: suiWal
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    SuiWalUnStakingRequestPOSTBodyExample:
      summary: SuiWal UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    SuiWalUnStakingRequestWithoutDelegationsExample:
      summary: Sui Wallet UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: suiWal
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    TaoDelegationResultsExample:
      summary: Tao Delegation Results Example
      value:
        delegations:
          - id: 129664d8-fac3-4b98-aed0-94ed5ef8a769
            delegationAddress: 5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT
            provider: BYOV
            providerType: ''
            withdrawalAddress: 5HdFj7DAzWsdmJQSMTTW4bYwxVQvhvL4gdkA4RpJtTzCD1vB
            delegated: '1008463576'
            coin: ttao
            walletId: 67c87c2df10eec4e99eaecf2e164ac1e
            properties:
              validatorAddress: 5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT
              netUID: '0'
              alphaTokenName: TAO
              alphaAmount: '1000000000'
              totalAlphaRewards: '8463576'
              type: TAO
            status: ACTIVE
            rewards: '8463576'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            reserved: '0'
            pendingReserved: '0'
            apy: '0'
            unstakeable: true
            switchable: true
            maxSwitch: '1008463576'
            minSwitch: '1'
            permissionAttributes:
              staking:
                enabled: true
                allowClientToUseOwnValidator: false
              unstaking:
                enabled: true
              switchValidator:
                enabled: true
              switchNetuid:
                enabled: true
        page: 1
        totalPages: 1
        totalElements: 1
    TaoStakingRequestPOSTBodyExample:
      summary: Tao Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000'
        netUID: 0
        type: STAKE
    TaoStakingRequestWithTransactionsExample:
      summary: Tao Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 5EKXEL1PnSxvBennEDin56yj5KgmcX3AW27sr1uqm9tBmKpn
        walletType: custodial
        type: STAKE
        coin: tao
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 5EKXEL1PnSxvBennEDin56yj5KgmcX3AW27sr1uqm9tBmKpn
            delegated: '1000000000'
            status: ACTIVE
            rewards: '0'
            lockedRewards: '0'
            pendingUnstake: '0'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: CONFIRMED
            amount: '1000000000'
            transactionType: delegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000'
    TaoStakingRequestWithoutDelegationsExample:
      summary: Tao Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: STAKE
        coin: tao
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1000000000'
    TaoSwitchNetuidRequestPOSTBodyExample:
      summary: TAO Switch Network UID Request Example
      value:
        clientId: switch-netuid-001
        type: SWITCH_VALIDATORS
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        netUID: 3
        validator: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
        amount: '1000000000'
        switchNetuid: true
    TaoSwitchValidatorRequestPOSTBodyExample:
      summary: TAO Switch Validator Request Example
      value:
        clientId: switch-validator-001
        type: SWITCH_VALIDATORS
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        validator: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
        amount: '500000000'
    TaoUnStakingRequestPOSTBodyExample:
      summary: Tao UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    TaoUnStakingRequestWithTransactionsExample:
      summary: Tao UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 5EKXEL1PnSxvBennEDin56yj5KgmcX3AW27sr1uqm9tBmKpn
        walletType: custodial
        type: UNSTAKE
        coin: tao
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        delegations:
          - id: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
            delegationAddress: string
            withdrawalAddress: 5EKXEL1PnSxvBennEDin56yj5KgmcX3AW27sr1uqm9tBmKpn
            delegated: '1012000000'
            status: ACTIVE
            rewards: '12000000'
            lockedRewards: '0'
            pendingUnstake: '1012000000'
            pendingStake: '0'
            apy: '8.3'
            unstakingFee: '1000000'
            unstakingMin: '0'
        transactions:
          - id: i0500adbc-55b43-5tta-9a9d-726a05bca0op
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: READY
            amount: '1012'
            transactionType: undelegate
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
          - id: p0500adbc-55b43-5tta-9a9d-726a05bca0dr
            stakingRequestId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
            createdDate: '2022-01-10T14:32:28.000Z'
            statusModifiedDate: '2022-01-10T14:32:28.000Z'
            status: WAITING
            amount: '1012000000'
            transactionType: withdraw_undelegated
            delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1012000000'
    TaoUnStakingRequestWithoutDelegationsExample:
      summary: Tao UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 1032e75c451052000436831deb797af1
        walletId: 2032e75g451052000636831abd797bd3
        withdrawalAddress: 3Lwg4hE19Kg4BdUkuDh4v8xXoyoRQkbDMM6wX7zjQP6i
        walletType: custodial
        type: UNSTAKE
        coin: tao
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1012000000'
    TaoWalletStakingStateAttributesExamples:
      summary: Tao Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >-
                Rewards compound automatically. There is no warmup or cooldown
                period so your staked balance will earn rewards immediately.
            minStake: '100000000'
            rewardPercentageRate: '14.92'
            rewardsCompounding: true
            transactionsNeeded: 1
          unstaking:
            info:
              - >-
                There is no partial unstaking. Users must unstake all or
                nothing.
              - >-
                There is no bonding period so unstaked funds will be released
                immediately upon confirmation on chain.
            transactionsNeeded: 1
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: true
            allowClientToUseOwnValidator: false
          switchValidator:
            enabled: true
            allowClientToUseOwnValidator: false
          switchNetuid:
            enabled: true
            allowClientToUseOwnValidator: false
        spendable:
          staking:
            fee: '300000'
            max: '16010303'
            min: '100000000'
            multiplier: '1'
            netMax: '15710303'
            netMin: '100000000'
            isStakingDurationNeeded: false,
            minStakeMore: '0'
            fields:
              - name: netUID
                label: Network
                required: false
                type: select
                useValidatorList: false
                readonly: false
                options:
                  - label: root
                    value: '0'
          unstaking:
            fee: '300000'
            max: '200000000'
            min: '200000000'
            multiplier: '1'
            multipleDelegations: true
            requiresAmount: false
            requiresDelegationId: true,
            requiresDelegationIds: false
          switchValidator:
            fee: '300000'
            max: '16010303'
            min: '100000000'
            multiplier: '1'
            requiresDelegationId: true
          switchNetuid:
            fee: '300000'
            max: '16010303'
            min: '100000000'
            multiplier: '1'
            requiresDelegationId: true
            fields:
              - name: netUID
                label: Network
                required: false
                type: select
                useValidatorList: false
                readonly: false
                options:
                  - label: root
                    value: '0'
    TiaClaimRewardsRequestPOSTBodyExample:
      summary: Example TIA Claim Rewards Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174008
        type: CLAIM_REWARDS
        delegationId: tia-delegation-1
    TiaStakingRequestPOSTBodyExample:
      summary: Tia Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    TiaStakingRequestWithoutDelegationsExample:
      summary: Tia Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: tia
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    TiaSwitchValidatorRequestPOSTBodyExample:
      summary: Example TIA Switch Validator Request
      value:
        clientId: 123e4567-e89b-12d3-a456-426614174108
        type: SWITCH_VALIDATOR
        delegationId: tia-delegation-1
        validator: tiavaloper1abcxyz
    TiaUnStakingRequestPOSTBodyExample:
      summary: Tia UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    TiaUnStakingRequestWithoutDelegationsExample:
      summary: Tia UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: tia
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
    TonStakingRequestPOSTBodyExample:
      summary: TON Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000'
        type: STAKE
        subType: MULTI_NOMINATOR_STAKE
        validator: EQCi7ER3y9j-FFY3M31JNtJuVM-04Y4lDd4pykDVyQRhlUMH
    TonStakingRequestWithoutDelegationsExample:
      summary: TON Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: EQC3k0n2pGk7U7JZP6k3f7WkH5nV9x5Z4j3yP1m7yQ5V5Xz
        coin: ton
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '1000000000'
        subType: SINGLE_NOMINATOR_STAKE
    TonUnStakingRequestPOSTBodyExample:
      summary: TON UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    TonUnStakingRequestWithoutDelegationsExample:
      summary: TON UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: EQC3k0n2pGk7U7JZP6k3f7WkH5nV9x5Z4j3yP1m7yQ5V5Xz
        coin: ton
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '500000000'
        subType: SINGLE_NOMINATOR_STAKE
    TouchpointConditionsExample:
      summary: Touchpoint Conditions
      description: A successful response with 5 Touchpoint Conditions.
      value:
        conditions:
          - name: transfer.destination.type
            label: Destination
            description: >-
              Allows creating a condition based on the type of the funds
              destination
            status: ACTIVE
            parameters:
              - name: type
                label: Type
                description: The type of destination this condition will match
                type: ENUMERATED
                required: ALWAYS
                allowMultiple: false
                values:
                  - value: whitelistedAddress
                    label: Whitelisted address
                    description: The destination is whitelisted
                  - value: nonWhitelistedAddress
                    label: Non-whitelisted address
                    description: The destination is not whitelisted
              - name: coin
                label: Asset
                description: The asset this condition applies to. Optional.
                type: COIN
                required: OPTIONAL
                allowMultiple: false
                values: []
          - name: transfer.initiators
            label: Transfer Initiated By
            description: >-
              Allows creating a condition based on whether the transfer
              initiator is a listed user
            status: ACTIVE
            parameters:
              - name: userIds
                label: User Ids
                description: The list of user ids to check the transfer initiator against.
                type: BITGO_USER_ID
                required: ALWAYS
                allowMultiple: true
                values: []
          - name: transfer.webhook
            label: Transfer Webhook
            description: >-
              Allows creating a Condition based on whether the transfer webhook
              post call returns a 200 status code
            status: ACTIVE
            parameters:
              - name: webhookUrl
                label: Webhook Url
                description: The webhook url to post transfer payload to
                type: FREE_FORM
                required: ALWAYS
                allowMultiple: false
                values: https://webhook.site/91561f7b-4141-4ee2-8336-e10650cd000f
              - name: coin
                label: Asset
                description: The asset this condition applies to.
                type: COIN
                required: OPTIONAL
                allowMultiple: false
                values: btc
          - name: transfer.velocity.limit
            label: Spending Limit
            description: >-
              Allows creating a condition based on the amount of coin or USD
              that can be spent over a period of time
            status: ACTIVE
            parameters:
              - name: amount
                label: Amount
                description: The amount that can be spend withing the time window
                type: NON_NEGATIVE_NUMBER
                required: ALWAYS
                allowMultiple: false
                values: []
              - name: timeWindow
                label: time window
                description: The period of time this condition covers, in seconds
                type: NON_NEGATIVE_NUMBER
                required: ALWAYS
                allowMultiple: false
                values: []
              - name: coin
                label: Unit
                description: >-
                  The unit that the amount is denoted in, can be a coin or a
                  fiat currency
                type: COIN_OR_USD
                required: ALWAYS
                allowMultiple: false
                values: []
              - name: scope
                label: scope
                description: Entities that will be included in the velocity calculation
                type: ENUMERATED
                required: ALWAYS
                allowMultiple: false
                values:
                  - value: wallet
                    label: Wallet
                    description: >-
                      Only spending from the transferring wallet will be
                      included
                  - value: enterprise
                    label: Enterprise
                    description: >-
                      Spending from the entire transferring wallet's enterprise
                      will be included
          - name: transfer.amount
            label: Spending limit
            description: Allows creating a condition based on the Transfer Amount
            status: ACTIVE
            parameters:
              - name: operator
                label: Comparison Operator
                description: >-
                  The comparison operator to use when comparing the transfer
                  amount with the given limit
                type: ENUMERATED
                required: ALWAYS
                allowMultiple: false
                values:
                  - value: '>'
                    label: Greater than
                    description: >-
                      The transfer amount must be greater than the given limit
                      for the condition to trigger
                  - value: '>='
                    label: Greater than or equal to
                    description: >-
                      The transfer amount must be greater than or equal to the
                      given limit for the condition to trigger
                  - value: <
                    label: Less than
                    description: >-
                      The transfer amount must be less than the given limit for
                      the condition to trigger
                  - value: <=
                    label: Less than or equal to
                    description: >-
                      The transfer amount must be less than or equal to the
                      given limit for the condition to trigger
              - name: amount
                label: The amount to compare to
                description: The transfer amount will be compared with this limit
                type: NON_NEGATIVE_NUMBER
                required: ALWAYS
                allowMultiple: false
                values: []
              - name: coin
                label: Currency
                description: >-
                  This condition only applies to transfers of this currency (USD
                  applies to all transfers)
                type: COIN_OR_USD
                required: ALWAYS
                allowMultiple: false
                values: []
    TrxStakingRequestPOSTBodyExample:
      summary: TRX Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
        subType: STAKE
    TrxStakingRequestWithoutDelegationsExample:
      summary: TRX Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        walletType: custodial
        type: STAKE
        coin: trx
        subType: STAKE
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1000000000'
    TrxUnStakingRequestPOSTBodyExample:
      summary: TRX UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: UNSTAKE
    TrxUnStakingRequestWithoutDelegationsExample:
      summary: TRX UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        walletType: custodial
        type: UNSTAKE
        coin: trx
        subType: STAKE
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1200000000'
    UnstakeGoStakingRequestResponseExample:
      summary: Example response for an unstake request
      value:
        id: 487fb12a-e11e-4c3d-9f6c-4c85214af88d
        type: UNSTAKE
        coin: tsol
        status: NEW
        goSpecificStatus: NEW
        statusModifiedDate: '2025-08-15T19:36:15.560401474Z'
        createdDate: '2025-08-15T19:36:15.560363Z'
        amount: 3000000
    VetStakingRequestPOSTBodyExample:
      summary: VET Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000000'
        nftTier: DAWN
        validator: '0xae99cb89767a09d53e589a40cb4016974aba4b94'
        type: STAKE
        subType: STAKE
    VetUnStakingRequestPOSTBodyExample:
      summary: VET UnStaking Request POST Body Example
      value:
        clientId: f055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000000'
        delegationId: 12345678-1234-1234-1234-123456789012
        type: UNSTAKE
    WalletStakingStateAttributesExamples:
      summary: Wallet Staking Attributes
      value:
        disclaimer:
          staking:
            info:
              - >
                'Unstaking broadcasts 2 transactions: the transaction to unstake
                and the transaction to claim your reward. The network has to
                confirm the unstaking transaction then the claim transaction
                will be automatically created.'
            transactionsNeeded: 1
            stakeWarmupPeriodDesc: 3 to 6 days
            rewardPercentageRate: '2'
            rewardsCompounding: false
          unstaking:
            info:
              - >
                'Unstaking broadcasts 2 transactions: the transaction to unstake
                and the transaction to claim your reward. The network has to
                confirm the unstaking transaction then the claim transaction
                will be automatically created.'
            transactionsNeeded: 2
            unStakeCooldownPeriodDesc: 3 to 6 days
        permission:
          staking:
            enabled: true
            allowClientToUseOwnValidator: false
          unstaking:
            enabled: false
            disabledReason: >-
              Wallet 62f502fbd19a040007cae8d3fa0e6660 doesn't have active
              delegation
          wallet:
            hasEnoughAdmins: true
            numberOfRequiredAdmins: 1
        spendable:
          staking:
            fee: '10000'
            max: '997547864'
            min: '2282880'
            netMax: '997537864'
            netMin: '2292880'
            isStakingDurationNeeded: false
            minStakeMore: '0'
          unstaking:
            fee: '10000'
            max: '0'
            min: '0'
            multipleDelegations: false
    WctStakingRequestPOSTBodyExample:
      summary: WCT Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000000'
        type: STAKE
        subType: WCT_STAKE
        validator: '0x1234567890abcdef1234567890abcdef12345678'
    WctStakingRequestWithoutDelegationsExample:
      summary: WCT Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xAb5801a7D398351b8bE11C439e05C5b3259aeC9B'
        walletType: custodial
        type: STAKE
        coin: wct
        subType: WCT_STAKE
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1000000000'
    WctUnStakingRequestPOSTBodyExample:
      summary: WCT UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
    WctUnStakingRequestWithoutDelegationsExample:
      summary: WCT UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xAb5801a7D398351b8bE11C439e05C5b3259aeC9B'
        walletType: custodial
        type: UNSTAKE
        coin: wct
        subType: WCT_STAKE
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '1200000000'
    WethStakingRequestPOSTBodyExample:
      summary: Weth Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: STAKE
    WethStakingRequestWithoutDelegationsExample:
      summary: WETH Staking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: weth
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '1000000000000'
        gasPrice: '500000000000'
    WethUnStakingRequestPOSTBodyExample:
      summary: Weth UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000000000000'
        gasPrice: '50000000000000'
        type: UNSTAKE
    WethUnStakingRequestWithoutDelegationsExample:
      summary: WETH UnStaking Request Example
      value:
        id: 0b7e6e7e-5041-49d8-9598-0a4a3f3f234e
        clientId: e055adbc-66a3-4ccd-9b9d-726b05dca0cf
        requestingUserId: 61c0ee3803715c00088d2c85b533b732
        type: UNSTAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0xf5b9becc5e7e68173a5fc1906a2a5574e884da40'
        coin: weth
        status: NEW
        statusModifiedDate: '2022-12-05T17:11:30.748165Z'
        createdDate: '2022-12-05T17:11:30.748159Z'
        totalStaked: '0'
        amount: '500000000000'
        gasPrice: '200000000000'
    WflrClaimRewardsRequestPOSTBodyExample:
      summary: Request to claim rewards for WFLR staking delegation
      value:
        clientId: client-defined-id
        type: CLAIM_REWARDS
        delegationId: wflr-delegation-1
        gasPrice: '50000000000000'
    WflrStakingRequestPOSTBodyExample:
      summary: WFLR Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '1000000000000000000'
        type: STAKE
        subType: WFLR_STAKE
        validator: '0x1234567890abcdef1234567890abcdef12345678'
        gasPrice: '50000000000000'
    WflrStakingRequestWithoutDelegationsExample:
      summary: WFLR Staking Request Example
      value:
        id: a1234567-89ab-4cde-9012-3456789abcde
        clientId: c1d2e3f4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        type: STAKE
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        walletType: hot
        withdrawalAddress: '0x5fBDB2315678afecb367f032d93F642f64180aa3'
        coin: wflr
        status: NEW
        statusModifiedDate: '2025-09-08T14:00:00.000Z'
        createdDate: '2025-09-08T14:00:00.000Z'
        amount: '5000000000000000000'
    WflrUnStakingRequestPOSTBodyExample:
      summary: WFLR UnStaking Request POST Body Example
      value:
        clientId: d055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '1000000000000000000'
        gasPrice: '50000000000000'
    WflrUnStakingRequestWithoutDelegationsExample:
      summary: WFLR UnStaking Request Example
      value:
        id: b1234567-89ab-4cde-9012-3456789abcde
        clientId: d1e2f3g4-5678-90ab-cdef-1234567890ab
        requestingUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xAb5801a7D398351b8bE11C439e05C5b3259aeC9B'
        walletType: custodial
        type: UNSTAKE
        coin: wflr
        createdDate: '2025-09-08T14:32:28.000Z'
        statusModifiedDate: '2025-09-08T14:32:28.000Z'
        status: NEW
        amount: '3000000000000000000'
    ZetaStakingRequestPOSTBodyExample:
      summary: Zeta Staking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        amount: '10000000000'
        type: STAKE
    ZetaStakingRequestWithoutDelegationsExample:
      summary: Zeta Staking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: STAKE
        coin: zeta
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10000000000'
    ZetaUnStakingRequestPOSTBodyExample:
      summary: Zeta UnStaking Request POST Body Example
      value:
        clientId: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        delegationId: e0225adbc-66a3-4ccd-9a9d-726a05bca0cf
        type: UNSTAKE
        amount: '10000000000'
    ZetaUnStakingRequestWithoutDelegationsExample:
      summary: Zeta UnStaking Request Example
      value:
        id: e055adbc-66a3-4ccd-9a9d-726a05bca0cf
        clientId: f054adbc-26a3-4acd-8a9d-726a05bca0dr
        requestUserId: 6092e75c451052000636831deb797bd1
        enterpriseId: 61c0ff41174c4e0007ae78b2a0bea1ec
        walletId: 63110fc78b108e00071df2d3c3879dd0
        withdrawalAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdef'
        walletType: custodial
        type: UNSTAKE
        coin: zeta
        createdDate: '2022-01-10T14:32:28.000Z'
        statusModifiedDate: '2022-01-10T14:32:28.000Z'
        status: NEW
        amount: '10012000000'
  headers: {}
  links: {}
  parameters:
    AccountIdPathParam:
      name: accountId
      in: path
      description: The ID of the account
      example: a980fdebfa084ffebc7e00515f54603f
      required: true
      style: simple
      explode: false
      schema:
        type: string
    Base:
      name: base
      in: query
      required: true
      description: |
        The base currency symbol (the asset being priced).
        Must be a BitGo-supported instrument symbol (case-insensitive).
      example: BTC
      schema:
        type: string
    CreatedDateGte:
      name: createdDateGte
      in: query
      description: >
        The date and time of the earliest policy rule creation to return. The
        date and time must be in ISO 8601 format.
      schema:
        type: string
        format: date-time
      example: '2023-11-13T14:49:48.830522Z'
    CreatedDateLte:
      name: createdDateLte
      in: query
      description: >
        The date and time of the latest policy rule creation to return. The date
        and time must be in ISO 8601 format.
      schema:
        type: string
        format: date-time
      example: '2023-11-13T14:49:48.830522Z'
    End:
      name: end
      in: query
      required: false
      description: |
        End time for the pricing data range (RFC 3339 format).
        If not provided, defaults to the current time.
      schema:
        type: string
        format: date-time
        example: '2024-12-17T16:00:00.000Z'
    Enterprise1:
      name: enterpriseId
      in: path
      description: Your Enterprise Id.
      required: true
      schema:
        type: string
      example: 63c86bf4555aba000652d5c59aff2866
    EvaluationId:
      name: evaluationId
      in: query
      description: The id of the Evaluation.
      required: false
      schema:
        type: string
      example: c8234a0f-7722-44d7-bedc-bfded7bd24a7
    EvaluationStatus:
      name: evaluationStatus
      in: query
      description: Status of the Evaluation
      required: false
      schema:
        type: string
        enum:
          - TRIGGERED
          - NOT_TRIGGERED
      example: TRIGGERED
    FilteringConditionName:
      name: filteringCondition
      in: path
      description: >-
        The name of the Filtering condition to be used when creating or updating
        a policy rule. Not all Touchpoint Actions are compatible with all
        Filtering Conditions.
      required: true
      schema:
        type: string
      example: wallet.all
    FilteringConditionParameterNameAndValue:
      name: filteringConditionParameterName
      in: query
      description: >
        You can retrieve the policy rules that match a given set of Filtering
        Conditions by providing the

        parameter name and value of the Filtering Conditions you are interested
        in. See also Filtering Conditions.

        In addition, you could add Dynamic parameter for filtering rules based
        on specific criteria.

        Format: <table>.<property>.parameters.<key>=<values>

        - <table>: (Required) The table name. Valid values are
        filteringCondition, action, or condition.

        - <property>: (Optional) The name of the property.

        - parameters: (Fixed) Indicates parameters section.

        - <key>: (Required) The key in the table's parameters column to search
        against.

        - <values>: (Optional) Comma-separated list of values to match.
      required: false
      schema:
        type: string
      example: >
        walletType=custodial

        filteringCondition.wallet.ids.parameters.walletId=testWalletId1,testWalletId2

        filteringCondition.wallet.type.parameters.walletType=hot,cold

        filteringCondition.wallet.all.parameters

        condition.transfer.amount.parameters.ruleId=ruleCondition1

        condition.parameters.number=1

        condition.parameters.userIds=user1,user2

        action.approvals.always.deny.parameters.actionId=ruleAction1

        action.parameters.bool=true

        action.parameters.userIds=user1,user2
    FundingTypeQueryParam:
      name: fundingType
      in: query
      description: >-
        Filter by funding type. 'funded' for available balance, 'margin' for
        margin balance.
      required: false
      style: form
      explode: true
      schema:
        $ref: '#/components/schemas/FundingType'
    Interval:
      name: interval
      in: query
      required: true
      description: The time interval for each price data point.
      example: hour
      schema:
        type: string
        enum:
          - minute
          - hour
          - day
    Limit1:
      name: limit
      in: query
      description: >
        How many policy rules to return per page of results. Default: 20,
        Maximum: 100.
      required: false
      schema:
        type: integer
      example: 20
    NextBatchPrevId:
      name: nextBatchPrevId
      in: query
      required: false
      description: >
        Pagination cursor returned from a previous request.

        Use this to fetch the next batch of results when there are more than
        1,000 data points.
      schema:
        type: string
        example: 63ff9f4c0c01fcd7162c28fc901ad915
    OtpRequired:
      name: X-BitGo-OTP
      in: header
      required: true
      description: >-
        OTP code for verification. Required for webhook key management
        operations.
      schema:
        type: string
      example: '123456'
    PolicyRuleId:
      name: id
      in: path
      description: Id of the policy rule.
      required: true
      schema:
        type: string
      example: c8234a0f-7722-44d7-bedc-bfded7bd24a7
    PolicyRuleIdQuery:
      name: id
      in: query
      description: Id of the policy rule.
      required: false
      schema:
        type: string
      example: c8234a0f-7722-44d7-bedc-bfded7bd24a7
    PolicyRuleName:
      name: name
      in: query
      description: |
        A string to match the names of the policy rules against.
      required: false
      schema:
        type: string
      example: My policy rule
    PolicyRuleStatus:
      name: status
      in: query
      description: Statuses of the returned policy rules, one or more may be provided.
      required: false
      schema:
        type: string
        enum:
          - PENDING
          - ACTIVE
          - INACTIVE
          - INACTIVE_HIDDEN
          - DENIED
          - PENDING_APPROVAL
          - UNLOCK_PENDING
    PolicyRuleVersion:
      name: version
      in: query
      description: Version of the policy rule to return.
      required: false
      schema:
        type: number
      example: 3
    PrevId1:
      name: prevId
      in: query
      description: >-
        The nextBatchPrevId returned by the last call to the same API. Used to
        retrieve the next page of results.
      required: false
      schema:
        type: integer
      example: 1
    Quote:
      name: quote
      in: query
      required: true
      description: >
        The quote currency symbol (the currency in which the price is
        expressed).

        Must be a BitGo-supported instrument symbol (case-insensitive).
      example: USD
      schema:
        type: string
    ScopeName:
      name: scopes
      in: query
      description: >
        scopes of the returned policy rules. One or more may be provided. For
        example, the All Wallets scope.

        See also the List scopes API.
      required: false
      schema:
        type: string
        enum:
          - wallet.segregated
          - policies.management
      example: wallet.segregated
    Start:
      name: start
      in: query
      required: false
      description: |
        Start time for the pricing data range (RFC 3339 format).
        If not provided, defaults to 1 interval before the current time.
      schema:
        type: string
        format: date-time
        example: '2024-12-17T14:00:00.000Z'
    TouchpointId:
      name: touchpointId
      in: path
      description: The id of a Touchpoint.
      required: true
      schema:
        type: string
      example: 0441ea9f-cd66-4d60-a52a-471aecd3e54e
    TouchpointName:
      name: touchpointName
      in: path
      description: The name of the Touchpoint.
      required: true
      schema:
        type: string
      example: wallet.segregated.transfer
    Touchpoints:
      name: touchpoints
      in: query
      description: >-
        The Touchpoints of the returned policy rules. One or more may be
        provided. For example, the Transfer from a Wallet Touchpoint. See also
        the List scope Touchpoints API.
      required: false
      schema:
        type: string
      example: wallet.segregated.transfer
    address:
      name: address
      in: query
      description: Filter by address string
      schema:
        $ref: '#/components/schemas/AddressString3'
    allTokens:
      name: allTokens
      schema:
        type: boolean
      in: query
      example: true
      description: Include data for all subtokens (i.e. ERC20 Tokens, Stellar Tokens)
    coin:
      name: coin
      in: query
      description: Filter by coin
      schema:
        $ref: '#/components/schemas/Coin'
    coin1:
      name: coin
      in: query
      description: Filter by coin.
      schema:
        title: Coin
        description: A cryptocurrency or token ticker symbol.
        type: string
        example: eth
    coinArray:
      name: coin
      in: query
      description: Filter by coin
      schema:
        type: array
        items:
          $ref: '#/components/schemas/Coin'
    coinSingleOrList:
      name: coin
      in: query
      description: Filter by coin(s)
      schema:
        type: array
        items:
          $ref: '#/components/schemas/Coin'
    dateGte:
      name: dateGte
      in: query
      description: >-
        Return transfers with a `date` that is greater than or equal to the
        given timestamp
      schema:
        type: string
        example: '2025-01-01T00:00:00.000Z'
        format: date-time
    dateLt:
      name: dateLt
      in: query
      description: Return transfers with a `date` that is less than the given timestamp
      schema:
        type: string
        example: '2025-03-28T00:00:00.000Z'
        format: date-time
    destinationTag:
      name: destinationTag
      required: false
      in: query
      schema:
        type: string
      description: |
        Required when sending to a BitGo wallet.
    enforceMinConfirmsForChange:
      name: enforceMinConfirmsForChange
      in: query
      description: Enforces `minConfirms` on change inputs
      schema:
        type: boolean
    enterprise:
      name: enterprise
      in: query
      description: Filter by enterprise
      schema:
        $ref: '#/components/schemas/Id'
    enterpriseId:
      name: enterpriseId
      in: query
      description: Filter by enterprise
      schema:
        $ref: '#/components/schemas/Id'
    excludeSpendableBalance:
      name: excludeSpendableBalance
      schema:
        type: boolean
      in: query
      example: true
      description: >
        Skip spendable balance calculations and only include confirmed balances.
        If absent, defaults to false.
    expandAddressLabels:
      name: expandAddressLabels
      description: >
        If true, adds `addressLabels` to each returned pending approval
        associated with recipient's addresses
      in: query
      schema:
        type: boolean
    feeRate:
      name: feeRate
      in: query
      schema:
        type: integer
        minimum: 0
    height:
      name: height
      in: query
      description: The block or ledger height
      schema:
        $ref: '#/components/schemas/IntegerString'
    limit:
      name: limit
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 25
      description: >-
        Maximum number of results to return.  If the result set is truncated,
        use the `nextBatchPrevId` value to get the next batch.
    maxFeeRate:
      name: maxFeeRate
      in: query
      schema:
        type: integer
        minimum: 0
    maxValue:
      name: maxValue
      in: query
      description: >-
        Maximum value of each unspent in base units (e.g. satoshis). For doge,
        only string is allowed.
      schema:
        $ref: '#/components/schemas/IntegerOrIntegerString'
    minConfirms:
      name: minConfirms
      in: query
      description: >-
        Minimum number of confirmations for the collected inputs. Only applies
        to external unspents. Use `enforceMinConfirmsForChange` to filter change
        as well.
      schema:
        type: integer
        minimum: 0
    minHeight:
      name: minHeight
      in: query
      description: Minimum block height of the unspents
      schema:
        type: number
        minimum: 0
    minValue:
      name: minValue
      in: query
      description: >-
        Minimum value of each unspent in base units (e.g. satoshis). For doge,
        only string is allowed.
      schema:
        $ref: '#/components/schemas/IntegerOrIntegerString'
    numBlocks:
      name: numBlocks
      in: query
      schema:
        type: integer
        default: 2
        minimum: 1
        maximum: 1000
      description: >
        (BTC only) The number of blocks required to confirm a transaction. You
        can use `numBlocks` to estimate the fee rate by targeting confirmation
        within a given number of blocks. If both `feeRate` and `numBlocks` are
        absent, the transaction defaults to 2 blocks for confirmation.


        Note: The `maxFeeRate` limits the fee rate generated by `numBlocks`.
    organizationId:
      name: organizationId
      in: query
      description: Filter by organization
      schema:
        $ref: '#/components/schemas/Id'
    pathAccountId:
      name: accountId
      in: path
      description: Account ID to fetch the staking request for.
      required: true
      schema:
        type: string
    pathAddress:
      name: address
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/AddressString3'
    pathAlgorand:
      name: coin
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/ConsolidationCoins'
    pathApprovalId:
      name: approvalId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    pathCoin:
      name: coin
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Coin'
    pathCoin1:
      name: coin
      in: path
      description: The staking asset.
      required: true
      schema:
        $ref: '#/components/schemas/OfcCoin'
    pathCoin2:
      name: coin
      in: path
      description: The staking asset.
      required: true
      schema:
        $ref: '#/components/schemas/Coin2'
    pathEnterpriseId:
      name: enterpriseId
      in: path
      required: true
      description: The enterprise ID
      schema:
        $ref: '#/components/schemas/Id'
    pathEnterpriseId1:
      name: enterpriseId
      in: path
      description: The enterprise ID.
      required: true
      schema:
        type: string
    pathId:
      name: id
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    pathRequestId:
      name: requestId
      in: path
      description: UUID of the staking request.
      required: true
      schema:
        type: string
        format: uuid
    pathSequenceId:
      name: sequenceId
      in: path
      required: true
      schema:
        type: string
      description: >
        A `sequenceId` is a unique and arbitrary wallet identifier applied to
        transfers and transactions at creation. It is optional but highly
        recommended. With a `sequenceId` you can easily reference transfers and
        transactions&mdash;for example, to safely retry sending. Because the
        system only confirms one send request per `sequenceId` (and fails all
        subsequent attempts), you can retry sending without the risk of double
        spending. The `sequenceId` is only visible to users on the wallet and is
        not shared publicly.
    pathShareId:
      name: shareId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    pathStakingRequestId:
      name: stakingRequestId
      in: path
      description: The ID for the staking request used in the path.
      required: true
      schema:
        type: string
        format: uuid
    pathStakingTransactionId:
      name: stakingTransactionId
      in: path
      description: The ID for the staking request transaction.
      required: true
      schema:
        type: string
    pathTransferId:
      name: transferId
      in: path
      required: true
      description: a transfer or transaction id
      example: >-
        f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a5 or
        585951a5df8380e0e3063e9f12345678
      schema:
        oneOf:
          - $ref: '#/components/schemas/Id'
          - $ref: '#/components/schemas/TxId'
    pathUserId:
      name: userId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Id'
    pathWalletId:
      name: walletId
      in: path
      required: true
      description: The wallet ID.
      schema:
        $ref: '#/components/schemas/Id'
    pathWalletId1:
      name: walletId
      in: path
      description: The wallet ID.
      required: true
      schema:
        $ref: '#/components/schemas/WalletId'
    pathWebhookId:
      name: webhookId
      required: true
      in: path
      schema:
        $ref: '#/components/schemas/Id'
    prevId:
      in: query
      name: prevId
      schema:
        $ref: '#/components/schemas/Id'
      description: >-
        Return the next batch of results, based on the `nextBatchPrevId` value
        from the previous batch.
    queryCoins:
      name: coin
      in: query
      description: Filter by one or more staking assets.
      required: false
      style: form
      explode: true
      schema:
        type: array
        items:
          $ref: '#/components/schemas/Coin2'
    queryCreatedDateGte:
      name: createdDateGte
      in: query
      required: false
      description: Filter results created on or after this date-time (ISO 8601).
      schema:
        type: string
        format: date-time
    queryCreatedDateLt:
      name: createdDateLt
      in: query
      required: false
      description: Filter results created before this date-time (ISO 8601).
      schema:
        type: string
        format: date-time
    queryEndDate:
      name: endDate
      in: query
      required: false
      description: End of the date range filter (ISO 8601).
      schema:
        type: string
        format: date-time
    queryExpandBuildParams:
      name: expandBuildParams
      in: query
      description: Whether to expand and include full build parameters in the response.
      required: false
      schema:
        type: boolean
        default: false
    queryFederationQ:
      name: q
      in: query
      required: true
      example: test*bitgo.com
      schema:
        type: string
    queryFederationType:
      name: type
      in: query
      required: true
      example: name
      schema:
        type: string
        enum:
          - name
          - id
    queryLabel:
      name: label
      in: query
      description: The label of the wallet where the staking request was created.
      required: false
      schema:
        type: string
    queryPage:
      name: page
      in: query
      description: The page number for pagination.
      required: false
      schema:
        type: integer
        nullable: true
        default: 1
        minimum: 1
    queryPageNumber:
      name: page
      in: query
      required: false
      description: Page number to retrieve (1-based).
      schema:
        type: integer
        minimum: 1
        default: 1
    queryPageSize:
      name: pageSize
      in: query
      required: false
      description: Number of items per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    queryPageSize1:
      name: pageSize
      in: query
      description: The page size for pagination.
      required: false
      schema:
        type: integer
        nullable: true
        default: 20
        minimum: 1
        maximum: 100
    queryRequestStatus:
      name: requestStatus
      in: query
      required: false
      description: Filter by request status.
      style: form
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/GlobalGoStakingRequestStatus'
    querySortBy:
      name: sortBy
      in: query
      required: false
      description: Sort order for results. Prefix with '-' for descending order.
      schema:
        type: string
        enum:
          - createdDate
          - '-createdDate'
          - date
          - '-date'
        default: '-createdDate'
    querySortByCreatedDate:
      name: sortBy
      in: query
      description: Sort By field
      required: false
      schema:
        type: string
        default: '-createdDate'
        enum:
          - '-createdDate'
          - createdDate
    querySortByDate:
      name: sortBy
      in: query
      description: Sort By field
      required: false
      schema:
        type: string
        default: '-date'
        enum:
          - '-date'
          - date
    queryStartDate:
      name: startDate
      in: query
      required: false
      description: Start of the date range filter (ISO 8601).
      schema:
        type: string
        format: date-time
    reverse:
      name: reverse
      in: query
      description: True, if returning results in reverse order.
      schema:
        type: boolean
    scope:
      name: scopeId
      in: path
      description: The id of the scope.
      required: true
      schema:
        type: string
      example: c8234a0f-7722-44d7-bedc-bfded7bd24a7
    searchLabelWallets:
      name: searchLabel
      in: query
      example: My very first wallet
      description: Query for `Wallets` with a label containing this string
      schema:
        type: string
    showAllWallets:
      name: showAllWallets
      description: Include wallets that have `deleted` or `creationFailed` set to **true**
      in: query
      schema:
        type: boolean
    sortBy:
      name: sortBy
      in: query
      description: Customize sort order for the transfers by specifying the sort key.
      schema:
        type: string
        enum:
          - heightId
          - id
    state:
      name: state
      description: |
        The status of the transfer.
          • `confirmed` indicates the transaction is confirmed on chain.
          • `failed` indicates the transaction failed. `initialized` is the first state of a transaction and indicates the transaction is initialized.
          • `pendingApproval` indicates the transaction is initialized and pending approval.
          • `rejected` indicates the transaction was rejected by an approver.
          • `removed` indicates the transaction was reorganized from the mempool (it's still possible recieve confirmation in another block).
          • `replaced` indicates the transaction was replaced with a new transaction with higher fees.
          • `signed` indicates the transaction is signed and pending on-chain confirmation.
          • `unconfirmed` indicates the transaction is pending on-chain confirmation.
      in: query
      schema:
        type: array
        items:
          $ref: '#/components/schemas/TransferState'
    transactionIdx:
      name: transactionIdx
      in: path
      required: true
      schema:
        type: string
    txRequestSortDirection:
      name: sortDirection
      in: query
      description: Sorts order by field in specified sort direction, default ascending.
      schema:
        type: string
        enum:
          - ASC
          - DESC
    type:
      name: type
      in: query
      description: Filter on sending or receiving `Transfers`
      schema:
        type: string
        enum:
          - send
          - receive
    unspentIds:
      name: unspentIds
      in: query
      schema:
        type: array
        minItems: 1
        items:
          $ref: '#/components/schemas/UnspentId'
    valueGte:
      name: valueGte
      in: query
      description: >-
        Return transfers with a `value` that is greater than or equal to the
        given number
      schema:
        type: integer
    valueLt:
      name: valueLt
      in: query
      description: Return transfers with a `value` that is less than the given number
      schema:
        type: integer
    walletId:
      name: walletId
      description: Filter by wallet
      in: query
      schema:
        $ref: '#/components/schemas/Id'
  requestBodies: {}
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/GeneralError'
              - $ref: '#/components/schemas/ValidationError'
          example:
            code: BadRequest
            message: Bad Request
            status: 400
    BadRequestError:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
    BadRequestError1:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Bad Request
            errorName: BadRequest
            reqId: some-id
    Conflict:
      description: Conflict - The request conflicts with the current state of the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralError'
          example:
            code: Conflict
            message: A pending change already exists for this policy rule
            status: 409
    ConflictError:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Conflicting clientID
            errorName: Conflict
            reqId: some-id
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralError'
          example:
            code: AccessDenied
            message: License not added for enterprise
            status: 403
    ForbiddenError:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
    ForbiddenError1:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error1'
          examples:
            forbidden:
              summary: Insufficient permissions
              value:
                error: Forbidden, reqId=unk-nqo97l23l2ofpvgkbb8z
                errorName: backend:common:forbidden
                reqId: unk-nqo97l23l2ofpvgkbb8z
    ForbiddenError2:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Staking license not added for enterprise
            errorName: AccessDenied
            reqId: some-id
    ForbiddenError3:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WsError'
    InternalServerError:
      description: Server Error - Transient error please try again
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
    InternalServerError1:
      description: Server Error - Transient error please try again
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Database is down
            errorName: Internal_Server_Error
            reqId: some-id
    MalformedJSONError:
      description: Unprocessable Entity - JSON payload is improperly formatted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error1'
          examples:
            malformedJSON:
              summary: JSON payload is improperly formatted
              value:
                error: backend:common:malformedJSON
                errorName: backend:common:malformedJSON
                reqId: unk-nqo97l23l2ofpvgkbb8z
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralError'
          example:
            code: NotFound
            message: Touchpoint not found
            status: 404
    NotFoundError:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
    NotFoundError1:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Wallet not found
            errorName: NotFound
            reqId: some-id
    RateLimitError:
      description: Too Many Requests - Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error1'
          examples:
            rateLimitExceeded:
              summary: Too many API requests
              value:
                error: backend:common:rateLimitExceeded
                errorName: backend:common:rateLimitExceeded
                reqId: unk-nqo97l23l2ofpvgkbb8z
    ServerError:
      description: Server Error - Transient error please try again
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralError'
          example:
            code: Internal_Server_Error
            message: Database is down
            status: 500
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralError'
          example:
            code: Unauthorized
            message: Unauthorized
            status: 401
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
    UnauthorizedError1:
      description: Unauthorized - Invalid or missing authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error1'
          examples:
            unauthorized:
              summary: Unauthorized access
              value:
                error: Unauthorized
                errorName: Error
                reqId: unk-nqo97l23l2ofpvgkbb8z
    UnauthorizedError2:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StakingError'
          example:
            error: Unauthorized
            errorName: Unauthorized
            reqId: some-id
    internalServerError1:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error1'
          examples:
            internalServerError:
              summary: Generic server error - Reach out to support for more information
              value:
                error: backend:common:internalServerError
                errorName: backend:common:internalServerError
                reqId: unk-nqo97l23l2ofpvgkbb8z
  schemas:
    AccelerationIntent:
      title: AccelerationIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - acceleration
              description: Must be "acceleration".
            txid:
              type: string
              description: >-
                Transaction hash (0x-prefixed) of the pending transaction to
                accelerate.
            senderAddress:
              type: string
              description: Sender address of the original transaction.
          required:
            - intentType
            - txid
        - $ref: '#/components/schemas/BaseIntent'
      description: >-
        Base codec for acceleration intents. Replaces a stuck pending EVM
        transaction

        with a higher-fee version to accelerate confirmation (replace-by-fee).
    AccelerationIntent1:
      title: AccelerationIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - acceleration
            txid:
              type: string
          required:
            - intentType
            - txid
        - $ref: '#/components/schemas/BaseIntent1'
    AcceptStablecoinAgreementResponse:
      title: AcceptStablecoinAgreementResponse
      type: object
      description: Response from accepting minting terms
      properties:
        enterpriseId:
          type: string
          description: Enterprise ID that accepted the agreement
          example: 6437d9ae435d8b0007635c3f0db52154
          minLength: 1
        version:
          type: number
          description: Agreement version that was accepted
          example: 1
      required:
        - enterpriseId
        - version
    AccessTokenResponse:
      title: AccessTokenResponse
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        isExtensible:
          type: boolean
        adminScope:
          type: string
          enum:
            - read
            - full
        bitgoAdminPermissions:
          type: array
          items:
            type: string
        client:
          type: string
        created:
          type: string
          format: date-time
          title: ISO Date String
        enterprise:
          type: string
        expires:
          type: string
          format: date-time
          title: ISO Date String
        extensionAddress:
          type: string
        ip:
          type: string
          description: IP address of the client that requested this access token
          example: 127.0.0.1
          format: ipv4
        ipRestrict:
          type: array
          items:
            type: string
            description: >-
              IP addresses or CIDR block of clients that are allowed to use this
              token
        label:
          type: string
        origin:
          type: string
          description: BitGo environment that issued this token
          example: test.bitgo.com
        token:
          type: string
        scope:
          type: array
          example:
            - crypto_compare
            - user_manage
            - openid
            - profile
            - wallet_create
            - wallet_manage_all
            - wallet_approve_all
            - wallet_spend_all
            - wallet_edit_all
            - wallet_view_all
          items:
            type: string
            description: Session permissions
        unlock:
          allOf:
            - type: object
              properties:
                spendingLimits:
                  type: object
                  additionalProperties:
                    type: object
                    properties:
                      txCount:
                        type: number
                        description: The transaction count limit for the coin
                      txValue:
                        type: number
                        description: The transaction value limit for the coin
                      txValueLimit:
                        type: number
                        description: The maximum transaction value limit for the coin
                allErc20TokensLimit:
                  $ref: '#/components/schemas/AllErc20TokenLimit'
            - $ref: '#/components/schemas/Unlock'
        user:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        oauth:
          type: object
          properties:
            oauthRequired:
              type: boolean
            expires:
              type: string
              format: date-time
              title: ISO Date String
        isMobileAccessToken:
          type: boolean
          description: >-
            Flag indicating if this token was created via mobile session
            endpoint
      required:
        - id
        - isExtensible
    AccessTokenTemplateResponse:
      title: AccessTokenTemplateResponse
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        userId:
          type: string
        enterpriseId:
          type: string
        tokenScopes:
          type: array
          items:
            type: string
        allowedIPs:
          type: array
          items:
            type: string
        tokenLimits:
          $ref: '#/components/schemas/TokenLimits'
        permittedEnterprises:
          type: array
          items:
            type: string
        permittedWallets:
          type: array
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - id
        - name
        - userId
    Account:
      required:
        - id
        - name
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the account
        name:
          type: string
          description: Name for the trading account
      example:
        id: f230fdebfa084ffebc7e00515f54603f
        name: Example Trading Wallet
    AccountBalance:
      required:
        - currencyId
        - currency
        - balance
        - heldBalance
        - unsettledHeldBalance
        - tradableBalance
        - withdrawableBalance
      type: object
      properties:
        currencyId:
          type: string
          format: uuid
          description: ID of the currency
        currency:
          type: string
          description: Currency symbol
        balance:
          type: string
          format: decimal
          description: The total balance in the account
        heldBalance:
          type: string
          format: decimal
          description: >-
            The total balance reserved for some purpose, e.g. a pending
            withdrawal.
        unsettledHeldBalance:
          type: string
          format: decimal
          description: >-
            The total unsettled balance reserved for some purpose, e.g. a
            pending withdrawal.
        tradableBalance:
          type: string
          format: decimal
          description: The total balance available for trading
        withdrawableBalance:
          type: string
          format: decimal
          description: The total balance available for withdrawal
      example:
        currencyId: 6016e0a9-545a-45fb-8370-caab1680956a
        currency: BTC
        balance: '100.0'
        heldBalance: '10.0'
        unsettledHeldBalance: '0.0'
        tradableBalance: '90.0'
        withdrawableBalance: '90.0'
    AccountBalanceRecord:
      title: AccountBalanceRecord
      type: object
      additionalProperties:
        type: object
        properties:
          available:
            type: string
            description: >-
              Amount of the specified currency available in the specified
              account.

              The amount is represented as a non-negative integer string in the
              currency's base units.
          held:
            type: string
            description: >-
              Amount of the specified currency held (encumbered) in the
              specified account.

              The amount is represented as a non-negative integer string in the
              currency's base units.
        required:
          - available
          - held
    AccountBalances:
      type: array
      description: List of balance entries for a trading account
      items:
        $ref: '#/components/schemas/AccountBalance'
    AccountBaseBuildOptions:
      title: AccountBaseBuildOptions
      type: object
      properties:
        nonce:
          oneOf:
            - type: string
            - type: number
          description: Override the on-chain nonce for this transaction.
    AccountBaseBuildOptions1:
      title: AccountBaseBuildOptions
      type: object
      properties:
        nonce:
          oneOf:
            - type: string
            - type: number
    AccountBaseBuildOptions2:
      type: object
      properties:
        nonce:
          type: string
    AccountBaseConsolidateIntent:
      title: AccountBaseConsolidateIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - consolidate
              description: Must be "consolidate".
            receiveAddress:
              type: string
              description: >-
                Destination address for consolidated funds. Must be a
                wallet-owned address.
            senderAddressIndex:
              allOf:
                - $ref: '#/components/schemas/optionalNumber'
              description: Index of the wallet address to use as the sender.
            consolidateId:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: Opaque identifier used to correlate consolidation requests.
            recipients:
              type: array
              items:
                allOf:
                  - type: object
                    properties:
                      tokenData:
                        $ref: '#/components/schemas/TokenData'
                  - $ref: '#/components/schemas/RecipientEntry'
                description: Token recipients for token consolidation flows.
            keepAlive:
              allOf:
                - $ref: '#/components/schemas/optionalBoolean'
              description: >-
                When true, leaves a small amount in the source address to keep
                it alive.
          required:
            - intentType
            - receiveAddress
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    AccountBaseCreateAccountIntent:
      title: AccountBaseCreateAccountIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - createAccount
            name:
              $ref: '#/components/schemas/optionalString'
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    AccountBaseUpdateAccountIntent:
      title: AccountBaseUpdateAccountIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - updateAccount
            options:
              $ref: '#/components/schemas/optionalUnknownObject'
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    AccountId:
      type: string
      description: The ID of the account
    AccountType:
      title: AccountType
      type: string
      enum:
        - individual
        - entity
    Accounts:
      type: array
      items:
        $ref: '#/components/schemas/Account'
    AchAccountResponseProps:
      title: AchAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - ach
        routingNumber:
          $ref: '#/components/schemas/RoutingNumberString'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - routingNumber
        - accountType
    AchBankAccountRequest:
      title: AchBankAccountRequest
      description: Request schema for creating an ACH bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - ach
              description: Must be 'ach' for ACH accounts
            routingNumber:
              type: string
              description: Routing number for the ACH account
          required:
            - type
            - routingNumber
        - $ref: '#/components/schemas/BankAccountRequest1'
    AchBankAccountResponse:
      title: AchBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/AchAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    ActionType:
      title: ActionType
      type: string
      enum:
        - deny
        - getApproval
        - getEnterpriseUserApproval
        - getUserRoleApproval
        - getAnyApproval
        - getFinalApproval
        - getVideoApproval
        - getIdVerification
        - verifyWalletRebalance
        - getCustodianApproval
        - getCustodialSignature
        - triggerWebhookNotification
        - performLivenessVerification
        - recommendBackingWalletRouting
        - getManualTrustReview
        - getManualSupportReview
        - getSupportManagerApproval
        - getVideoApprovalFromSupport
    Actions:
      type: object
      description: |
        Wrapper object for a list of Actions. Not paginated.
      required:
        - actions
      properties:
        actions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/AlwaysDenyAction'
              - $ref: '#/components/schemas/WalletAdminAction'
              - $ref: '#/components/schemas/FinalApprovalAction'
              - $ref: '#/components/schemas/EnterpriseAdminAction'
              - $ref: '#/components/schemas/EnterpriseUserAction'
    ActiveDateRange:
      title: ActiveDateRange
      type: object
      properties:
        startDate:
          oneOf:
            - type: string
              format: date-time
              title: ISO Date String
            - type: string
              format: date
              title: Date String
          description: >-
            ISO 8601 Datetime (example at
            https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If
            present, will use as the start date of a new auditable item. If not
            present, will use the current date to create a new auditable item.
            Start date is inclusive, i.e. we will start billing/functionality at
            this instant and afterwards.
        startReason:
          type: string
          description: >-
            An optional note describing the reason the auditable item was
            added/created.
        id:
          type: string
          description: Unique identifier for the date range.
        endDate:
          nullable: true
          oneOf:
            - type: string
              format: date-time
              title: ISO Date String
            - type: string
              format: date
              title: Date String
          description: >-
            ISO 8601 Datetime (example at
            https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If
            present, will use as the end date of a new auditable item. If not
            present, we will set the endDate to null, and we will assume an
            indefinite range. endDate is exclusive, i.e. we will end
            billing/functionality up to but not at this particular time.
        endReason:
          type: string
          description: An optional note describing the reason the auditable item was ended.
      required:
        - startDate
        - startReason
    AdaClaimRewardsRequestEntityProperties:
      title: ADA claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
    AdaClaimRewardsTransactionProperties:
      title: ADA Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
    AdaConsolidateIntent:
      title: ADA Consolidate Intent
      allOf:
        - type: object
          properties:
            unspents:
              $ref: '#/components/schemas/optionalStringArray'
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
    AdaDelegationProperties:
      title: ADA Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          required:
            - rewardAddress
          properties:
            rewardAddress:
              type: string
            dRepId:
              type: string
              nullable: true
    AdaPaymentIntent:
      title: ADA Payment Intent
      allOf:
        - type: object
          properties:
            unspents:
              $ref: '#/components/schemas/optionalStringArray'
          required:
            - unspents
        - $ref: '#/components/schemas/PaymentIntent'
    AdaStakeClaimRewardsIntent:
      title: ADA Stake Claim Rewards Intent
      allOf:
        - $ref: '#/components/schemas/StakeClaimRewardsIntent'
    AdaStakeIntent:
      title: ADA Stake Intent
      allOf:
        - type: object
          properties:
            poolKeyHash:
              type: string
            dRepId:
              type: string
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - poolKeyHash
            - dRepId
        - $ref: '#/components/schemas/StakeIntent'
    AdaStakeIntent1:
      title: Ada Stake
      allOf:
        - $ref: '#/components/schemas/StakeIntent2'
        - type: object
          properties:
            poolKeyHash:
              type: string
              description: |
                The pool key hash to which the coins will be delegated to.
          required:
            - poolKeyHash
    AdaStakingDelegation:
      title: ADA Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    AdaStakingRequest:
      title: ADA
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/AdaStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        rewardAddress:
          description: The reward address for staking rewards.
          type: string
        dRepId:
          description: The delegated representative ID.
          type: string
        isVoteDelegationRequest:
          description: Whether this is a vote delegation request.
          type: boolean
    AdaStakingRequestEntityProperties:
      title: ADA staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              nullable: true
            delegationId:
              type: string
              nullable: true
            rewardAddress:
              type: string
              description: Address where staking rewards are sent.
            delegatedRepId:
              type: string
              nullable: true
              description: Delegated representative ID (DRep).
            isVoteDelegationRequest:
              type: boolean
              nullable: true
    AdaStakingRequestPOSTBody:
      title: ADA stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        rewardAddress:
          description: The reward address for staking rewards.
          type: string
        dRepId:
          description: The delegated representative ID.
          type: string
        isVoteDelegationRequest:
          description: Whether this is a vote delegation request.
          type: boolean
    AdaStakingTransactionProperties:
      title: ADA Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            delegatedRepId:
              type: string
    AdaUnStakingRequestPOSTBody:
      title: ADA unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    AdaUnstakeIntent:
      title: ADA Unstake Intent
      allOf:
        - type: object
          properties:
            poolKeyHash:
              type: string
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - poolKeyHash
        - $ref: '#/components/schemas/UnstakeIntent'
    AdaUnstakingTransactionProperties:
      title: ADA Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
    AdaVoteDelegationIntent:
      title: ADA Vote Delegation Intent
      allOf:
        - type: object
          properties:
            dRepId:
              type: string
          required:
            - dRepId
        - $ref: '#/components/schemas/VoteDelegationIntent'
    AdaWallet:
      title: Ada Wallet
      type: object
      properties:
        rootAddress:
          type: string
        addressCount:
          type: string
        pendingChainInitialization:
          type: boolean
        rewardAddress:
          type: string
        lastChainIndex:
          type: object
          additionalProperties:
            type: number
      required:
        - rootAddress
        - addressCount
        - pendingChainInitialization
        - rewardAddress
    AddDeviceTokenRequest:
      required:
        - appId
        - deviceToken
        - platform
        - provider
      type: object
      properties:
        deviceToken:
          minLength: 1
          type: string
        provider:
          type: string
          enum:
            - fcm
        platform:
          type: string
          enum:
            - ANDROID
            - IOS
        appId:
          minLength: 1
          type: string
    AddDeviceTokenResponse:
      required:
        - appId
        - bitgoUserId
        - deviceToken
        - message
        - platform
        - provider
      type: object
      properties:
        deviceToken:
          type: string
        platform:
          type: string
          enum:
            - ANDROID
            - IOS
        provider:
          type: string
          enum:
            - fcm
        appId:
          type: string
        bitgoUserId:
          type: string
        message:
          type: string
    AddUserToOrganizationEnterpriseResponseC:
      title: AddUserToOrganizationEnterpriseResponseC
      type: object
      properties:
        userId:
          type: string
          minLength: 1
      required:
        - userId
    AdditionalEnterpriseInfo:
      title: AdditionalEnterpriseInfo
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/GeographicAddress'
    Address:
      title: Address
      type: object
      properties:
        address:
          $ref: '#/components/schemas/optionalString'
        option:
          $ref: '#/components/schemas/optionalUnknownObject'
    Address1:
      title: Address
      type: object
      properties:
        address:
          $ref: '#/components/schemas/optionalString'
        option:
          $ref: '#/components/schemas/optionalUnknownObject'
    Address2:
      type: object
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: platform public id for an address
        address:
          $ref: '#/components/schemas/AddressString3'
        chain:
          $ref: '#/components/schemas/Chain'
        index:
          type: integer
        coin:
          type: string
        lastNonce:
          type: integer
          default: -1
        wallet:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The wallet which contains this address
        coinSpecific:
          type: object
          description: Properties which are specific to certain coin types
          properties:
            xlm:
              $ref: '#/components/schemas/AddressCoinSpecificXlm'
            txlm:
              $ref: '#/components/schemas/AddressCoinSpecificXlm'
        balance:
          allOf:
            - type: object
            - $ref: '#/components/schemas/AddressBalance'
          description: >-
            Balance of the address. In case of Eth and Celo, if
            returnBalancesForToken is passed with includeBalances, then it will
            return token balance in the address object. This field will be
            present only when `includeBalances` query param is passed as true.
        label:
          $ref: '#/components/schemas/AddressLabel'
        addressType:
          $ref: '#/components/schemas/AddressType1'
    AddressBalance:
      type: object
      properties:
        updated:
          type: string
          description: The last time a transaction affected the balance of this address
          format: date-time
        balance:
          type: integer
          description: The cleared balance of the address
          example: 50000
        balanceString:
          type: string
          description: >-
            String representation of `balance`. Guaranteed to not lose
            precision.
          example: '50000'
        totalReceived:
          type: integer
          description: The total amount received on this address (in the chain's base unit)
        totalSent:
          type: integer
          description: The total amount send from this address (in the chain's base unit)
        confirmedBalanceString:
          type: string
          description: >
            The total balance of confirmed transactions for the address (in the
            chain's base unit).

            Guaranteed to not lose precision.
          example: '40000'
        spendableBalanceString:
          type: string
          description: >
            The total balance of the address (in the chain's base unit) which
            may

            be used as inputs for creating new transactions in string
            representation.

            Guaranteed to not lose precision.
          example: '40000'
    AddressChain:
      title: AddressChain
      type: number
      enum:
        - 0
        - 1
        - 10
        - 11
        - 20
        - 21
        - 30
        - 31
        - 40
        - 41
    AddressCoinSpecificXlm:
      type: object
      properties:
        memoId:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
            - example: '1'
          description: Latest memo id generated for the wallet
        rootAddress:
          type: string
          description: Root address of the wallet
          example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM
    AddressLabel:
      type: string
      nullable: true
      example: Bob's Hot Wallet Address
      maxLength: 250
      description: A human-readable label for the address.
    AddressLabelString:
      title: AddressLabelString
      type: string
      description: A human-readable label for the address
      example: Bob's Hot Wallet Address
      maxLength: 250
    AddressListCondition:
      title: AddressListCondition
      type: object
      properties:
        addresses:
          type: array
          items:
            type: string
        metaData:
          type: object
          additionalProperties:
            type: object
            additionalProperties: {}
      required:
        - addresses
        - metaData
    AddressListRuleUpdateCondition:
      title: AddressListRuleUpdateCondition
      type: object
      properties:
        add:
          type: string
        remove:
          type: string
        metaData:
          type: object
          additionalProperties:
            type: object
            additionalProperties: {}
    AddressOptions:
      title: AddressOptions
      allOf:
        - type: object
          properties:
            label:
              type: string
              minLength: 1
            required:
              type: boolean
            type:
              type: string
              enum:
                - text
                - dropdown
            placeholder:
              type: string
              minLength: 1
          required:
            - label
            - required
            - type
        - $ref: '#/components/schemas/AddressType2'
    AddressProofResult:
      title: AddressProofResult
      type: object
      description: Proof of address ownership
      properties:
        iou:
          type: boolean
          description: True if this is an IOU
        address:
          type: string
          description: The address
        signature:
          type: string
          description: The proof signature
        prefix:
          type: string
          description: A 64-character random string used to generate the proof
        chain:
          allOf:
            - $ref: '#/components/schemas/ProofChain'
          description: The coin name ('BITCOIN' or 'ETHEREUM')
        proofType:
          allOf:
            - $ref: '#/components/schemas/ProofType'
          description: The type of proof
        auxProofData:
          type: array
          items:
            type: object
            properties:
              type:
                allOf:
                  - $ref: '#/components/schemas/AuxProofType'
                description: The type of data
              data:
                type: object
                properties:
                  script:
                    type: string
                    description: >-
                      The REDEEM_SCRIPT or WITNESS_SCRIPT associated with the
                      address
                  nonce:
                    type: string
                  salt:
                    type: string
                  init_code_hash:
                    type: string
            required:
              - type
              - data
      required:
        - iou
    AddressQueryResult:
      title: AddressQueryResult
      type: object
      properties:
        coin:
          $ref: '#/components/schemas/CoinString'
        pendingAddressCount:
          type: number
          description: >-
            Total number of addresses pending on-chain initialization on this
            wallet **Note:** for wallets with many addresses (100,000 or more),
            this property may be omitted for performance reasons. If the pending
            address count is needed for a large wallet, the
            `includeTotalAddressCount` query parameter can be used to force an
            address count to be returned with the initial page of addresses.
        totalAddressCount:
          type: number
          description: >-
            Total number of addresses which match the provided query parameters.
            **Note:** for wallets with many addresses (100,000 or more), this
            property may be omitted for performance reasons. If the total
            address count is needed for a large wallet, the
            `includeTotalAddressCount` query parameter can be used to force an
            address count to be returned with the initial page of addresses.
        addresses:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  chain:
                    $ref: '#/components/schemas/AddressChain'
                  coin:
                    $ref: '#/components/schemas/CoinString'
                  index:
                    type: number
                  wallet:
                    type: string
                required:
                  - chain
                  - coin
                  - index
                  - wallet
              - $ref: '#/components/schemas/BaseWalletAddress'
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object in the previous batch.  To get the next batch of
            results, pass this value via the `prevId` query parameter.
          example: 585951a5df8380e0e3063e9f
          format: uuid
        count:
          type: number
          description: Total number of addresses returned in this response
      required:
        - coin
    AddressString:
      title: AddressString
      type: string
      example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
      maxLength: 250
    AddressString3:
      title: Address
      type: string
      example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
      maxLength: 500
    AddressSubdocument:
      title: AddressSubdocument
      oneOf:
        - $ref: '#/components/schemas/AlgorandAddress'
        - $ref: '#/components/schemas/AtomAddress'
        - $ref: '#/components/schemas/AvaxPAddress'
        - $ref: '#/components/schemas/UtxoAddress'
        - $ref: '#/components/schemas/BitcoinCashAddress'
        - $ref: '#/components/schemas/CasperAddress'
        - $ref: '#/components/schemas/DotAddress'
        - $ref: '#/components/schemas/EosAddress'
        - $ref: '#/components/schemas/EthereumAddress'
        - $ref: '#/components/schemas/Ethereum2Address'
        - $ref: '#/components/schemas/FiatAddress'
        - $ref: '#/components/schemas/HederaAddress'
        - $ref: '#/components/schemas/OffchainAddressSubdocument'
        - $ref: '#/components/schemas/SolAddress'
        - $ref: '#/components/schemas/StacksAddress'
        - $ref: '#/components/schemas/StellarAddress'
        - $ref: '#/components/schemas/TestcoinAddress'
        - $ref: '#/components/schemas/TezosAddress'
        - $ref: '#/components/schemas/TronAddress'
        - $ref: '#/components/schemas/XRPAddress'
        - $ref: '#/components/schemas/TonAddress'
    AddressType1:
      type: string
      example: p2sh
      enum:
        - p2sh
        - p2shP2wsh
        - p2wsh
        - p2tr
        - p2trMusig2
    AddressType2:
      title: AddressType
      oneOf:
        - type: object
          properties:
            maxLength:
              type: number
            type:
              type: string
              enum:
                - text
          required:
            - maxLength
            - type
        - type: object
          properties:
            options:
              type: object
              additionalProperties:
                type: string
            type:
              type: string
              enum:
                - dropdown
          required:
            - options
            - type
    AddressWithBalanceQueryResult:
      title: AddressWithBalanceQueryResult
      type: object
      description: >-
        Represents the result of a query for addresses with balances.

        This structure contains the details of a set of addresses, their
        associated balances,

        and pagination information about the query results.
      properties:
        coin:
          type: string
          description: The coin associated with the address balances
          example: trx
        page:
          type: number
          description: The current page number
        totalAddressCount:
          type: number
          description: Total number of addresses present
        totalPages:
          type: number
          description: Total number of pages available for pagination
        addresses:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  chain:
                    $ref: '#/components/schemas/AddressChain'
                  coin:
                    $ref: '#/components/schemas/CoinString'
                  index:
                    type: number
                  wallet:
                    type: string
                required:
                  - chain
                  - coin
                  - index
                  - wallet
              - $ref: '#/components/schemas/BaseWalletAddress'
            description: List of addresses with their balances and other fields
        message:
          type: string
          description: Optional message from the response
        count:
          type: number
          description: Count of the addresses in the current response
      required:
        - coin
    AdvancedListCondition:
      title: AdvancedListCondition
      type: object
      properties:
        entries:
          type: array
          items:
            type: object
            properties:
              item:
                type: string
                description: >-
                  Either a valid address or a wallet, enterprise, or
                  organization id. Must be unique in this whitelist.
              metaData:
                type: object
                additionalProperties: {}
                description: >-
                  Any data about this entry that is not used to determine when
                  to enforce the policy
              type:
                allOf:
                  - $ref: '#/components/schemas/AdvancedListType'
                description: the kind of resource a list rule entry refers to
              verificationState:
                type: string
                enum:
                  - unverified
                  - verified
              verifiedBy:
                type: string
                enum:
                  - unverifiedRule
                  - fastWithdrawal
                  - caasWaiverThreshold
                description: >-
                  the source that verified this entry (unverifiedRule or
                  fastWithdrawal)
              verifiedAt:
                type: string
                description: timestamp when this entry was first verified
                format: date-time
                title: ISO Date String
            required:
              - item
              - type
            description: >-
              Entries specifying which addresses/ wallets/ enterprises are on
              the whitelist
      required:
        - entries
    AdvancedListRuleEntry:
      title: AdvancedListRuleEntry
      type: object
      properties:
        item:
          type: string
          description: >-
            Either a valid address or a wallet, enterprise, or organization id.
            Must be unique in this whitelist.
        metaData:
          type: object
          additionalProperties: {}
          description: >-
            Any data about this entry that is not used to determine when to
            enforce the policy
        type:
          allOf:
            - $ref: '#/components/schemas/AdvancedListType'
          description: the kind of resource a list rule entry refers to
        verificationState:
          type: string
          enum:
            - unverified
            - verified
        verifiedBy:
          type: string
          enum:
            - unverifiedRule
            - fastWithdrawal
            - caasWaiverThreshold
          description: >-
            the source that verified this entry (unverifiedRule or
            fastWithdrawal)
        verifiedAt:
          type: string
          description: timestamp when this entry was first verified
          format: date-time
          title: ISO Date String
      required:
        - item
        - type
    AdvancedListRuleEntry1:
      title: Advanced whitelist rule entry
      type: object
      properties:
        item:
          allOf:
            - oneOf:
                - $ref: '#/components/schemas/AddressString3'
                - $ref: '#/components/schemas/Id'
          description: >-
            A valid blockchain address, wallet ID, enterprise ID, or
            organization ID. Must be unique in this whitelist.
        metaData:
          type: object
          description: >-
            Any data about this entry that is not used to determine when to
            enforce the policy
          properties:
            label:
              type: string
              description: >-
                A client-specified label for this entry. Label must be unique or
                not set.
            owner:
              type: string
              description: >-
                The legal owner of the address, wallet, enterprise, or
                organization.
              example: Legal Owner LLC
            address:
              type: string
              description: >-
                The address of the receiver wallet if the whitelist is of type
                'walletId'.
          additionalProperties: true
        type:
          $ref: '#/components/schemas/ListRuleEntryType'
        verificationState:
          type: string
          enum:
            - unverified
            - verified
          description: A state denoting whether entries have already been verified.
        verifiedBy:
          type: string
          enum:
            - unverifiedRule
            - fastWithdrawal
          description: >-
            The source that verified this entry (unverifiedRule or
            fastWithdrawal)
      required:
        - item
        - type
    AdvancedListRuleUpdateCondition:
      title: AdvancedListRuleUpdateCondition
      type: object
      properties:
        add:
          $ref: '#/components/schemas/AdvancedListRuleEntry'
        remove:
          type: object
          properties:
            item:
              type: string
            type:
              type: string
              enum:
                - address
                - enterpriseId
                - walletId
                - organizationId
          required:
            - item
        verifyItems:
          type: object
          properties:
            items:
              type: array
              items:
                type: string
          required:
            - items
    AdvancedListType:
      title: AdvancedListType
      type: string
      enum:
        - address
        - enterpriseId
        - walletId
        - organizationId
    AggregatorSourceType:
      title: AggregatorSourceType
      type: string
      enum:
        - bitcoinBuilder
        - ftx
        - ftx-retail
        - ftx-bahamas
        - ftx-bahamas-retail
        - sofi
        - sofiDocuSignPendingDeprecation
        - bitcoinWell
        - lucid
        - wlf
        - walrus
        - mtgox
        - landingPageReferral
        - caas
        - caas-testnet-prospect
        - test
    Agreements:
      title: Agreements
      type: object
      properties:
        patriotAct:
          type: number
        termsOfUse:
          type: number
        patriotActAcceptanceDate:
          type: string
          format: date-time
          title: ISO Date String
        termsOfUseAcceptanceDate:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - patriotAct
        - termsOfUse
    AlgorandAddress:
      title: Algorand Address
      type: object
      properties:
        rootAddress:
          type: string
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
        addressVersion:
          type: number
        threshold:
          type: number
        bitgoKey: {}
        bitgoPubKey:
          type: string
      required:
        - rootAddress
    AlgorandSendQueue:
      title: Algorand
      type: object
      properties:
        account:
          type: string
        feeString:
          type: string
        trustLines:
          type: array
          items:
            type: object
            properties:
              limit:
                type: string
              token:
                type: string
    AlgorandWallet:
      title: Algorand Wallet
      type: object
      properties:
        addressVersion:
          type: number
        rootAddress:
          type: string
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
      required:
        - addressVersion
        - rootAddress
    AllErc20TokenLimit:
      title: AllErc20TokenLimit
      type: object
      properties:
        enabled:
          type: boolean
          description: Indicates if the limit is enabled for all ERC20 tokens
        txCount:
          type: number
          description: The transaction count limit for all ERC20 tokens
        txValue:
          type: string
          description: The transaction value limit for all ERC20 tokens
        txValueLimitInSmallUnits:
          type: string
          description: The transaction value limit in small units for all ERC20 tokens
        maxLimit:
          type: boolean
          description: Indicates if the maximum limit is enabled
      required:
        - enabled
        - txCount
        - txValue
    AllErc20TokensTemplateLimit:
      title: AllErc20TokensTemplateLimit
      type: object
      properties:
        enabled:
          type: boolean
        txValueLimit:
          type: string
        maxLimit:
          type: boolean
    AllWalletsScope:
      type: object
      description: |
        A policy rule scope. For example the All Wallets scope.
      required:
        - id
        - name
        - label
        - description
        - conditions
      properties:
        id:
          type: string
          description: Unique id of the scope. A UUID.
          example: 306258df-dcab-489e-a9fe-ff28ce9fa312
        name:
          type: string
          description: Name of the scope.
          enum:
            - wallet.segregated
          example: wallet.segregated
        label:
          type: string
          description: A label for the scope which can be shown to an end user.
          example: Wallet
        description:
          type: string
          description: A description for the scope which can be shown to an end user.
          example: A BitGo Wallet
        conditions:
          type: array
          description: >-
            A list of Filtering Conditions the scope supports. For example the
            Wallet Type Filtering condition.
          items:
            anyOf:
              - $ref: '#/components/schemas/WalletTypeCondition'
              - $ref: '#/components/schemas/WalletIdsCondition'
              - $ref: '#/components/schemas/WalletAllCondition'
    AllocationStatus:
      title: AllocationStatus
      type: string
      enum:
        - cleared
        - released
        - reserved
    AllocationType:
      title: AllocationType
      type: string
      enum:
        - allocation
        - deallocation
    AlwaysDenyAction:
      title: Automatically reject
      type: object
      description: Automatically denies a transfer.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
      properties:
        name:
          type: string
          description: The name of the action.
          enum:
            - approvals.always.deny
          example: approvals.always.deny
        label:
          type: string
          description: A label for the action which can be shown to an end user.
          example: Deny
        description:
          type: string
          description: A description for the action which can be shown to an end user.
          example: Automatically reject
        status:
          type: string
          description: >
            Status of the action. Indicates if the Actions is usable `ACTIVE` or
            not `INACTIVE`.


            * `ACTIVE` - The action is available for use.

            * `INACTIVE` - The action is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal action, false otherwise.
          example: false
    AlwaysDenyActionRequest:
      title: Automatically reject
      type: object
      description: Automatically reject.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.always.deny
          example: approvals.always.deny
    AmlAttestation:
      type: object
      properties:
        userId:
          type: string
          minLength: 32
          maxLength: 32
          description: BitGo user ID of the person performing the attestation
        attestationDate:
          type: string
          format: date-time
          description: ISO 8601 date of the attestation
        attested:
          type: boolean
          description: Whether the AML attestation was affirmed
      required:
        - userId
        - attestationDate
        - attested
      title: AmlAttestation
      description: AML attestation data (who attested, when, and the yes/no answer)
    Amount:
      title: Amount
      type: object
      properties:
        value:
          type: string
        symbol:
          type: string
      required:
        - value
        - symbol
    Amount1:
      title: Amount
      type: object
      properties:
        value:
          type: string
        symbol:
          type: string
      required:
        - value
        - symbol
    Amount2:
      type: object
      properties:
        value:
          type: string
          description: The value should be a valid number.
          example: '100'
        symbol:
          type: string
          description: The coin or token the value is referring to.
          example: usdc
      required:
        - value
        - symbol
    Amount3:
      type: object
      required:
        - quantity
        - currency
      properties:
        quantity:
          type: string
          format: decimal
          description: The specified quantity.
        currency:
          type: string
          description: The specified quantity currency.
      example:
        quantity: '100.0'
        currency: USD
    AmountConditionParameter:
      title: Amount
      type: object
      description: The amount incoming transfers will be compared with.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - amount
          example: amount
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The amount to compare to
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The transfer amount will be compared with this limit
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - NON_NEGATIVE_NUMBER
          example: NON_NEGATIVE_NUMBER
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    AnchorType:
      title: AnchorType
      type: string
      enum:
        - policyRuleId
        - settlementId
        - crossChainRecoveryId
    AnnotatedTransfer:
      allOf:
        - $ref: '#/components/schemas/Transfer'
        - type: object
          properties:
            confirmations:
              type: integer
              description: >-
                The number of blocks that have been confirmed since this
                Transfer's block was confirmed
            entries:
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                    description: If this address was labeled by the user, this is the label
    AnnotatedTransferWithInputsOutputs:
      allOf:
        - $ref: '#/components/schemas/AnnotatedTransfer'
        - type: object
          properties:
            inputs:
              type: array
              description: If this is a Transfer on a UTXO coin, the array of inputs
              items:
                $ref: '#/components/schemas/Unspent'
            outputs:
              type: array
              description: If this is a Transfer on a UTXO coin, the array of outputs
              items:
                $ref: '#/components/schemas/Unspent'
    PlatformError:
      title: Api Error
      allOf:
        - type: object
          properties:
            name:
              type: string
              description: Error code
            context:
              type: object
              additionalProperties: {}
              description: Properties that apply to a specific error name
          required:
            - context
        - $ref: '#/components/schemas/PlatformErrorNoName'
    PlatformError2:
      title: PlatformError
      allOf:
        - type: object
          properties:
            name:
              type: string
            context:
              type: object
              additionalProperties: {}
            status:
              type: number
            additionalDetails:
              type: object
              properties:
                retryAfter:
                  type: number
              required:
                - retryAfter
          required:
            - context
        - $ref: '#/components/schemas/PlatformErrorNoName2'
    PlatformError3:
      title: API error
      allOf:
        - $ref: '#/components/schemas/PlatformErrorNoName3'
        - properties:
            context:
              type: object
              description: Properties that apply to a specific error name
            name:
              type: string
              description: Error code
          required:
            - name
    PlatformErrorNoName:
      title: PlatformErrorNoName
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
        requestId:
          type: string
          description: Client request id
      required:
        - error
        - requestId
    PlatformErrorNoName2:
      title: PlatformErrorNoName
      type: object
      properties:
        error:
          type: string
        requestId:
          type: string
      required:
        - error
        - requestId
    PlatformErrorNoName3:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
        requestId:
          type: string
          description: Client request id
      required:
        - error
        - requestId
    ApiKeyAndSecretConnectionKey:
      title: ApiKeyAndSecretConnectionKey
      type: object
      properties:
        schema:
          type: string
          enum:
            - apiKeyAndSecret
        apiKey:
          type: string
          minLength: 1
        apiSecret:
          type: string
          minLength: 1
      required:
        - schema
        - apiKey
        - apiSecret
    ApiRuleType:
      title: ApiRuleType
      type: string
      enum:
        - advancedWhitelist
        - coinAddressWhitelist
        - coinAddressBlacklist
    ApprovalAction:
      title: ApprovalAction
      type: string
      enum:
        - approved
        - rejected
      description: Status type for approval actions
    ApprovalListResponse:
      title: ApprovalListResponse
      type: object
      properties:
        pendingApprovals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              wallet:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              walletType:
                type: string
              walletSubType:
                type: string
                description: The subtype of the wallet (e.g., custodialHot)
              wallets:
                type: array
                items:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
                  description: The wallets of the pending approval
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organization:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organizationName:
                type: string
                description: The organization name
              bitgoOrg:
                type: string
                description: The BitGo organization
              creator:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              createDate:
                type: string
                description: The creation date of the pending approval
                format: date-time
                title: ISO Date String
              approvedDate:
                type: string
                description: The date when the approval was granted
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: >-
                  The date when the approval was last updated (any update, not
                  just processing)
                format: date-time
                title: ISO Date String
              keyCurve:
                type: string
                enum:
                  - secp256k1
                  - ed25519
                  - bls12_381
                description: The key curve of the coin attached to this pending approval
              info:
                allOf:
                  - $ref: '#/components/schemas/PendingApprovalInfo'
                description: Information about the pending approval
              state:
                allOf:
                  - $ref: '#/components/schemas/PendingApprovalState'
                description: The state of the pending approval
              scope:
                type: string
                enum:
                  - enterprise
                  - wallet
                  - organization
                  - global
                description: What kind of entity the Pending Approval is tied to
              userIds:
                type: array
                items:
                  type: string
                  description: All the Users who should see this Pending Approval
              approvalsRequired:
                type: number
                example: 1
                minimum: 1
              walletLabel:
                type: string
                description: Label for the wallet
              addressLabels:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      $ref: '#/components/schemas/AddressString'
                    label:
                      type: string
                      description: The label
                    walletLabel:
                      type: string
                      description: The wallet label
                  required:
                    - address
                    - label
                  description: Address labels of recipients in this Pending Approval
              resolvers:
                type: array
                items:
                  type: object
                  description: Resolvers for the pending approval
                  properties:
                    autoApproved:
                      type: boolean
                      description: Whether the resolution was auto approved
                    date:
                      type: string
                      description: The date of resolution
                      format: date-time
                      title: ISO Date String
                    resolutionAction:
                      type: string
                      enum:
                        - approve
                        - reject
                        - skip
                        - fail
                      description: Action taken during resolution
                    resolutionMemo:
                      type: string
                      description: Memo regarding the resolution
                    resolutionType:
                      allOf:
                        - $ref: '#/components/schemas/PendingApprovalStatePending'
                      description: The type of resolution
                    user:
                      type: string
                      description: The user who resolved the approval
                    videoApprover:
                      type: string
                      description: The approver of the video resolution
                    videoException:
                      type: string
                      description: Exception details for the video
                    videoLink:
                      type: string
                      description: Link to the resolution video
                  required:
                    - resolutionType
              approvers:
                type: array
                items:
                  type: string
                  description: List of approvers
              singleRunResults:
                type: array
                items:
                  type: object
                  properties:
                    ruleId:
                      type: string
                      description: The rule ID
                    triggered:
                      type: boolean
                      description: Whether the rule was triggered
                  description: Results from single run checks
              txRequestId:
                type: string
                description: Transaction request ID
                example: 123e4567-e89b-12d3-a456-426614174000
                format: uuid
              videoId:
                type: object
                description: ID for the video related to the approval
                properties:
                  date:
                    type: string
                    description: The date of the video ID
                    format: date-time
                    title: ISO Date String
                  user:
                    type: string
                    description: The user associated with the video ID
                  videoApprover:
                    type: string
                    description: The approver of the video
                  videoException:
                    type: string
                    description: The exception related to the video
                  videoLink:
                    type: string
                    description: The link to the video
              version:
                type: number
                description: Version of the pending approval
              policyEvaluationId:
                type: string
                description: ID for the policy evaluation
              actions:
                type: array
                items:
                  type: object
                  properties:
                    approvers:
                      type: array
                      items:
                        type: string
                        description: The approvers of the action
                    excludedApprovers:
                      type: array
                      items:
                        type: string
                        description: >-
                          Users that are eligible approvers but cannot approve
                          (e.g. already approved or the initiator)
                    id:
                      type: string
                      description: The ID of the action
                    name:
                      type: string
                      description: The name of the action
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                      description: The operator of the action
                    parameters:
                      allOf:
                        - $ref: '#/components/schemas/PolicyActionParameters'
                      description: The parameters of the action
                    resolvers:
                      type: array
                      items:
                        type: object
                        description: The resolvers of the action
                        properties:
                          autoApproved:
                            type: boolean
                            description: Whether the resolution was auto approved
                          date:
                            type: string
                            description: The date of resolution
                            format: date-time
                            title: ISO Date String
                          resolutionAction:
                            type: string
                            enum:
                              - approve
                              - reject
                              - skip
                              - fail
                            description: Action taken during resolution
                          resolutionMemo:
                            type: string
                            description: Memo regarding the resolution
                          resolutionType:
                            allOf:
                              - $ref: >-
                                  #/components/schemas/PendingApprovalStatePending
                            description: The type of resolution
                          user:
                            type: string
                            description: The user who resolved the approval
                          videoApprover:
                            type: string
                            description: The approver of the video resolution
                          videoException:
                            type: string
                            description: Exception details for the video
                          videoLink:
                            type: string
                            description: Link to the resolution video
                        required:
                          - resolutionType
                    status:
                      allOf:
                        - $ref: '#/components/schemas/EvaluatedPolicyActionStatus'
                      description: The status of the action
                  required:
                    - id
                    - name
                    - parameters
                    - status
                  description: List of actions taken
              resolutionOrder:
                type: array
                items:
                  type: object
                  properties:
                    actions:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - actions
                  description: Order of resolution
              useLegacyPolicyEngine:
                type: boolean
                description: Flag to use legacy policy engine
              videoCallId:
                type: string
                description: ID for the video call
              lastUpdated:
                type: string
                description: The last date the approval was processing
                format: date-time
                title: ISO Date String
              freeze:
                type: object
                description: The freeze state
                properties:
                  actions:
                    type: array
                    items:
                      type: object
                      properties:
                        reason:
                          type: string
                        state:
                          type: string
                          enum:
                            - frozen
                            - unFrozen
                        time:
                          type: string
                          format: date-time
                          title: ISO Date String
                        userId:
                          type: string
                        username:
                          type: string
                  state:
                    type: string
                    enum:
                      - frozen
                      - unFrozen
              memo:
                type: array
                items:
                  type: object
                  properties:
                    text:
                      type: string
                      description: The text of the memo
                    time:
                      type: string
                      description: The time the memo was created
                      format: date-time
                      title: ISO Date String
                    userId:
                      type: string
                      description: The user ID of the admin who created the memo
                    username:
                      type: string
                      description: The username of the admin who created the memo
                  required:
                    - text
                    - time
                    - userId
                    - username
                  description: Admin memos attached to this pending approval
              associatedInquiries:
                type: array
                items:
                  type: object
                  properties:
                    inquiryId:
                      type: string
                    inquiryStatus:
                      $ref: '#/components/schemas/InquiryStatus'
                    inquirySubType:
                      $ref: '#/components/schemas/InquirySubType'
                    inquiryType:
                      $ref: '#/components/schemas/InquiryType'
                  required:
                    - inquiryId
                    - inquiryStatus
                    - inquirySubType
                    - inquiryType
                  description: Associated inquiries
            required:
              - id
              - creator
              - createDate
              - info
              - state
              - scope
        nextBatchPrevId:
          type: string
        count:
          type: number
      required:
        - pendingApprovals
    ApprovalRequestCount:
      title: ApprovalRequestCount
      type: object
      additionalProperties:
        type: number
    ApprovalRequestCountResponse:
      title: ApprovalRequestCountResponse
      type: object
      properties:
        enterprises:
          $ref: '#/components/schemas/ApprovalRequestCount'
      required:
        - enterprises
    ApprovalRequestResponse:
      title: ApprovalRequestResponse
      type: object
      properties:
        id:
          type: string
          minLength: 1
        accountId:
          type: string
          minLength: 1
        status:
          $ref: '#/components/schemas/ApprovalRequestStatus'
        payload:
          type: string
          minLength: 1
        signature:
          type: string
          minLength: 1
        policyDetailId:
          type: string
          title: uuid
        policyDetail:
          type: object
          properties:
            id:
              type: string
              minLength: 1
            resolutionTime:
              type: string
              format: date-time
              title: ISO Date String
            resolvedBy:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - id
            - resolutionTime
            - resolvedBy
        signedAt:
          type: string
          format: date-time
          title: ISO Date String
        signedBy:
          type: string
          minLength: 1
        approvedAt:
          type: string
          format: date-time
          title: ISO Date String
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        settlementId:
          type: string
          minLength: 1
      required:
        - id
        - accountId
        - status
        - payload
        - createdAt
        - updatedAt
        - settlementId
    ApprovalRequestStatus:
      title: ApprovalRequestStatus
      type: string
      enum:
        - acknowledged
        - canceled
        - rejected
        - approved
        - pending
        - failed
        - overdue
        - expired
        - initialized
        - signed
        - signing
        - pending-acknowledgement
    ApprovalRequestUpdateStatus:
      title: ApprovalRequestUpdateStatus
      type: string
      enum:
        - acknowledged
        - canceled
        - rejected
    ApprovalsRequired:
      type: integer
      minimum: 1
      example: 1
    AptBuildOptions:
      title: AptBuildOptions
      allOf:
        - type: object
          properties:
            maxGasAmount:
              type: number
            gasUnitPrice:
              type: number
            expirationTime:
              type: number
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    AptCustomTxIntent:
      title: APT Custom Transaction Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - customTx
            aptosCustomTransactionParams:
              type: object
              properties:
                moduleName:
                  type: string
                functionName:
                  type: string
                typeArguments:
                  type: array
                  items:
                    type: string
                functionArguments:
                  type: array
                  items: {}
                abi:
                  $ref: '#/components/schemas/EntryFunctionABI'
              required:
                - moduleName
                - functionName
          required:
            - intentType
            - aptosCustomTransactionParams
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/AptBuildOptions'
    AptDelegationProperties:
      title: APT Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            activeRewards:
              type: string
              format: bigInteger
              nullable: true
    AptStakingDelegation:
      title: APT Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    AptStakingRequest:
      title: APT
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/AptStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units (octas).
          type: string
    AptStakingRequestPOSTBody:
      title: APT stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    AptUnStakingRequestPOSTBody:
      title: APT unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    AsiStakingRequest:
      title: ASI
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    AsiStakingRequestPOSTBody:
      title: ASI stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    AsiUnStakingRequestPOSTBody:
      title: ASI unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    AssetsResponse:
      title: AssetsResponse
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            description: Unique identifier for the asset.
            example: d1c27189-764c-4197-af06-e2623658f410
            minLength: 1
            format: uuid
          token:
            type: string
            description: Token symbol
            example: eth:usd1
            minLength: 1
          name:
            type: string
            description: Human-readable name of the token
            example: USD1
            minLength: 1
          decimals:
            type: number
            description: Number of decimal places for token precision
            example: 18
          isIssuedByBitgo:
            type: boolean
            description: Flag indicating if BitGo issued this token
            example: false
          baseAsset:
            type: string
            enum:
              - gousd
              - usd1
              - sofid
              - cusd
              - fyusd
              - qxmp
              - scaasacme
              - usd
            description: Base asset for the token
            example: usd1
          reserveManagementType:
            type: string
            enum:
              - bitgo_managed
              - issuer_managed
              - bitgo_and_issuer_managed
            description: >-
              How the reserve backing this stablecoin is managed. Absent for
              fiat USD

              and other non-stablecoin assets that have no corresponding
              base_asset row.
            example: bitgo_managed
          chain:
            type: string
            description: Blockchain network identifier for the token
            example: eth
            minLength: 1
          backingAsset:
            type: string
            description: Token that provides backing value
            example: fiatusd
            minLength: 1
          treasuryAccountWalletId:
            type: string
            description: Unique identifier for the treasury account
            example: 37c60261db7cbfdfab26b9156eabcdef
            format: uuid
          minimumLimit:
            type: number
            deprecated: true
            description: >-
              Minimum order amount for mint and burn orders, in full units
              (deprecated, use minimumMintAmount and minimumBurnAmount)
            example: 100
          minimumMintAmount:
            type: string
            description: Minimum order amount for mint orders, in base units
            example: '''10000'''
            minLength: 1
          minimumBurnAmount:
            type: string
            description: Minimum order amount for burn orders, in base units
            example: '''10000'''
            minLength: 1
          burnFeeBps:
            type: number
            description: >-
              Resolved burn fee rate in basis points for this enterprise using
              the

              enterprise → org → base_asset hierarchy. Defaults to 0 when no fee
              hierarchy

              row exists in the DB for this base asset.
            example: 25
          mintFeeBps:
            type: number
            description: >-
              Resolved mint fee rate in basis points for this enterprise using
              the

              enterprise → org → base_asset hierarchy. Defaults to 0 when no fee
              hierarchy

              row exists in the DB for this base asset.
            example: 0
          smartContractMetadata:
            allOf:
              - $ref: '#/components/schemas/SmartContractMetadata'
            description: >-
              Smart contract metadata. On the public assets endpoint this is
              included only for

              issuer enterprises; on the admin assets endpoint it is always
              included.
          publicDescription:
            nullable: true
            type: string
            description: Public-facing description of the base asset
            example: '"A stablecoin backed by US dollar reserves"'
          publicTagline:
            nullable: true
            type: string
            description: Public-facing tagline of the base asset
            example: '"The stablecoin for global payments"'
          publicMarketingUrl:
            nullable: true
            type: string
            description: Public-facing URL of the base asset
            example: '"https://example.com/stablecoin"'
        required:
          - id
          - token
          - name
          - decimals
          - isIssuedByBitgo
          - baseAsset
    AssociatedPersonInput:
      type: object
      properties:
        role:
          type: string
          enum:
            - beneficialOwner
            - controlPerson
            - platformAdmin
          description: Role of the associated person
        percentageOwnership:
          type: number
          minimum: 10
          maximum: 100
          description: Percentage of ownership (only for beneficialOwner, minimum 10%)
        identityId:
          type: string
          description: Identity ID of the person
      required:
        - role
        - identityId
      title: AssociatedPersonInput
    AssociatedPersonResponse:
      type: object
      properties:
        identityId:
          type: string
          description: The individual identity ID of the associated person
        role:
          type: string
          enum:
            - beneficialOwner
            - controlPerson
            - platformAdmin
          description: Role of the associated person
        percentageOwnership:
          type: number
          minimum: 0
          maximum: 100
          description: Percentage of ownership (only applicable to beneficial owners)
          nullable: true
        status:
          type: string
          enum:
            - missingLocation
            - missingRequirements
            - readyForSubmission
            - inReview
            - verified
            - rejected
          description: Verification status of the associated person
        individual:
          type: object
          properties:
            nameFirst:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: First name of the individual
            nameLast:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: Last name of the individual
            birthdate:
              $ref: '#/components/schemas/Birthdate'
            phoneNumber:
              type: object
              properties:
                countryCode:
                  type: string
                  pattern: ^[0-9]+$
                  description: Country code of the phone number
                phoneNumber:
                  type: string
                  pattern: ^[0-9]+$
                  description: Phone number (without country code)
              required:
                - countryCode
                - phoneNumber
            email:
              type: string
              format: email
              description: Email address of the individual
            occupation:
              $ref: '#/components/schemas/Occupation'
            countryOfCitizenship:
              description: Country of citizenship (ISO 3166-1 alpha-3)
            countryOfResidence:
              description: Country of residence (ISO 3166-1 alpha-3)
            govIdCountryOfIssuance:
              description: Country where government ID was issued (ISO 3166-1 alpha-3)
            govIdClass:
              type: string
              enum:
                - cct
                - cid
                - dl
                - foid
                - hic
                - id
                - ipp
                - keyp
                - ltpass
                - munid
                - myn
                - nbi
                - nric
                - ofw
                - rp
                - pan
                - pid
                - pp
                - ppc
                - pr
                - sss
                - td
                - tribalid
                - umid
                - vid
                - visa
                - wp
              description: |-
                Class of government ID. Valid values:
                cct - Citizenship Certificate,
                cid - Consular ID,
                dl - Driver's License,
                foid - CO Foreigner ID,
                hic - Health Insurance Card,
                id - Identification Card,
                ipp - Internal Passport,
                keyp - AU Keypass ID,
                ltpass - Long Term Pass,
                munid - US Municipal ID (e.g. NYC ID),
                myn - JP My Number Card (SSN),
                nbi - PH National Bureau of Investigation Certificate,
                nric - SG National Residency ID,
                ofw - PH Overseas Foreign Worker Card,
                rp - Residence Permit,
                pan - IN Permanent Account Number card (SSN),
                pid - PH Postal Identity Card,
                pp - Passport,
                ppc - Passport Card,
                pr - Permanent Residence Card,
                sss - PH Social Security System Card (SSN),
                td - US Travel Document,
                tribalid - US/CA Tribal ID,
                umid - PH Unified Multi Purpose ID,
                vid - Voter ID,
                visa - Visa,
                wp - Work Permit
            address:
              type: object
              properties:
                street1:
                  type: string
                  pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
                  description: Street address line 1
                street2:
                  type: string
                  pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
                  description: Street address line 2
                city:
                  type: string
                  pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
                  description: City name
                subdivision:
                  type: string
                  minLength: 1
                  maxLength: 3
                  description: >-
                    State, province, or region (formatted as subdivision section
                    of ISO 3166-2, excludes country code)
                zip:
                  type: string
                  description: ZIP or postal code
                country:
                  description: Country (formatted as ISO 3166-1 alpha-3)
              required:
                - street1
                - city
                - subdivision
                - zip
                - country
            identificationNumber:
              type: string
              description: National identification number (e.g., SSN, passport number)
            politicallyExposedPerson:
              type: boolean
              description: Whether the individual is a politically exposed person
          description: Individual data for the associated person
        userId:
          type: string
          description: User ID of the associated person
        missingRequirements:
          type: array
          items:
            $ref: '#/components/schemas/MissingRequirement'
          description: List of missing requirements for the associated person
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: Documents associated with the associated person
      required:
        - identityId
        - role
        - percentageOwnership
        - status
        - individual
        - userId
        - missingRequirements
      title: AssociatedPersonResponse
    AtomAddress:
      title: Atom Address
      type: object
      properties:
        rootAddress:
          type: string
        memoId:
          type: string
      required:
        - rootAddress
        - memoId
    AtomClaimRewardsRequestEntityProperties:
      title: ATOM claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validatorAddress:
          type: string
      required:
        - validatorAddress
    AtomClaimRewardsRequestPOSTBody:
      title: Cosmos Hub (ATOM) Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Cosmos Hub (ATOM).
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    AtomClaimRewardsTransactionProperties:
      title: ATOM Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            delegationId:
              type: string
            validatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    AtomDelegationProperties:
      title: ATOM Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - validatorAddress
          properties:
            validatorAddress:
              type: string
            consensusAddress:
              type: string
              nullable: true
            activeRewards:
              type: string
              format: bigInteger
            lastSlashedBlockHeight:
              type: string
              format: bigInteger
              nullable: true
            isValidatorJailed:
              type: boolean
              nullable: true
    AtomPaymentIntent:
      title: Atom Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Optional memo string attached to the transaction, used for
                routing or identification by exchanges.
          required:
            - memo
        - $ref: '#/components/schemas/PaymentIntent'
      description: |-
        Transfer tokens from a Cosmos-family wallet to one or more recipient
        addresses. Supported on all Cosmos-family chains. An optional memo may
        be included for exchange routing or identification.
    AtomStakeIntent:
      title: Atom Stake Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
              description: >-
                Bech32 validator address to delegate tokens to (e.g.
                cosmosvaloper1...).
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: >-
                  Optional list of validator–amount pairs for multi-validator
                  delegation. When provided, overrides validatorAddress and
                  amount.
          required:
            - validatorAddress
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Delegate (stake) tokens to one or more validators on ATOM. Use
        `validatorAddress` and `amount` for a single validator, or `recipients`
        for multi-validator delegation.
    AtomStakingDelegation:
      title: ATOM Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    AtomStakingRequest:
      title: ATOM
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/AtomStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    AtomStakingRequestEntityProperties:
      title: ATOM staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
          nullable: true
        delegationRequests:
          type: array
          items:
            $ref: '#/components/schemas/DelegationRequest'
          nullable: true
    AtomStakingRequestPOSTBody:
      title: ATOM stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    AtomStakingTransactionProperties:
      title: ATOM Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            delegationRequest:
              type: array
              items:
                $ref: '#/components/schemas/DelegationRequest'
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    AtomSwitchValidatorsRequestPOSTBody:
      title: Cosmos Hub (ATOM) Switch Validators Request
      type: object
      description: >-
        Request to switch staking delegation to a new validator for Cosmos Hub
        (ATOM).
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    AtomUnStakingRequestPOSTBody:
      title: ATOM unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    AtomUnstakeIntent:
      title: Atom Unstake Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
              description: >-
                Bech32 validator address to undelegate tokens from (e.g.
                cosmosvaloper1...).
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: >-
                  Optional list of validator–amount pairs for multi-validator
                  undelegation. When provided, overrides validatorAddress and
                  amount.
          required:
            - validatorAddress
        - $ref: '#/components/schemas/UnstakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Undelegate (unstake) tokens from one or more validators on ATOM. Tokens
        enter the unbonding period. Use `validatorAddress` and `amount` for
        single validator or `recipients` for multi-validator.
    AtomUnstakingTransactionProperties:
      title: ATOM Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    AtomWallet:
      title: Atom Wallet
      type: object
      properties:
        rootAddress:
          type: string
        lastMemoId:
          type: string
        lastChainIndex: {}
        pendingEcdsaTssInitialization:
          type: boolean
      required:
        - rootAddress
        - lastMemoId
    AuditLogType1:
      title: AuditLogType
      type: string
      x-enumsDeprecated:
        - adminUnblockUserEmail
    AuditableItem:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the date range.
        startDate:
          type: string
          description: >-
            ISO 8601 Datetime (example at
            https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If
            present, will use as the start date of a new auditable item. If not
            present, will use the current date to create a new auditable item.
            Start date is inclusive, i.e. we will start billing/functionality at
            this instant and afterwards.
        startReason:
          type: string
          description: >-
            An optional note describing the reason the auditable item was
            added/created.
        endDate:
          type: string
          description: >-
            ISO 8601 Datetime (example at
            https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If
            present, will use as the end date of a new auditable item. If not
            present, we will set the endDate to null, and we will assume an
            indefinite range. endDate is exclusive, i.e. we will end
            billing/functionality up to but not at this particular time.
        endReason:
          type: string
          description: An optional note describing the reason the auditable item was ended.
    AuthenticatorInfo:
      title: AuthenticatorInfo
      type: object
      properties:
        credID:
          type: string
          description: The credential ID of the authenticator
        fmt:
          type: string
          description: The format of the authenticator
        publicKey:
          type: string
          description: The public key of the authenticator
      required:
        - credID
        - fmt
        - publicKey
    AuxProofType:
      title: AuxProofType
      type: string
      enum:
        - REDEEM_SCRIPT
        - WITNESS_SCRIPT
        - ETH_CREATE
        - ETH_CREATE2
    AvailableUI:
      title: AvailableUI
      type: string
      enum:
        - bg23
        - ''
        - bg25-inst
        - bg25-retail
        - kintsugi
    AvaxCDelegationProperties:
      title: AVAXC Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - stakingType
          properties:
            stakingType:
              type: string
              enum:
                - STAVAX_STAKE
                - PSTAVAX_STAKE
            delegatedInToken:
              type: string
              format: bigInteger
              nullable: true
            delegatedInBaseCoin:
              type: string
              format: bigInteger
              nullable: true
    AvaxCStakingRequest:
      title: AVAXC
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: Subtype of AVAXC staking request.
          type: string
          enum:
            - STAVAX_STAKE
            - PSTAVAX_STAKE
          example: STAVAX_STAKE
    AvaxCStakingRequestPOSTBody:
      title: AVAXC stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: Subtype of AVAXC staking request.
          type: string
          enum:
            - STAVAX_STAKE
            - PSTAVAX_STAKE
          example: STAVAX_STAKE
      required:
        - subType
    AvaxCUnStakingRequestPOSTBody:
      title: AVAXC unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    AvaxPAddress:
      title: AvaxP Address
      type: object
      properties:
        threshold:
          type: number
        addresses:
          type: array
          items:
            type: string
      required:
        - threshold
        - addresses
    AvaxPDelegationProperties:
      title: AVAXP Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - fee
            - durationSeconds
          properties:
            fee:
              type: string
              format: bigDecimal
            durationSeconds:
              type: string
              format: bigInteger
            startTime:
              type: string
              format: bigInteger
              nullable: true
            endTime:
              type: string
              format: bigInteger
              nullable: true
            blsPublicKey:
              type: string
              nullable: true
            blsSignature:
              type: string
              nullable: true
    AvaxPStakingDelegation:
      title: AVAXP Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
        - type: object
          description: Avalanche P-Chain staking delegation.
          properties:
            durationSeconds:
              type: string
              description: Duration of the delegation in seconds (stringified bigint).
            startTime:
              type: string
              description: >-
                Start time of the delegation in epoch seconds (stringified
                bigint).
              nullable: true
            endTime:
              type: string
              description: >-
                End time of the delegation in epoch seconds (stringified
                bigint).
              nullable: true
            unstakeable:
              type: boolean
              description: Indicates whether the delegation can currently be unstaked.
              nullable: true
            permissionAttributes:
              $ref: '#/components/schemas/WalletStakingPermissionAttributes'
    AvaxPStakingOptions:
      type: object
      title: AVAX P-chain Staking Options
      properties:
        nodeID:
          type: string
          description: Node ID to delegate to
        blsPublicKey:
          type: string
          description: BLS public key used for delegation
        blsSignature:
          type: string
          description: BLS signature for the delegation
        amount:
          type: string
          description: Amount to stake (base units)
        delegationFeeRate:
          type: number
          format: double
          description: Delegation fee rate (percentage)
        durationSeconds:
          type: string
          description: Duration of the delegation in seconds
      required:
        - nodeID
        - blsPublicKey
        - blsSignature
        - amount
        - delegationFeeRate
        - durationSeconds
    AvaxPStakingRequest:
      title: AVAXP
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/AvaxPStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        durationSeconds:
          description: The length of time in seconds to complete a staking period.
          type: integer
    AvaxPStakingRequestEntityProperties:
      title: AVAX P-chain staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        durationSeconds:
          type: string
        validator:
          type: string
          nullable: true
        blsPublicKey:
          type: string
          nullable: true
        blsSignature:
          type: string
          nullable: true
      required:
        - durationSeconds
    AvaxPStakingRequestPOSTBody:
      title: AVAXP stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        durationSeconds:
          description: The length of time in seconds to complete a staking period.
          type: integer
          example: 604800
        blsPublicKey:
          description: The BLS public key for this staking request.
          type: string
          nullable: true
        blsSignature:
          description: The BLS signature associated with this staking request.
          type: string
          nullable: true
      required:
        - durationSeconds
    AvaxPWallet:
      title: AvaxP Wallet
      type: object
      properties:
        unlockAddresses:
          type: array
          items:
            type: string
        threshold:
          type: number
      required:
        - unlockAddresses
        - threshold
    AvaxcStakingRequestEntityProperties:
      title: AVAX C-chain staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            stakingType:
              type: string
              enum:
                - STAVAX_STAKE
                - PSTAVAX_STAKE
    AvaxcStakingTransactionProperties:
      title: AVAXC Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            stakingType:
              type: string
              enum:
                - STAVAX_STAKE
                - PSTAVAX_STAKE
            amountInToken:
              type: string
            amountInBaseCoin:
              type: string
    AvaxcStakingWalletEntityProperties:
      title: AVAXC Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - AVAXC
        delegatedInToken:
          type: string
          format: bigInteger
          nullable: true
        delegatedInBaseCoin:
          type: string
          format: bigInteger
          nullable: true
        walletMultisigType:
          type: string
          enum:
            - ONCHAIN
      required:
        - type
        - walletMultisigType
    AvaxcTxSubdocument:
      title: Avaxc
      allOf:
        - type: object
          properties:
            crossChainType:
              type: string
            parentTxid:
              type: string
        - $ref: '#/components/schemas/EthereumTx'
    AvaxcUnstakingRequestEntityProperties:
      title: AVAX C-chain unstaking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            stakingType:
              type: string
              enum:
                - STAVAX_STAKE
                - PSTAVAX_STAKE
    AvaxcUnstakingTransactionProperties:
      title: AVAXC Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            stakingType:
              type: string
              enum:
                - STAVAX_STAKE
                - PSTAVAX_STAKE
            amountInToken:
              type: string
            amountInBaseCoin:
              type: string
            hyphaRequestId:
              type: string
    AvaxpWalletStakingStateAttributes:
      type: object
      properties:
        stakingSpendableAttributes:
          allOf:
            - $ref: '#/components/schemas/StakingSpendableAttributes1'
          type: object
          properties:
            minDuration:
              description: The minimum duration in seconds for staking period.
              type: integer
            maxDuration:
              description: The maximum duration in seconds for staking period.
              type: integer
        unstakingSpendableAttributes:
          $ref: '#/components/schemas/UnStakingSpendableAttributes1'
    AverageFee:
      type: object
      properties:
        averageFee:
          type: number
          description: >-
            Calculated by summing the fees of the blocks over the number of
            blocks.
          example: 16000000
      required:
        - averageFee
    BNMetadata:
      title: BNMetadata
      type: object
      properties:
        partnerNames:
          type: array
          items:
            type: string
            minLength: 1
      required:
        - partnerNames
    BNSupportedCurrency:
      title: BNSupportedCurrency
      type: string
    BabyCreateBtcDelegationIntent:
      title: Baby CreateBtcDelegation Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - createBtcDelegation
              description: >-
                Register a BTC delegation on the Babylon chain for Baby BTC
                staking.
            createBtcDelegationBytes:
              type: string
          required:
            - intentType
            - createBtcDelegationBytes
        - $ref: '#/components/schemas/BaseStakeIntent'
    BabyStakingRequest:
      title: BABY
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    BabyStakingRequestPOSTBody:
      title: BABY stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    BabyUnStakingRequestPOSTBody:
      title: BABY unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    BabyWithdrawRewardIntent:
      title: Baby WithdrawReward Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeClaimRewards
            type:
              type: string
          required:
            - intentType
            - type
        - $ref: '#/components/schemas/BaseStakeIntent'
    BabylonStakingParams:
      type: object
      properties:
        amount:
          type: string
        babylonAddress:
          type: string
        finalityProvider:
          type: string
        babylonAddressPubkey:
          type: string
        timelock:
          type: integer
          format: int64
        keyType:
          type: string
        overrideStakingParams:
          type: array
          items:
            type: object
            description: >-
              Babylon versioned staking params (see
              BabylonParamsVersionsResponse.BtcStakingParams)
    BabylonStakingParms:
      title: Babylon staking parameters
      type: object
      properties:
        duration:
          type: integer
          format: int64
          description: Duration of the delegation in seconds.
        rewardAddress:
          type: string
          description: Address to receive staking rewards.
      required:
        - duration
        - rewardAddress
    BackingFiatCoin:
      title: BackingFiatCoin
      allOf:
        - $ref: '#/components/schemas/BackingFiatCoinEnum'
    BackingFiatCoinEnum:
      type: string
      enum:
        - fiatusd
        - fiateur
        - fiatsgd
        - fiataed
        - tfiatusd
        - tfiateur
        - tfiatsgd
        - tfiataed
    BackingValue:
      title: Backing hot wallet
      type: object
      description: Backing hot wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - backing
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Backing Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A backing wallet
    BackupKeyType:
      type: string
      description: >-
        Coin name used to choose correct KRS public key for the given provider.
        Possible valid values are "btc", "eth", "bitcoin"
      example: eth
    BadRequestErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - ValidationFailed
            - IllegalArgument
            - BadRequest
            - DataIntegrityError
            - NotImplementedError
            - RETRIGGER_RATE_LIMITED
            - USER_CREATION_FAILED
            - USER_FALLBACK_FAILED
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 400
      description: Bad request error response
    BalanceReserve:
      type: object
      properties:
        baseFee:
          type: string
          description: base fee used in transaction fees
          example: '100'
        baseReserve:
          type: string
          description: base reserve used in minimum account balances
          example: '5000000'
        reserve:
          type: string
          description: minimum account balance, calculated using base reserve
          example: '25000000'
        minimumFunding:
          type: string
          description: minimum funding balance, calculated using reserve and base fee
          example: '25000500'
        height:
          type: integer
          description: the height of the block that provides the base values
          example: 11228504
    BankAccountCurrency:
      title: BankAccountCurrency
      description: |
        The currency of the bank account. If null, defaults to `fiatusd`.
      type: string
      nullable: true
      enum:
        - fiatusd
        - fiateur
        - null
      example: fiatusd
    BankAccountFeeInfo:
      title: BankAccountFeeInfo
      allOf:
        - $ref: '#/components/schemas/BankAccountFeeInfoObject'
    BankAccountFeeInfoObject:
      type: object
      properties:
        amount:
          type: string
          minLength: 1
        individualFees:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/StaticFee'
              - $ref: '#/components/schemas/VariableFee'
      required:
        - individualFees
    BankAccountJson:
      title: BankAccountJson
      type: object
      properties:
        accountNumber:
          type: string
        address1:
          type: string
        name:
          type: string
        owner:
          type: object
          properties:
            name:
              type: string
            address1:
              type: string
            address2:
              type: string
            address3:
              type: string
          required:
            - name
            - address1
        idHash:
          type: string
        verificationState:
          type: string
        address2:
          type: string
        address3:
          type: string
        enterpriseId:
          type: string
        id:
          type: string
        routingNumber:
          type: string
        shortCountryCode:
          type: string
        swiftCode:
          type: string
        type:
          type: string
      required:
        - accountNumber
        - address1
        - name
        - owner
        - idHash
        - verificationState
    BankAccountRequest:
      anyOf:
        - $ref: '#/components/schemas/DomesticWireBankAccount'
        - $ref: '#/components/schemas/InternationalWireBankAccount'
        - $ref: '#/components/schemas/CBITBankAccount'
    BankAccountRequest1:
      title: BankAccountRequest
      description: >
        Schema for bank account creation requests.


        Supports two address formats:

        - Recommended: Normalized address fields (`bankAddressLine1`,
        `ownerAddressLine1`, etc.).

        - Deprecated: Simple string fields (`address`, `ownerAddress`)
      oneOf:
        - $ref: '#/components/schemas/BankAccountRequestAddressNormalized'
        - $ref: '#/components/schemas/DeprecatedBankAccountRequest'
    BankAccountRequestAddressNormalized:
      title: BankAccountRequestAddressNormalized
      description: Bank account request using normalized address format.
      allOf:
        - $ref: '#/components/schemas/BankAccountRequestCore'
        - type: object
          properties:
            ownerAddressLine1:
              type: string
              description: First line of owner's address (street number and name).
            ownerAddressLine2:
              type: string
              description: Second line of owner's address (apartment/suite number, etc.).
            ownerAddressCityLocality:
              type: string
              description: >-
                City or locality of owner's address. Depending on country, may
                be required.
            ownerAddressStateProvince:
              type: string
              description: >-
                State or province of owner's address. Depending on country, may
                be required.
            ownerAddressPostalCode:
              type: string
              description: >-
                Postal code of owner's address. Depending on country, may be
                required.
            ownerAddressCountryCode:
              type: string
              description: Two-letter ISO country code of owner's address.
            bankAddressLine1:
              type: string
              description: First line of bank's address (street number and name).
            bankAddressLine2:
              type: string
              description: Second line of bank's address (branch information, etc.).
            bankAddressCityLocality:
              type: string
              description: >-
                City or locality of bank's address. Depending on country, may be
                required.
            bankAddressStateProvince:
              type: string
              description: >-
                State or province of bank's address. Depending on country, may
                be required.
            bankAddressPostalCode:
              type: string
              description: >-
                Postal code of bank's address. Depending on country, may be
                required.
            bankAddressCountryCode:
              type: string
              description: Two-letter ISO country code of bank's address.
          required:
            - bankAddressCountryCode
            - bankAddressLine1
            - ownerAddressCountryCode
            - ownerAddressLine1
    BankAccountRequestCore:
      title: BankAccountRequestCore
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: Name of the banking institution.
        accountNumber:
          type: string
          minLength: 1
          description: Bank account number.
        enterpriseId:
          type: string
          minLength: 1
          description: ID of the enterprise the account belongs to.
        currency:
          allOf:
            - $ref: '#/components/schemas/BackingFiatCoin'
          description: The currency of the bank account.
        ownerName:
          type: string
          minLength: 1
          description: Name of the account owner.
        accountType:
          type: string
          enum:
            - checking
            - saving
          description: Type of bank account (checking, saving).
        description:
          type: string
          description: User-provided description of the account.
        furtherCreditTo:
          type: string
          description: >-
            Further credit recipient information sometimes referred to as a
            reference.
        intermediaryBankName:
          type: string
          description: Name of intermediary bank if applicable.
        intermediaryBankId:
          type: string
          description: Intermediary bank routing number.
      required:
        - accountNumber
        - currency
        - name
        - ownerName
    BankAccountResponse1:
      title: BankAccountResponse
      oneOf:
        - $ref: '#/components/schemas/DomesticWireBankAccountResponse'
        - $ref: '#/components/schemas/InternationalWireBankAccountResponse'
        - $ref: '#/components/schemas/CbitBankAccountResponse'
        - $ref: '#/components/schemas/AchBankAccountResponse'
        - $ref: '#/components/schemas/SepaBankAccountResponse'
        - $ref: '#/components/schemas/BlincBankAccountResponse'
        - $ref: '#/components/schemas/IpiFtsBankAccountResponse'
        - $ref: '#/components/schemas/FastBankAccountResponse'
    BankAccountResponseProps:
      title: BankAccountResponseProps
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: Unique identifier for the bank account
        idHash:
          type: string
          minLength: 1
          description: Hashed identifier for the bank account
        currency:
          allOf:
            - $ref: '#/components/schemas/BackingFiatCoin'
          description: The currency of the bank account
        token:
          type: string
          minLength: 1
          description: Authentication token for bank account operations
        name:
          type: string
          minLength: 1
          description: Name of the bank account
        shortCountryCode:
          type: string
          minLength: 1
          description: Two-letter ISO country code
        accountNumber:
          type: string
          minLength: 1
          description: Bank account number (may be masked)
        enterpriseId:
          type: string
          description: ID of the enterprise the account belongs to
        trustOrg:
          allOf:
            - $ref: '#/components/schemas/TrustOrg2'
          description: Trust organization associated with this account
        ownerName:
          type: string
          minLength: 1
          description: Name of the account owner
        verificationState:
          allOf:
            - $ref: '#/components/schemas/VerificationState'
          description: Current verification status of the account
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
          description: Timestamp when the account was created
        pendingActivity:
          allOf:
            - $ref: '#/components/schemas/PendingActivityState'
          description: Any pending activity on the account
        fee:
          allOf:
            - $ref: '#/components/schemas/BankAccountFeeInfo'
          description: Fee information for the account
        feeInfo:
          allOf:
            - $ref: '#/components/schemas/Fee'
          description: Detailed fee configuration for the account
        furtherCreditTo:
          type: string
          description: Further credit recipient information
        intermediaryBankName:
          type: string
          description: Name of intermediary bank if applicable
        intermediaryBankId:
          type: string
          description: Identifier of the intermediary bank
        metadata:
          type: string
          description: Additional metadata for the account
        description:
          type: string
          description: User-provided description of the account
        virtualDepositOnly:
          type: boolean
          description: Whether this account is for virtual deposits only
        ownerAddressLine1:
          type: string
          nullable: true
          description: First line of owner's address (street number and name)
        ownerAddressLine2:
          type: string
          nullable: true
          description: Second line of owner's address (apartment/suite number, etc.)
        ownerAddressCityLocality:
          type: string
          nullable: true
          description: City or locality of owner's address
        ownerAddressStateProvince:
          type: string
          nullable: true
          description: State or province of owner's address
        ownerAddressPostalCode:
          type: string
          nullable: true
          description: Postal code of owner's address
        ownerAddressCountryCode:
          type: string
          nullable: true
          description: Two-letter ISO country code of owner's address
        bankAddressLine1:
          type: string
          nullable: true
          description: First line of bank's address (street number and name)
        bankAddressLine2:
          type: string
          nullable: true
          description: Second line of bank's address (branch information, etc.)
        bankAddressCityLocality:
          type: string
          nullable: true
          description: City or locality of bank's address
        bankAddressStateProvince:
          type: string
          nullable: true
          description: State or province of bank's address
        bankAddressPostalCode:
          type: string
          nullable: true
          description: Postal code of bank's address
        bankAddressCountryCode:
          type: string
          nullable: true
          description: >-
            Two-letter ISO country code of bank's address, should equal
            shortCountryCode
        owner:
          allOf:
            - $ref: '#/components/schemas/OldOwner'
            - deprecated: true
              description: DEPRECATED - Use normalized address fields instead
        address:
          type: string
          minLength: 1
          deprecated: true
          description: DEPRECATED - Use normalized bank address fields instead
        ownerAddress:
          type: string
          minLength: 1
          deprecated: true
          description: DEPRECATED - Use normalized owner address fields instead
        address1:
          type: string
          deprecated: true
          description: DEPRECATED - Use ownerAddressLine1 instead
        address2:
          type: string
          deprecated: true
          description: DEPRECATED - Use ownerAddressLine2 instead
        address3:
          type: string
          deprecated: true
          description: DEPRECATED - Use additional normalized address fields instead
      required:
        - id
        - idHash
        - currency
        - token
        - name
        - shortCountryCode
        - accountNumber
        - enterpriseId
        - trustOrg
        - ownerName
        - verificationState
        - createdAt
    BankAccountType:
      title: BankAccountType
      description: |
        The type of bank account. If null, defaults `wire`.
      type: string
      nullable: true
      enum:
        - wire
        - cbit
        - null
      example: wire
    BankAccountsArrayResponse:
      title: BankAccountsArrayResponse
      description: Unified schema for an array of bank accounts
      type: array
      items:
        $ref: '#/components/schemas/BankAccountResponse1'
    BankId:
      title: BankId
      type: string
      enum:
        - silvergate
        - silvergate_prime
        - silvergate_v3
        - silvergate_prime_v3
        - bcbgroup
        - signature
        - generic
        - customers_api
        - customers_cubix_api
        - customers_sftp
        - lead
    BankTransferResponse:
      title: BankTransferResponse
      type: object
      properties:
        amount:
          type: string
          description: >-
            The absolute value of the total amount of funds to be transferred to
            or from the related bank. Always returned as a decimal string with
            the currency's full precision (e.g., "500.00" for USD), regardless
            of whether the request used `amount` or `baseAmount`.
        applyInstantCredit:
          type: boolean
          description: >-
            Whether to apply "instant credit" to the transfer. This allows funds
            to be made available to customer from the CaaS reserve account if
            they are available.
        bankAccountId:
          type: string
          description: >-
            The bank account used for the transfer. This also determines the
            bank rails used for the transfer.
        counterparty:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Information about the counterparty of the transfer. The available
            fields vary by bank rail and region (e.g. name, financial
            institution, country). The counterparty account number is masked,
            exposing only the last four characters (e.g. "*****7890"). Null
            until counterparty details are available, typically once the
            transfer has settled.
          example:
            name: Jane Doe
            accountNumber: '*****7890'
            financialInstitution: COBADEFFXXX
            country: DE
        createdAt:
          type: string
          format: date-time
          description: When the transfer was created/initiated.
        enterpriseId:
          type: string
          description: >-
            The enterprise related to the transfer. Determined automatically by
            the walletId.
        estimatedEffectiveOn:
          type: string
          format: date
          nullable: true
          description: >-
            The date when the transfer is expected to become "effective" or
            "posted" by the related bank. Without instant credit this will
            usually be either T+1 or T+4 depending on risk profile of the
            related enterprise and bank account. Null when not yet determined.
        id:
          type: string
          description: >-
            The ID of the transfer. This should be generated by the client
            (prefer v4, v5, or v7) because it also serves as the idempotency
            key. Using an automatically generated ID provides no idempotency
            guarantees.
        instantCreditLiability:
          type: boolean
          description: >-
            Whether the current transfer counts against the CaaS reserve for
            instant credit. Only applies to transfers that opted for
            applyInstantCredit and have not yet settled. Once settled,
            transitions to false.
        memoId:
          type: string
          description: >-
            An automatically generated memo used for matching with bank
            transfers. Informational only.
        settledAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            When the transfer was settled (posted by the bank). Null until
            status is settled.
        status:
          $ref: '#/components/schemas/TransferStatus1'
        transferDirection:
          allOf:
            - $ref: '#/components/schemas/TradfyTransferDirection'
          description: >-
            The direction of the transfer. `in` is a deposit (funds from bank to
            wallet), `out` is a withdrawal (funds from wallet to bank).
        transferType:
          allOf:
            - $ref: '#/components/schemas/TradfyTransferType'
          description: >-
            The bank rails being used by the transfer. Inferred from the
            bankAccountId.
        txid:
          type: string
          description: >-
            The transaction ID correlated with wallet platform. Can also be used
            in GET requests as an identifier.
        walletId:
          type: string
          description: >-
            The wallet (Go Account) used as counterparty to the transfer. Also
            determines the related enterprise.
      required:
        - amount
        - applyInstantCredit
        - bankAccountId
        - createdAt
        - enterpriseId
        - estimatedEffectiveOn
        - id
        - instantCreditLiability
        - memoId
        - settledAt
        - status
        - transferDirection
        - transferType
        - txid
        - walletId
    BaseBridgeFundsIntent:
      title: Bridge Funds Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - bridgeFunds
              description: Must be "bridgeFunds".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: Base codec for bridge-funds intents across chains or protocols.
    BaseDelegation:
      title: Base Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
        - type: object
          description: Extended delegation with BitGo-specific properties.
          properties:
            properties:
              $ref: '#/components/schemas/DelegationPropertiesSchemas'
            claimable:
              type: boolean
              description: Whether the delegation has claimable rewards.
              nullable: true
            pendingClaimRewards:
              type: string
              description: Rewards that are pending claim (stringified bigint).
              nullable: true
            claimableRewards:
              type: string
              description: Rewards that are currently claimable (stringified bigint).
              nullable: true
            switchable:
              type: boolean
              description: Whether the delegation can be switched to another validator.
              nullable: true
            maxSwitch:
              type: string
              description: Maximum amount allowed to switch (stringified bigint).
              nullable: true
            minSwitch:
              type: string
              description: Minimum amount required to switch (stringified bigint).
              nullable: true
            permissionAttributes:
              $ref: '#/components/schemas/WalletStakingPermissionAttributes'
            spendableAttributes:
              $ref: '#/components/schemas/WalletStakingSpendableAttributes'
            rewardPairs:
              type: array
              description: Reward token breakdown for Eigen-like or ETH restaking.
              items:
                $ref: '#/components/schemas/RewardPairs'
            rewardCoin:
              type: string
              description: The reward coin associated with this delegation.
              nullable: true
    BaseDisclaimer:
      type: object
      description: Base fields common to all disclaimers.
      properties:
        info:
          description: List of disclaimer messages.
          type: array
          items:
            type: string
        transactionsNeeded:
          description: Number of transactions required.
          type: integer
    BaseEnterprise:
      title: Base Enterprise
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EnterpriseIdString'
        name:
          type: string
          example: Small Company
        bitgoOrg:
          allOf:
            - $ref: '#/components/schemas/BitgoOrg'
          description: BitGo Organization related to this entity
        kycState:
          $ref: '#/components/schemas/KycState'
        legalIdentifiers:
          $ref: '#/components/schemas/LegalIdentifiers'
        type:
          type: string
        latestSAVersionSigned:
          type: number
          example: 0
        travelRule:
          type: boolean
        productLicenses:
          type: array
          items:
            type: string
        canAccessBorrowing:
          type: boolean
          description: whether the enterprise has the licence for BitGo Prime Borrowing
        canAccessLending:
          type: boolean
          description: whether the enterprise has the licence for BitGo Prime Lending
        canAccessSettlement:
          type: boolean
          description: >-
            whether the enterprise has the licence to utilize settlement
            functionality
        canAccessTrading:
          type: boolean
          description: whether the enterprise has the licence to access BitGo Trading
        canCreateColdWallet:
          type: boolean
          description: whether the enterprise has the license to create cold wallets
        canCreateHotWallet:
          type: boolean
          description: whether the enterprise has the license to create hot wallets
        canCreateCustodialWallet:
          type: boolean
          description: whether the enterprise has the license to create custodial wallets
        canCreateOffchainWallet:
          type: boolean
          description: whether the enterprise has the license to create trading accounts
        oneTimeFees:
          type: array
          items:
            type: string
        upfrontPaymentStatus:
          type: string
        ethAlwaysUseHop:
          type: boolean
          description: Always use hop address for ETH transactions
        usersViewAllWallets:
          type: boolean
          description: >-
            All users on the enterprise can view all enterprise wallets, even if
            they are not

            viewers on the wallet itself
          example: true
        videoIdWaived:
          type: boolean
          description: >-
            Whether the customer has waived the need for Video ID on low risk
            withdrawals.
          example: false
        createdAt:
          type: string
          description: ISO 8601 creation timestamp derived from the MongoDB ObjectId
        additionalEnterpriseInfo:
          $ref: '#/components/schemas/AdditionalEnterpriseInfo'
        tradeOnboardingAgreement:
          allOf:
            - $ref: '#/components/schemas/OnboardingAgreement'
          description: Who & when the MPA license was ack'd
        stakingServicesAgreement:
          $ref: '#/components/schemas/OnboardingAgreement'
        custodyServicesAgreement:
          $ref: '#/components/schemas/CustodyServiceAgreement'
        distributedCustodyMicAgreement:
          $ref: '#/components/schemas/OnboardingAgreement'
        stablecoinAgreement:
          type: array
          items:
            type: object
            description: Stablecoin agreement schema for enterprise users.
            properties:
              user:
                type: string
                description: User who accepted the agreement
              date:
                oneOf:
                  - type: string
                  - type: string
                    format: date-time
                    title: ISO Date String
                  - type: string
                    format: date
                    title: Date String
                description: Date when the agreement was accepted
              ip:
                type: string
                description: IP address of the user
              version:
                type: number
                description: Version number of the agreement
            required:
              - user
              - date
              - version
        accountType:
          allOf:
            - $ref: '#/components/schemas/AccountType'
          description: Indicates which type of KYC process the enterprise has to complete
        businessModel:
          $ref: '#/components/schemas/BusinessModel'
        complianceModel:
          allOf:
            - $ref: '#/components/schemas/ComplianceModel'
          description: Regulatory compliance model for EU CaaS clients
        salesforceAccountId:
          type: string
          description: Opportunity ID from Salesforce
        salesforceOpportunityId:
          type: string
        opportunityName:
          type: string
          description: Opportunity Name from Salesforce
        salesEmail:
          type: string
        cheetahAccountId:
          type: string
          description: >-
            CheetahAccountID is the unique ID for a BitGo Trust enterprise in
            Cheetah, which is the accounting system used by Trust.
        primaryContact:
          type: string
          description: The Id of the User who is the primary contact
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        emergencyPhone:
          type: string
          description: Phone number for emergencies
          example: '+11234567890'
        pricingPlan:
          type: string
          description: The pricing plan of the enterprise
        approvalsRequired:
          type: number
          description: How many Enterprise Admins are required for action to fire
          example: 1
        mutablePolicyWindow:
          type: number
          description: >-
            Time in seconds after which policies on this Enterprise cannot be
            updated
          example: 172800
        freeze:
          $ref: '#/components/schemas/Freeze'
        bitgoEthKey:
          type: string
          description: >-
            The public portion of the ethererum key generated for the enterprise
            fee address
        ethFeeAddress:
          type: string
          description: >-
            The eth fee address used to pay for network transaction fees of this
            enterprise
        walletLimit:
          type: object
          additionalProperties:
            type: number
        preferredUi:
          allOf:
            - $ref: '#/components/schemas/AvailableUI'
          description: The UI that this enterprise prefers to use
        custodialWalletLimit:
          nullable: true
          type: object
          additionalProperties:
            type: number
        featureFlags:
          type: array
          items:
            type: string
        labels:
          type: array
          items:
            type: string
        publicLabels:
          type: array
          items:
            type: string
            description: >-
              Subset of labels that are OK to return back to client in
              GetEnterpriseResponse
        licenses:
          type: array
          items:
            type: string
            description: >-
              New licences that are not stored as flags. Tax requires Portfolio
              Professional or Institutional
        ellipticId:
          type: string
          description: >-
            Identifier for environment variables for a customer's Elliptic API
            credentials
        ellipticHotWallets:
          type: boolean
          description: Hot wallet transactions on this enterprise are monitored in Elliptic
        restrictedDvp:
          type: array
          items:
            type: string
            description: >-
              DVP (Delivery versus Payment) restriction identifiers for this
              enterprise
        vaspId:
          type: string
        bitgoVaspId:
          type: string
        coinSpecific:
          type: object
          additionalProperties: {}
        walletCounts:
          type: object
          description: Number of wallets per coin
          properties:
            enterpriseWallets:
              type: object
              additionalProperties:
                type: number
          required:
            - enterpriseWallets
        walletTypeCounts:
          type: object
          additionalProperties:
            type: number
          description: Wallet type distribution (hot/cold/custodial/etc.)
        activePricingType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/FlattenedPricingType'
        source:
          $ref: '#/components/schemas/AggregatorSourceType'
        totalWalletsCount:
          type: number
          description: The total number of wallets in the enterprise
          example: 1
        internal:
          $ref: '#/components/schemas/EnterpriseInternal'
        distributedCustody:
          $ref: '#/components/schemas/DistributedCustody'
        migratedToNewPolicyService:
          type: boolean
          description: Whether the enterprise has been migrated to the new policy service
        videoIdUsers:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                description: The email of the user
                minLength: 1
              userId:
                type: string
                description: The user ID
                minLength: 1
              inviter:
                type: string
                description: The inviter of the user
                minLength: 1
              state:
                allOf:
                  - $ref: '#/components/schemas/VideoIdUserState'
                description: The state of the user
              videoCallId:
                type: string
                description: The user's video call ID
              approvalDate:
                type: string
                description: The date the user was approved
              archivedDate:
                type: string
                description: The date the user was archived
              pendingApprovalId:
                type: string
                description: The ID if the user is pending approval
              videoLink:
                type: string
                description: The user's video link
              enterpriseId:
                type: string
                description: EnterpriseId of enterprise this video users belongs to
              enterpriseName:
                type: string
                description: EnterpriseName of enterprise this video users belongs to
            required:
              - email
              - userId
              - inviter
              - state
            description: >-
              IDs of users on the enterprise that are approved for custodial
              video ID
        sourceConfig:
          type: array
          items:
            type: object
            properties:
              source:
                $ref: '#/components/schemas/AggregatorSourceType'
              metadata:
                type: object
                description: >-
                  The following fields:

                  source, showBanner, readyForDistribution, showVideoIdBanner,
                  ftxCreditorId

                  were added for FTX insitutional distribution.

                  Reference: https://bitgoinc.atlassian.net/browse/COPS-2695
                properties:
                  showBanner:
                    type: boolean
                  readyForDistribution:
                    type: boolean
                  showVideoIdBanner:
                    type: boolean
                  ftxCreditorId:
                    type: string
                  ftxHost:
                    $ref: '#/components/schemas/FtxHostType'
                  creditorId:
                    type: string
            required:
              - source
            description: >-
              Array to store configs, upon which certain actions are taken, per
              source
        videoIdRequired:
          type: boolean
          description: Check for video ID Users
        contract:
          allOf:
            - $ref: '#/components/schemas/EnterpriseContract'
          description: Contract information
        referralCode:
          allOf:
            - $ref: '#/components/schemas/ReferralCodeString'
          description: Referral code
        logoUrl:
          type: string
          description: URL of the enterprise logo image
        oauthSetting:
          allOf:
            - $ref: '#/components/schemas/OAuthSetting'
          description: oauth setting of the enterprise *
        optOutOfPoints:
          type: boolean
          description: Opt Out of Points System Flag
        requestedBitgoOrg:
          allOf:
            - $ref: '#/components/schemas/BitgoOrg'
          description: Requested BitGo Org
        requestedProducts:
          type: array
          items:
            type: string
            enum:
              - ACH Debits
              - BitGo MMI
              - BitGo Qualified Custody
              - BitGo Qualified Custody & Hot Wallet
              - Borrowing
              - Borrowing / Lending
              - Lending
              - NFTs
              - Self Custody
              - 'Go Network: Off Exchange Settlement'
              - Staking
              - Trade
              - Transactional / Hot Wallet
              - Wrapped Asset Services
              - Escrow
              - Escrow - Triparty
              - Distributed Custody Wallet
              - Token Management (HZ)
              - Platform Integration (B2B2C)
              - BitGo Wealth Management (HZ)
              - BitGo Concierge
              - Coincover Referral
              - 'Go Network: Fiat currency Settlement'
              - Fiat Currency Custody
              - Excess Insurance
              - Setup
              - Lightning
              - Liquidity Provider
              - Alliance Agreement
              - BitGo Custody
              - BitGo MMI (Inc)
              - Coincover Referral (Inc)
              - Custom Project
              - NFTs (Inc)
              - Other (Inc)
              - Partial Signature
              - Portfolio & Tax
              - Professional Services
              - Setup (Inc)
              - Staking (Inc)
              - Platform Integration (B2B2C) (Inc)
              - OTC Trading
            description: Requested Products
        requestedBitgoProducts:
          type: array
          items:
            type: string
            enum:
              - Instant Fee Wallets
              - Go Account
              - Settlement
              - Tax
              - Trade API
              - Margin Trading
              - Elliptic
              - CryptoCompare
              - MetaMask
              - Custody
              - Borrowing
              - Lending
              - DeFi
              - Cold Self-Custody
              - Go Network
              - Staking
              - Trade
              - Hot Self-Custody
              - Escrow
              - Escrow - Triparty
              - Distributed Custody
              - Advanced Wallets
              - Stablecoins
              - Loans against Go Account
              - Auto Liquidation
              - ACH Debits
              - Go Lightning
              - Trade FIX API
              - Go Staking
            description: Requested BitGo Products
        isContractedClient:
          type: boolean
          description: True, if the enterprise has been onboarded by Salesforce
        smartWorkQueuePriority:
          type: boolean
          description: >-
            When true, Smart Work Queue treats this enterprise as priority for
            trust signing SLA tiers
        documents:
          allOf:
            - $ref: '#/components/schemas/DocumentCollection'
          description: Documents that need to be collected from this enterprise
      required:
        - id
        - name
        - bitgoOrg
        - kycState
        - legalIdentifiers
        - type
        - latestSAVersionSigned
        - travelRule
        - productLicenses
        - canAccessBorrowing
        - canAccessLending
        - canAccessSettlement
        - canAccessTrading
        - canCreateColdWallet
        - canCreateHotWallet
        - canCreateCustodialWallet
        - canCreateOffchainWallet
        - oneTimeFees
        - upfrontPaymentStatus
        - ethAlwaysUseHop
        - usersViewAllWallets
        - videoIdWaived
    BaseGoStakeIntent:
      title: BaseGoStakeIntent
      allOf:
        - type: object
          properties:
            goStakingRequestId:
              type: string
              description: Internal coordination identifier for the GO staking request.
          required:
            - goStakingRequestId
        - $ref: '#/components/schemas/BaseIntent'
      description: |-
        Base interface for GO wallet staking intents that require a GO staking
        request identifier (e.g. admin/internal go-unstake flows such as Sui).
    BaseIntent:
      title: Intent
      type: object
      properties:
        intentType:
          $ref: '#/components/schemas/IntentType'
        sequenceId:
          allOf:
            - $ref: '#/components/schemas/optionalString'
          description: Client-assigned sequence identifier for idempotency.
        comment:
          allOf:
            - $ref: '#/components/schemas/optionalString'
          description: Human-readable memo attached to the transaction.
        nonce:
          oneOf:
            - type: string
            - type: number
          description: Override the on-chain nonce for this transaction.
      required:
        - intentType
    BaseIntent1:
      title: Intent
      type: object
      properties:
        intentType:
          $ref: '#/components/schemas/IntentType1'
        sequenceId:
          $ref: '#/components/schemas/optionalString'
        comment:
          $ref: '#/components/schemas/optionalString'
        nonce:
          oneOf:
            - type: string
            - type: number
      required:
        - intentType
    BaseIntent2:
      type: object
      properties:
        intentType:
          type: string
        sequenceId:
          type: string
          description: >
            A `sequenceId` is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a `sequenceId` you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            BitGo only confirms one send request per `sequenceId` (and fails all
            subsequent attempts), you can retry sending without the risk of
            double spending. The `sequenceId` is only visible to users on the
            wallet and is not shared publicly. It is the responsibility of the
            caller to keep track of this ID.
          example: abc123
        comment:
          type: string
          description: >-
            The `comment` is only visible to users on the wallet and is not
            shared publicly.
        nonce:
          type: string
          description: The 'nonce' of a transaction (optional)
        memo:
          type: string
          description: >
            A `memo` is an additional address feature necessary for identifying
            a transaction recipient beyond wallet address.
      required:
        - intentType
    BaseIntentWithAmount:
      title: BaseIntentWithAmount
      type: object
      description: >-
        Schema fragment for intents with direct amount field


        This fragment defines an amount field directly on the intent object

        (not nested in recipients). Common in staking, claiming, and delegation
        intents.


        Used by:

        - StakeIntent variants (AtomStakeIntent, SolStakeIntent, etc.)

        - UnstakeIntent variants (AtomUnstakeIntent, etc.)

        - DelegateIntent variants (BscDelegateIntent, TonDelegateIntent, etc.)

        - ClaimRewardsIntent variants (AdaStakeClaimRewardsIntent, etc.)

        - WithdrawIntent variants (AtomWithdrawIntent, CosmosWithdrawIntent,
        etc.)


        Asset extraction: Extracts symbol from the amount field
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/Amount'
          description: >-
            Transaction amount. amount.symbol identifies the asset (e.g.
            "hypeevm:eth"); amount.value is the quantity in base units.
      required:
        - amount
    BaseIntentWithRecipients:
      title: BaseIntentWithRecipients
      type: object
      description: >-
        ============================================================================

        REUSABLE SCHEMA FRAGMENTS FOR ASSET-CONTAINING INTENTS

        ============================================================================


        These schemas define reusable building blocks that concrete intent
        schemas

        can compose with. They serve multiple purposes:


        1. **Schema Reuse**: Concrete intents can intersect with these fragments

        2. **Pattern Matching**: getAssetsFromIntent utility matches against
        these

        3. **Type Safety**: Ensures consistency across all asset-containing
        intents

        4. **Documentation**: Clearly shows which intents handle which asset
        types


        By using the actual RecipientEntry and TokenRecipientEntry types, we
        ensure

        these patterns exactly match the structures used in concrete intents.
      properties:
        recipients:
          type: array
          items:
            type: object
            properties:
              address:
                $ref: '#/components/schemas/Address'
              amount:
                $ref: '#/components/schemas/Amount'
              data:
                $ref: '#/components/schemas/optionalString'
            required:
              - address
              - amount
            description: Array of recipient addresses and amounts.
      required:
        - recipients
    BaseIntentWithTokenName:
      title: BaseIntentWithTokenName
      type: object
      description: |-
        Schema fragment for intents with direct tokenName field

        This fragment defines a tokenName field directly on the intent object
        (not nested in recipients).

        Used by:
        - TokenApprovalIntent

        Asset extraction: Extracts tokenName
      properties:
        tokenName:
          type: string
          description: Name of the ERC-20 token to approve (e.g. "usdc", "weth").
      required:
        - tokenName
    BaseIntentWithTokenRecipients:
      title: BaseIntentWithTokenRecipients
      type: object
      description: >-
        Schema fragment for intents with token recipients


        This fragment defines a recipients array using TokenRecipientEntry,
        which

        extends RecipientEntry with optional tokenData containing token-specific
        info.


        Used by:

        - TransferTokenIntent (and variants: EthTransferTokenIntent, etc.)

        - ConsolidateTokenIntent (and variants: EthConsolidateTokenIntent, etc.)


        Asset extraction: Extracts tokenName only (the actual asset identifier)

        Note: tokenType, tokenContractAddress, tokenId are technical fields, not
        assets

        Note: This also matches BaseIntentWithRecipients since
        TokenRecipientEntry extends RecipientEntry
      properties:
        recipients:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  tokenData:
                    $ref: '#/components/schemas/TokenData'
              - $ref: '#/components/schemas/RecipientEntry'
            description: >-
              Recipients of the token transfer. Each entry must include
              tokenData with tokenName and tokenContractAddress.
      required:
        - recipients
    BaseIntentWithoutNonce:
      title: BaseIntentWithoutNonce
      type: object
      properties:
        intentType:
          $ref: '#/components/schemas/IntentType'
        sequenceId:
          allOf:
            - $ref: '#/components/schemas/optionalString'
          description: Client-assigned sequence identifier for idempotency.
        comment:
          allOf:
            - $ref: '#/components/schemas/optionalString'
          description: Human-readable memo attached to the transaction.
      required:
        - intentType
    BaseIntentWithoutNonce1:
      title: BaseIntentWithoutNonce
      type: object
      properties:
        intentType:
          $ref: '#/components/schemas/IntentType1'
        sequenceId:
          $ref: '#/components/schemas/optionalString'
        comment:
          $ref: '#/components/schemas/optionalString'
      required:
        - intentType
    BaseOAuthSetting:
      title: BaseOAuthSetting
      type: object
      properties:
        clientId:
          type: string
        clientSecret:
          type: string
      required:
        - clientId
        - clientSecret
    BasePermissionAttributes:
      description: Base attributes for all permission types.
      type: object
      properties:
        enabled:
          description: True if the permission is enabled.
          type: boolean
        disabledReason:
          description: Reason why the permission is disabled, if applicable.
          type: string
          nullable: true
      required:
        - enabled
    BaseShare:
      title: BaseShare
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/SignatureShareType'
          description: The source of the commitment share
          example: user
        to:
          allOf:
            - $ref: '#/components/schemas/SignatureShareType'
          description: The recipient of the commitment share.
          example: bitgo
        share:
          type: string
          description: The commitment share.
      required:
        - from
        - to
        - share
    BaseSpendableAttributes:
      type: object
      properties:
        max:
          description: The maximum spendable amount.
          type: string
        min:
          description: The minimum spendable amount.
          type: string
        multiplier:
          description: >-
            The multiplier amount to be staked. Default to 1, but for coins like
            where the amount to stake is a multiple of 32 ETH, this is 32 in
            base unit, to allow validation.
          type: string
        fee:
          description: The blockchain fee to submit the transactions.
          type: string
    BaseStakeIntent:
      title: BaseStakeIntent
      allOf:
        - type: object
          properties:
            stakingRequestId:
              type: string
              description: >-
                ID of the staking request, obtained from the BitGo staking
                service.
            source:
              allOf:
                - $ref: '#/components/schemas/StakingRequestSource'
              description: >-
                Origin of the staking request: MANUAL (user-initiated),
                AUTO_STAKE, or EXTERNAL.
          required:
            - stakingRequestId
        - $ref: '#/components/schemas/BaseIntent'
    BaseStakeIntent1:
      title: BaseStakeIntent
      allOf:
        - type: object
          properties:
            stakingRequestId:
              type: string
          required:
            - stakingRequestId
        - $ref: '#/components/schemas/BaseIntent1'
    BaseStakeIntent2:
      allOf:
        - $ref: '#/components/schemas/BaseIntent2'
        - type: object
          properties:
            stakingRequestId:
              type: string
          required:
            - stakingRequestId
    BaseStakeIntentWithCalldata:
      title: Base Stake Intent with Calldata
      allOf:
        - type: object
          properties:
            calldata:
              type: string
              description: >-
                Pre-computed ABI-encoded calldata for the staking contract
                interaction, provided by the BitGo staking service.
          required:
            - calldata
        - $ref: '#/components/schemas/BaseStakeIntent'
    BaseStakingTransaction:
      title: Base Staking Transaction
      allOf:
        - $ref: '#/components/schemas/StakingTransaction'
        - type: object
          properties:
            buildParams:
              $ref: '#/components/schemas/TransactionBuildParams'
            delegationIds:
              type: array
              items:
                type: string
                format: uuid
              description: Multiple delegation IDs associated with this transaction
            delegations:
              type: array
              items:
                $ref: '#/components/schemas/BaseDelegation'
              description: Delegation objects associated with this transaction
    BaseStakingTransactionProperties:
      title: Base Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
    BaseStakingWalletEntityProperties:
      title: Base Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - BASE
        walletMultisigType:
          type: string
          enum:
            - TSS
      required:
        - type
        - walletMultisigType
    BaseSwitchStakingRequestEntityProperties:
      title: Base switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
    BaseSwitchTransactionProperties:
      title: Base Switch Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            destValidatorAddress:
              type: string
    BaseTradeCorrectionMetadata:
      title: BaseTradeCorrectionMetadata
      type: object
      properties:
        correctingUser:
          type: string
          minLength: 1
        reason:
          type: string
          minLength: 1
      required:
        - correctingUser
        - reason
    BaseWalletAddress:
      title: BaseWalletAddress
      type: object
      properties:
        id:
          type: string
          description: Platform public ID for an address
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        address:
          $ref: '#/components/schemas/AddressString'
        balance:
          $ref: '#/components/schemas/TrimmedBalance'
        coinSpecific:
          allOf:
            - $ref: '#/components/schemas/AddressSubdocument'
          description: Properties specific to certain coin types
        label:
          $ref: '#/components/schemas/AddressLabelString'
        lastNonce:
          type: number
          default: -1
        token:
          type: string
        proof:
          type: string
        signature:
          type: string
        lastConsolidatedTime:
          type: string
          format: date
          title: Date String
        needsConsolidation:
          type: boolean
        tokenConsolidationState: {}
        tokenAddress: {}
    BeraDelegateIntent:
      title: Bera Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    BeraDelegationProperties:
      title: BERA Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          required:
            - stakingType
          properties:
            stakingType:
              type: string
              enum:
                - NATIVE_STAKE
                - INFRARED_LIQUID_STAKE
            operator:
              type: string
              nullable: true
            validatorPubkey:
              type: string
              nullable: true
            withdrawCredentials:
              type: string
              nullable: true
            depositSignature:
              type: string
              nullable: true
            iBeraTotal:
              type: string
              format: bigInteger
              nullable: true
            beraDepositsMinusWithdrawals:
              type: string
              format: bigInteger
              nullable: true
            activationBlock:
              type: string
              nullable: true
            lastSyncedDelegationBlock:
              type: string
              nullable: true
    BeraStakingDelegation:
      title: BERA Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    BeraStakingRequest:
      title: BERA
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BeraStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request.
        subType:
          description: The staking type (NATIVE_STAKE, INFRARED_LIQUID_STAKE).
          type: string
          enum:
            - NATIVE_STAKE
            - INFRARED_LIQUID_STAKE
        operator:
          description: The operator address.
          type: string
    BeraStakingRequestEntityProperties:
      title: Bera staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            stakingType:
              type: string
              enum:
                - NATIVE_STAKE
                - INFRARED_LIQUID_STAKE
            operator:
              type: string
              description: Optional operator address.
            validatorPubkey:
              type: string
              description: Validator BLS public key.
            withdrawCredentials:
              type: string
              description: Withdraw credentials.
            depositSignature:
              type: string
              description: Deposit signature.
    BeraStakingRequestPOSTBody:
      title: BERA stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
      properties:
        subType:
          description: The staking type (NATIVE_STAKE, INFRARED_LIQUID_STAKE).
          type: string
          enum:
            - NATIVE_STAKE
            - INFRARED_LIQUID_STAKE
          default: INFRARED_LIQUID_STAKE
        operator:
          description: The operator address.
          type: string
        withdrawCredentials:
          description: The withdraw credentials.
          type: string
        depositSignature:
          description: The deposit signature.
          type: string
    BeraStakingTransactionProperties:
      title: BERA Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            stakingType:
              type: string
              enum:
                - NATIVE_STAKE
                - INFRARED_LIQUID_STAKE
            validatorPubkey:
              type: string
            validatorWithdrawCredentials:
              type: string
            sendDepositSignature:
              type: string
            operator:
              type: string
    BeraStakingWalletEntityProperties:
      title: BERA Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - BERA
        principal:
          type: string
          format: bigInteger
        liquidStakingBalance:
          type: string
          format: bigInteger
        nativeStakingBalance:
          type: string
          format: bigInteger
        walletMultisigType:
          type: string
          enum:
            - TSS
      required:
        - type
        - principal
        - liquidStakingBalance
        - nativeStakingBalance
        - walletMultisigType
    BeraUnStakingRequestPOSTBody:
      title: BERA unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    BeraUnstakingRequestEntityProperties:
      title: Bera unstaking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            delegationId:
              type: string
              description: Delegation identifier.
          required:
            - delegationId
    BeraUnstakingTransactionProperties:
      title: BERA Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            stakingType:
              type: string
              enum:
                - NATIVE_STAKE
                - INFRARED_LIQUID_STAKE
            shares:
              type: string
    Birthdate:
      type: object
      properties:
        month:
          type: string
          pattern: ^\d{2}$
          description: birthdate month (MM, e.g. "06")
        day:
          type: string
          pattern: ^\d{2}$
          description: birthdate day (DD, e.g. "15")
        year:
          type: string
          pattern: ^\d{4}$
          description: birthdate year (YYYY, e.g. "1990")
      required:
        - month
        - day
        - year
      title: Birthdate
      description: Birthdate
    BitcoinCashAddress:
      title: Bitcoin Cash Address
      allOf:
        - type: object
          properties:
            format:
              $ref: '#/components/schemas/SupportedAddressFormat'
        - $ref: '#/components/schemas/UtxoAddress'
    BitcoinSendQueueLighting:
      title: Bitcoin
      oneOf:
        - type: object
          properties:
            feeLimit:
              type: number
            invoice:
              type: string
            lightning:
              type: boolean
              enum:
                - true
          required:
            - feeLimit
            - invoice
            - lightning
        - type: object
          properties:
            lightning:
              type: boolean
              enum:
                - true
            withdrawalDestination:
              type: string
          required:
            - lightning
            - withdrawalDestination
    BitgoOrg:
      title: BitgoOrg
      type: string
      enum:
        - BitGo Trust
        - BitGo New York
        - BitGo Germany
        - BitGo Switzerland
        - BitGo Europe ApS
        - Frankfurt DE Trust
        - BitGo Singapore
        - BitGo Korea
        - BitGo Custody MENA FZE
        - BitGo India
        - BitGo Sister Trust 1
        - BitGo Inc
    BitgoTSSPublicKeyResponse:
      title: BitgoTSSPublicKeyResponse
      type: object
      properties:
        enterpriseId:
          type: string
          description: Enterprise id for the intended operation (if present in the request)
        name:
          type: string
          description: >-
            Name of the key, used for simple identification. Matches MPC key
            namess in client constants
        publicKey:
          type: string
          description: BitGo MPC public key
        mpcv2PublicKey:
          type: string
          description: BitGo ECDSA MPCv2 public key
        eddsaMpcv2PublicKey:
          type: string
          description: BitGo EdDSA MPCv2 public key
      required:
        - name
    BldClaimRewardsRequestPOSTBody:
      title: Agoric (BLD) Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Agoric (BLD).
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    BldStakingRequest:
      title: BLD
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    BldStakingRequestPOSTBody:
      title: BLD stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    BldSwitchValidatorsRequestPOSTBody:
      title: Agoric (BLD) Switch Validators Request
      type: object
      description: >-
        Request to switch staking delegation to a new validator for Agoric
        (BLD).
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    BldUnStakingRequestPOSTBody:
      title: BLD unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    BlincAccountResponseProps:
      title: BlincAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - blinc
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
        externalId:
          type: string
          minLength: 1
      required:
        - type
        - accountType
        - externalId
    BlincBankAccountRequest:
      title: BlincBankAccountRequest
      description: >-
        Request schema for creating a Blinc bank account. Note that
        bankAddressCountryCode, bankAddressLine1, bankAddressStateProvince,
        bankAddressPostalCode, bankAddressCityLocality are not required for this
        bank account type and will be overridden on successful request.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - blinc
              description: Must be 'blinc' for Blinc accounts
            externalId:
              type: string
              description: External identifier for the Blinc account
          required:
            - type
            - externalId
        - $ref: '#/components/schemas/BankAccountRequest1'
    BlincBankAccountResponse:
      title: BlincBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/BlincAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    BlockHash:
      type: string
      example: 0000000000000296ed56abee6cb78e40b00c47a03d92e71dd92c4862ca636b95
    BscDelegateIntent:
      title: BSC Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
            relayerFee:
              type: string
            delegateVotePower:
              type: string
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    BscDelegationProperties:
      title: BSC Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - validatorAddress
          properties:
            validatorAddress:
              type: string
            activeRewards:
              type: string
              format: bigInteger
    BscStakingRequest:
      title: BSC
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    BscStakingRequestEntityProperties:
      title: BSC staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validatorAddress:
          type: string
          nullable: true
    BscStakingRequestPOSTBody:
      title: BSC stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    BscStakingTransactionProperties:
      title: BSC Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
    BscUnDelegateIntent:
      title: BSC UnDelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
            relayerFee:
              type: string
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    BscUnStakingRequestPOSTBody:
      title: BSC unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    BscUnstakingTransactionProperties:
      title: BSC Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
    BscWithdrawUndelegateIntent:
      title: BSC Withdraw Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
            requestNumber:
              type: number
          required:
            - validatorAddress
            - requestNumber
        - $ref: '#/components/schemas/WithdrawIntent'
    BscWithdrawUndelegatedTransactionProperties:
      title: BSC Withdraw Undelegated Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
    BtcBabylonDelegationProperties:
      title: BTC Babylon Delegation Properties
      type: object
      required:
        - duration
        - rewardAddress
      properties:
        duration:
          type: integer
        rewardAddress:
          type: string
        babylonAddressPubkey:
          type: string
          nullable: true
    BtcBabylonStakingProperties:
      type: object
      properties:
        duration:
          type: integer
          format: int64
        rewardAddress:
          type: string
    BtcClaimRewardsRequestEntityProperties:
      title: BTC claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            delegationId:
              type: string
              description: Optional delegation identifier.
            coredao:
              $ref: '#/components/schemas/BtcCoredaoClaimRewardsProperties'
    BtcClaimRewardsTransactionProperties:
      title: BTC Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            coredao:
              $ref: '#/components/schemas/BtcCoredaoClaimRewardsProperties'
    BtcCoredaoClaimRewardsProperties:
      title: BTC Coredao claim rewards properties
      type: object
      properties:
        claimedCoreReward:
          type: string
          description: Claimed CORE reward amount in base units.
        claimedBtcReward:
          type: string
          description: Claimed BTC reward amount in base units.
        claimedHashReward:
          type: string
          description: Claimed HASH reward amount in base units.
      required:
        - claimedCoreReward
        - claimedBtcReward
        - claimedHashReward
    BtcCoredaoDelegationProperties:
      title: BTC CoreDAO Delegation Properties
      type: object
      required:
        - expireAt
        - rewardAddress
      properties:
        expireAt:
          type: string
          format: date-time
        rewardAddress:
          type: string
        redeemScript:
          type: string
          nullable: true
    BtcCoredaoStakingProperties:
      type: object
      properties:
        expireAt:
          type: string
          format: date-time
        rewardAddress:
          type: string
    BtcDelegationProperties:
      title: BTC Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            expireAt:
              type: string
              format: date-time
              nullable: true
            rewardAddress:
              type: string
              nullable: true
            targetWalletId:
              type: string
              nullable: true
            unspent:
              type: string
              nullable: true
            redeemScript:
              type: string
              nullable: true
            recipientAddress:
              type: string
              nullable: true
            rewardWalletId:
              type: string
              nullable: true
            activeRewards:
              type: string
              format: bigInteger
            rewardCoin:
              $ref: '#/components/schemas/Coin2'
            txHex:
              type: string
              nullable: true
            babylon:
              $ref: '#/components/schemas/BtcBabylonDelegationProperties'
            coredao:
              $ref: '#/components/schemas/BtcCoredaoDelegationProperties'
    BtcStakingDelegation:
      title: BTC Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
        - type: object
          description: Bitcoin staking delegation.
          properties:
            properties:
              $ref: '#/components/schemas/BtcDelegationProperties'
            rewardCoin:
              $ref: '#/components/schemas/Coin2'
            unstakingFee:
              type: string
              description: Fee charged for unstaking (stringified bigint).
            unstakingMin:
              type: string
              description: Minimum amount required to unstake (stringified bigint).
            unstakeable:
              type: boolean
              description: Indicates whether the delegation can currently be unstaked.
              nullable: true
            permissionAttributes:
              $ref: '#/components/schemas/WalletStakingPermissionAttributes'
            claimableRewards:
              type: string
              description: Rewards that are currently claimable (stringified bigint).
              nullable: true
            endTime:
              type: string
              description: >-
                End time of the delegation in epoch seconds (stringified
                bigint).
              nullable: true
    BtcStakingOptions:
      type: object
      title: BTC staking options
      properties:
        validator:
          type: string
          description: Validator identifier for BTC staking
        amount:
          type: string
          description: Amount to stake (base units)
      required:
        - validator
        - amount
    BtcStakingRequest:
      title: BTC
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BtcStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    BtcStakingRequestEntityProperties:
      title: BTC staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
        protocol:
          type: string
          description: Staking protocol used for BTC staking.
          enum:
            - COREDAO
            - BABYLON
        coredao:
          $ref: '#/components/schemas/CoredaoStakingParms'
        babylon:
          $ref: '#/components/schemas/BabylonStakingParms'
    BtcStakingRequestPOSTBody:
      title: BTC stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        coredao:
          type: object
          properties:
            expireAt:
              description: The expiration date of the staking.
              type: string
              format: date-time
              example: '2025-01-01T00:00:00.000Z'
            rewardAddress:
              description: The address where rewards will be sent.
              type: string
              example: '0x1234567890abcdef1234567890abcdef12345678'
        babylon:
          type: object
          properties:
            duration:
              description: The duration of staking in seconds.
              type: integer
              format: int64
              example: 2592000
            rewardAddress:
              description: The address where rewards will be sent.
              type: string
              example: '0x1234567890abcdef1234567890abcdef12345678'
    BtcStakingTransaction:
      title: BTC Staking Transaction
      allOf:
        - $ref: '#/components/schemas/BaseStakingTransaction'
        - type: object
          properties:
            rewardWalletId:
              type: string
              description: Wallet ID for receiving staking rewards
            rewardCoin:
              type: string
              description: Coin type for staking rewards
            walletId:
              type: string
              description: ID of the BTC wallet used for staking
    BtcStakingTransactionProperties:
      title: BTC Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
        - type: object
          properties:
            expireAt:
              type: string
            rewardAddress:
              type: string
            coredao:
              $ref: '#/components/schemas/BtcCoredaoStakingProperties'
            babylon:
              $ref: '#/components/schemas/BtcBabylonStakingProperties'
    BtcUnStakingRequestPOSTBody:
      title: BTC unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    BtcUnstakingTransactionProperties:
      title: BTC Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            validatorAddress:
              type: string
    BuildDelegationsResponse:
      title: BuildDelegationsResponse
      type: object
      properties:
        transactions:
          type: array
          items: {}
        errors:
          type: array
          items:
            type: object
            properties:
              receiverAddress:
                type: string
              message:
                type: string
            required:
              - receiverAddress
              - message
      required:
        - transactions
        - errors
    BuildParams:
      type: object
      properties:
        type:
          type: string
          description: >
            Required for transactions from MPC wallets. "acceleration" speeds up
            transactions with a certain nonce by adjusting the gas setting.
            "accountSet" is for XRP AccountSet transactions. "consolidate"
            combines multiple UTXO inputs into fewer outputs. "enabletoken" is
            for SOL. "fanout" splits UTXO inputs into many smaller outputs (UTXO
            coins only). "stakingLock" and "stakingUnlock" are for Stacks
            delegations. "transfer" is for native-asset transfers. "trustline"
            is for Stellar trustline transactions. Possible types include:
            [acceleration, accountSet, consolidate, enabletoken, fanout,
            stakingLock, stakingUnlock, transfer, transfertoken, trustline]


            For AVAX, possible types include: `addValidator`, `export`, and
            `import`.


            For XRP, possible types include: `payment` and `accountSet`. The
            default is `payment`.


            For STX, type is required.
        messages:
          description: >-
            [UTXO only] An array of messages that you sign with the wallet keys
            using the BIP322 format. If passed, the `recipients` array must be
            empty.
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: >-
                  The address for which you're proving ownership. This address
                  must belong to the wallet.
              message:
                type: string
                description: Message that is being signed.
                example: BIP322 test message.
        numBlocks:
          type: integer
          description: >
            (BTC only) The number of blocks required to confirm a transaction.
            You can use `numBlocks` to estimate the fee rate by targeting
            confirmation within a given number of blocks. If both `feeRate` and
            `numBlocks` are absent, the transaction defaults to 2 blocks for
            confirmation.


            Note: The `maxFeeRate` limits the fee rate generated by `numBlocks`.
          minimum: 2
          maximum: 1000
        feeRate:
          allOf:
            - $ref: '#/components/schemas/IntegerOrString'
            - example: 10000
          description: >
            Custom fee rate (in base units) per kilobyte (or virtual kilobyte).
            For example, satoshis per kvByte.


            If the `feeRate` is less than the minimum required network fee, then
            the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000
            microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is
            usually 4.5 times the open ledger fee.


            Note: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.
        maxFeeRate:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
            - example: 20000
          description: >
            (BTC only) The maximum fee rate (in base units) per kilobyte (or
            virtual kilobyte). For example, satoshis per kvByte. The
            `maxFeeRate` limits the fee rate generated by both `feeMultiplier`
            and `numBlocks`.


            Note: The `feeRate` overrides the `maxFeeRate`.
        feeMultiplier:
          allOf:
            - $ref: '#/components/schemas/NumberOrString'
            - example: 1.5
          description: >
            (UTXO only) Custom multiplier to the `feeRate`. The resulting fee
            rate is limited by the `maxFeeRate`. For replace-by-fee (RBF)
            transactions (that include `rbfTxIds`), the `feeMultiplier` must be
            greater than 1, since it's an absolute fee multiplier to the
            transaction being replaced.


            Note: The `maxFeeRate` limits the fee rate generated by
            `feeMultiplier`.
        minConfirms:
          type: integer
          description: >
            The unspent selection for the transaction will only consider
            unspents with at least this many confirmations to be used as inputs.
            Does not apply to change outputs unless used in combination with
            `enforceMinConfirmsForChange`.
        enforceMinConfirmsForChange:
          type: boolean
          description: >-
            When set to true, will enforce minConfirms for change outputs.
            Defaults to false.
          default: false
        gasPrice:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Custom gas price to be used for sending the transaction. Only for
            ETH and ERC20 tokens.
        eip1559:
          properties:
            maxPriorityFeePerGas:
              allOf:
                - $ref: '#/components/schemas/IntegerOrIntegerString'
                - maximum: 100000000000
              description: >-
                Max priority tip price for EIP1559 transactions. Only for ETH
                and ERC20 tokens.
            maxFeePerGas:
              allOf:
                - $ref: '#/components/schemas/IntegerOrIntegerString'
              description: >-
                Max total gasPrice for EIP1559 transactions. Only for ETH and
                ERC20 tokens.
        gasLimit:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Custom gas limit to be used for sending the transaction. Only for
            ETH and ERC20 tokens.
        targetWalletUnspents:
          type: integer
          description: >
            Specifies the minimum count of good-sized unspents to maintain in
            the wallet. Change splitting ceases when the

            wallet has `targetWalletUnspents` good-sized unspents.


            **Note**: Wallets that continuously send a high count of
            transactions will automatically split large change amounts

            into multiple good-sized change outputs while they have fewer than
            `targetWalletUnspents` good-sized unspents in

            their unspent pool. Breaking up large unspents helps to reduce the
            amount of unconfirmed funds in flight in future

            transactions, and helps to avoid long chains of unconfirmed
            transactions. This is especially useful for newly

            funded wallets or recently refilled send-only wallets.
          default: 1000
        minValue:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Ignore unspents smaller than this amount of base units (e.g.
            satoshis). For doge, only string is allowed.
        maxValue:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Ignore unspents larger than this amount of base units (e.g.
            satoshis). For doge, only string is allowed.
        sequenceId:
          type: string
          description: >
            A `sequenceId` is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a `sequenceId` you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            the system only confirms one send request per `sequenceId` (and
            fails all subsequent attempts), you can retry sending without the
            risk of double spending. The `sequenceId` is only visible to users
            on the wallet and is not shared publicly.
        nonce:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >
            (DOT only) A nonce ID is a number used to protect private
            communications by preventing replay attacks.

            This is an advanced option where users can manually input a new
            nonce value

            in order to correct or fill in a missing nonce ID value.
        noSplitChange:
          type: boolean
          description: |
            Set `true` to disable automatic change splitting.

            Also see: `targetWalletUnspents`
          default: false
        unspents:
          type: array
          items:
            example: 12b147dd8b4f73c01f72bdbf5b589eea614f3de609ffdbdac84852d6505cf8a3:1
            type: string
          description: >
            Used to explicitly specify the unspents to be used in the input set
            in the transaction. Each unspent should be in the form
            `prevTxId:nOutput`.
        changeAddress:
          allOf:
            - $ref: '#/components/schemas/AddressString3'
          description: >-
            Specifies a custom destination address for the transaction's change
            output(s)
        txFormat:
          $ref: '#/components/schemas/UtxoTransactionFormat'
        instant:
          type: boolean
          description: >-
            (DASH only) Specifies whether or not to use Dash's "InstantSend"
            feature when sending a transaction.
        memo:
          type: object
          properties:
            type:
              type: string
            value:
              type: string
          description: >
            Extra transaction information for CSPR, EOS, HBAR, RUNE, STX, TON,
            XLM, and XRP. Required for XLM transactions.


            Note: For XRP this is the destination tag (DT), for CSPR this is the
            transfer ID and for ALGO this is the message field.
        comment:
          type: string
          description: >
            Optional metadata (only persisted in BitGo) to be applied to the
            transaction. Use this to add transaction-specific information such
            as the transaction's purpose or another identifier that you want to
            reference later. The value is shown in the UI in the transfer
            listing page.
          maxLength: 256
        destinationChain:
          type: string
          description: >-
            (AVAXC and AVAXP only) Destination chain for an AVAX import/export
            transaction. One of [P, C].
        sourceChain:
          type: string
          description: >-
            (AVAXC and AVAXP only) Source chain for an AVAX import/export
            transaction. One of [P, C].
        addressType:
          type: string
          deprecated: true
          description: >-
            DEPRECATED - use `changeAddressType`.

            The type of address to create for change. One of `p2sh`,
            `p2shP2wsh`, `p2wsh`, or `p2tr`.
        changeAddressType:
          anyOf:
            - $ref: '#/components/schemas/AddressType1'
            - $ref: '#/components/schemas/ChangeAddressTypes'
          description: >-
            The address type for the change address. One of `p2sh`, `p2shP2wsh`,
            `p2wsh`, `p2tr` or `p2trMusig2`.
        startTime:
          type: string
          description: >-
            Unix timestamp in seconds.nanoseconds format, denoting the start of
            the validity window. Only for HBAR transactions.
          example: 1714067129.1020603
        consolidateId:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: >-
            (ALGO/TEZOS only) Consolidation ID of this consolidation
            transaction.
        lastLedgerSequence:
          type: integer
          description: >-
            (XRP only) Absolute max ledger the transaction should be accepted
            in, whereafter it will be rejected
        ledgerSequenceDelta:
          type: integer
          description: >-
            (XRP only) Relative ledger height (in relation to the current
            ledger) that the transaction should be accepted in, whereafter it
            will be rejected
        rbfTxIds:
          type: array
          items:
            type: string
          description: >-
            The list of transactions to accelerate using Replace-By-Fee (RBF)
            for UTXO coins (currently accelerating only one tx is supported).
        isReplaceableByFee:
          type: boolean
          description: >-
            It is used to mark an UTXO transaction eligible for Replace-By-Fee
            (RBF) later.
        validFromBlock:
          type: integer
          description: Optional block this transaction is valid from
        validToBlock:
          type: integer
          description: Optional block this transaction is valid until
        trustlines:
          type: array
          items:
            $ref: '#/components/schemas/Trustline'
          description: List of trustlines to manage on the account. Available for Stellar.
        stakingOptions:
          anyOf:
            - $ref: '#/components/schemas/CSPRStakingOptions'
            - $ref: '#/components/schemas/STXStakingOptions'
          description: Required object for staking. Only for CSPR and STX.
        messageKey:
          type: string
          description: >-
            Optional parameter that takes a hexadecimal value to set
            `messagekey` for an XRP `accountSet` transaction. Recipients field
            should be empty when `messageKey` is set.
        reservation:
          type: object
          properties:
            expireTime:
              type: string
              format: date-time
              description: Required. The time that the unspent reservations should expire.
          description: >-
            Optional parameter for UTXO coins to automatically reserve the
            unspents that are used in the build. Useful for Cold wallets. If
            using, must set expireTime.
    BuildTokenApprovalResponse:
      title: BuildTokenApprovalResponse
      type: object
      properties:
        txHex:
          type: string
        txInfo:
          type: object
          properties:
            amount:
              type: string
            contractAddress:
              type: string
            spender:
              type: string
          required:
            - amount
            - contractAddress
            - spender
        recipients:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
              amount:
                type: string
              data:
                type: string
            required:
              - address
              - amount
              - data
        eip1559:
          type: object
          properties:
            maxFeePerGas:
              type: string
            maxPriorityFeePerGas:
              type: string
          required:
            - maxFeePerGas
            - maxPriorityFeePerGas
        nextContractSequenceId:
          type: number
        coin:
          type: string
        walletId:
          type: string
      required:
        - txHex
        - txInfo
        - recipients
        - nextContractSequenceId
        - coin
        - walletId
    BulkPolicyRuleAction:
      title: BulkPolicyRuleAction
      type: object
      description: >-
        Action for a policy rule - simplified version of PolicyRuleAction that's
        Json-compatible

        (Original uses h.optionalized which creates intersection types
        incompatible with Json)
      properties:
        type:
          type: string
        userIds:
          type: array
          items:
            type: string
      required:
        - type
    BulkPolicyRuleUpdateResponse:
      title: BulkPolicyRuleUpdateResponse
      type: object
      description: Response for bulk policy rule update
      properties:
        successes:
          type: array
          items:
            description: Wallets that were successfully updated
        failures:
          type: array
          items:
            type: object
            properties:
              walletId:
                type: string
              error:
                type: string
            required:
              - walletId
              - error
            description: Wallets that failed to update
        pendingAdminApproval:
          allOf:
            - $ref: '#/components/schemas/PendingApproval'
          description: >-
            Pending approval created for multi-wallet updates requiring admin
            approval
        travelRulePendingApprovals:
          type: array
          items:
            description: Pending approvals created for travel rule compliance
    BulkTerminateResponse:
      title: BulkTerminateResponse
      type: object
      properties:
        settlementIds:
          type: array
          items:
            type: string
            title: uuid
      required:
        - settlementIds
    BulkUpdateResponse:
      title: BulkUpdateResponse
      type: object
      description: Response type for bulk update
      properties:
        results:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  paId:
                    type: string
                    description: Pending approval ID
                  status:
                    type: string
                    enum:
                      - success
                    description: Result status
                required:
                  - paId
                  - status
              - type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  paId:
                    type: string
                    description: Pending approval ID
                  status:
                    type: string
                    enum:
                      - error
                    description: Result status
                required:
                  - message
                  - paId
                  - status
            description: Individual approval result item
      required:
        - results
    BulkWebhookNotificationDTO:
      required:
        - createdAt
        - id
        - notificationRequestId
        - payload
        - retries
        - status
        - type
        - updatedAt
        - url
        - webhookId
      type: object
      properties:
        id:
          type: string
          format: uuid
        webhookId:
          type: string
        notificationRequestId:
          type: string
        url:
          type: string
        payload:
          type: string
        type:
          type: string
        status:
          type: string
        retries:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        response:
          type: object
          additionalProperties:
            type: object
        coin:
          type: string
        walletId:
          type: string
        enterpriseId:
          type: string
        organizationId:
          type: string
        transferId:
          type: string
        hash:
          type: string
        retriggeredNotificationRequestId:
          type: string
        retriggerError:
          type: string
    BulkWebhookNotificationFilters:
      type: object
      properties:
        start:
          type: string
          description: >-
            Start timestamp (default: now - 1 day). Supports ISO 8601 datetime
            (2023-01-01T00:00:00Z) or simple date (2023-01-01).
          example: '2023-01-01T00:00:00.000Z'
        end:
          type: string
          description: >-
            End timestamp (default: now). Supports ISO 8601 datetime
            (2023-12-31T23:59:59Z) or simple date (2023-12-31).
          example: '2023-12-31T23:59:59.000Z'
        enterpriseId:
          type: string
          description: Filter by enterprise ID
          example: ent-abc123
        organizationId:
          type: string
          description: Filter by organization ID
          example: org-xyz789
        walletId:
          type: string
          description: Filter by wallet ID
          example: wallet-def456
        type:
          type: string
          description: Filter by notification type
          example: transfer
        coin:
          type: string
          description: Filter by coin
          example: btc
      description: Optional filters to narrow results
    BulkWebhookNotificationMetadata:
      required:
        - limit
        - offset
        - total
      type: object
      properties:
        total:
          type: integer
          format: int64
        limit:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
    BulkWhitelistAddEntry:
      title: BulkWhitelistAddEntry
      type: object
      description: Entry to add to the whitelist
      properties:
        item:
          type: string
        type:
          type: string
        metaData:
          type: object
          additionalProperties:
            type: string
      required:
        - item
        - type
    BulkWhitelistCondition:
      title: BulkWhitelistCondition
      type: object
      description: >-
        Condition for whitelist update - simplified version of
        AdvancedListRuleUpdateCondition
      properties:
        add:
          $ref: '#/components/schemas/BulkWhitelistAddEntry'
        remove:
          $ref: '#/components/schemas/BulkWhitelistRemoveEntry'
        verifyItems:
          type: object
          properties:
            items:
              type: array
              items:
                type: string
          required:
            - items
    BulkWhitelistRemoveEntry:
      title: BulkWhitelistRemoveEntry
      type: object
      description: Entry to remove from the whitelist
      properties:
        item:
          type: string
        type:
          type: string
      required:
        - item
    Business:
      type: object
      properties:
        businessName:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
          description: Legal name of the business
        incorporationCountryCode:
          description: Country of incorporation (ISO 3166-1 alpha-3)
        primaryOperationsCountryCode:
          description: Primary country of operations (ISO 3166-1 alpha-3)
        einTinIdentificationNumber:
          type: string
          description: EIN/TIN of the business
        otherEntityId:
          type: string
          description: >-
            Any additional entity identifier (e.g. company registration name or
            official registry ID)
        physicalBusinessAddress:
          type: object
          properties:
            street1:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 1
            street2:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 2
            city:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: City name
            subdivision:
              type: string
              minLength: 1
              maxLength: 3
              description: >-
                State, province, or region (formatted as subdivision section of
                ISO 3166-2, excludes country code)
            zip:
              type: string
              description: ZIP or postal code
            country:
              description: Country (formatted as ISO 3166-1 alpha-3)
          required:
            - street1
            - city
            - subdivision
            - zip
            - country
        mailingAddress:
          type: object
          properties:
            street1:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 1
            street2:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 2
            city:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: City name
            subdivision:
              type: string
              minLength: 1
              maxLength: 3
              description: >-
                State, province, or region (formatted as subdivision section of
                ISO 3166-2, excludes country code)
            zip:
              type: string
              description: ZIP or postal code
            country:
              description: Country (formatted as ISO 3166-1 alpha-3)
          required:
            - street1
            - city
            - subdivision
            - zip
            - country
        billingAddress:
          type: object
          properties:
            street1:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 1
            street2:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 2
            city:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: City name
            subdivision:
              type: string
              minLength: 1
              maxLength: 3
              description: >-
                State, province, or region (formatted as subdivision section of
                ISO 3166-2, excludes country code)
            zip:
              type: string
              description: ZIP or postal code
            country:
              description: Country (formatted as ISO 3166-1 alpha-3)
          required:
            - street1
            - city
            - subdivision
            - zip
            - country
        legalEntityStructure:
          type: string
          enum:
            - llc
            - corporationCAndS
            - partnershipLimitedAndLLP
            - generalPartnership
            - trusts
            - privateInvestmentOrFoundation
            - unincorporatedBusiness
            - soleProprietorship
            - governmentOwned
            - publiclyTraded
            - supranationalBodies
            - specialPurposeVehicle
            - segregatedPortfolioCompany
          description: Business entity legal structure used to filter requirements (enum).
        formationDate:
          type: string
          description: Business formation date (YYYY-MM-DD)
        dbaName:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
          description: DBA (Doing Business As) name
        companyWebsiteAddress:
          type: string
          format: uri
          description: Official company website
        primaryBusinessType:
          $ref: '#/components/schemas/PrimaryBusinessType'
        descriptionBusinessActivities:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          description: Short description of the business
        billingContact:
          type: object
          properties:
            nameFirst:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: First name
            nameLast:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: Last name
            emailAddress:
              type: string
              format: email
              description: Email address
            phoneNumber:
              type: object
              properties:
                countryCode:
                  type: string
                  pattern: ^[0-9]+$
                  description: Country code of the phone number
                phoneNumber:
                  type: string
                  pattern: ^[0-9]+$
                  description: Phone number (without country code)
              required:
                - countryCode
                - phoneNumber
          required:
            - nameFirst
            - nameLast
            - emailAddress
            - phoneNumber
        authorizedSigner:
          type: object
          properties:
            nameFirst:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: First name
            nameLast:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
              description: Last name
            emailAddress:
              type: string
              format: email
              description: Email address
            phoneNumber:
              type: object
              properties:
                countryCode:
                  type: string
                  pattern: ^[0-9]+$
                  description: Country code of the phone number
                phoneNumber:
                  type: string
                  pattern: ^[0-9]+$
                  description: Phone number (without country code)
              required:
                - countryCode
                - phoneNumber
          required:
            - nameFirst
            - nameLast
            - emailAddress
            - phoneNumber
        tradeStrategy:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          description: Trading strategy of the business
        activeCoinTokens:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          description: Active cryptocurrencies traded
        tradeVolumeUsd:
          type: string
          description: Estimated trade volume in USD
        activeExchanges:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          description: List of active exchanges
        diligenceRetailInstitutional:
          $ref: '#/components/schemas/DiligenceRetailInstitutional'
        customerBaseLocations:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          description: Locations of customer base
        sanctionAffiliates:
          type: boolean
          description: Whether the business has sanctioned affiliates
        hasAuditor:
          type: boolean
          description: Whether the business has an auditor
        firmAuditor:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          nullable: true
          description: Name of audit firm (if applicable)
        hasLegalCounsel:
          type: boolean
          description: Whether the business has legal counsel
        diligenceCounselName:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          nullable: true
          description: Name of legal counsel (if applicable)
        walletAddress:
          type: string
          description: Business wallet address
        isRegulated:
          type: boolean
          description: Whether the business is regulated
        regulatorCountryCode:
          description: Country of regulator (ISO 3166-1 alpha-3)
          nullable: true
        regulatorName:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\-\.,()"]+$
          nullable: true
          description: Name of the regulator
        regulatoryRegistrationNumber:
          type: string
          nullable: true
          description: Regulatory registration number
        amlAttestation:
          $ref: '#/components/schemas/AmlAttestation'
        fundsSource:
          $ref: '#/components/schemas/FundsSource'
        diligenceMaterialFindings:
          type: boolean
          description: >-
            Has there been any recent Financial Crime related civil or criminal
            proceedings, regulatory actions, or findings against the company in
            the past year?
        diligenceMaterialFindingsDescription:
          type: string
          nullable: true
          description: >-
            Description of material findings (required if
            diligenceMaterialFindings is true)
        prescreenWalletAddressAtm:
          type: boolean
          description: Does the business pre-screen wallet addresses at ATMs?
        outsourcedFunctions:
          type: boolean
          description: Does the business outsource any AML/compliance functions?
        outsourcedVendors:
          type: string
          nullable: true
          description: >-
            Names of vendors providing outsourced functions (required if
            outsourcedFunctions is true)
        diligenceFinancialInstitutionsUsed:
          type: string
          description: Financial institutions used by the business
        diligenceCanReceiveThirdPartyPayments:
          type: boolean
          description: Can the business receive payments from third parties?
        diligenceCanSendRemittances:
          $ref: '#/components/schemas/DiligenceCanSendRemittances'
        diligenceRemittancesOther:
          type: string
          nullable: true
          description: >-
            Description of remittance type (required if
            diligenceCanSendRemittances is "other")
        diligenceAllowWhitelist:
          type: boolean
          description: Does the business allow wallet address whitelisting?
      title: Business
    BusinessIdentityResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - business
          description: Type of identity
        organizationId:
          type: string
          description: The ID of the organization
        enterpriseId:
          type: string
          description: The ID of the enterprise
        business:
          $ref: '#/components/schemas/Business'
        associatedPeople:
          type: array
          items:
            $ref: '#/components/schemas/AssociatedPersonResponse'
          description: List of associated people linked to this identity
        id:
          type: string
          description: The unique ID of the created identity
        ignoredFields:
          type: array
          items:
            type: string
          description: Ignored fields
        requestedProducts:
          type: array
          items:
            $ref: '#/components/schemas/RequestedProductResponse'
          description: List of products requested for this identity
        requirements:
          type: array
          items:
            $ref: '#/components/schemas/Requirement'
          description: List of requirements related to the identity
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: List of documents associated with the identity
        finalizeSubmission:
          type: boolean
          description: >-
            Whether identity is ready for final submission and requirements
            validation
      required:
        - type
        - organizationId
        - enterpriseId
        - business
        - associatedPeople
        - id
        - requestedProducts
        - requirements
        - finalizeSubmission
      title: BusinessIdentityResponse
    BusinessModel:
      title: BusinessModel
      type: string
      enum:
        - bitgoAsAService
        - cryptoAsAServiceParent
        - cryptoAsAServiceChild
    ByovDelegationProperties:
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - validatorAddress
          properties:
            validatorAddress:
              type: string
    ByovStakingTransactionProperties:
      title: BYOV Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
    CBITBankAccount:
      title: CBIT Bank Account
      type: object
      description: >
        An external bank account. `routingNumber` must be set for US bank
        accounts.

        `swiftCode` must be set for banks outside the US.
      properties:
        accountNumber:
          description: Bank account number or IBAN.
          type: string
          minLength: 1
          maxLength: 34
          example: 114584906
        enterpriseId:
          $ref: '#/components/schemas/Id'
        address:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        address1:
          type: string
          example: 2390 El Camino Real
        address2:
          type: string
          example: Palo Alto, CA 94306
        address3:
          type: string
          example: ''
        name:
          type: string
          example: America California Bank
        ownerName:
          type: string
          example: Donald E. Knuth
        ownerAddress:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        owner:
          type: object
          description: Bank account owner
          properties:
            name:
              type: string
              example: Donald E. Knuth
            address1:
              type: string
              example: Computer Science Department
            address2:
              type: string
              example: Stanford University
            address3:
              type: string
              example: Stanford, CA 94305-9045
          required:
            - name
            - address1
        externalId:
          description: Required for CBIT transfers.
          type: string
          example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
        shortCountryCode:
          $ref: '#/components/schemas/ShortCountryCode'
        type:
          $ref: '#/components/schemas/BankAccountType'
        currency:
          $ref: '#/components/schemas/BankAccountCurrency'
        furtherCreditTo:
          type: string
          example: Donald E. Knuth
        intermediaryBankName:
          type: string
          example: America California Bank
        intermediaryBankId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
      required:
        - accountNumber
        - address1
        - shortCountryCode
        - name
        - owner
        - enterpriseId
        - externalId
    CSPRStakingOptions:
      title: CSPR
      type: object
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Required for CSPR. String representation of the amount to stake or
            unstake in base units (motes).
        validator:
          allOf:
            - $ref: '#/components/schemas/AddressString3'
          description: >-
            Required for CSPR. The validator address used to delegate or
            undelegate.
    CaaSBitGoProduct:
      type: string
      enum:
        - Trade
        - Instant Fee Wallets
        - Hot Self-Custody
        - Cold Self-Custody
        - Custody
        - DeFi
        - Staking
        - Go Account
        - ACH Debits
        - Distributed Custody
      title: CaaSBitGoProduct
      description: BitGo products available via KYB API
    CaasOrganizationInviteInviterInfo:
      title: CaasOrganizationInviteInviterInfo
      type: object
      description: >-
        Inviter snapshot on CaaS org add-invite `inviterInfo` and enterprise
        invite `invitedBy`. Not used for UMS `genericRequest`.
      properties:
        id:
          type: string
        email:
          type: string
        fullName:
          type: string
      required:
        - id
        - email
        - fullName
    CannotRemoveAdmin:
      title: Can't remove admin
      allOf:
        - $ref: '#/components/schemas/PlatformErrorNoName3'
        - properties:
            context:
              type: object
              properties:
                adminCount:
                  type: integer
                  description: >
                    Current number of admins on the wallet.  This number must be

                    greater than `approvalsRequired`, since an admin cannot
                    approve

                    his/her own operation.
                approvalsRequired:
                  description: Number of admins that must approve a wallet operation
                  type: integer
              required:
                - adminCount
                - approvalsRequired
            name:
              type: string
              description: Error code
              enum:
                - CannotRemoveAdmin
          required:
            - context
            - name
    CantonAllocationAllocateIntent:
      title: Canton Allocation Allocate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - allocationAllocate
            txRequestId:
              type: string
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CantonAllocationOfferWithdrawnIntent:
      title: Canton Allocation Offer Withdrawn Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - allocationOfferWithdrawn
            transferOfferId:
              type: string
            token:
              type: string
          required:
            - intentType
            - transferOfferId
        - $ref: '#/components/schemas/BaseIntent'
    CantonAllocationRejectIntent:
      title: Canton Allocation Reject Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - allocationReject
            txRequestId:
              type: string
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CantonAllocationRequestIntent:
      title: Canton Allocation Request Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - allocationRequest
            updateId:
              type: string
            operatorId:
              type: string
            contractId:
              nullable: true
              type: string
            tradeId:
              type: string
            transferLegId:
              type: string
            senderPartyId:
              type: string
            receiverPartyId:
              type: string
            amount:
              type: string
            token:
              type: string
            receiveToken:
              type: string
            receiveAmount:
              type: string
            allocateBefore:
              type: string
            settleBefore:
              type: string
            comment:
              type: string
            requestedAt:
              type: string
          required:
            - intentType
            - updateId
            - operatorId
            - contractId
            - tradeId
            - transferLegId
            - senderPartyId
            - receiverPartyId
            - amount
            - token
            - receiveToken
            - receiveAmount
            - allocateBefore
            - settleBefore
        - $ref: '#/components/schemas/BaseIntent'
    CantonCommand:
      title: CantonCommand
      oneOf:
        - $ref: '#/components/schemas/CreateCommand'
        - $ref: '#/components/schemas/ExerciseCommand'
    CantonCommandIntent:
      title: CantonCommandIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cantonCommand
            cantonCommandParams:
              $ref: '#/components/schemas/CantonCommandParams'
            token:
              type: string
              description: >-
                Optional registered coin/token identifier for the command target
                (e.g. "tcanton:stgusd1").

                This is not an auth/session token.
          required:
            - intentType
            - cantonCommandParams
        - $ref: '#/components/schemas/BaseIntent'
    CantonCommandParams:
      title: CantonCommandParams
      type: object
      properties:
        command:
          $ref: '#/components/schemas/CantonCommand'
        actAs:
          type: array
          items:
            type: string
        readAs:
          type: array
          items:
            type: string
        resolveContracts:
          type: array
          items:
            type: object
            properties:
              templateId:
                type: string
              actAs:
                type: array
                items:
                  type: string
              injectAs:
                type: string
              readAs:
                type: array
                items:
                  type: string
              resolveAll:
                type: boolean
            required:
              - templateId
              - actAs
              - injectAs
      required:
        - command
        - actAs
    CantonCosignDelegationAcceptIntent:
      title: Canton Cosign Delegation Accept Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cosignDelegationAccept
            txRequestId:
              type: string
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CantonCosignDelegationProposalIntent:
      title: Canton Cosign Delegation Proposal Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cosignDelegationProposal
            contractId:
              type: string
            operatorId:
              type: string
            updateId:
              type: string
            packageName:
              type: string
          required:
            - intentType
            - contractId
            - operatorId
            - updateId
        - $ref: '#/components/schemas/BaseIntent'
    CantonEndInvestorOnboardingAcceptIntent:
      title: Canton End Investor Onboarding Accept Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cantonEndInvestorOnboardingAccept
            txRequestId:
              type: string
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CantonEndInvestorOnboardingOfferIntent:
      title: Canton End Investor Onboarding Offer Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cantonEndInvestorOnboardingOffer
            endInvestorPartyId:
              type: string
            comment:
              type: string
          required:
            - intentType
            - endInvestorPartyId
        - $ref: '#/components/schemas/BaseIntent'
    CantonEndInvestorOnboardingRejectIntent:
      title: Canton End Investor Onboarding Reject Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cantonEndInvestorOnboardingReject
            txRequestId:
              type: string
            reason:
              type: string
          required:
            - intentType
            - txRequestId
            - reason
        - $ref: '#/components/schemas/BaseIntent'
    CantonParticipantOnboardingRequestIntent:
      title: Canton Participant Onboarding Request Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - cantonParticipantOnboardingRequest
            operator:
              type: string
            provider:
              type: string
            compliance:
              type: string
            registrar:
              type: string
            clientOnboarder:
              type: string
            expirationIso:
              type: string
            comment:
              type: string
          required:
            - intentType
            - operator
            - provider
            - compliance
            - registrar
            - clientOnboarder
        - $ref: '#/components/schemas/BaseIntent'
    CantonPaymentIntent:
      title: CANTON Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
            isConsolidate:
              type: boolean
            numberOfSplits:
              type: number
            unspents:
              $ref: '#/components/schemas/optionalStringArray'
          required:
            - unspents
        - $ref: '#/components/schemas/PaymentIntent'
    CantonTransferAcceptIntent:
      title: Canton Transfer Accept Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferAccept
            txRequestId:
              type: string
            token:
              type: string
            expiry:
              type: number
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CantonTransferAcknowledgeIntent:
      title: Canton Transfer Acknowledge Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferAcknowledge
            contractId:
              type: string
            senderPartyId:
              type: string
            updateId:
              type: string
            amount:
              type: string
              format: number
            expiry:
              type: number
            memoId:
              type: string
            token:
              type: string
          required:
            - intentType
            - contractId
            - senderPartyId
            - updateId
            - amount
            - expiry
        - $ref: '#/components/schemas/BaseIntent'
    CantonTransferOfferWithdrawnIntent:
      title: Canton Transfer Offer Withdrawn Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferOfferWithdrawn
            transferOfferId:
              type: string
            token:
              type: string
          required:
            - intentType
            - transferOfferId
        - $ref: '#/components/schemas/BaseIntent'
    CantonTransferRejectIntent:
      title: Canton Transfer Reject Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferReject
            txRequestId:
              type: string
            token:
              type: string
            expiry:
              type: number
          required:
            - intentType
            - txRequestId
        - $ref: '#/components/schemas/BaseIntent'
    CasperAddress:
      title: Casper Address
      type: object
      properties:
        accountHash:
          type: string
        rootAddress:
          type: string
        transferId:
          type: string
      required:
        - accountHash
        - rootAddress
        - transferId
    CasperSendQueue:
      title: Casper
      type: object
      properties:
        walletInitialization:
          type: boolean
    CasperWallet:
      title: Casper Wallet
      type: object
      properties:
        accountHash:
          type: string
        creationFailure:
          type: array
          items:
            type: string
        lastTransferId:
          type: string
        pendingChainInitialization:
          type: boolean
        rootAddress:
          type: string
      required:
        - accountHash
        - creationFailure
        - lastTransferId
        - pendingChainInitialization
        - rootAddress
    CategoriesResponse:
      required:
        - categories
      type: object
      properties:
        categories:
          type: array
          items:
            type: string
            enum:
              - access
              - access_tokens
              - approval_completed
              - approval_required
              - bank_accounts_and_fiat_operations
              - bank_and_trust
              - financing
              - go_network
              - identity
              - oes
              - reports
              - trade
              - ums
              - wallet_notifications
              - transaction_monitoring
              - staking_rewards
              - treasury_management
              - stuck_transaction_notification
    CbitAccountResponseProps:
      title: CbitAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - cbit
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
        externalId:
          $ref: '#/components/schemas/NullableString1'
      required:
        - type
        - accountType
    CbitBankAccountRequest:
      title: CbitBankAccountRequest
      description: >-
        Request schema for creating a CBIT bank account. Note that
        bankAddressCountryCode, bankAddressLine1, bankAddressStateProvince,
        bankAddressPostalCode, bankAddressCityLocality are not required for this
        bank account type and will be overridden on successful request.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - cbit
              description: Must be 'cbit' for CBIT accounts
            externalId:
              type: string
              description: External identifier for the CBIT account
          required:
            - type
        - $ref: '#/components/schemas/BankAccountRequest1'
    CbitBankAccountResponse:
      title: CbitBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/CbitAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    Chain:
      type: integer
      example: 1
      enum:
        - 0
        - 1
        - 10
        - 11
        - 20
        - 21
        - 30
        - 31
        - 40
        - 41
    Challenge:
      title: Challenge
      type: object
      properties:
        ntilde:
          type: string
          description: Range proof challenge value
        h1:
          type: string
          description: Range proof challenge value
        h2:
          type: string
          description: Range proof challenge value
      required:
        - ntilde
        - h1
        - h2
    ChallengePartyConfig:
      title: ChallengePartyConfig
      type: object
      properties:
        enterprise:
          $ref: '#/components/schemas/TssConfigPartyChallenge'
        bitgoNitroHsm:
          $ref: '#/components/schemas/TssConfigPartyChallenge'
        bitgoInstitutionalHsm:
          $ref: '#/components/schemas/TssConfigPartyChallenge'
        createdBy:
          type: string
          description: The ID of the user who created and verified the config
          example: 5d1a3e4d2f7f9b7c0e3b7e4d2f7f9b7c
      required:
        - enterprise
        - bitgoNitroHsm
        - bitgoInstitutionalHsm
        - createdBy
    ChallengeVerifiers:
      title: ChallengeVerifiers
      type: object
      properties:
        adminSignature:
          type: string
          description: >-
            The admin signature is a hex string. Users should verify that the
            admin signature matches for the range proof challenge.
        bitgoNitroHsmSignature:
          type: string
        bitgoInstitutionalHsmSignature:
          type: string
      required:
        - adminSignature
    ChangeAddressTypes:
      type: array
      items:
        $ref: '#/components/schemas/AddressType1'
      description: >-
        The address types for the change address. Order by preference and BitGo
        uses the first available. Any subset of `p2sh`, `p2shP2wsh`, `p2wsh`,
        `p2tr` or `p2trMusig2`.
    ChangeFeeResponse:
      title: ChangeFeeResponse
      type: object
      properties:
        txid:
          type: string
          description: >-
            Transaction ID of the newly created transaction with increased fee
            rate.
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
    ChangeType:
      title: ChangeType
      type: string
      enum:
        - create
        - update
        - delete
        - unlock
        - bulkUnlock
        - bulkArchive
        - duplicate
    ClaimIntent:
      title: Claim Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
              description: Must be "claim".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: |-
        Claim unstaked or unbonded funds from an EVM validator after the
        undelegation cooldown period. Requires a staking request ID from the
        BitGo staking service.
    ClaimRewardsDisclaimerAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseDisclaimer'
      type: object
      description: Disclaimer information for claiming rewards.
    ClaimRewardsPermissionAttributes:
      allOf:
        - $ref: '#/components/schemas/BasePermissionAttributes'
      type: object
      description: Permission attributes specific to claiming staking rewards.
    ClaimRewardsRequestPOSTBody:
      type: object
      description: Base request to claim staking rewards.
      required:
        - type
        - delegationId
      properties:
        clientId:
          type: string
          description: Optional client defined identifier.
        type:
          type: string
          enum:
            - CLAIM_REWARDS
          description: Type of request.
        delegationId:
          type: string
          description: Identifier of the delegation.
    ClaimRewardsSpendableAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseSpendableAttributes'
      type: object
      description: Spendable attributes specific to claiming staking rewards.
      properties:
        breakdown:
          $ref: '#/components/schemas/ClaimRewardsSpendableBreakdown'
        requiresDelegationId:
          type: boolean
          description: True if a delegation ID must be specified when claiming rewards.
        rewardCoin:
          description: The coin in which rewards are distributed.
          type: string
        rewardPairs:
          type: array
          description: >-
            Optional list of reward pairs (e.g., multiple tokens being
            rewarded).
          items:
            $ref: '#/components/schemas/RewardPairs'
    ClaimRewardsSpendableBreakdown:
      type: object
      description: Breakdown of rewards available for claiming.
      properties:
        totalRewards:
          type: string
          description: Total accumulated rewards (claimable + pending).
        claimableRewards:
          type: string
          description: Rewards that are immediately available for claiming.
        pendingClaimRewards:
          type: string
          description: Rewards that are pending and not yet claimable.
        claimFee:
          type: string
          description: Estimated fee required to claim rewards.
    Clause:
      type: object
      description: |
        A combination of Conditions and Actions.
      properties:
        actions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/AlwaysDenyActionRequest'
              - $ref: '#/components/schemas/EnterpriseAdminActionRequest'
              - $ref: '#/components/schemas/WalletAdminActionRequest'
              - $ref: '#/components/schemas/FinalApprovalActionRequest'
              - $ref: '#/components/schemas/EnterpriseUsersActionRequest'
        conditions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/TransferAmountConditionRequest'
              - $ref: '#/components/schemas/TransferVelocityLimitConditionRequest'
              - $ref: '#/components/schemas/TransferDestinationTypeConditionRequest'
              - $ref: '#/components/schemas/TransferInitiatorsConditionRequest'
    ClauseOperator:
      type: string
      description: >-
        Logical operator for combining multiple conditions or actions within a
        clause.
      enum:
        - AND
        - OR
      example: AND
    ClearLoopConnectionKey:
      title: ClearLoopConnectionKey
      type: object
      properties:
        schema:
          type: string
          enum:
            - clearloop
        apiKey:
          type: string
          minLength: 1
        apiSecret:
          type: string
          minLength: 1
        clientAccountId:
          type: string
          minLength: 1
        companyRegistrationNumber:
          type: string
          minLength: 1
      required:
        - schema
        - apiKey
        - apiSecret
        - clientAccountId
        - companyRegistrationNumber
    ClientOrderId:
      type: string
      description: >
        Custom order ID provided by the client. This must be a unique ID for
        each individual order and cannot be the same across multiple requests.

        Can be used to ensure idempotency of order requests.
      maxLength: 256
    ClosePositionOrderResponse:
      type: object
      required:
        - closePositionsRequestId
        - status
        - currency
        - targetCurrency
        - creationDate
        - modifiedDate
      properties:
        closePositionsRequestId:
          type: string
          format: uuid
          description: The close position request ID associated with this order
        status:
          $ref: '#/components/schemas/ClosePositionStatus'
        currency:
          type: string
          description: Currency symbol for the order
        targetCurrency:
          type: string
          description: The target currency to trade into when closing the position
        creationDate:
          type: string
          format: date-time
          description: Timestamp when the order was created
        modifiedDate:
          type: string
          format: date-time
          description: Timestamp when the order was last modified
        orderId:
          type: string
          format: uuid
          description: >-
            The order ID of the trade created to close this position. Omitted if
            the trade order has not been created yet.
      example:
        closePositionsRequestId: b2c3d4e5-f6g7-8901-bcde-f23456789012
        status: completed
        currency: BTC
        targetCurrency: USD
        creationDate: '2024-01-15T11:05:00.000Z'
        modifiedDate: '2024-01-15T11:06:00.000Z'
        orderId: c3d4e5f6-g7h8-9012-cdef-345678901234
    ClosePositionRequestOrdersResponse:
      type: object
      required:
        - orders
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/ClosePositionOrderResponse'
    ClosePositionRequestResponse:
      type: object
      required:
        - closePositionsRequestId
        - accountId
        - enterpriseId
        - status
        - bitgoUserId
        - creationDate
      properties:
        closePositionsRequestId:
          type: string
          format: uuid
          description: Unique identifier for the close position request
        accountId:
          $ref: '#/components/schemas/AccountId'
        enterpriseId:
          type: string
          description: Enterprise ID associated with the request
        status:
          $ref: '#/components/schemas/ClosePositionStatus'
        bitgoUserId:
          type: string
          description: BitGo user ID who initiated the request
        creationDate:
          type: string
          format: date-time
          description: Timestamp when the request was created
      example:
        closePositionsRequestId: b2c3d4e5-f6g7-8901-bcde-f23456789012
        accountId: f230fdebfa084ffebc7e00515f54603f
        enterpriseId: a130kjebfa084ffebc7e00515f54603f
        status: pending
        bitgoUserId: user123
        creationDate: '2024-01-15T11:00:00.000Z'
    ClosePositionRequestsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ClosePositionRequestResponse'
      example:
        data:
          - closePositionsRequestId: b2c3d4e5-f6g7-8901-bcde-f23456789012
            accountId: f230fdebfa084ffebc7e00515f54603f
            enterpriseId: a130kjebfa084ffebc7e00515f54603f
            status: pending
            bitgoUserId: user123
            creationDate: '2024-01-15T11:00:00.000Z'
          - closePositionsRequestId: c3d4e5f6-g7h8-9012-cdef-345678901234
            accountId: a980fdebfa084ffebc7e00515f54603f
            enterpriseId: c109kjebfa084ffebc7e00515f54603f
            status: completed
            bitgoUserId: user456
            creationDate: '2024-01-15T10:30:00.000Z'
    ClosePositionStatus:
      type: string
      description: Status of a close position request or order
      enum:
        - pending
        - in_progress
        - completed
        - failed
    ClosedByUnion:
      title: ClosedByUnion
      type: string
      enum:
        - client
        - admin
    Coin:
      title: Coin
      description: A cryptocurrency or token ticker symbol.
      type: string
      example: btc
    Coin2:
      type: string
      description: The staking asset.
      enum:
        - ADA
        - APT
        - ASI
        - KAVACOSMOS
        - ATOM
        - AVAXC
        - AVAXP
        - BABY
        - BERA
        - BLD
        - BSC
        - BTC
        - COREDAO
        - COREUM
        - CRONOS
        - CSPR
        - DOT
        - EIGEN
        - ETH
        - FLRP
        - HASH
        - INJECTIVE
        - MATIC
        - NEAR
        - OSMO
        - POL
        - POLYX
        - RETH-ROCKET
        - SEI
        - SOMI
        - SOL
        - STORY
        - STX
        - SUI
        - SUI:WAL
        - TAO
        - TIA
        - TON
        - TRX
        - WETH
        - WCT
        - WFLR
        - XDC
        - ZETA
    CoinConditionParameter:
      title: Coin
      type: object
      description: The asset the amount is expressed in.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - coin
          example: coin
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Currency
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: >-
            This condition only applies to transfers of this currency (USD
            applies to all transfers)
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - COIN_OR_USD
          example: COIN_OR_USD
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    CoinNonEmptyString:
      title: CoinNonEmptyString
      type: string
      description: A cryptocurrency symbol or token ticker symbol
      example: btc
      minLength: 1
    CoinString:
      title: CoinString
      type: string
      description: A cryptocurrency symbol or token ticker symbol
      example: btc
    CoinsUnauthorizedError:
      type: object
      properties:
        error:
          type: string
        errorName:
          type: string
        reqId:
          type: string
        context:
          type: object
          properties:
            errorName:
              type: string
    ColdValue:
      title: Self-managed cold wallet
      type: object
      description: Self-managed cold wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - cold
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Cold Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A cold wallet
    CollateralWithdrawalRequestResponse:
      type: object
      required:
        - id
        - accountId
        - enterpriseId
        - currency
        - quantity
        - status
        - createdBy
        - creationDate
        - modifiedDate
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the withdrawal request
        accountId:
          type: string
          description: Account ID associated with the withdrawal request
        enterpriseId:
          type: string
          description: Enterprise ID associated with the withdrawal request
        currency:
          type: string
          description: Currency symbol for the withdrawal
        quantity:
          type: string
          format: decimal
          description: Amount requested for withdrawal
        status:
          type: string
          enum:
            - pending
            - approved
            - rejected
            - completed
            - cancelled
          description: Current status of the withdrawal request
        createdBy:
          type: string
          description: User who created the withdrawal request
        canceledBy:
          type: string
          nullable: true
          description: User who canceled the withdrawal request, if applicable
        creationDate:
          type: string
          format: date-time
          description: Timestamp when the request was created
        modifiedDate:
          type: string
          format: date-time
          description: Timestamp when the request was last modified
      example:
        id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        accountId: account123
        enterpriseId: enterprise456
        currency: BTC
        quantity: '0.5'
        status: pending
        createdBy: user789
        creationDate: '2024-01-15T10:30:00.000Z'
        modifiedDate: '2024-01-15T10:30:00.000Z'
    CollateralWithdrawalRequestsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CollateralWithdrawalRequestResponse'
    CommitmentShare:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The source of the commitment share.
        to:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The recipient of the commitment share.
        share:
          type: string
          description: The commitment share.
        type:
          allOf:
            - $ref: '#/components/schemas/CommitmentType'
            - default: commitment
          description: The type of the commitment share.
      required:
        - from
        - to
        - share
        - type
    CommitmentShare1:
      title: CommitmentShare
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - commitment
              description: The type of the commitment share
          required:
            - type
        - $ref: '#/components/schemas/BaseShare'
    CommitmentType:
      type: string
      enum:
        - commitment
      example: commitment
    ComplianceModel:
      title: ComplianceModel
      type: string
      enum:
        - EURegulated
        - EUNonRegulated
    Condition:
      title: Condition
      oneOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/AddressListCondition'
        - $ref: '#/components/schemas/AdvancedListCondition'
        - $ref: '#/components/schemas/LimitRuleCondition'
        - $ref: '#/components/schemas/TxUsdThresholdRuleCondition'
        - $ref: '#/components/schemas/WebhookRuleCondition'
    Conditions:
      type: object
      description: |
        Wrapper object for a list of Conditions. Not paginated.
      properties:
        conditions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/TransferDestinationTypeCondition'
              - $ref: '#/components/schemas/TransferVelocityLimitCondition'
              - $ref: '#/components/schemas/TransferAmountCondition'
              - $ref: '#/components/schemas/TransferInitiatorsCondition'
              - $ref: '#/components/schemas/TransferWebhookCondition'
    ConfigFeeInformation:
      title: ConfigFeeInformation
      allOf:
        - type: object
          properties:
            bank:
              $ref: '#/components/schemas/BankId'
          required:
            - bank
        - oneOf:
            - $ref: '#/components/schemas/StaticFee'
            - $ref: '#/components/schemas/VariableFee'
    ConflictErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - Conflict
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 409
      description: Conflict error response
    ConnectionKey:
      title: ConnectionKey
      oneOf:
        - $ref: '#/components/schemas/TokenConnectionKey'
        - $ref: '#/components/schemas/TokenAndSignatureConnectionKey'
        - $ref: '#/components/schemas/ApiKeyAndSecretConnectionKey'
        - $ref: '#/components/schemas/ClearLoopConnectionKey'
    ConnectionStatus:
      title: ConnectionStatus
      type: string
      enum:
        - PENDING_DEACTIVATION
        - PENDING_ACTIVATION
        - ACTIVE
        - INACTIVE
        - UNDER_REVIEW
        - REQUESTED
      description: codec for valid connection statuses
    ConnectionType:
      title: ConnectionType
      type: string
      enum:
        - DVP
        - WHITELIST
      description: codec for valid connection statuses
    ConsolidateAccountBuildRequest:
      type: object
      properties:
        consolidateAddresses:
          description: >
            Optional: restrict the consolidation to the specified receive
            addresses. If not provided, will consolidate the

            funds from all receive addresses up to 500 addresses.
          type: array
          items:
            type: string
        apiVersion:
          description: |
            The Trasaction Request API version to use for MPC EdDSA Hot Wallets.
            Defaults based on the wallet type and asset curve.
          type: string
          enum:
            - full
            - lite
    ConsolidateAccountBuildResponse:
      type: object
      properties:
        keyDerivationPath:
          type: string
    ConsolidateTokenIntent1:
      title: Consolidate Token
      allOf:
        - $ref: '#/components/schemas/BaseIntent2'
        - $ref: '#/components/schemas/EthBuildOptions1'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - consolidateToken
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/RecipientEntry1'
            consolidateId:
              type: string
              description: Consolidation ID of this consolidation transaction
            keepAlive:
              type: string
              description: >-
                True, if excluding the minimum-funding amounts in an address
                during consolidation.
          required:
            - intentType
            - recipients
    ConsolidateUnspentsRequest:
      type: object
      properties:
        feeRate:
          allOf:
            - $ref: '#/components/schemas/IntegerOrString'
            - example: 10000
          description: >
            Custom fee rate (in base units) per kilobyte (or virtual kilobyte).
            For example, satoshis per kvByte.


            If the `feeRate` is less than the minimum required network fee, then
            the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000
            microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is
            usually 4.5 times the open ledger fee.


            Note: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.
        maxFeeRate:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
            - example: 20000
          description: >
            (BTC only) The maximum fee rate (in base units) per kilobyte (or
            virtual kilobyte). For example, satoshis per kvByte. The
            `maxFeeRate` limits the fee rate generated by both `feeMultiplier`
            and `numBlocks`.


            Note: The `feeRate` overrides the `maxFeeRate`.
        maxFeePercentage:
          type: integer
          description: Maximum relative portion that can be spent towards fees
        feeTxConfirmTarget:
          type: integer
          description: Block target for fee estimation
        bulk:
          type: boolean
          description: >-
            Build multiple transactions at the same time. This enables you to
            increase the maximum number of unspents on the `limit` parameter up
            to 2,000. If true, you must pass the `txFormat` as `psbt` and you
            can't pass the `targetAddress` or `numUnspentsToMake` parameters.
        minValue:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >-
            Minimum value of unspents to use in base units (e.g. satoshis). Can
            be used to skip very small unspents when consolidating at higher fee
            rates. For doge, only string is allowed.
        maxValue:
          allOf:
            - $ref: '#/components/schemas/IntegerOrIntegerString'
          description: >
            Maximum value of unspents to use in base units (e.g. satoshis).
            Should be used to prevent larger unspents from being consolidated
            needlessly, and that some funds remain available for spending while
            the consolidation transactions are in flight. For doge, only string
            is allowed.
        minHeight:
          type: integer
          description: Minimum height of unspents on the block chain to use
        minConfirms:
          type: integer
          description: Minimum confirmation threshold for external inputs
        enforceMinConfirmsForChange:
          type: boolean
          description: Flag for enforcing minConfirms for change inputs
        limit:
          type: integer
          description: Maximum number of unspents to use in the transaction
        numUnspentsToMake:
          type: integer
          description: Number of new unspents to make
        targetAddress:
          type: string
          description: address to use for generated outputs. Must be wallet address.
        txFormat:
          $ref: '#/components/schemas/UtxoTransactionFormat'
    ConsolidationCoins:
      type: string
      enum:
        - algo
        - talgo
        - xtz
        - txtz
        - eth
        - hteth
      description: This route is only available for Algorand, Tezos, and Eth.
    ContractType:
      title: ContractType
      type: string
      enum:
        - csa
        - mpa
        - mic
        - wvr
        - aca
    ContractTypes:
      title: ContractTypes
      type: array
      items:
        type: string
        enum:
          - csa
          - mpa
          - mic
          - wvr
          - aca
    CoreDaoClaimIntent:
      title: CoreDAO Claim Rewards Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeClaimRewards
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
    CoreDaoDelegateIntent:
      title: CoreDAO Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    CoreDaoStakingParams:
      type: object
      properties:
        validator:
          type: string
        amount:
          type: string
        expiration:
          type: string
        rewardAddress:
          type: string
        version:
          type: integer
        fee:
          type: integer
    CoreDaoUndelegateIntent:
      title: CoreDAO Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    CoredaoClaimRewardsRequestEntityProperties:
      title: Coredao claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            claimedCoreReward:
              type: string
              description: Optional claimed CORE reward.
            claimedBtcReward:
              type: string
              description: Optional claimed BTC reward.
            claimedHashReward:
              type: string
              description: Optional claimed HASH reward.
    CoredaoClaimRewardsTransactionProperties:
      title: CoreDAO Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            claimedCoreReward:
              type: string
            claimedBtcReward:
              type: string
            claimedHashReward:
              type: string
    CoredaoDelegationProperties:
      title: CoreDAO Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
    CoredaoStakingParms:
      title: Coredao staking parameters
      type: object
      properties:
        expireAt:
          type: string
          description: Expiration timestamp of the delegation.
        rewardAddress:
          type: string
          description: Address to receive staking rewards.
      required:
        - expireAt
        - rewardAddress
    CoredaoStakingRequest:
      title: CoreDAO
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for CoreDAO)
          type: string
    CoredaoStakingRequestEntityProperties:
      title: Coredao staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            validator:
              type: string
              description: Optional validator address.
    CoredaoStakingRequestPOSTBody:
      title: COREDAO stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    CoredaoUnStakingRequestPOSTBody:
      title: COREDAO unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    CoredaoUnstakingRequestEntityProperties:
      title: Coredao unstaking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            delegationId:
              type: string
              description: Delegation identifier.
    CoreumClaimRewardsRequestPOSTBody:
      title: Coreum Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Coreum.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    CoreumStakingRequest:
      title: COREUM
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    CoreumStakingRequestPOSTBody:
      title: COREUM stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    CoreumSwitchValidatorsRequestPOSTBody:
      title: Coreum Switch Validators Request
      type: object
      description: Request to switch staking delegation to a new validator for Coreum.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    CoreumUnStakingRequestPOSTBody:
      title: COREUM unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    CosmosContractCallIntent:
      title: Cosmos Contract Call Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - contractCall
              description: Must be "contractCall"
            contract:
              type: string
              description: Bech32 contract address to execute
            msgHex:
              type: string
              description: >-
                Hex-encoded binary message to pass to the contract Execute
                entrypoint
            feeGranter:
              type: string
              description: >-
                Optional Bech32 address paying transaction fees on behalf of the
                submitter (fee-grant). Supported on hash chain; passed through
                for any chain.
          required:
            - intentType
            - contract
            - msgHex
        - $ref: '#/components/schemas/BaseIntent'
      description: |-
        Execute a Wasm smart contract on a Cosmos-family chain. Supported on all
        Cosmos-family chains. The hash chain additionally supports fee-grant via
        the optional feeGranter field.
    CosmosContractCallIntent1:
      title: Cosmos Contract Call
      allOf:
        - $ref: '#/components/schemas/BaseIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - contractCall
            contract:
              type: string
              description: The address of the contract to call.
            msgHex:
              type: string
              description: The binary message data to send to the contract in hex format.
          required:
            - intentType
            - contract
            - msgHex
    CosmosLikeClaimRewardsRequestEntityProperties:
      title: Cosmos-like claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validatorAddress:
          type: string
      required:
        - validatorAddress
    CosmosLikeClaimRewardsTransactionProperties:
      title: Cosmos-like Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            delegationId:
              type: string
            validatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    CosmosLikeDelegationProperties:
      title: COSMOS-like Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            consensusAddress:
              type: string
              nullable: true
            activeRewards:
              type: string
              format: bigInteger
            lastRedelegationTimestamp:
              type: integer
              format: int64
              nullable: true
            lastSlashedBlockHeight:
              type: string
              format: bigInteger
              nullable: true
            isValidatorJailed:
              type: boolean
              nullable: true
    CosmosLikeStakingDelegation:
      title: Cosmos-like Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
      type: object
    CosmosLikeStakingRequest:
      title: ATOM like
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/CosmosLikeStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    CosmosLikeStakingRequestEntityProperties:
      title: Cosmos-like staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
          nullable: true
        delegationRequests:
          type: array
          items:
            $ref: '#/components/schemas/DelegationRequest'
          nullable: true
    CosmosLikeStakingTransactionProperties:
      title: Cosmos-like Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            delegationRequest:
              type: array
              items:
                $ref: '#/components/schemas/DelegationRequest'
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    CosmosLikeSwitchStakingRequestEntityProperties:
      title: Cosmos-like switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
    CosmosLikeSwitchTransactionProperties:
      title: Cosmos-like Switch Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            destValidatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    CosmosLikeUnStakingRequestPOSTBody:
      title: ATOM-like unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
      properties:
        delegationId:
          description: Optional delegation ID representing the delegation to unstake.
          type: string
        amount:
          description: Amount to unstake in base units.
          type: string
          example: '10000000000'
      required:
        - amount
    CosmosLikeUnstakingTransactionProperties:
      title: Cosmos-like Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/IntegerString'
    CosmosPaymentIntent:
      title: Cosmos Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Optional memo string attached to the transaction, used for
                routing or identification by exchanges.
          required:
            - memo
        - $ref: '#/components/schemas/PaymentIntent'
      description: |-
        Transfer tokens from a Cosmos-family wallet to one or more recipient
        addresses. Supported on all Cosmos-family chains. An optional memo may
        be included for exchange routing or identification.
    CosmosStakeClaimRewardsIntent:
      title: Cosmos Stake Claim Rewards Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeClaimRewards
              description: Must be "stakeClaimRewards"
            validatorAddress:
              type: string
              description: >-
                Bech32 validator address to withdraw accumulated staking rewards
                from (e.g. cosmosvaloper1...)
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: >-
        Claim accumulated staking rewards from a validator on a Cosmos-family
        chain.

        Supported on all Cosmos-family chains. Submit with intentType
        stakeClaimRewards.
    CosmosStakeIntent:
      title: Cosmos Stake Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
              description: >-
                Bech32 validator address to delegate tokens to (e.g.
                cosmosvaloper1...).
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: >-
                  Optional list of validator–amount pairs for multi-validator
                  delegation. When provided, overrides validatorAddress and
                  amount.
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Delegate (stake) tokens to one or more validators on a Cosmos-family
        chain. Use `validatorAddress` and `amount` for a single validator, or
        `recipients` for multi-validator delegation in a single transaction.
    CosmosSwitchValidatorIntent:
      title: Cosmos Switch Validator Intent
      allOf:
        - $ref: '#/components/schemas/StakeSwitchValidatorIntent'
      description: |-
        Atomically move a delegation from one validator to another (redelegate)
        on a Cosmos-family chain. The redelegation is subject to the chain's
        redelegation cooldown rules.
    CosmosUnstakeIntent:
      title: Cosmos Unstake Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
              description: >-
                Bech32 validator address to undelegate tokens from (e.g.
                cosmosvaloper1...).
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: >-
                  Optional list of validator–amount pairs for multi-validator
                  undelegation. When provided, overrides validatorAddress and
                  amount.
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Undelegate (unstake) tokens from one or more validators on a
        Cosmos-family chain. Tokens enter the chain's unbonding period and are
        not immediately available. Use `validatorAddress` and `amount` for a
        single validator, or `recipients` for multi-validator undelegation.
    CountryAddress:
      title: CountryAddress
      type: object
      properties:
        country:
          type: string
          minLength: 1
        address_line_1:
          $ref: '#/components/schemas/AddressOptions'
        address_line_2:
          $ref: '#/components/schemas/AddressOptions'
        city_locality:
          $ref: '#/components/schemas/AddressOptions'
        state_province:
          $ref: '#/components/schemas/AddressOptions'
        postal_code:
          $ref: '#/components/schemas/AddressOptions'
      required:
        - country
        - address_line_1
        - address_line_2
    CountryAddressFormatResponse:
      title: CountryAddressFormatResponse
      description: Response when requesting address format for a specific country
      type: object
      properties:
        rules:
          $ref: '#/components/schemas/CountryAddress'
      required:
        - rules
    CountryListResponse:
      title: CountryListResponse
      description: Response when requesting all available countries
      type: object
      properties:
        countries:
          type: object
          description: >-
            Dictionary mapping ISO 3166-1 alpha-2 country codes to their full
            country names
          example:
            US: United States of America
            CA: Canada
            GB: United Kingdom
            DE: Germany
          additionalProperties:
            type: string
            description: Full country name
      required:
        - countries
    CreateBankAccountRequest:
      title: CreateBankAccountRequest
      description: Schema for creating any type of bank account
      oneOf:
        - $ref: '#/components/schemas/DomesticWireBankAccountRequest'
        - $ref: '#/components/schemas/InternationalWireBankAccountRequest'
        - $ref: '#/components/schemas/AchBankAccountRequest'
        - $ref: '#/components/schemas/SepaBankAccountRequest'
        - $ref: '#/components/schemas/CbitBankAccountRequest'
        - $ref: '#/components/schemas/BlincBankAccountRequest'
        - $ref: '#/components/schemas/IpiFtsBankAccountRequest'
        - $ref: '#/components/schemas/FastBankAccountRequest'
    CreateBankTransferRequest:
      title: CreateBankTransferRequest
      description: >-
        Exactly one of `amount` or `baseAmount` must be provided. Providing both
        or neither will return a 400 error.
      type: object
      properties:
        acceptAuthTerms:
          type: boolean
          description: >-
            Whether the client has accepted the ACH authorization terms.
            Required for deposits (`transferDirection: "in"`). Must be `true` to
            initiate a deposit. Retrieve the authorization language to present
            to the user via `GET
            /api/tradfi/v1/enterprises/{enterpriseId}/ach-authorization`.
        amount:
          type: string
          minLength: 1
          description: >-
            The absolute value of the total amount of funds to be transferred as
            a decimal string (e.g., "500.00" for $500 USD). Include decimal
            places where applicable. Mutually exclusive with `baseAmount`.
        applyInstantCredit:
          type: boolean
          default: false
          description: Whether to apply instant credit to the transfer.
        bankAccountId:
          type: string
          description: >-
            The bank account to use. Determines the bank rails. Presently, only
            ACH accounts are supported.
        baseAmount:
          type: string
          minLength: 1
          description: >-
            The transfer amount in the currency's smallest unit as a string
            (e.g., "50000" for $500.00 USD, where the base unit is cents). The
            value is converted to a decimal using the currency's unit precision
            (e.g., 2 for USD, 0 for JPY). Mutually exclusive with `amount`.
        id:
          type: string
          description: >-
            Client-generated transfer ID. Serves as the idempotency key. Prefer
            UUID v4, v5, or v7.
        transferDirection:
          allOf:
            - $ref: '#/components/schemas/TradfyTransferDirection'
          description: The direction of the transfer. Only `in` is currently supported.
        walletId:
          type: string
          minLength: 1
          description: The Go Account wallet to use as counterparty.
      required:
        - acceptAuthTerms
        - bankAccountId
        - id
        - transferDirection
        - walletId
    CreateBitgoChallengeResponse:
      title: CreateBitgoChallengeResponse
      type: object
      properties:
        ntilde:
          type: string
          description: Range proof challenge value
          example: >-
            e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589
        h1:
          type: string
          description: Range proof challenge value
          example: >-
            e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589
        h2:
          type: string
          description: Range proof challenge value
          example: >-
            e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589
        'n':
          type: string
          description: BitGo's paillier modulus 'n'.
          example: >-
            e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589
        p:
          type: array
          items:
            type: string
            description: Pallier proof challenge value
            example: >-
              e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589
      required:
        - ntilde
        - h1
        - h2
        - 'n'
        - p
    CreateBlockWebhook:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/WebhookTypeBlock'
        url:
          type: string
          format: uri
          example: https://your.server.com/webhook
          description: URL to fire the webhook to.
        label:
          type: string
          description: Label of the new webhook.
        numConfirmations:
          type: integer
          minimum: 0
          example: 6
          description: >-
            Number of confirmations before triggering the webhook. If 0 or
            unspecified, requests will be sent to the callback endpoint when the
            transfer is first seen and when it is confirmed.
      required:
        - type
        - url
    CreateBusinessIdentityBody:
      type: object
      properties:
        type:
          type: string
          enum:
            - business
          description: Identity type
        organizationId:
          type: string
          description: The ID of the organization
        enterpriseId:
          type: string
          description: The ID of the enterprise
        business:
          $ref: '#/components/schemas/Business'
        associatedPeople:
          type: array
          items:
            $ref: '#/components/schemas/AssociatedPersonInput'
          description: List of associated people
        requestedProducts:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                enum:
                  - Trade
                  - Instant Fee Wallets
                  - Hot Self-Custody
                  - Cold Self-Custody
                  - Custody
                  - DeFi
                  - Staking
                  - Go Account
                  - ACH Debits
                  - Distributed Custody
                description: Name of the BitGo product
              bitgoOrg:
                type: string
                enum:
                  - BitGo Trust
                  - BitGo New York
                  - BitGo Germany
                  - BitGo Switzerland
                  - BitGo Europe ApS
                  - Frankfurt DE Trust
                  - BitGo Singapore
                  - BitGo Korea
                  - BitGo Mena Fze
                  - BitGo Custody MENA FZE
                  - BitGo India
                  - BitGo Sister Trust 1
                  - BitGo Inc
                description: The BitGo entity identifier
            required:
              - name
              - bitgoOrg
          minItems: 1
          description: >-
            List of requested bitgo products (business entities require at least
            one product)
        finalizeSubmission:
          default: false
          type: boolean
          description: >-
            Whether identity is ready for final submission and requirements
            validation
      required:
        - type
        - organizationId
        - enterpriseId
        - requestedProducts
      title: CreateBusinessIdentityBody
    CreateCommand:
      title: Canton Command Intent
      type: object
      properties:
        CreateCommand:
          type: object
          properties:
            templateId:
              type: string
            createArguments:
              type: object
              additionalProperties: {}
          required:
            - templateId
            - createArguments
      required:
        - CreateCommand
    CreateDocumentBadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: CreateDocumentBadRequestError
      description: Generic error response
    CreateDocumentInternalError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: CreateDocumentInternalError
      description: Generic error response
    CreateDocumentRequest:
      type: object
      properties:
        documentType:
          $ref: '#/components/schemas/DocumentTypeDetailed'
        subType:
          $ref: '#/components/schemas/DocumentSubTypeDetailed'
        metadata:
          $ref: '#/components/schemas/Metadata'
        forUserId:
          $ref: '#/components/schemas/ForUserId'
      required:
        - documentType
      title: CreateDocumentRequest
      description: Request body for creating a new document
    CreateDocumentResponse:
      type: object
      properties:
        documentId:
          type: string
          description: Unique identifier for the created document
        documentType:
          $ref: '#/components/schemas/DocumentType'
        documentTypeLabel:
          type: string
          description: Human-readable label for the document type
        subType:
          $ref: '#/components/schemas/DocumentSubType'
        status:
          $ref: '#/components/schemas/DocumentStatus'
        files:
          type: array
          items:
            $ref: '#/components/schemas/DocumentFileDetail'
          description: List of files to be uploaded
      required:
        - documentId
        - documentType
        - documentTypeLabel
        - status
        - files
      title: CreateDocumentResponse
      description: Response after creating a new document
    CreateDocumentUnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: CreateDocumentUnauthorizedError
      description: Generic error response
    CreateIdentityBody:
      discriminator:
        propertyName: type
        mapping:
          individual: '#/components/schemas/CreateIndividualIdentityBody'
          business: '#/components/schemas/CreateBusinessIdentityBody'
      oneOf:
        - $ref: '#/components/schemas/CreateIndividualIdentityBody'
        - $ref: '#/components/schemas/CreateBusinessIdentityBody'
      title: CreateIdentityBody
    CreateIndividualIdentityBody:
      type: object
      properties:
        type:
          type: string
          enum:
            - individual
          description: Identity type
        userId:
          type: string
          description: The ID of the user
        individual:
          $ref: '#/components/schemas/Individual'
        requestedProducts:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                enum:
                  - Trade
                  - Instant Fee Wallets
                  - Hot Self-Custody
                  - Cold Self-Custody
                  - Custody
                  - DeFi
                  - Staking
                  - Go Account
                  - ACH Debits
                  - Distributed Custody
                description: Name of the BitGo product
              bitgoOrg:
                type: string
                enum:
                  - BitGo Trust
                  - BitGo New York
                  - BitGo Germany
                  - BitGo Switzerland
                  - BitGo Europe ApS
                  - Frankfurt DE Trust
                  - BitGo Singapore
                  - BitGo Korea
                  - BitGo Mena Fze
                  - BitGo Custody MENA FZE
                  - BitGo India
                  - BitGo Sister Trust 1
                  - BitGo Inc
                description: The BitGo entity identifier
            required:
              - name
              - bitgoOrg
          description: >-
            List of requested bitgo products (can be empty for associated
            people)
        finalizeSubmission:
          default: false
          type: boolean
          description: >-
            Whether identity is ready for final submission and requirements
            validation
      required:
        - type
        - userId
        - requestedProducts
      title: CreateIndividualIdentityBody
    CreateKey:
      type: object
      properties:
        coinSpecific:
          $ref: '#/components/schemas/KeyCreateCoinSpecific'
        encryptedPrv:
          type: string
          description: >-
            Private part of this key pair, encrypted with a passphrase that only
            the client knows. Required for all sources except `bitgo`.
        source:
          $ref: '#/components/schemas/KeySource'
        enterprise:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The Enterprise that will own this key
        newFeeAddress:
          type: boolean
          description: >-
            Create a new keychain instead of fetching enterprise key (only for
            Ethereum)
        originalPasscodeEncryptionCode:
          type: string
          description: >-
            Passphrase that is used to decrypt box D (i.e. encrypted wallet
            passphrase) on your wallet keycard
        pub:
          allOf:
            - $ref: '#/components/schemas/Pub'
          description: >-
            Public part of this key pair. If the key type is "independent"
            (default) it is required for user key and is optional for backup
            key. If key type is "tss" this field is not required.
        isDistributedCustody:
          type: boolean
          description: >-
            Set to true if you want to create a key for distributed custody.
            This parameter is only valid if you have the distributed custody
            enterprise license enabled and are creating a BitGo key. Otherwise
            it will throw an error.
          example: false
        commonPub:
          type: string
          description: >-
            The commonPub for the key. This value is necessary for MPC keys when
            the source is either “user” or “backup”. Setting this indicates to
            BitGo that the owner of the key has received all key shares they
            needed for generating their key.
        commonKeychain:
          type: string
          description: >-
            The commonKeychain for the key if this is a MPC key. This value is
            required to be set when the type is set to “tss” and when the source
            is either “user” or “backup”. Setting this indicates to BitGo that
            the owner of the key has received all key shares they needed for
            generating their key. This value is the common pub concatenated with
            the common chaincode.
        keyShares:
          type: array
          items:
            $ref: '#/components/schemas/KeyShare'
          description: >-
            Only required for BitGo MPC keys. Those will be the shares from the
            user and the backup provider that BitGo will end up generating the
            BitGo key (share) from.
        type:
          $ref: '#/components/schemas/BackupKeyType'
        keyType:
          allOf:
            - $ref: '#/components/schemas/KeyType'
            - default: tss
        userGPGPublicKey:
          type: string
          description: >-
            User's public key in ASCII armored format. Only required for BitGo
            MPC keys.
        backupGPGPublicKey:
          type: string
          description: >-
            Backup public key in ASCII armored format (may be managed by user or
            KRS). Only required for BitGo MPC keys.
        isMPCv2:
          type: boolean
          description: >-
            Whether a key or wallet is using the Multi-Party Computation version
            2 protocol. Optional field.
    CreateOrganizationEnterpriseResponse:
      title: CreateOrganizationEnterpriseResponse
      type: object
      properties:
        enterpriseId:
          $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
        userId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          minLength: 1
          pattern: ^[a-f0-9]{32}$
      required:
        - enterpriseId
        - userId
    CreatePolicyRule:
      type: object
      properties:
        coin:
          type: string
          example: zrx
          description: >
            If set, the rule will only apply to the given coin or ERC20 token in
            an

            Ethereum wallet. It is generally recommended to not set a coin for
            policy rules of the following types:

            `advancedWhitelist`, `allTx`, `coinAddressWhitelist`,
            `coinAddressBlacklist`, `webhook`.
        id:
          type: string
          description: The id of the rule, must be unique among rules in the policy
        type:
          $ref: '#/components/schemas/CreatePolicyRuleTriggers'
        condition:
          $ref: '#/components/schemas/PolicyRuleUpdateConditions'
        action:
          $ref: '#/components/schemas/PolicyRuleActions'
        lockDate:
          type: string
          description: The time at which this rule becomes immutable
          format: date-time
        generatePolicy:
          type: boolean
          description: >-
            When undefined or set to true, generates a policy enforcing the
            whitelist (if one has not been generated already) after the
            whitelist is created. If set to false, no policy will be generated.
      required:
        - id
        - type
        - action
    CreatePolicyRuleRequest:
      type: object
      description: Create or Update policy rule Request.
      required:
        - name
        - clauses
        - filteringConditions
      properties:
        name:
          type: string
          maxLength: 256
          description: Human readable name of the rule.
          example: Get approval if transferring more than 2 BTC in a minute
        adminOnly:
          type: boolean
          description: true, if the policy rule is a BitGo internal rule, false otherwise.
          example: false
        clauses:
          type: array
          description: >
            List of policy rule Clauses: a combination of Conditions and
            Actions.
          items:
            type: object
            description: |
              A combination of Conditions and Actions.
            required:
              - conditions
              - actions
            properties:
              conditions:
                type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/TransferAmountConditionRequest'
                    - $ref: >-
                        #/components/schemas/TransferVelocityLimitConditionRequest
                    - $ref: >-
                        #/components/schemas/TransferDestinationTypeConditionRequest
                    - $ref: '#/components/schemas/TransferInitiatorsConditionRequest'
                    - $ref: '#/components/schemas/TransferWebhookConditionRequest'
                    - $ref: >-
                        #/components/schemas/TransferNotInitiatedByConditionRequest
              actions:
                type: array
                items:
                  anyOf:
                    - $ref: '#/components/schemas/AlwaysDenyActionRequest'
                    - $ref: '#/components/schemas/WalletAdminActionRequest'
                    - $ref: '#/components/schemas/FinalApprovalActionRequest'
                    - $ref: '#/components/schemas/EnterpriseUsersActionRequest'
                    - $ref: '#/components/schemas/EnterpriseAdminsActionRequest'
                    - $ref: >-
                        #/components/schemas/LivenessVerificationFromEnterpriseAdminActionRequest
                    - $ref: >-
                        #/components/schemas/LivenessVerificationFromRequestorActionRequest
                    - $ref: >-
                        #/components/schemas/LivenessVerificationFromEnterpriseUsersActionRequest
                    - $ref: '#/components/schemas/NoneActionRequest'
                    - $ref: '#/components/schemas/VideoApprovalActionRequest'
                    - $ref: '#/components/schemas/IdVerificationActionRequest'
                    - $ref: '#/components/schemas/OrganizationAdminActionRequest'
        filteringConditions:
          type: array
          description: >-
            List of Filtering Conditions that must trigger for the policy rule
            to be Evaluated.
          items:
            anyOf:
              - $ref: '#/components/schemas/WalletIdsFilteringCondition'
              - $ref: '#/components/schemas/WalletTypeFilteringCondition'
              - $ref: '#/components/schemas/WalletAllFilteringCondition'
              - $ref: '#/components/schemas/RuleAllFilteringCondition'
              - $ref: '#/components/schemas/WalletMultipleIdsFilteringCondition'
        lockType:
          type: string
          description: >
            Indicates how the policy rule is locked.


            * `LOCK_AFTER_DATE` - Will lock after the lockDate set on the policy
            rule.

            * `PERMANENT` - Is permanently locked.

            * `NEVER` - Is never locked.
          enum:
            - LOCK_AFTER_DATE
            - PERMANENT
            - NEVER
          example: PERMANENT
        lockDate:
          type: string
          description: >
            The date after which the policy rule will be locked. Only applicable
            if the policy rule is locked with

            `LOCK_AFTER_DATE`.
          format: date-time
          example: '2023-11-13T14:49:48.830522Z'
    CreatePolicyRuleTriggers:
      type: string
      enum:
        - advancedWhitelist
        - allTx
        - allTxNoFiat
        - coinAddressWhitelist
        - coinAddressBlacklist
        - velocityLimit
        - webhook
      description: What causes this rule to trigger
    CreateSendLabel:
      type: object
      properties:
        coin:
          $ref: '#/components/schemas/Coin'
        address:
          $ref: '#/components/schemas/AddressString3'
        enterpriseId:
          $ref: '#/components/schemas/Id'
        label:
          type: string
          maxLength: 250
      required:
        - coin
        - address
        - enterpriseId
        - label
    CreateSignatureShareRequest:
      type: object
      properties:
        signatureShare:
          allOf:
            - $ref: '#/components/schemas/SignatureShare'
          description: >-
            A user-provided share to be used in the ECDSA or EDDSA MPC signing
            flow. Please use signatureShares instead
        signatureShares:
          type: array
          items:
            $ref: '#/components/schemas/SignatureShare'
          description: >-
            User-provided shares to be used in the ECDSA or EDDSA MPC signing
            flow.
        signerShare:
          type: string
          description: >
            An openPGP ascii armored message (encrypted to the known HSM public
            key) containing the

            previous signer’s offset secret share as a 128 character hex string
            (64 bytes) consisting of

            the new offset “u” private component from the user [or backup] new
            offset Y-share as a 64 character

            hex string (32 bytes) concatenated with the new offset “chaincode”
            component of the new offset Y-share

            as a 64 character hex string (32 bytes). Must be provided when
            uploading an R share.
        userPublicGpgKey:
          type: string
          description: User’s public key of the gpg key.
    CreateWallet:
      type: object
      properties:
        coinSpecific:
          $ref: '#/components/schemas/WalletCreateCoinSpecific'
        enterprise:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: >-
            This is required for Ethereum wallets since they can only be created
            as part of an enterprise.
        keys:
          allOf:
            - $ref: '#/components/schemas/Keys'
          description: >-
            This is required for all wallets where the client supplies the keys
            to be used. The only case where this is not required is when the
            type is set to `custodial`.
        keySignatures:
          type: object
          properties:
            backup:
              type: string
              description: >-
                a signature of the backup pub key using the user key (useful for
                change address verification)
            bitgo:
              type: string
              description: >-
                a signature of the bitgo pub key using the user key (useful for
                change address verification)
        label:
          $ref: '#/components/schemas/WalletLabel'
        multisigType:
          $ref: '#/components/schemas/WalletMultisigType'
        address:
          $ref: '#/components/schemas/WalletCustomAddress'
        m:
          allOf:
            - $ref: '#/components/schemas/NumSignatures'
          description: >-
            This is required for all wallets where the client supplies the keys
            to be used. The only case where this is not required is when the
            type is set to `custodial`.
        'n':
          allOf:
            - $ref: '#/components/schemas/NumKeychains'
          description: >-
            This is required for all wallets where the client supplies the keys
            to be used. The only case where this is not required is when the
            type is set to `custodial`.
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        type:
          $ref: '#/components/schemas/WalletTypePublic'
        walletVersion:
          type: integer
          default: 1
          description: >-
            (ETH only) Specify the wallet creation contract version used when
            creating a wallet contract. Use 0 for the old wallet creation, 1 for
            the new wallet creation, where it is only deployed upon receiving
            funds. 2 for wallets with the same functionality as v1 but with NFT
            support. 3 for MPC wallets. 4 is same as v2 but with some changes
            related to network identifier and encoding of tx data. v4 is
            applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible
            chains that we will onboard in the future. 5 for MPC MPCv2 wallets.
            6 for EVM MPCv2 wallets with receive addresses.
          minimum: 0
          maximum: 6
        eip1559:
          type: object
          description: >-
            (ETH walletVersion: 0 wallets only) Specify eip1559 fee parameters
            in wallet creation transactions.
          properties:
            maxPriorityFeePerGas:
              type: string
              description: >-
                Max priority tip price for EIP1559 transactions. Only for ETH
                and ERC20 tokens.
            maxFeePerGas:
              type: string
              description: >-
                Max total gasPrice for EIP1559 transactions. Only for ETH and
                ERC20 tokens.
          required:
            - maxPriorityFeePerGas
            - maxFeePerGas
        evmKeyRingReferenceWalletId:
          type: string
          description: >-
            Optional reference wallet ID for EVM keyring child wallets. When
            provided, child wallets inherit properties from the parent wallet.
      anyOf:
        - not:
            required:
              - evmKeyRingReferenceWalletId
          required:
            - label
        - required:
            - evmKeyRingReferenceWalletId
    CreateWebhookSecretResponse:
      title: CreateWebhookSecretResponse
      type: object
      properties:
        secret:
          type: string
      required:
        - secret
    CronosClaimRewardsRequestPOSTBody:
      title: Cronos Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Cronos.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    CronosStakingRequest:
      title: CRONOS
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    CronosStakingRequestPOSTBody:
      title: CRONOS stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    CronosSwitchValidatorsRequestPOSTBody:
      title: Cronos Switch Validators Request
      type: object
      description: Request to switch staking delegation to a new validator for Cronos.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    CronosUnStakingRequestPOSTBody:
      title: CRONOS unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    CsprDelegationProperties:
      title: CSPR Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
    CsprStakingOptions1:
      type: object
      description: CSPR staking options
      properties:
        amount:
          type: string
          description: Amount to stake (base units)
        validator:
          type: string
          description: Validator identifier for CSPR
      required:
        - amount
        - validator
    CsprStakingRequest:
      title: CSPR
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    CsprStakingRequestEntityProperties:
      title: CSPR staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
          nullable: true
    CsprStakingRequestPOSTBody:
      title: CSPR stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    CsprStakingTransactionProperties:
      title: CSPR Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
    CsprUnStakingRequestPOSTBody:
      title: CSPR unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    CsprUnstakingTransactionProperties:
      title: CSPR Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            csprUnboundEraId:
              type: string
    Currencies:
      type: array
      items:
        $ref: '#/components/schemas/Currency'
    Currency:
      required:
        - id
        - name
        - symbol
        - increment
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID of the currency
        symbol:
          type: string
          description: Symbol of the currency
        name:
          type: string
          description: Name of the currency
        increment:
          type: string
          format: decimal
          description: This is the smallest amount that can be traded for the currency.
        platformSymbol:
          type: string
          description: The BitGo platform symbol for this currency.
      example:
        id: 519824c6-b534-49b4-a636-22dfd0ade5cf
        symbol: USD
        name: US Dollar
        increment: '0.01'
        platformSymbol: USD
    Currency1:
      title: Currency
      type: object
      properties:
        bitcoinUnit:
          type: string
        currency:
          type: string
      required:
        - bitcoinUnit
        - currency
    CustodialPairedValue:
      title: Custodial-paired wallet
      type: object
      description: Custodial-paired wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - custodialPaired
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Custodial Paired Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A custodial paired wallet
    CustodialValue:
      title: Custodial cold wallet
      type: object
      description: Custodial cold wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - custodial
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Custodial Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A custodial wallet
    CustodialWalletSubType:
      title: CustodialWalletSubType
      type: string
      enum:
        - custodialCold
        - custodialHot
        - lightningCustody
    CustodyServiceAgreement:
      title: Custody Service Agreement
      allOf:
        - type: object
          properties:
            bitgoOrg:
              allOf:
                - $ref: '#/components/schemas/BitgoOrg'
              description: BitGo Organization related to this custody service agreement
        - $ref: '#/components/schemas/OnboardingAgreement'
    CustodyServicesAgreement:
      type: object
      description: Information about the signed custody services agreement
      properties:
        user:
          $ref: '#/components/schemas/Id'
        date:
          type: string
          format: date-time
          description: The date when the agreement was signed
        ip:
          type: string
          description: The IP address from which the agreement was signed
        bitgoOrg:
          allOf:
            - $ref: '#/components/schemas/PlatformBitgoOrg'
            - description: >-
                The Trust entity for which the CSA was signed. Used to prevent
                switching custodians after signing. May be undefined for legacy
                agreements signed before this field was added.
      required:
        - user
        - date
    CustomChangeKeySignatures:
      type: object
      properties:
        user:
          type: string
        backup:
          type: string
        bitgo:
          type: string
      description: >
        Signatures for the keys which will be used to derive custom change
        addresses.


        **Note:** These signatures may only be set once for each wallet and are
        not modifiable after being set.
    DOTBuildOptions:
      allOf:
        - $ref: '#/components/schemas/AccountBaseBuildOptions2'
        - type: object
          properties:
            fee:
              $ref: '#/components/schemas/DOTFeeOptions'
    DOTClaimIntent:
      title: Dot Claim Unstake
      allOf:
        - $ref: '#/components/schemas/DOTBuildOptions'
        - $ref: '#/components/schemas/WithdrawIntent2'
    DOTFeeOptions:
      type: object
      properties:
        amount:
          type: string
        unit:
          type: string
          enum:
            - baseUnit
            - cpu
            - ram
        formula:
          type: string
          enum:
            - fixed
            - feeRate
            - perKB
            - custom
        type:
          type: string
          enum:
            - base
            - max
            - tip
      required:
        - amount
    DateTime:
      type: string
      format: date-time
      example: {}
    DefaultChangeAddressType:
      type: string
      example: p2wsh
      nullable: true
      enum:
        - p2sh
        - p2shP2wsh
        - p2wsh
        - p2tr
        - p2trMusig2
        - default
      description: >
        (UTXO only) The default script type to use for change for this wallet.
        Per transaction, you override the default with the `changeAddressType`
        parameter. If `default` is provided, it will clear the
        `changeAddressType` default on the wallet. Note that each UTXO coin has
        different address types available. For example, Only BTC supports
        `p2tr`.
    DefiDepositIntent:
      title: DefiDepositIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - defi-deposit
            vaultId:
              type: string
            amount:
              type: string
            operationId:
              type: string
            clientIdempotencyKey:
              type: string
          required:
            - intentType
            - vaultId
            - amount
            - operationId
        - $ref: '#/components/schemas/BaseIntent'
    DefiRedeemIntent:
      title: DefiRedeemIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - defi-redeem
            protocol:
              type: string
            amount:
              type: string
          required:
            - intentType
            - protocol
            - amount
        - $ref: '#/components/schemas/BaseIntent'
    DelegateIntent:
      title: DelegateIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
              description: Must be "delegate".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: >-
        Delegate staked assets to a validator on EVM-compatible chains that
        support

        delegated proof-of-stake (e.g. BSC). Requires a staking request ID from
        the

        BitGo staking service.
    DelegationAccrual:
      type: object
      properties:
        delegationId:
          description: The delegation ID.
          type: string
        coin:
          $ref: '#/components/schemas/Coin2'
        enterpriseId:
          description: The enterprise ID.
          type: string
        withdrawalAddress:
          description: The withdrawal address.
          type: string
        delegationAddress:
          description: The delegation address.
          type: string
        delegated:
          description: The total amount delegated (staked).
          type: string
        pendingDelegated:
          description: The total amount pending to be delegated (staked).
          type: string
        pendingUndelegated:
          description: The total amount pending to be undelegated (unstaked).
          type: string
        rewardsReceived:
          description: The total rewards received over the lifetime of the delegation.
          type: string
        locked:
          description: >-
            The total amount locked but not delegated (staked). Example is
            staking rewards not re-staked/compounding.
          type: string
        date:
          description: The date and time of the accrual record.
          type: string
          format: date-time
        wallet:
          $ref: '#/components/schemas/WalletAccrual'
    DelegationAccruals:
      type: object
      properties:
        accruals:
          description: An array of delegation accruals.
          type: array
          items:
            $ref: '#/components/schemas/DelegationAccrual'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    DelegationProperties:
      type: object
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/DelegationPropertiesType'
        commissionPercent:
          type: string
          format: bigDecimal
          nullable: true
        commissionPercentLastUpdatedAt:
          type: string
          format: date-time
          nullable: true
    DelegationPropertiesSchemas:
      oneOf:
        - $ref: '#/components/schemas/AdaDelegationProperties'
        - $ref: '#/components/schemas/AptDelegationProperties'
        - $ref: '#/components/schemas/AtomDelegationProperties'
        - $ref: '#/components/schemas/AvaxPDelegationProperties'
        - $ref: '#/components/schemas/AvaxCDelegationProperties'
        - $ref: '#/components/schemas/BeraDelegationProperties'
        - $ref: '#/components/schemas/BscDelegationProperties'
        - $ref: '#/components/schemas/BtcDelegationProperties'
        - $ref: '#/components/schemas/CoredaoDelegationProperties'
        - $ref: '#/components/schemas/CosmosLikeDelegationProperties'
        - $ref: '#/components/schemas/CsprDelegationProperties'
        - $ref: '#/components/schemas/DotDelegationProperties'
        - $ref: '#/components/schemas/EigenLikeDelegationProperties'
        - $ref: '#/components/schemas/MaticLikeDelegationProperties'
        - $ref: '#/components/schemas/WflrDelegationProperties'
        - $ref: '#/components/schemas/FlrPDelegationProperties'
        - $ref: '#/components/schemas/WctDelegationProperties'
        - $ref: '#/components/schemas/VetDelegationProperties'
        - $ref: '#/components/schemas/TrxDelegationProperties'
        - $ref: '#/components/schemas/TonDelegationProperties'
        - $ref: '#/components/schemas/TaoDelegationProperties'
        - $ref: '#/components/schemas/SuiDelegationProperties'
        - $ref: '#/components/schemas/StxDelegationProperties'
        - $ref: '#/components/schemas/SomiDelegationProperties'
        - $ref: '#/components/schemas/SolDelegationProperties'
        - $ref: '#/components/schemas/PolyxDelegationProperties'
        - $ref: '#/components/schemas/NearDelegationProperties'
        - $ref: '#/components/schemas/StoryDelegationProperties'
        - $ref: '#/components/schemas/UnknownDelegationProperties'
    DelegationPropertiesType:
      type: string
      enum:
        - APT
        - AVAXP
        - AVAXC
        - ETH
        - ETH_SSV
        - NEAR
        - SOL
        - DOT
        - MATIC
        - CSPR
        - SUI
        - ADA
        - ATOM
        - COSMOS
        - BSC
        - TON
        - STX
        - EIGEN_LIKE
        - BTC
        - WCT
        - WFLR
        - FLRP
        - COREDAO
        - BERA
        - TAO
        - TRX
        - POLYX
        - SOMI
        - STORY
        - VET
        - OG
        - UNKNOWN
    DelegationRequest:
      type: object
      description: Individual delegation request entry.
      properties:
        amount:
          description: Amount to delegate to the validator in base units.
          type: string
        validator:
          description: The validator to delegate to.
          type: string
      required:
        - amount
        - validator
    DelegationResults:
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            oneOf:
              - $ref: '#/components/schemas/BaseDelegation'
              - $ref: '#/components/schemas/AdaStakingDelegation'
              - $ref: '#/components/schemas/AtomStakingDelegation'
              - $ref: '#/components/schemas/AvaxPStakingDelegation'
              - $ref: '#/components/schemas/BeraStakingDelegation'
              - $ref: '#/components/schemas/BtcStakingDelegation'
              - $ref: '#/components/schemas/CosmosLikeStakingDelegation'
              - $ref: '#/components/schemas/DotStakingDelegation'
              - $ref: '#/components/schemas/EthStakingDelegation'
              - $ref: '#/components/schemas/MaticStakingDelegation'
              - $ref: '#/components/schemas/NearStakingDelegation'
              - $ref: '#/components/schemas/SolStakingDelegation'
              - $ref: '#/components/schemas/StxStakingDelegation'
              - $ref: '#/components/schemas/SuiStakingDelegation'
              - $ref: '#/components/schemas/TonStakingDelegation'
              - $ref: '#/components/schemas/WctStakingDelegation'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    DelegationStatus:
      description: The status of the delegation.
      type: string
      enum:
        - PENDING
        - FAILED
        - REJECTED
        - ACTIVE
        - COMPLETE
    DeleteDeviceTokenResponse:
      required:
        - bitgoUserId
        - deviceToken
        - message
      type: object
      properties:
        deviceToken:
          type: string
        bitgoUserId:
          type: string
        message:
          type: string
    DeleteEnterpriseUser:
      type: object
      properties:
        username:
          type: string
      required:
        - username
    DeployAddressAndForwardTokenResponse:
      title: DeployAddressAndForwardTokenResponse
      type: object
      properties:
        txId:
          type: string
      required:
        - txId
    Deposit:
      type: object
      properties:
        toAddress:
          type: string
          description: The address the deposit will be received at
          example: 1234567890ABCDEF-XJBCOEF
        valueString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: The value (in cents/base units) of the deposit
        token:
          type: string
          description: If this is a token entry, the token's symbol
          example: ousd
        toBankAccount:
          $ref: '#/components/schemas/BankAccountRequest'
      required:
        - toAddress
        - token
    DeprecatedBankAccountRequest:
      title: DeprecatedBankAccountRequest
      description: >
        DEPRECATED - Bank account request using simple string fields for
        addresses.


        This format is deprecated, because it's less flexible for international
        address validation.


        Instead, use the normalized address format.
      deprecated: true
      allOf:
        - $ref: '#/components/schemas/BankAccountRequestCore'
        - type: object
          properties:
            shortCountryCode:
              type: string
              minLength: 2
              maxLength: 2
              deprecated: true
              description: >
                Two-letter ISO country code of bank's address. This field is
                deprecated. Instead use `bankAddressCountryCode`.
            address:
              type: string
              minLength: 1
              deprecated: true
              description: >
                Unstructured bank address. This field is deprecated. Instead,
                use the normalized bank address fields (`bankAddressLine1`,
                `bankAddressCityLocality`, etc.).
            ownerAddress:
              type: string
              minLength: 1
              deprecated: true
              description: >
                DEPRECATED - Unstructured owner address string. This field is
                deprecated. Instead, use the normalized bank address fields
                (`bankAddressLine1`, `bankAddressCityLocality`, etc.).
          required:
            - shortCountryCode
            - address
            - ownerAddress
    DestinationTypeCoinConditionParameter:
      title: Asset
      type: object
      description: The asset this condition applies to.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - coin
          example: coin
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Asset
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The asset this condition applies to. Optional.
        type:
          type: string
          description: A cryptocurrency asset.
          enum:
            - COIN
          example: COIN
        required:
          type: string
          description: A value is not required.
          enum:
            - OPTIONAL
          example: OPTIONAL
        allowMultiple:
          type: boolean
          description: Only one value can be provided.
          example: 'false'
    DestinationTypeTypeConditionParameter:
      title: Destination
      type: object
      description: The type of destination this condition will match.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
        - values
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - type
          example: type
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Type
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The type of destination this condition will match
        type:
          type: string
          description: >-
            Accepts only enumerated values as listed in the 'values' property of
            this condition.
          enum:
            - ENUMERATED
          example: ENUMERATED
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
        values:
          type: array
          description: A list of valid values, only values from this list will be accepted.
          items:
            anyOf:
              - $ref: '#/components/schemas/WhitelistedAddressValue'
              - $ref: '#/components/schemas/NonWhitelistedAddressValue'
    DiligenceCanSendRemittances:
      type: string
      enum:
        - yesBothFiatAndCrypto
        - yesFiat
        - yesCrypto
        - 'no'
        - other
      title: DiligenceCanSendRemittances
      description: Can the business send remittances?
    DiligenceRetailInstitutional:
      type: string
      enum:
        - retail0To25
        - retail25To50
        - retail50To75
        - retail75To100
      title: DiligenceRetailInstitutional
      description: Percentage breakdown of retail vs institutional customer base
    DisclaimerAttributes:
      type: object
      properties:
        staking:
          $ref: '#/components/schemas/StakingDisclaimer'
        unstaking:
          $ref: '#/components/schemas/UnstakingDisclaimer'
        nextRewards:
          $ref: '#/components/schemas/NextRewardsDisclaimer'
    DisputeClosure:
      title: DisputeClosure
      type: object
      properties:
        id:
          type: string
          title: uuid
        createdAt:
          oneOf:
            - type: string
            - {}
        updatedAt:
          oneOf:
            - type: string
            - {}
        closedBy:
          $ref: '#/components/schemas/ClosedByUnion'
        userId:
          type: string
          minLength: 1
        notes:
          type: string
          minLength: 1
        payload:
          type: string
        signature:
          type: string
        status:
          type: string
          enum:
            - pending_review
            - approved
            - rejected
        reviewedBy:
          type: string
        reviewNotes:
          type: string
        adjustedTransfers:
          $ref: '#/components/schemas/ExpectedTransfers'
      required:
        - id
        - createdAt
        - updatedAt
        - closedBy
        - userId
        - notes
        - status
        - adjustedTransfers
    DisputeClosureOutput:
      title: DisputeClosureOutput
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the dispute closure.
          title: uuid
        closedBy:
          allOf:
            - $ref: '#/components/schemas/ClosedByUnion'
          description: |-
            Who closed the dispute.
            - `admin` - The dispute was closed by an admin.
            - `client` - The dispute was closed by a client.
        userId:
          type: string
          description: The id of the user who closed the dispute.
          minLength: 1
        notes:
          type: string
          description: notes entered by the user when closing the dispute.
          minLength: 1
        adjustedSettlementTransfers:
          allOf:
            - $ref: '#/components/schemas/DisputedSettlementTransfersOutput'
          description: >-
            The resulting settlement transfers generated when the dispute was
            closed
        createdAt:
          type: string
          description: The date  and time when the dispute closure was created.
          format: date-time
          title: ISO Date String
        status:
          allOf:
            - $ref: '#/components/schemas/DisputeClosureReviewStatus'
          description: The status of the dispute closure review.
        adjustedTransfers:
          allOf:
            - $ref: '#/components/schemas/ExpectedTransfers'
          description: The adjusted transfers as a result of the dispute closure.
        reviewedBy:
          type: string
          description: The id of the admin who reviewed the dispute closure.
          minLength: 1
        reviewNotes:
          type: string
          description: >-
            Any comments entered by the admin when reviewing the dispute
            closure.
          minLength: 1
      required:
        - id
        - closedBy
        - userId
        - notes
        - adjustedSettlementTransfers
        - createdAt
        - status
        - adjustedTransfers
    DisputeClosureReviewStatus:
      title: DisputeClosureReviewStatus
      type: string
      enum:
        - pending_review
        - approved
        - rejected
    DisputedSettlementTransfersOutput:
      title: DisputedSettlementTransfersOutput
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            description: The unique identifier of the settlement transfer.
            title: uuid
          sourceTradingAccountId:
            type: string
            description: The go account id of the source party.
            minLength: 1
          destinationTradingAccountId:
            type: string
            description: The go account id of the destination party.
            minLength: 1
          destinationNetworkAccountId:
            type: string
            description: The network account id of the destination party.
            title: uuid
          disputeClosureId:
            type: string
            description: >-
              The unique identifier of the dispute closure the settlement
              transfer was created from.

              This is a UUID that uniquely identifies dispute closure if the
              transfer was created as a result of closing a 

              dispute.
            title: uuid
          currency:
            type: string
            description: The currency involved in the settlement movement.
            minLength: 1
          quantity:
            allOf:
              - $ref: '#/components/schemas/NonZeroBigAmount'
            description: >-
              The amount of currency being transferred in the settlement
              transfer.

              This is a non-zero value represented as a string.

              If the value is positive, that means funds were moved from the
              source account to the destination account.

              If the value is negative, that means funds were moved from the
              destination account to the source account.
          status:
            allOf:
              - $ref: '#/components/schemas/SettlementTransferStatus'
            description: >-
              The status of the settlement transfer.

              Possible values and implications are:

              - pending: The transfer is pending and has not yet been processed.

              - pending_onchain: The transfer is pending on-chain movement (only
              relevant to on-chain settlements).

              - onchain_initiated: The transfer has been initiated on-chain
              (only relevant to on-chain settlements).

              - onchain_failed: The on-chain transfer has failed (only relevant
              to on-chain settlements).

              - completed: The transfer has been completed successfully.

              - failed: The transfer has failed.

              - rejected: The transfer has been rejected.

              - disputed: The transfer is disputed.
          createdAt:
            type: string
            description: |-
              The date and time when the settlement transfer was created.
              Represented as an ISO 8601 formatted date string.
            format: date-time
            title: ISO Date String
          updatedAt:
            type: string
            description: |-
              The date and time when the settlement transfer was last updated.
              Represented as an ISO 8601 formatted date string.
            format: date-time
            title: ISO Date String
          settlementId:
            type: string
            description: >-
              The unique identifier of the settlement the settlement transfer is
              associated with.

              This is a UUID that uniquely identifies the settlement.

              Will only be undefined if the settlement transfer is in
              `pending_settlement_assignment` status.
            title: uuid
          sourceNetworkAccountId:
            type: string
            description: The network account id of the source party.
            title: uuid
        required:
          - id
          - sourceTradingAccountId
          - destinationTradingAccountId
          - destinationNetworkAccountId
          - disputeClosureId
          - currency
          - quantity
          - status
          - createdAt
          - updatedAt
    DistributedCustody:
      title: DistributedCustody
      type: object
      properties:
        signingBitgoOrg:
          $ref: '#/components/schemas/BitgoOrg'
    DistributedCustodyUpdateEnterprise:
      type: object
      description: >-
        Parameters associated with distributed custody enterprises. If you want
        to remove 'signingBitgoOrg', set it to null.
      properties:
        signingBitgoOrg:
          type: string
          description: >-
            BitGo Organization related to this entity. Allowed values are BitGo
            Inc, BitGo Trust, BitGo New York, BitGo Germany, BitGo Switzerland,
            Frankfurt DE Trust, BitGo Sister Trust 1, BitGo Korea, BitGo
            Singapore, null
          nullable: true
    Document:
      type: object
      properties:
        id:
          type: string
          description: Internal ID for the document association
        documentId:
          type: string
          description: External document service ID
        documentType:
          type: string
          enum:
            - governmentId
            - commercialRegister
            - articlesOfAssociation
            - certificateOfIncorporation
            - certificateOfTrust
            - certificateOfIncumbency
            - certificateOfIncumbencyOrShareRegister
            - proofOfPrincipalPlaceOfBusiness
            - activeTradeLicense
            - resolutionToOpenBitgoUaeAccount
            - resolutionToOpenBitgoSingaporeAccount
            - proofOfAuthorizedSignatories
            - memorandumOfAssociation
            - memorandumAndArticlesOfAssociation
            - bylawsOrOperatingAgreement
            - operatingAgreement
            - w8
            - w9
            - evidenceOfLegalStatus
            - evidenceOfActiveStatus
            - proofOfJfsaLicense
            - proofOfGamingLicense
            - organizationDocument
            - partnershipAgreement
            - articlesOfOrganization
            - businessLicenseOrRegistration
            - evidenceOfGovernmentOrStateOwnership
            - secFilingsAsEvidenceOfPublicTradingStatus
            - foundingTreatyOrEquivalent
          description: Type of document being uploaded
        status:
          type: string
          enum:
            - missing
            - countExceeded
            - submitted
            - inReview
            - verified
          description: Verification status
      required:
        - id
        - documentId
        - documentType
        - status
      title: Document
    DocumentCollection:
      title: DocumentCollection
      type: object
      properties:
        required:
          type: array
          items:
            type: string
            enum:
              - wForm
        wForm:
          $ref: '#/components/schemas/DocumentCollectionAgreement'
    DocumentCollectionAgreement:
      allOf:
        - title: DocumentCollectionAgreement
        - $ref: '#/components/schemas/OnboardingAgreement'
    DocumentFileDetail:
      type: object
      properties:
        fileId:
          type: string
          description: Unique identifier for the file
        fileView:
          type: string
          description: View or side of the document file
        label:
          type: string
          description: Human-readable label for the file
        required:
          type: boolean
          description: Whether this file is required for the document
        uploadUrl:
          type: string
          format: uri
          description: Presigned URL for file upload
        expiresAt:
          type: string
          format: date-time
          description: When the upload URL expires
      required:
        - fileId
        - fileView
        - label
        - required
        - uploadUrl
        - expiresAt
      title: DocumentFileDetail
      description: Detailed file information for document creation response
    DocumentFileInfo:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the file
        view:
          $ref: '#/components/schemas/FileView'
        status:
          $ref: '#/components/schemas/FileStatus'
        fileName:
          type: string
          description: Original filename of the uploaded file
        fileType:
          type: string
          description: MIME type of the file
        fileSize:
          type: number
          description: Size of the file in bytes
        uploadUrl:
          type: string
          format: uri
          description: Presigned URL for file upload
        downloadUrl:
          type: string
          format: uri
          description: Presigned URL for file download
        uploadUrlExpiresAt:
          type: string
          format: date-time
          description: When the upload URL expires
        rejectionReason:
          type: string
          description: >-
            Human-readable reason when status is rejected (e.g. illegible scan,
            wrong document type)
        createdAt:
          type: string
          format: date-time
          description: When the file was created
        updatedAt:
          type: string
          format: date-time
          description: When the file was last updated
      required:
        - id
        - status
        - createdAt
        - updatedAt
      title: DocumentFileInfo
      description: File information for document retrieval
    DocumentFileSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: File identifier
        view:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/FileView'
        status:
          $ref: '#/components/schemas/FileStatus'
      required:
        - id
        - view
        - status
      title: DocumentFileSummary
      description: Lightweight summary of a file associated with a document
    DocumentListQueryLimit:
      default: 20
      type: integer
      minimum: 1
      maximum: 100
      title: DocumentListQueryLimit
    DocumentListQueryOffset:
      default: 0
      type: integer
      minimum: 0
      nullable: true
      title: DocumentListQueryOffset
    DocumentPaginationLimit:
      type: integer
      minimum: 1
      title: DocumentPaginationLimit
      description: Applied page size
    DocumentPaginationOffset:
      type: integer
      minimum: 0
      title: DocumentPaginationOffset
      description: Applied page offset
    DocumentStatus:
      type: string
      enum:
        - awaitingUpload
        - uploaded
        - accepted
        - rejected
      title: DocumentStatus
      description: Current status of the document
    DocumentSubType:
      type: string
      enum:
        - cct
        - cid
        - dl
        - foid
        - hic
        - id
        - ipp
        - keyp
        - ltpass
        - munid
        - myn
        - nbi
        - nric
        - ofw
        - rp
        - pan
        - pid
        - pp
        - ppc
        - pr
        - sss
        - td
        - tribalid
        - umid
        - vid
        - visa
        - wp
        - computerizedPayslips
        - incomeTaxAssessment
        - employmentLetterContract
        - bankStatement
        - dptHoldingStatement
        - investmentHoldingsStatement
        - titleDeeds
        - propertyTaxCpfStatement
        - other
      title: DocumentSubType
      description: >-
        Subtype of document (relevant for `governmentId` and
        `singaporeSupportingDocument` document types)
    DocumentSubTypeDetailed:
      type: string
      enum:
        - cct
        - cid
        - dl
        - foid
        - hic
        - id
        - ipp
        - keyp
        - ltpass
        - munid
        - myn
        - nbi
        - nric
        - ofw
        - rp
        - pan
        - pid
        - pp
        - ppc
        - pr
        - sss
        - td
        - tribalid
        - umid
        - vid
        - visa
        - wp
        - computerizedPayslips
        - incomeTaxAssessment
        - employmentLetterContract
        - bankStatement
        - dptHoldingStatement
        - investmentHoldingsStatement
        - titleDeeds
        - propertyTaxCpfStatement
        - other
      title: DocumentSubTypeDetailed
      description: >-
        Subtype of document (required when documentType is 'governmentId' or
        'singaporeSupportingDocument'). Supported subtypes:

        - `cct` - Citizenship Certificate

        - `cid` - Consular ID

        - `dl` - Driver's License

        - `foid` - CO Foreigner ID

        - `hic` - Health Insurance Card

        - `id` - Identification Card

        - `ipp` - Internal Passport

        - `keyp` - AU Keypass ID

        - `ltpass` - Long Term Pass

        - `munid` - US Municipal ID (e.g. NYC ID)

        - `myn` - JP My Number Card (SSN)

        - `nbi` - PH National Bureau of Investigation Certificate

        - `nric` - SG National Residency ID

        - `ofw` - PH Overseas Foreign Worker Card

        - `rp` - Residence Permit

        - `pan` - IN Permanent Account Number card (SSN)

        - `pid` - PH Postal Identity Card

        - `pp` - Passport

        - `ppc` - Passport Card

        - `pr` - Permanent Residence Card

        - `sss` - PH Social Security System Card (SSN)

        - `td` - US Travel Document

        - `tribalid` - US/CA Tribal ID

        - `umid` - PH Unified Multi Purpose ID

        - `vid` - Voter ID

        - `visa` - Visa

        - `wp` - Work Permit


        Singapore Accredited Investor supporting document subtypes (for
        documentType 'singaporeSupportingDocument'):

        - `computerizedPayslips` - Computerized payslips (qualifying criteria:
        income)

        - `incomeTaxAssessment` - Income tax assessment (qualifying criteria:
        income)

        - `employmentLetterContract` - Employment letter or contract (qualifying
        criteria: income)

        - `bankStatement` - Bank statement (qualifying criteria: netAssets,
        financialAssets)

        - `dptHoldingStatement` - Digital payment token holding statement
        (qualifying criteria: netAssets)

        - `investmentHoldingsStatement` - Investment holdings statement
        (qualifying criteria: netAssets, financialAssets)

        - `titleDeeds` - Title deeds (qualifying criteria: netAssets)

        - `propertyTaxCpfStatement` - Property tax or CPF statement (qualifying
        criteria: netAssets)

        - `other` - Other supporting document
    DocumentSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Document identifier
        type:
          $ref: '#/components/schemas/DocumentType'
        subType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/DocumentSubType'
        status:
          $ref: '#/components/schemas/DocumentStatus'
        enterpriseId:
          type: string
          nullable: true
          description: >-
            Enterprise associated with the document when created, or null for
            legacy documents
        forUserId:
          type: string
          nullable: true
          description: >-
            BitGo public user ID the document was created for, or null when not
            attributed
        createdAt:
          type: string
          format: date-time
          description: ISO timestamp when the document was created
        files:
          type: array
          items:
            $ref: '#/components/schemas/DocumentFileSummary'
          description: Files associated with the document
      required:
        - id
        - type
        - subType
        - status
        - enterpriseId
        - forUserId
        - createdAt
        - files
      title: DocumentSummary
      description: Lightweight document summary suitable for list views
    DocumentType:
      type: string
      enum:
        - governmentId
        - commercialRegister
        - articlesOfAssociation
        - certificateOfIncorporation
        - certificateOfGoodStanding
        - certificateOfTrust
        - certificateOfIncumbency
        - certificateOfIncumbencyOrShareRegister
        - proofOfPrincipalPlaceOfBusiness
        - activeTradeLicense
        - resolutionToOpenBitgoUaeAccount
        - resolutionToOpenBitgoSingaporeAccount
        - proofOfAuthorizedSignatories
        - memorandumOfAssociation
        - memorandumAndArticlesOfAssociation
        - bylawsOrOperatingAgreement
        - operatingAgreement
        - w8
        - w9
        - evidenceOfLegalStatus
        - evidenceOfActiveStatus
        - proofOfJfsaLicense
        - proofOfGamingLicense
        - organizationDocument
        - partnershipAgreement
        - articlesOfOrganization
        - businessLicenseOrRegistration
        - evidenceOfGovernmentOrStateOwnership
        - secFilingsAsEvidenceOfPublicTradingStatus
        - foundingTreatyOrEquivalent
        - proofOfAddress
        - sourceOfWealth
        - singaporeSupportingDocument
        - caseRequiredDocuments
        - correspondentAccountCertification
        - authorizedSignerForm
      title: DocumentType
      description: Type of document being uploaded
    DocumentTypeDetailed:
      type: string
      enum:
        - governmentId
        - commercialRegister
        - articlesOfAssociation
        - certificateOfIncorporation
        - certificateOfGoodStanding
        - certificateOfTrust
        - certificateOfIncumbency
        - certificateOfIncumbencyOrShareRegister
        - proofOfPrincipalPlaceOfBusiness
        - activeTradeLicense
        - resolutionToOpenBitgoUaeAccount
        - resolutionToOpenBitgoSingaporeAccount
        - proofOfAuthorizedSignatories
        - memorandumOfAssociation
        - memorandumAndArticlesOfAssociation
        - bylawsOrOperatingAgreement
        - operatingAgreement
        - w8
        - w9
        - evidenceOfLegalStatus
        - evidenceOfActiveStatus
        - proofOfJfsaLicense
        - proofOfGamingLicense
        - organizationDocument
        - partnershipAgreement
        - articlesOfOrganization
        - businessLicenseOrRegistration
        - evidenceOfGovernmentOrStateOwnership
        - secFilingsAsEvidenceOfPublicTradingStatus
        - foundingTreatyOrEquivalent
        - proofOfAddress
        - sourceOfWealth
        - singaporeSupportingDocument
        - caseRequiredDocuments
        - correspondentAccountCertification
        - authorizedSignerForm
      title: DocumentTypeDetailed
      description: >-
        Type of document being uploaded. Supported document types:

        - `governmentId` - The official government-issued identity document for
        an individual associated with the business (e.g., director, shareholder,
        or authorized signatory) required for identity verification.

        - `commercialRegister` - Official government document that verifies the
        identity and legitimacy of the business, containing basic information
        such as the company's name, address, field of activity, shareholders,
        and capital.

        - `articlesOfAssociation` - The Articles of Association are formal legal
        documents that serve as the company's rulebook, outlining its
        fundamental structure, purpose, internal operations, and how decisions
        are made, including details on share capital, director appointments, and
        shareholder rights.

        - `certificateOfIncorporation` - The official document issued by the
        government registrar that legally recognizes your company's existence
        and outlines essential information such as its name, purpose, and
        structure.

        - `certificateOfGoodStanding` - An official document issued by the
        government registrar confirming that the company is legally registered,
        active, and in compliance with statutory filing and payment obligations.
        Must be dated within the last 12 months.

        - `certificateOfTrust` - A document that verifies the existence of a
        trust, the identity of the trustee(s), and their authority to act on
        behalf of the trust.

        - `certificateOfIncumbency` - A private legal document issued by the
        company that verifies the identities and authority of the current
        directors, officers, and sometimes key shareholders who are authorized
        to act on behalf of the company in transactions.

        - `certificateOfIncumbencyOrShareRegister` - An official document
        listing current directors, shareholders, and the company's registered
        address, or a certified document detailing all company shareholders and
        their respective shareholdings.

        - `proofOfPrincipalPlaceOfBusiness` - Document confirming the address of
        the company's principal place of business (e.g., utility bill or bank
        account statement no older than 3 months).

        - `activeTradeLicense` - The active and valid trade license or
        equivalent regulatory document issued by the relevant governing
        authority, proving the business's legal authorization to operate.

        - `resolutionToOpenBitgoUaeAccount` - A document confirming the
        company's internal resolution or decision to open an account with BitGo
        UAE.

        - `resolutionToOpenBitgoSingaporeAccount` - This field is for uploading
        the corporate resolution document confirming authorization to open an
        account with BitGo Singapore.

        - `proofOfAuthorizedSignatories` - Document confirming the legal
        authority of the individual(s) authorized to sign contracts and legally
        binding documents on behalf of the company.

        - `memorandumOfAssociation` - The Memorandum of Association is one of
        the company's constitutional documents. It typically includes the
        company's name, address, and confirms the initial shareholders agree to
        form the company and become members.

        - `memorandumAndArticlesOfAssociation` - This document serves as the
        constitutional document of the company, outlining its legal existence,
        objectives, and internal governing rules.

        - `bylawsOrOperatingAgreement` - The company's bylaws or operating
        agreement. These are governing documents that define the company's
        structure, operations, and the rights and responsibilities of its
        members or shareholders.

        - `operatingAgreement` - The operating agreement is a key document that
        outlines the ownership, internal governance, and operating procedures of
        the business entity.

        - `w8` - W-8BEN or W-8BEN-E Form: Used by individuals/institutions to
        certify foreign status for U.S. tax purposes and to claim treaty
        benefits for certain types of income (e.g., royalty/passive income,
        scholarships/fellowships). This form is required to determine the
        correct rate of tax withholding.

        - `w9` - This field collects the IRS Form W-9, "Request for Taxpayer
        Identification Number and Certification." This document is used to
        confirm your business's name, address, and Taxpayer Identification
        Number (TIN) for income reporting purposes.

        - `evidenceOfLegalStatus` - Document that confirms your company is
        currently active and legally authorized to operate in the country or
        jurisdiction where it was formed. Examples of accepted documents that
        clearly state or evidence active or good standing include: Certificate
        of Good Standing, Business Registration or Trade License, Company
        Registry Extract, Certificate of Incumbency. Note: Documents must be
        issued within the last 12 months. If an older document is submitted, you
        may be asked to provide an updated copy.

        - `evidenceOfActiveStatus` - A document that verifies the business
        entity's current legal standing and active operational status, often an
        extract from a state company registry or equivalent proof of legal
        existence.

        - `proofOfJfsaLicense` - Document required as proof of the business's
        registration or license with the Japanese Financial Services Agency
        (JFSA).

        - `proofOfGamingLicense` - The official document verifying that your
        business holds a valid gaming or gambling license issued by the relevant
        regulatory authority.

        - `organizationDocument` - This field is for uploading the business's
        organization document. This confirms the entity's legal existence and
        compliance with regulations. Common documents include the certificate of
        incorporation, articles of association, or recent excerpts from a state
        company registry.

        - `partnershipAgreement` - The official document formalizing a business
        partnership. This document confirms the legal structure and ownership
        details of the entity.

        - `articlesOfOrganization` - The official document filed with a state to
        legally form a Limited Liability Company (LLC). It secures the business
        name and establishes the legal entity.

        - `businessLicenseOrRegistration` - This field is for uploading the
        company's official business license or registration document, which
        confirms the legal identity and legitimacy of the business.

        - `evidenceOfGovernmentOrStateOwnership` - Documentation required to
        verify if the entity is owned or operated by a government or state
        organization.

        - `secFilingsAsEvidenceOfPublicTradingStatus` - Document field used to
        collect Securities and Exchange Commission (SEC) filings that serve as
        evidence of the business entity's public trading status.

        - `foundingTreatyOrEquivalent` - The founding treaty or equivalent
        document serves as official proof of the business entity's legal
        existence and is often referred to as a Certificate of Incorporation,
        Articles of Association, or other governing documents, depending on the
        jurisdiction and business structure.

        - `proofOfAddress` - A document that verifies the individual's
        residential address, such as a utility bill, bank statement, or
        government correspondence dated within the last 3 months.

        - `sourceOfWealth` - A document that evidences the individual's source
        of wealth, required for high-risk individuals under enhanced due
        diligence.

        - `singaporeSupportingDocument` - A supporting document for Singapore
        Accredited Investor qualification. The specific document is indicated by
        the `documentSubType` field (e.g., `computerizedPayslips`,
        `bankStatement`, `titleDeeds`).

        - `caseRequiredDocuments` - A collection of documents required for a
        specific KYB/KYC case. Unlike other document types, the specific file
        slots and their per-file document classifications are defined
        per-instance at creation time rather than statically configured. Each
        file within this collection sets its own classification via the
        `File.documentType` field.

        - `correspondentAccountCertification` — FinCEN Certification Regarding
        Correspondent Accounts for Foreign Banks. Required from non-US bank
        applicants per FinCEN regulations. The blank form is available at
        https://www.fincen.gov/system/files/shared/Certification%20Regarding%20Correspondent%20Accounts%20for%20Foreign%20Banks.pdf
        — the applicant completes, signs, and uploads it.

        - `authorizedSignerForm` — A signed form identifying the individual
        authorized to make contractual commitments on behalf of the applicant.
        The blank fillable form is available at
        https://www.bitgo.com/legal/bitgo-bank-and-trust-na-authorized-signer-form/
        — the authorized signer completes, signs, and uploads it.
    DomesticWireAccountResponseProps:
      title: DomesticWireAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - wire
        routingNumber:
          $ref: '#/components/schemas/RoutingNumberString'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - routingNumber
        - accountType
    DomesticWireBankAccount:
      title: Domestic Wire Bank Account
      type: object
      description: >
        An external bank account. `routingNumber` must be set for US bank
        accounts.

        `swiftCode` must be set for banks outside the US.
      properties:
        accountNumber:
          description: Bank account number or IBAN.
          type: string
          minLength: 1
          maxLength: 34
          example: 114584906
        enterpriseId:
          $ref: '#/components/schemas/Id'
        address:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        address1:
          type: string
          example: 2390 El Camino Real
        address2:
          type: string
          example: Palo Alto, CA 94306
        address3:
          type: string
          example: ''
        name:
          type: string
          example: America California Bank
        ownerName:
          type: string
          example: Donald E. Knuth
        ownerAddress:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        owner:
          type: object
          description: Bank account owner
          properties:
            name:
              type: string
              example: Donald E. Knuth
            address1:
              type: string
              example: Computer Science Department
            address2:
              type: string
              example: Stanford University
            address3:
              type: string
              example: Stanford, CA 94305-9045
          required:
            - name
            - address1
        routingNumber:
          description: >-
            US bank routing number. Required for domestic wire transfers within
            the US.
          type: string
          example: '129131673'
          minLength: 9
          maxLength: 9
          pattern: ^[0-9]+$
        shortCountryCode:
          $ref: '#/components/schemas/ShortCountryCode'
        type:
          $ref: '#/components/schemas/BankAccountType'
        currency:
          $ref: '#/components/schemas/BankAccountCurrency'
        furtherCreditTo:
          type: string
          example: Donald E. Knuth
        intermediaryBankName:
          type: string
          example: America California Bank
        intermediaryBankId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
      required:
        - accountNumber
        - address1
        - shortCountryCode
        - name
        - owner
        - enterpriseId
        - routingNumber
    DomesticWireBankAccountRequest:
      title: DomesticWireBankAccountRequest
      description: Request schema for creating a domestic wire bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - wire
              description: Must be 'wire' for domestic wire accounts
            routingNumber:
              type: string
              description: Routing number for the domestic wire account
          required:
            - type
            - routingNumber
        - $ref: '#/components/schemas/BankAccountRequest1'
    DomesticWireBankAccountResponse:
      title: DomesticWireBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/DomesticWireAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    DotAccountBaseBuildOptions:
      title: DotAccountBaseBuildOptions
      allOf:
        - type: object
          properties:
            fee:
              type: object
              properties:
                amount:
                  oneOf:
                    - type: string
                    - type: number
                formula:
                  type: string
                  enum:
                    - fixed
                    - feeRate
                    - perKB
                    - custom
                type:
                  type: string
                  enum:
                    - base
                    - max
                    - tip
                unit:
                  type: string
                  enum:
                    - baseUnit
                    - cpu
                    - ram
              required:
                - amount
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    DotAccountBaseBuildOptions1:
      title: DotAccountBaseBuildOptions
      allOf:
        - type: object
          properties:
            fee:
              type: object
              properties:
                amount:
                  oneOf:
                    - type: string
                    - type: number
                formula:
                  type: string
                  enum:
                    - fixed
                    - feeRate
                    - perKB
                    - custom
                type:
                  type: string
                  enum:
                    - base
                    - max
                    - tip
                unit:
                  type: string
                  enum:
                    - baseUnit
                    - cpu
                    - ram
              required:
                - amount
        - $ref: '#/components/schemas/AccountBaseBuildOptions1'
    DotAddress:
      title: Dot Address
      type: object
      properties:
        rootAddress:
          type: string
        nonceTracker:
          type: object
          properties:
            lastReservedNonce:
              type: number
            lastExecutedNonce:
              type: number
            detectedMissingNonces:
              type: array
              items:
                type: object
                properties:
                  nonce:
                    type: number
                  isNonceLocked:
                    type: boolean
                  nonceLockExpireTime:
                    type: string
                    format: date
                    title: Date String
                required:
                  - nonce
                  - isNonceLocked
            detecMissingNoncesData:
              type: array
              items:
                type: object
                properties:
                  nonce:
                    type: number
                  isNonceLocked:
                    type: boolean
                  nonceLockExpireTime:
                    type: string
                    format: date
                    title: Date String
                required:
                  - nonce
                  - isNonceLocked
          required:
            - lastReservedNonce
            - lastExecutedNonce
            - detectedMissingNonces
            - detecMissingNoncesData
      required:
        - rootAddress
        - nonceTracker
    DotConsolidateIntent:
      title: DOT Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
    DotCreateAccountIntent:
      title: DOT Create Account Intent
      allOf:
        - type: object
          properties:
            delayBlocks:
              type: string
            proxyType:
              type: string
            index:
              $ref: '#/components/schemas/optionalNumber'
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - delayBlocks
            - proxyType
        - $ref: '#/components/schemas/AccountBaseCreateAccountIntent'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions'
    DotDelegationProperties:
      title: DOT Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            proxyAddress:
              type: string
            nominateProxyAddress:
              type: boolean
    DotPaymentIntent:
      title: DOT Payment Intent
      allOf:
        - type: object
          properties:
            proxy:
              $ref: '#/components/schemas/DotProxy'
            owner:
              $ref: '#/components/schemas/optionalString'
          required:
            - proxy
            - owner
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions'
    DotPaymentIntent1:
      title: DOT Payment Intent
      allOf:
        - type: object
          properties:
            proxy:
              $ref: '#/components/schemas/DotProxy'
            owner:
              $ref: '#/components/schemas/optionalString'
          required:
            - proxy
            - owner
        - $ref: '#/components/schemas/PaymentIntent1'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions1'
    DotProxy:
      title: DotProxy
      type: object
      properties:
        name:
          $ref: '#/components/schemas/optionalString'
        addressString:
          $ref: '#/components/schemas/optionalString'
        asset:
          $ref: '#/components/schemas/optionalString'
        amountString:
          $ref: '#/components/schemas/optionalString'
    DotStakingDelegation:
      title: DOT Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    DotStakingIntent:
      title: DOT Staking Intent
      allOf:
        - type: object
          properties:
            stakingProxy:
              type: string
            addToStake:
              $ref: '#/components/schemas/optionalBoolean'
            addProxy:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - stakingProxy
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    DotStakingIntent1:
      title: DOT Staking Intent
      allOf:
        - type: object
          properties:
            amount:
              $ref: '#/components/schemas/Amount1'
            stakingProxy:
              type: string
            addToStake:
              $ref: '#/components/schemas/optionalBoolean'
            addProxy:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - amount
            - stakingProxy
        - $ref: '#/components/schemas/StakeIntent1'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions1'
    DotStakingRequest:
      title: DOT
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/DotStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    DotStakingRequestEntityProperties:
      title: DOT staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            proxyAddress:
              type: string
              description: Proxy address used for staking.
    DotStakingRequestPOSTBody:
      title: DOT stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    DotStakingTransactionProperties:
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            addToStake:
              type: boolean
            addProxy:
              type: boolean
    DotUnStakingRequestPOSTBody:
      title: DOT unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
      properties:
        delegationId:
          description: The delegation ID representing the delegation to unstake.
          type: string
    DotUnstakingIntent:
      title: DOT Unstaking Intent
      allOf:
        - type: object
          properties:
            stakingProxy:
              type: string
            stopStaking:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - stakingProxy
        - $ref: '#/components/schemas/UnstakeIntent'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    DotUnstakingIntent1:
      title: DOT Unstaking Intent
      allOf:
        - type: object
          properties:
            amount:
              $ref: '#/components/schemas/Amount1'
            stakingProxy:
              type: string
            stopStaking:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - amount
            - stakingProxy
        - $ref: '#/components/schemas/UnstakeIntent1'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions1'
    DotUnstakingTransactionProperties:
      title: DOT Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            claimEra:
              $ref: '#/components/schemas/IntegerString'
            stopStaking:
              type: boolean
    DotWallet:
      title: Dot Wallet
      type: object
      properties:
        rootAddress:
          type: string
        pendingChainInitialization:
          type: boolean
        nonceAddress:
          type: string
      required:
        - rootAddress
        - pendingChainInitialization
    DotWalletStakingSpendableAttributes:
      type: object
      properties:
        stakingSpendableAttributes:
          $ref: '#/components/schemas/StakingSpendableAttributes1'
        unstakingSpendableAttributes:
          $ref: '#/components/schemas/UnStakingSpendableAttributes1'
    DotWalletStakingStateAttributes:
      type: object
      properties:
        spendableAttributes:
          $ref: '#/components/schemas/DotWalletStakingSpendableAttributes'
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        disclaimerAttributes:
          $ref: '#/components/schemas/WalletStakingDisclaimerAttributes'
    DotWithdrawStakeIntent:
      title: DOT Withdraw Stake Intent
      allOf:
        - $ref: '#/components/schemas/WithdrawIntent'
        - $ref: '#/components/schemas/DotAccountBaseBuildOptions'
    DuplicateSequenceId:
      title: Duplicate SequenceId
      allOf:
        - $ref: '#/components/schemas/PlatformError3'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - DuplicateSequenceId
          required:
            - name
    DuplicateSequenceId1:
      title: Duplicate SequenceId
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - DuplicateSequenceIdError
              description: Error code
            context:
              type: object
              additionalProperties: {}
              description: Properties that apply to a specific error name
          required:
            - name
        - $ref: '#/components/schemas/PlatformErrorNoName'
    EIP1559FeeOptions:
      title: EIP1559FeeOptions
      type: object
      properties:
        gasLimit:
          $ref: '#/components/schemas/optionalNumber'
        maxFeePerGas:
          $ref: '#/components/schemas/optionalNumber'
        maxPriorityFeePerGas:
          $ref: '#/components/schemas/optionalNumber'
    ESignatures:
      title: ESignatures
      type: array
      items:
        type: object
        properties:
          contractSignerNameFull:
            type: string
            description: The full name of the individual signing the contract
            minLength: 1
          contractSignedDate:
            type: string
            description: The date the contract was signed (YYYY-MM-DD)
            example: '2024-12-20T00:00:00.000Z'
            format: date
            title: ISO Date String
          contractSignedIPAddress:
            type: string
            description: The IP address from which the contract was signed
            minLength: 1
          contractType:
            allOf:
              - $ref: '#/components/schemas/ContractType'
            description: The type of contract being signed
          contractVersion:
            type: string
            description: The version of the contract being signed
            minLength: 1
          userAgreesToTerms:
            type: boolean
            description: Whether the user agrees to the terms and conditions
        required:
          - contractSignerNameFull
          - contractSignedDate
          - contractSignedIPAddress
          - contractType
          - contractVersion
          - userAgreesToTerms
    ETHSignMessageIntent:
      title: Eth sign message
      allOf:
        - $ref: '#/components/schemas/BaseIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - signMessage
          required:
            - intentType
    EcdsaConfig:
      title: EcdsaConfig
      type: object
      properties:
        challenge:
          $ref: '#/components/schemas/ChallengePartyConfig'
      required:
        - challenge
    EigenLikeClaimRewardsRequestEntityProperties:
      title: Eigen-like claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
    EigenLikeClaimRewardsTransactionProperties:
      title: Eigen-like Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            calldata:
              type: string
            to:
              type: string
            unclaimedRewardsPair:
              type: object
              additionalProperties:
                type: string
    EigenLikeDelegationProperties:
      title: Eigen-like Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
    EigenLikeStakingRequestEntityProperties:
      title: Eigen-like staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
      properties:
        validatorAddress:
          type: string
      required:
        - validatorAddress
    EigenLikeStakingTransactionProperties:
      title: Eigen-like Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            validatorAddress:
              type: string
    EigenLikeStakingWalletEntityProperties:
      title: EigenLike Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - EIGEN_LIKE
        rewardPairs:
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
          nullable: true
        walletMultisigType:
          type: string
          enum:
            - ONCHAIN
      required:
        - type
        - walletMultisigType
    EigenLikeUnstakingTransactionProperties:
      title: Eigen-like Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            withdrawalStruct:
              $ref: '#/components/schemas/Withdrawal'
    EigenStakingRequest:
      title: Eigen
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for Eigen)
          type: string
    EigenStakingRequestPOSTBody:
      title: EIGEN stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    EigenUnStakingRequestPOSTBody:
      title: EIGEN unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    Eip1559:
      title: Eip1559
      type: object
      properties:
        maxPriorityFeePerGas:
          allOf:
            - $ref: '#/components/schemas/NumberLike'
          description: >-
            Max priority tip price for EIP1559 transactions. Only for ETH and
            ERC20 tokens.
        maxFeePerGas:
          allOf:
            - $ref: '#/components/schemas/NumberLike'
          description: >-
            Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20
            tokens.
      required:
        - maxPriorityFeePerGas
        - maxFeePerGas
    Eip1559Params:
      type: object
      required:
        - maxPriorityFeePerGas
        - maxFeePerGas
      properties:
        maxPriorityFeePerGas:
          type: string
          description: Maximum priority fee per gas (in wei).
        maxFeePerGas:
          type: string
          description: Maximum fee per gas (in wei).
    Email:
      type: string
      format: email
      example: user@example.com
    Email1:
      title: Email
      type: object
      properties:
        email:
          type: string
          example: user@email.com
          format: email
        verified:
          type: boolean
          example: true
      required:
        - email
        - verified
    EmergencyPhone:
      type: string
      description: Phone number for emergencies
      example: '+11234567890'
    EnableTokenIntent:
      title: EnableTokenIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - enableToken
              description: Must be "enableToken".
            enableTokens:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  address:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - name
                description: One or more token entries specifying which tokens to enable.
          required:
            - intentType
            - enableTokens
        - $ref: '#/components/schemas/BaseIntent'
    EnableTokenIntent1:
      title: EnableTokenIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - enableToken
            enableTokens:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  address:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - name
          required:
            - intentType
            - enableTokens
        - $ref: '#/components/schemas/BaseIntent1'
    EncryptedShare:
      title: EncryptedShare
      allOf:
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/ShareType'
          required:
            - type
        - $ref: '#/components/schemas/BaseShare'
    Enterprise:
      title: Enterprise
      allOf:
        - type: object
          properties:
            organization:
              allOf:
                - $ref: '#/components/schemas/OrganizationIdString'
              description: Organization ID reference
            permissions:
              type: array
              items:
                type: string
                enum:
                  - admin
                  - auditor
                description: Permissions of the User on the Enterprise
            isBeneficialOwner:
              type: boolean
            acceptedInvite:
              type: boolean
        - $ref: '#/components/schemas/BaseEnterprise'
    EnterpriseAccountType:
      type: string
      description: Indicates which type of KYC process the enterprise has to complete
      enum:
        - individual
        - entity
    EnterpriseActiveKits:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/AuditableItem'
          - $ref: '#/components/schemas/EnterpriseKitName'
    EnterpriseActivePricingType:
      allOf:
        - $ref: '#/components/schemas/AuditableItem'
        - $ref: '#/components/schemas/EnterprisePricingType'
    EnterpriseAdminAction:
      title: Require enterprise-admin approval
      type: object
      description: Requires approval from an enterprise admin.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
      properties:
        name:
          type: string
          description: The name of the action.
          enum:
            - approvals.customer.enterpriseAdmin
          example: approvals.customer.enterpriseAdmin
        label:
          type: string
          description: A label for the action which can be shown to an end user.
          example: Enterprise Admin
        description:
          type: string
          description: A description for the action which can be shown to an end user.
          example: Enterprise admin approval
        status:
          type: string
          description: >
            Status of the action. Indicates if the Actions is usable `ACTIVE` or
            not `INACTIVE`.


            * `ACTIVE` - The action is available for use.

            * `INACTIVE` - The action is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal action, false otherwise.
          example: false
    EnterpriseAdminActionRequest:
      title: Require enterprise-admin approval
      type: object
      description: Require enterprise-admin approval.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.enterpriseAdmin
          example: approvals.customer.enterpriseAdmin
        operator:
          $ref: '#/components/schemas/OperatorType'
    EnterpriseAdminsActionRequest:
      title: Enterprise admin approval
      type: object
      description: Require approval from enterprise admins.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.enterpriseAdmin
          example: approvals.customer.enterpriseAdmin
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - minRequired
          properties:
            minRequired:
              type: number
              description: Minimum required number of approvers
              example: 1
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. false
                by default.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    EnterpriseAvailableUI:
      type: string
      enum:
        - bg23
        - bg25-inst
        - bg25-retail
        - kintsugi
    EnterpriseContract:
      title: EnterpriseContract
      type: object
      properties:
        startDate:
          oneOf:
            - type: string
              format: date
              title: Date String
            - type: string
              format: date-time
              title: ISO Date String
        endDate:
          nullable: true
          oneOf:
            - type: string
              format: date
              title: Date String
            - type: string
              format: date-time
              title: ISO Date String
        isExternal:
          type: boolean
    EnterpriseIdNonEmptyString:
      title: EnterpriseIdNonEmptyString
      type: string
      example: 59cd72485007a239fb00282ed480da1f
      minLength: 1
      pattern: ^[0-9a-f]{32}$
    EnterpriseIdString:
      title: EnterpriseIdString
      type: string
      example: 59cd72485007a239fb00282ed480da1f
      pattern: ^[0-9a-f]{32}$
    EnterpriseInternal:
      title: EnterpriseInternal
      type: object
      properties:
        migratedToNewPolicyService:
          nullable: true
          type: boolean
          description: Whether the enterprise has been migrated to the new policy service
        policiesLocked:
          type: boolean
        umsMappingComplete:
          nullable: true
          type: boolean
      required:
        - migratedToNewPolicyService
        - policiesLocked
        - umsMappingComplete
    EnterpriseKitName:
      type: object
      properties:
        name:
          type: string
          enum:
            - default
            - wallet
            - custody
            - liquidity
            - cryptoCompare
    EnterpriseKits:
      type: array
      items:
        type: object
        properties:
          name:
            $ref: '#/components/schemas/EnterpriseKitName'
          datesActive:
            type: array
            items:
              $ref: '#/components/schemas/AuditableItem'
    EnterpriseMember:
      title: EnterpriseMember
      type: string
      enum:
        - member
      description: >-
        This type represents the member permission that can be assigned to a
        user when adding them to an enterprise


        1. 'member': Receive invitations to wallets
    EnterprisePermission:
      type: string
      enum:
        - admin
    EnterprisePricingType:
      type: object
      properties:
        name:
          type: string
          enum:
            - starter
            - growth
    EnterprisePricingTypes:
      type: array
      items:
        type: object
        properties:
          name:
            $ref: '#/components/schemas/EnterprisePricingType'
          datesActive:
            type: array
            items:
              $ref: '#/components/schemas/AuditableItem'
    EnterpriseSnowflakeReportType:
      title: EnterpriseSnowflakeReportType
      type: string
      enum:
        - holdings
        - transactions
        - trades
        - staking
        - holdingsByAddress
        - userAccess
        - policies
        - costBasis
    EnterpriseStakingTotals:
      type: object
      properties:
        enterpriseStakingInfo:
          type: array
          description: >-
            A paginated list of staking information for the enterprise, grouped
            by coin.
          items:
            $ref: '#/components/schemas/StakingEnterprise'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    EnterpriseStub:
      title: Enterprise Stub
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EnterpriseIdString'
        name:
          type: string
          example: Small Company
          minLength: 1
        pricingPlan:
          type: string
        ethFeeAddress:
          type: string
          description: >-
            The eth fee address used to pay for network transaction fees of this
            enterprise
      required:
        - id
        - name
    EnterpriseUser:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        username:
          $ref: '#/components/schemas/Email'
        firstName:
          type: string
          description: User first name
          example: Jane
        lastName:
          type: string
          description: User last name
          example: Doe
        fullName:
          type: string
          description: User full name
          example: Jane Doe
        isActive:
          type: boolean
        email:
          type: object
          properties:
            email:
              $ref: '#/components/schemas/Email'
            verified:
              type: boolean
              description: User has verified their email
        verified:
          type: boolean
          description: User has verified their email
        identity:
          type: object
          properties:
            kyc:
              type: object
              properties:
                hasVideoID:
                  type: boolean
                  example: true
                  description: User has done initial video ID
                overallState:
                  $ref: '#/components/schemas/UserKycState'
                required:
                  type: boolean
                  example: true
                  description: Sanction screening is required for this User
    EnterpriseUserAction:
      title: Require approval from a set of enterprise users
      type: object
      description: Requires approval from a set of enterprise users.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
        - parameters
      properties:
        name:
          type: string
          description: The name of the action.
          enum:
            - approvals.customer.enterpriseUser
          example: approvals.customer.enterpriseUser
        label:
          type: string
          description: A label for the action which can be shown to an end user.
          example: Require approval from a set of users
        description:
          type: string
          description: A description for the action which can be shown to an end user.
          example: Enterprise users approval
        status:
          type: string
          description: >
            Status of the action. Indicates if the Actions is usable `ACTIVE` or
            not `INACTIVE`.


            * `ACTIVE` - The action is available for use.

            * `INACTIVE` - The action is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal action, false otherwise.
          example: false
        parameters:
          type: array
          description: A list of Parameters to control how the action behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/EnterpriseUserIdsActionParameter'
              - $ref: '#/components/schemas/MinRequireActionParameter'
              - $ref: >-
                  #/components/schemas/InitiatorIsAllowedToApproveActionParameter
    EnterpriseUserIdsActionParameter:
      title: Approvers user ids
      type: object
      description: The set of enterprise users approvers.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the action parameter.
          enum:
            - userIds
          example: userIds
        label:
          type: string
          description: A label for the action parameter which can be shown to an end user.
          example: Users
        description:
          type: string
          description: >-
            A description for the action parameter which can be shown to an end
            user.
          example: List of enterprise users for approval
        type:
          type: string
          description: The type of acceptable values for this action parameter.
          enum:
            - BITGO_USER_ID
          example: BITGO_USER_ID
        required:
          type: string
          description: >-
            A value must be always provided for exactly one or more of the
            action Parameters with a 'required' value of `ONE_OR_MORE`. In other
            words, all the action Parameters with a 'required' of `ONE_OR_MORE`
            form a group, and a value must be provided for one or more of the
            action Parameters in the group.
          enum:
            - ONE_OR_MORE
          example: ONE_OR_MORE
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: true
    EnterpriseUserPermission:
      title: EnterpriseUserPermission
      type: string
      enum:
        - admin
        - auditor
      description: >-
        This type represents the permissions that can be assigned to a user when
        adding them to an enterprise


        1. 'admin': Add/remove users, Create wallets, Manage enterprise
        policies, Add Bank Accounts, Receive invitations to wallets

        2. 'auditor': View audit logs across the enterprise, Receive invitations
        to wallets
    EnterpriseUserRole:
      title: EnterpriseUserRole
      oneOf:
        - $ref: '#/components/schemas/EnterpriseUserPermission'
        - $ref: '#/components/schemas/EnterpriseMember'
    EnterpriseUsersActionRequest:
      title: Require approval from a set of enterprise users
      type: object
      description: Require approval from a set of enterprise users.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.enterpriseUser
          example: approvals.customer.enterpriseUser
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - userIds
            - minRequired
          properties:
            userIds:
              type: array
              items:
                type: string
                example: 63cf101298470200073bbae71add80d5
              description: List of enterprise users for approval
              example:
                - 63cf101298470200073bbae71add80d5
            minRequired:
              type: number
              description: Minimum required number of approvers
              example: 1
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. false
                by default.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    EnterpriseUsersResponse:
      type: object
      properties:
        adminUsers:
          type: array
          items:
            $ref: '#/components/schemas/EnterpriseUser'
        nonAdminUsers:
          type: array
          items:
            $ref: '#/components/schemas/EnterpriseUser'
        count:
          type: integer
          description: The total number of Users returned.
        incomplete:
          type: boolean
          description: >-
            Set to true if the Enterprise has at least 500 v1 or v2 wallets. If
            there are more than 500 wallets (either v1 or v2) it could mean that
            some Wallets were not considered for finding all Users.
    EnterpriseValue:
      title: Enterprise
      type: object
      description: Applies to the entire enterprise.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - enterprise
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Enterprise
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: >-
            Spending from the entire transferring wallet's enterprise will be
            included
    EnterpriseWebhookResponse:
      title: EnterpriseWebhookResponse
      type: object
      description: >-
        Webhook response scoped to enterprise webhook types — `coin` is
        optional.
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        created:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        url:
          type: string
          example: https://your.server.com/webhook
          format: uri
        version:
          type: number
          description: 2 for coins running on API v2.
          example: 2
        scope:
          $ref: '#/components/schemas/WebhookScope'
        state:
          $ref: '#/components/schemas/WebhookState'
        successiveFailedAttempts:
          type: number
          example: 0
        listenToFailureStates:
          type: boolean
          description: Whether or not to listen to failed transactions on chain.
        coin:
          type: string
          description: A cryptocurrency or token ticker symbol.
          example: btc
        label:
          type: string
          description: Label of the new webhook.
        walletId:
          type: string
        enterpriseId:
          type: string
        organizationId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        userId:
          type: string
        type:
          allOf:
            - $ref: '#/components/schemas/EnterpriseWebhookType'
          description: Event type to listen to.
        numConfirmations:
          type: number
          example: 6
        lastAttempt:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        failingSince:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        allToken:
          type: boolean
        txRequestStates:
          type: array
          items:
            type: string
            enum:
              - pendingApproval
              - canceled
              - rejected
              - initialized
              - pendingDelivery
              - delivered
              - pendingUserSignature
              - pendingUserCommitment
              - pendingUserRShare
              - pendingUserGShare
              - readyToSend
              - signed
              - failed
            description: >-
              If present, only transaction request state changes from the list
              will trigger notifications.

              If not present, all transaction request state changes will trigger
              notifications.
        txRequestTransactionStates:
          type: array
          items:
            type: string
            enum:
              - initialized
              - pendingSignature
              - eddsaPendingCommitment
              - eddsaPendingRShare
              - eddsaPendingGShare
              - ecdsaMPCv2Round1
              - ecdsaMPCv2Round2
              - ecdsaMPCv2Round3
              - eddsaMPCv2Round1
              - eddsaMPCv2Round2
              - eddsaMPCv2Round3
              - readyToCombineShares
              - signed
              - held
              - delivered
              - invalidSignature
              - rejected
            description: >-
              If present, only transaction request transaction state changes
              from the list will trigger

              notifications. If not present, all transaction request transaction
              state changes will

              trigger notifications.
      required:
        - id
        - created
        - url
        - version
        - scope
        - state
        - successiveFailedAttempts
        - listenToFailureStates
    EnterpriseWebhookType:
      title: EnterpriseWebhookType
      type: string
      enum:
        - bankAccount
        - accessToken
        - policyBalanceChange
        - reversal
    EnterprisesPaginatedResponse:
      title: EnterprisesPaginatedResponse
      type: object
      properties:
        enterprises:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/Enterprise'
              - $ref: '#/components/schemas/EnterpriseStub'
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object

            in the previous batch. To get the next batch of results, pass this
            value

            via the 'prevId' query parameter.
          minLength: 1
      required:
        - enterprises
    EnterprisesResponse1:
      title: EnterprisesResponse
      type: object
      properties:
        enterprises:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/Enterprise'
              - $ref: '#/components/schemas/EnterpriseStub'
      required:
        - enterprises
    EnterprisesSummaryResponse:
      title: EnterprisesSummaryResponse
      type: object
      properties:
        totalCount:
          type: number
          description: Total number of CaaS child enterprises in the organization.
          minimum: 0
        byKycState:
          allOf:
            - $ref: '#/components/schemas/KycStateCounts'
          description: Enterprise counts grouped by KYC state.
        byAccountTypeAndKycState:
          type: object
          description: Enterprise counts grouped by account type and KYC state.
          properties:
            individual:
              $ref: '#/components/schemas/KycStateCounts'
            entity:
              $ref: '#/components/schemas/KycStateCounts'
          required:
            - individual
            - entity
      required:
        - totalCount
        - byKycState
        - byAccountTypeAndKycState
    EntryFunctionABI:
      title: EntryFunctionABI
      type: object
      properties:
        typeParameters:
          type: array
          items: {}
        parameters:
          type: array
          items: {}
      required:
        - typeParameters
        - parameters
    EntryType:
      title: EntryType
      type: string
      enum:
        - GO_ACCOUNT
      description: codec for entry type
    EosAddress:
      title: Eos Address
      type: object
      properties:
        rootAddress:
          type: string
        memoId:
          type: string
      required:
        - rootAddress
        - memoId
    EosSendQueue:
      title: Eos
      type: object
      properties:
        walletInitialzation:
          type: boolean
    EosWallet:
      title: Eos Wallet
      type: object
      properties:
        rootAddress:
          type: string
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        lastMemoId:
          type: string
      required:
        - rootAddress
        - pendingChainInitialization
        - creationFailure
        - lastMemoId
    Error:
      type: object
      description: Error response.
      properties:
        error:
          type: string
          description: Error message.
        name:
          type: string
          description: Error name or code.
      required:
        - error
    Error1:
      required:
        - error
        - errorName
        - reqId
      type: object
      properties:
        error:
          type: string
        errorName:
          type: string
        reqId:
          type: string
        context:
          $ref: '#/components/schemas/ErrorContext'
      example:
        error: invalid permission
        errorName: backend:common:forbidden
        reqId: unk-nqo97l23l2ofpvgkbb8z
    ErrorContext:
      type: object
      description: |
        Optional structured metadata for REST validation failures.
        The schema is fixed for client contract stability.
      required:
        - errorName
      properties:
        errorName:
          type: string
          description: Same value as the top-level errorName.
        field:
          type: string
          description: Request field associated with the validation failure.
        message:
          type: string
          description: Human-readable field-level validation message.
    EstimateTransactionFees:
      title: Bitcoin
      type: object
      properties:
        feePerKb:
          type: integer
          description: >-
            (BTC only) The fee (in base units) per kilobyte (or virtual
            kilobyte) required to confirm a transaction on 2 or more blocks.
          example: 15902
        cpfpFeePerKb:
          type: integer
          description: >
            (BTC only) Child-Pays-For-Parent (CPFP) fee (in base units) per
            kilobyte (or virtual kilobyte). Includes the fees for all
            unconfirmed transactions dependent on the CPFP transaction.
        numBlocks:
          type: integer
          description: >
            (BTC only) The number of blocks required to confirm a transaction.
            You can use `numBlocks` to estimate the fee rate by targeting
            confirmation within a given number of blocks. If both `feeRate` and
            `numBlocks` are absent, the transaction defaults to 2 blocks for
            confirmation.


            Note: The `maxFeeRate` limits the fee rate generated by `numBlocks`.
          example: 2
        confidence:
          type: integer
          minimum: 0
          maximum: 100
          description: >-
            (BTC only) The confidence (as a percentage) in the accuracy of the
            fee estimate.
          example: 80
        feeByBlockTarget:
          type: object
          description: >
            (UTXO only) Custom multiplier to the `feeRate`. The resulting fee
            rate is limited by the `maxFeeRate`. For replace-by-fee (RBF)
            transactions (that include `rbfTxIds`), the `feeMultiplier` must be
            greater than 1, since it's an absolute fee multiplier to the
            transaction being replaced.


            Note: The `maxFeeRate` limits the fee rate generated by
            `feeMultiplier`.
          example:
            '1': 50536
            '2': 15902
            '3': 1579
      required:
        - feePerKb
        - numBlocks
    EstimateTransactionFeesAccountCoin:
      title: Account-based
      type: object
      properties:
        feeEstimate:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            fee estimate for a transaction for the given account-based coin,
            denominated in the base units of that coin (i.e. Drops for XRP,
            Stroops for XLM, etc)
      required:
        - feeEstimate
    EstimateTransactionFeesAlgo:
      title: ALGO
      type: object
      properties:
        feeRate:
          description: >-
            Calculated by transaction size. Fee rate is in microAlgo (base
            unit).
          type: integer
          example: 1
        minimumFee:
          description: Always 1000.
          type: integer
          default: 1000
          example: 1000
      required:
        - feeRate
        - minimumFee
    EstimateTransactionFeesEth:
      title: ETH
      type: object
      properties:
        feeEstimate:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            fee estimate for a transaction for the given account-based coin,
            denominated in base units (i.e. Wei)
        gasLimitEstimate:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            The amount of gas that the transaction will use, if recipient is
            provided in the request
        minGasPrice:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: minimum gas price that can be provided in base units
        minGasLimit:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: minimum gas limit that can be provided in base units
        maxGasLimit:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: maximum gas limit that can be provided in base units
        minGasIncreaseBy:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            gas price must not be increased by less than this after being
            introduced to the network
        eip1559:
          allOf:
            - $ref: '#/components/schemas/EstimateTransactionFeesEthEip1559'
          description: EIP 1559 fee estimates
      required:
        - feeEstimate
        - minGasPrice
        - minGasLimit
        - maxGasLimit
        - minGasIncreaseBy
    EstimateTransactionFeesEthEip1559:
      type: object
      properties:
        baseFee:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            Block base fees, in base units (i.e. Wei), per gas. Zeroes are
            returned for pre-EIP-1559 blocks
        gasUsedRatio:
          description: >-
            Block gas used ratio. Calculated as the ratio of gasUsed and
            gasLimit
          type: string
        safeLowMinerTip:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: 25th percentile of the tips spent in the last block
        normalMinerTip:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: 35th percentile of the tips spent in the last block
        standardMinerTip:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: 50th percentile of the tips spent in the last block
        fastestMinerTip:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: 75th percentile of the tips spent in the last block
        ludicrousMinerTip:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: 97th percentile of the tips spent in the last block
      required:
        - baseFee
        - gasUsedRatio
    EstimateTransactionFeesTrx:
      title: TRX
      type: object
      properties:
        fee:
          description: >-
            Maximum fee for a payment transaction, denominated in base units
            (i.e. sun). It varies for TRX and TRC20 Token based on the coin
            parameter
          type: integer
          example: 100000000
        newAccountFee:
          description: Fee for wallet initialization
          type: integer
          example: 100000000
        netFee:
          description: >-
            Fee rate per unit of tx size. Not used currently (`fee` is a maximum
            limit, the network charges the cost of the transaction)
          type: integer
          example: 1000
      required:
        - fee
        - newAccountFee
        - netFee
    EstimationPeriodAttributes:
      type: object
      description: Estimation period details for staking.
      properties:
        periodLow:
          description: Lower bound of the period in seconds or blocks.
          type: string
        periodHigh:
          description: Upper bound of the period in seconds or blocks.
          type: string
        coin:
          description: Coin associated with the period.
          type: string
        type:
          description: Type of period (WARMUP, EXIT, COOLDOWN).
          type: string
          enum:
            - WARMUP
            - EXIT
            - COOLDOWN
    EthAccelerationIntent:
      title: ETH Acceleration Intent
      allOf:
        - type: object
          properties:
            feeOptions:
              oneOf:
                - $ref: '#/components/schemas/FeeOption'
                - $ref: '#/components/schemas/EIP1559FeeOptions'
              description: >-
                New fee settings (must be higher than the original transaction).
                Use EIP1559FeeOptions for London-compatible chains.
          required:
            - feeOptions
        - $ref: '#/components/schemas/AccelerationIntent'
        - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions'
      description: |-
        Replace a stuck pending EVM transaction with a higher-fee version to
        accelerate confirmation. Supply the original transaction's txid and new
        feeOptions that exceed the original.
    EthAccelerationIntent1:
      title: ETH Acceleration Intent
      allOf:
        - type: object
          properties:
            feeOptions:
              oneOf:
                - $ref: '#/components/schemas/FeeOption'
                - $ref: '#/components/schemas/EIP1559FeeOptions'
          required:
            - feeOptions
        - $ref: '#/components/schemas/AccelerationIntent1'
        - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions1'
    EthBuildOptions:
      title: EthBuildOptions
      allOf:
        - type: object
          properties:
            feeOptions:
              oneOf:
                - $ref: '#/components/schemas/FeeOption'
                - $ref: '#/components/schemas/EIP1559FeeOptions'
              description: >-
                Override gas estimation. Provide EIP1559FeeOptions for EIP-1559
                chains or FeeOption for legacy.
            hopParams:
              type: object
              description: >-
                Parameters for BitGo Hop transactions (cross-chain bridging via
                the Hop protocol).
              properties:
                gasPriceMax:
                  $ref: '#/components/schemas/optionalNumber'
                paymentId:
                  $ref: '#/components/schemas/optionalString'
                userReqSig:
                  $ref: '#/components/schemas/optionalString'
              required:
                - gasPriceMax
                - paymentId
                - userReqSig
            receiveAddress:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Target receive address override. Defaults to wallet's primary
                receive address.
            senderAddressIndex:
              allOf:
                - $ref: '#/components/schemas/optionalNumber'
              description: Index of the wallet address to use as the sender.
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    EthBuildOptions1:
      title: EthBuildOptions
      allOf:
        - type: object
          properties:
            feeOptions:
              oneOf:
                - $ref: '#/components/schemas/FeeOption'
                - $ref: '#/components/schemas/EIP1559FeeOptions'
            hopParams:
              type: object
              properties:
                gasPriceMax:
                  $ref: '#/components/schemas/optionalNumber'
                paymentId:
                  $ref: '#/components/schemas/optionalString'
                userReqSig:
                  $ref: '#/components/schemas/optionalString'
              required:
                - gasPriceMax
                - paymentId
                - userReqSig
            receiveAddress:
              $ref: '#/components/schemas/optionalString'
            senderAddressIndex:
              $ref: '#/components/schemas/optionalNumber'
        - $ref: '#/components/schemas/AccountBaseBuildOptions1'
    EthBuildOptionsWithoutFeeOptions:
      title: EthBuildOptionsWithoutFeeOptions
      allOf:
        - type: object
          properties:
            hopParams:
              type: object
              description: >-
                Parameters for BitGo Hop transactions (cross-chain bridging via
                the Hop protocol).
              properties:
                gasPriceMax:
                  $ref: '#/components/schemas/optionalNumber'
                paymentId:
                  $ref: '#/components/schemas/optionalString'
                userReqSig:
                  $ref: '#/components/schemas/optionalString'
              required:
                - gasPriceMax
                - paymentId
                - userReqSig
            receiveAddress:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Target receive address override. Defaults to wallet's primary
                receive address.
            senderAddressIndex:
              allOf:
                - $ref: '#/components/schemas/optionalNumber'
              description: Index of the wallet address to use as the sender.
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    EthBuildOptionsWithoutFeeOptions1:
      title: EthBuildOptionsWithoutFeeOptions
      allOf:
        - type: object
          properties:
            hopParams:
              type: object
              properties:
                gasPriceMax:
                  $ref: '#/components/schemas/optionalNumber'
                paymentId:
                  $ref: '#/components/schemas/optionalString'
                userReqSig:
                  $ref: '#/components/schemas/optionalString'
              required:
                - gasPriceMax
                - paymentId
                - userReqSig
            receiveAddress:
              $ref: '#/components/schemas/optionalString'
            senderAddressIndex:
              $ref: '#/components/schemas/optionalNumber'
        - $ref: '#/components/schemas/AccountBaseBuildOptions1'
    EthCommonStakingRequestEntityProperties:
      title: Common Ethereum staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            gasPrice:
              allOf:
                - $ref: '#/components/schemas/IntegerString'
              description: Optional gas price override for Ethereum staking requests.
              nullable: true
    EthConsolidateIntent:
      title: ETH Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
        - $ref: '#/components/schemas/EthBuildOptions'
      description: |-
        Consolidate ETH from multiple receive addresses into the wallet's main
        address on EVM-compatible chains. Used for wallet housekeeping. Provide
        receiveAddress as the sweep destination.
    EthConsolidateTokenIntent:
      title: ETH Consolidate Token Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - consolidateToken
              description: Must be "consolidateToken".
            recipients:
              type: array
              items:
                allOf:
                  - type: object
                    properties:
                      tokenData:
                        $ref: '#/components/schemas/TokenData'
                  - $ref: '#/components/schemas/RecipientEntry'
                description: >-
                  Array of token recipients. Each entry specifies the token
                  contract and amount via tokenData.
            consolidateId:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: Opaque identifier to correlate consolidation requests.
            keepAlive:
              allOf:
                - $ref: '#/components/schemas/optionalBoolean'
              description: When true, leaves a minimal token balance in the source address.
          required:
            - intentType
            - recipients
            - consolidateId
            - keepAlive
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/EthBuildOptions'
      description: |-
        Consolidate ERC-20 tokens from receive addresses into the wallet's main
        address on EVM-compatible chains. Supply token details in the
        recipients[].tokenData field.
    EthFillNonceBuildOptions:
      title: EthFillNonceBuildOptions
      type: object
      properties:
        feeOptions:
          oneOf:
            - $ref: '#/components/schemas/FeeOption'
            - $ref: '#/components/schemas/EIP1559FeeOptions'
          description: Override gas estimation for the fill-nonce transaction.
        receiveAddress:
          allOf:
            - $ref: '#/components/schemas/optionalString'
          description: >-
            Target receive address override. Defaults to wallet's primary
            receive address.
        senderAddressIndex:
          allOf:
            - $ref: '#/components/schemas/optionalNumber'
          description: Index of the wallet address to use as the sender.
    EthFillNonceBuildOptions1:
      title: EthFillNonceBuildOptions
      type: object
      properties:
        feeOptions:
          oneOf:
            - $ref: '#/components/schemas/FeeOption'
            - $ref: '#/components/schemas/EIP1559FeeOptions'
        receiveAddress:
          $ref: '#/components/schemas/optionalString'
        senderAddressIndex:
          $ref: '#/components/schemas/optionalNumber'
    EthFillNonceIntent:
      title: ETH Fill Nonce Intent
      allOf:
        - $ref: '#/components/schemas/FillNonceIntent'
        - $ref: '#/components/schemas/EthFillNonceBuildOptions'
      description: >-
        Submit a zero-value self-send to consume a specific nonce on

        EVM-compatible chains. Used to unblock transaction queues when a nonce
        gap

        has formed.
    EthFillNonceIntent1:
      title: ETH Fill Nonce Intent
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/FillNonceIntent1'
        - $ref: '#/components/schemas/EthFillNonceBuildOptions1'
    EthLikeStakeIntent:
      title: EthLike Stake Intent
      allOf:
        - type: object
          properties:
            intentType:
              $ref: '#/components/schemas/IntentType'
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    EthP2POrgStakingRequestEntityProperties:
      title: Ethereum P2P staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthStakingRequestEntityProperties'
        - type: object
          properties:
            feeRecipientAddress:
              type: string
              description: Fee recipient address for rewards.
              nullable: true
            depositId:
              type: string
              description: Unique ID for the deposit transaction.
              nullable: true
    EthPaymentIntent:
      title: ETH Payment Intent
      allOf:
        - type: object
          properties:
            selfSend:
              allOf:
                - $ref: '#/components/schemas/optionalBoolean'
              description: When true, sends to the wallet's own receive address.
          required:
            - selfSend
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/EthBuildOptions'
      description: >-
        Transfer ETH or ERC-20 tokens to one or more recipients on
        EVM-compatible

        chains. Specify recipients with their address and amount. Optionally

        override fee settings via feeOptions.
    EthPaymentIntent1:
      title: ETH Payment Intent
      allOf:
        - type: object
          properties:
            selfSend:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - selfSend
        - $ref: '#/components/schemas/PaymentIntent1'
        - $ref: '#/components/schemas/EthBuildOptions1'
    EthStakingDelegation:
      title: ETH Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
      properties:
        properties:
          allOf:
            - $ref: '#/components/schemas/EthStakingDelegationProperties'
          type: object
    EthStakingDelegationProperties:
      type: object
      properties:
        bondingTimestamp:
          description: An estimated timestamp of when the stake will be bonded.
          type: string
        unbondingTimestamp:
          description: An estimated timestamp of when the stake will be unbonded.
          type: string
    EthStakingIntent:
      title: ETH Staking Intent
      allOf:
        - type: object
          properties:
            pubkey:
              type: string
              description: >-
                BLS public key of the validator (hex-encoded, provided by the
                staking service).
            withdrawalCredentials:
              type: string
              description: >-
                Withdrawal credentials for the validator (provided by the
                staking service).
            signature:
              type: string
              description: >-
                BLS signature over the deposit data (provided by the staking
                service).
            depositDataRoot:
              type: string
              description: >-
                SHA-256 hash of the deposit data (provided by the staking
                service).
          required:
            - pubkey
            - withdrawalCredentials
            - signature
            - depositDataRoot
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/EthBuildOptions'
      description: >-
        Submit an ETH 2.0 validator staking deposit on Ethereum. Requires a

        pre-created staking request from the BitGo staking service. All
        validator

        fields (pubkey, withdrawalCredentials, signature, depositDataRoot) are

        provided by the staking service.
    EthStakingIntent1:
      title: ETH Staking Intent
      allOf:
        - type: object
          properties:
            pubkey:
              type: string
            withdrawalCredentials:
              type: string
            signature:
              type: string
            depositDataRoot:
              type: string
          required:
            - pubkey
            - withdrawalCredentials
            - signature
            - depositDataRoot
        - $ref: '#/components/schemas/StakeIntent1'
        - $ref: '#/components/schemas/EthBuildOptions1'
    EthStakingRequest:
      title: ETH
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/EthStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/EthStakingTransaction'
        amount:
          description: >-
            Amount to stake in base units (i.e. Wei for ETH). For Ethereum the
            amount needs to be a multiple of 32 ETH (32000000000000000000 Wei).
            For Testnet the 32 ETH multiple restriction does not apply.
          type: string
    EthStakingRequestEntityProperties:
      title: Ethereum staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            provider:
              type: string
            provisionType:
              type: string
              enum:
                - ORIGINAL
                - PECTRA
            providerRequestIds:
              type: array
              items:
                type: string
            precomputedBatch:
              type: object
              properties:
                newValidators:
                  type: array
                  items:
                    type: string
                    description: BigInteger encoded as string
                existingValidators:
                  type: array
                  items:
                    type: object
                    properties:
                      delegationId:
                        type: string
                        format: uuid
                      amount:
                        type: string
                        description: BigInteger encoded as string
            delegationId:
              type: string
              description: Delegation ID associated with the staking request.
              nullable: true
            stakingType:
              type: string
              enum:
                - ETH_STAKE
                - ETH_STAKE_PECTRA
                - ETH_STAKE_SSV
                - LIDO
    EthStakingRequestPOSTBody:
      title: ETH stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
      properties:
        validator:
          description: The provider to use to provision ETH validators.
          type: string
          example: FIGMENT
          nullable: true
        subType:
          description: The ETH staking type. Defaults to `STAKE` if not provided.
          type: string
          enum:
            - STAKE
            - ETH_STAKE_PECTRA
            - LIDO
          example: STAKE
          nullable: true
        delegationId:
          description: >-
            Optional delegation id to be used for topup, only active delegations
            are allowed, that do not have a pending stake or pending unstake.
          type: string
          nullable: true
        region:
          description: >-
            The region to use for validator provisioning. If not provided, the
            provider's default provisioning behaviour will be used.
          type: string
          enum:
            - CA
            - US
            - EU
            - SG
            - DEFAULT
          example: CA
          nullable: true
    EthStakingTransaction:
      title: ETH Staking Transaction
      allOf:
        - $ref: '#/components/schemas/StakingTransaction'
        - type: object
          properties:
            gasPrice:
              type: string
              description: The gas price in base units for the transaction.
            properties:
              $ref: '#/components/schemas/StakingTransactionPropertiesOneOf'
    EthStakingTransactionProperties:
      title: ETH Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            delegationRequest:
              type: array
              items:
                $ref: '#/components/schemas/DelegationRequest'
    EthStakingTransactionSendRequest:
      type: object
      properties:
        halfSigned:
          description: A half-signed transaction object.
          type: object
          properties:
            contractSequenceId:
              description: The contract sequence ID of the transaction.
              type: string
            eip1559:
              $ref: '#/components/schemas/Eip1559Params'
            operationHash:
              type: string
            expireTime:
              type: string
            signature:
              type: string
        comment:
          type: string
        txHex:
          type: string
          description: Raw transaction hex.
    EthStakingWalletEntityProperties:
      title: ETH Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - ETH
        rewardPairs:
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
          nullable: true
        walletMultisigType:
          type: string
          enum:
            - ONCHAIN
      required:
        - type
        - walletMultisigType
    EthTransferTokenIntent:
      title: ETH Transfer Token Intent
      allOf:
        - $ref: '#/components/schemas/TransferTokenIntent'
        - $ref: '#/components/schemas/EthBuildOptions'
      description: >-
        Transfer ERC-20 tokens to one or more recipients on EVM-compatible
        chains.

        Each recipient entry must include tokenData specifying the token
        contract

        and amount.
    EthUnStakingRequestPOSTBody:
      title: ETH unstake (default)
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    EthUnStakingRequestPOSTBodyPrePectra:
      title: ETH unstake (pre-Pectra)
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
      properties:
        delegationIds:
          description: One or more delegation IDs for unstake.
          type: array
          items:
            type: string
            format: uuid
          example:
            - uuid-1
            - uuid-2
      required:
        - delegationIds
    EthUnstakingTransactionProperties:
      title: ETH Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorId:
              type: string
            lidoRequestId:
              $ref: '#/components/schemas/IntegerString'
            isFullUnstake:
              type: boolean
    Ethereum2Address:
      title: Ethereum2 Address
      type: object
      properties:
        feeAddress:
          type: string
    Ethereum2SendQueue:
      title: Ethereum2
      type: object
      additionalProperties: {}
    Ethereum2Wallet:
      title: Ethereum2 Wallet
      type: object
      properties:
        pendingChainInitialization:
          type: boolean
        baseAddress:
          type: string
        feeAddress:
          type: string
      required:
        - pendingChainInitialization
    EthereumAddress:
      title: Ethereum Address
      type: object
      properties:
        creationFailure:
          type: array
          items:
            type: string
        forwarderVersion:
          type: number
        nonce:
          type: number
        feeAddress:
          type: string
        pendingChainInitialization:
          type: boolean
        pendingDeployment:
          type: boolean
        txCount:
          type: number
        updateTime:
          type: string
          format: date
          title: Date String
        hopTxid:
          type: string
        salt:
          type: string
        usdtBug:
          type: boolean
        isTss:
          type: boolean
        isNonceLocked:
          type: boolean
        nonceLockExpireTime:
          type: string
          format: date
          title: Date String
        previousLowBalanceEmailSentAt:
          type: string
          format: date
          title: Date String
      required:
        - creationFailure
        - forwarderVersion
        - nonce
        - feeAddress
        - pendingChainInitialization
        - pendingDeployment
        - txCount
        - updateTime
    EthereumTx:
      title: Ethereum
      type: object
      properties:
        addressInitialization:
          type: boolean
        nonce:
          type: number
        feeAddress:
          type: string
        token:
          type: string
        eth2ValidatorKey:
          type: string
        isMev:
          type: boolean
        eth2WithdrawalCommitment:
          type: string
        flushForwarderTokens:
          type: boolean
        gas:
          type: number
        gasPrice:
          type: number
        eip1559:
          $ref: '#/components/schemas/Eip1559'
        hopTxid:
          type: string
        walletInitialization:
          type: boolean
        custodianTransactionId:
          type: string
        contractSequenceId:
          type: number
    EthereumWallet:
      title: Ethereum Wallet
      type: object
      properties:
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        gasPriceTier:
          type: string
        tokenFlushThresholds:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
        walletVersion:
          type: number
        pendingDeployment:
          type: boolean
        deployForwardersManually:
          type: boolean
        flushForwardersManually:
          type: boolean
        enableMMI:
          type: boolean
        enableNFT:
          type: boolean
        deployedInBlock:
          oneOf:
            - type: number
            - type: boolean
        deployTxHash:
          type: string
        lastChainIndex: {}
        baseAddress:
          type: string
        feeAddress:
          type: string
        nonce:
          type: string
        token:
          type: string
        pendingEcdsaTssInitialization:
          type: boolean
        safeModeActivated:
          type: string
        lowPriorityFeeAddress:
          type: string
        salt:
          type: string
        evmKeyRingReferenceWalletId:
          type: string
      required:
        - pendingChainInitialization
        - creationFailure
        - gasPriceTier
        - tokenFlushThresholds
        - walletVersion
        - pendingDeployment
        - deployForwardersManually
        - flushForwardersManually
        - enableMMI
        - enableNFT
    EuEmploymentStatus:
      title: EuEmploymentStatus
      type: string
      enum:
        - Civil servant
        - Employee
        - Student
        - Retiree / Pensioner
        - Public service
        - Self-employed
        - Unemployed
    EuIndustry:
      title: EuIndustry
      type: string
      enum:
        - MiCAR/EEA Regulated CASP
        - Banking & Credit Institutions
        - Insurance & Pension
        - Legal, Notary, and Fiduciary Services
        - Accounting & Audit
        - Business Consulting & Agency
        - Software & IT Services
        - Hardware & Electronics
        - Telecommunications
        - Media & Entertainment
        - Retail & Wholesale Trade
        - Manufacturing & Industrial
        - Construction & Infrastructure
        - Agriculture & Food
        - Hospitality & Travel
        - Education & Research
        - Healthcare & Life Sciences
        - Employed / Self-Employed
        - Retired
        - Non-EEA Regulated VASP
        - Token Issuers & Web3 Projects
        - Investment & Asset Mgmt
        - Brokerage & Trading (Fiat)
        - Precious Goods Dealers
        - Energy & Extractives
        - Real Estate Development & Broking
        - Trust & Company Service Providers
        - Transportation & Logistics
        - Government & Public Admin
        - Non-Profit / NGO / Charity
        - Student
        - Unemployed
        - Unregulated / Offshore VASP
        - DeFi / DAO / Unhosted
        - Mining & Staking Providers
        - Proprietary Trading / Market Maker
        - Payment Services & MSBs
        - Gambling & Gaming
        - Arms & Defense
        - Adult & Restricted Entertainment
        - High-profile Government
        - High Net Worth (HNWI)
    EuSourceOfFunds:
      title: EuSourceOfFunds
      type: string
      enum:
        - Income from Employment
        - Pension
        - Income from Renting and Leasing
        - Income from Self-Employment
        - Inheritance / Gift
        - Crypto
        - Other Financial Support
    EvaluatedPolicyActionStatus:
      title: EvaluatedPolicyActionStatus
      type: string
      enum:
        - SKIPPED
        - PENDING
        - NOT_NEEDED
        - COMPLETE
        - CANCELLED
        - FAILED
        - AUTO_CANCELLED
    ExchangeEddsaCommitmentsResponse:
      title: ExchangeEddsaCommitmentsResponse
      type: object
      properties:
        commitmentShare:
          allOf:
            - $ref: '#/components/schemas/CommitmentShare1'
          description: The commitment share.
      required:
        - commitmentShare
    ExerciseCommand:
      title: ExerciseCommand
      type: object
      properties:
        ExerciseCommand:
          type: object
          properties:
            templateId:
              type: string
            choice:
              type: string
            choiceArgument:
              type: object
              additionalProperties: {}
            contractId:
              type: string
          required:
            - templateId
            - choice
      required:
        - ExerciseCommand
    ExpectedTransfers:
      title: ExpectedTransfers
      type: object
      additionalProperties:
        type: string
    ExpectedTransfersOutput:
      title: ExpectedTransfersOutput
      type: object
      additionalProperties:
        type: string
    ExpectedTransfersRequest:
      title: ExpectedTransfersRequest
      type: object
      additionalProperties:
        type: string
    ExpressCreateInvoiceRequest:
      description: Create invoice request. Provide exactly one of `valueMsat` or `valueSat`
      type: object
      properties:
        valueSat:
          type: number
          description: The invoice amount in satoshis
        valueMsat:
          type: string
          description: The invoice amount in millisatoshis
        memo:
          type: string
          description: Optional description for the invoice
        expiry:
          type: number
          description: Optional expiration time in seconds
    ExpressListInvoicesResponse:
      type: object
      properties:
        valueMsat:
          type: string
          description: Amount in millisatoshis
        valueSat:
          type: number
          description: Amount in satoshis
        paymentHash:
          type: string
          description: Payment hash of the invoice
        invoice:
          type: string
          description: The BOLT 11 encoded invoice string
        walletId:
          type: string
          description: The public BitGo walletId to which this invoice belongs to
        status:
          type: string
          enum:
            - open
            - settled
            - canceled
          description: Current status of the invoice
        expiresAt:
          type: string
          format: date-time
          description: Expiration date in ISO format
        createdAt:
          type: string
          format: date-time
          description: Creation date in ISO format
        updatedAt:
          type: string
          format: date-time
          description: Last update date in ISO format
        amtPaidMsat:
          type: string
          description: >-
            Amount actually paid in millisatoshis (may be greater than
            valueMsat)
    ExtDepositsResp:
      title: ExtDepositsResp
      type: array
      items:
        type: object
        properties:
          onChainTxId:
            type: string
            minLength: 1
          transferId:
            type: string
          currency:
            type: string
            description: The currency code of the deposited asset.
            minLength: 1
          quantity:
            type: number
          id:
            type: string
            title: uuid
          settlementId:
            type: string
            title: uuid
          createdAt:
            type: string
            description: ISO-formatted creation timestamp of the deposit record.
            format: date-time
            title: ISO Date String
          updatedAt:
            type: string
            description: ISO-formatted timestamp of the last update to the deposit record.
            format: date-time
            title: ISO Date String
          externalSettlementId:
            type: string
            description: >-
              Partner's unique identifier for the settlement associated with
              this deposit.
            minLength: 1
        required:
          - onChainTxId
          - currency
          - id
          - settlementId
          - createdAt
          - updatedAt
          - externalSettlementId
    FastAccountResponseProps:
      title: FastAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - fast
        swiftCode:
          $ref: '#/components/schemas/SwiftCodeType'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - swiftCode
        - accountType
    FastBankAccountRequest:
      title: FastBankAccountRequest
      description: Request schema for creating a FAST bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - fast
              description: Must be 'fast' for FAST accounts
            swiftCode:
              type: string
              description: SWIFT/BIC code for the FAST account
          required:
            - type
            - swiftCode
        - $ref: '#/components/schemas/BankAccountRequest1'
    FastBankAccountResponse:
      title: FastBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/FastAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    FederationError:
      type: object
      properties:
        status:
          type: number
          description: HTTP status code
        detail:
          type: string
          description: Human-readable error message
        error:
          type: string
          description: Human-readable error message
        name:
          type: string
          description: Error code
        requestId:
          type: string
          description: Client request id
      required:
        - status
        - detail
        - error
        - name
        - requestId
    Fee:
      title: Fee
      allOf:
        - $ref: '#/components/schemas/FeeObject'
    FeeAddressBalanceResponse:
      type: object
      properties:
        balance:
          type: string
          description: |
            Total balance in enterprise gas tank.
        address:
          type: string
          description: |
            The gas tank (fee) address associated with the enterprise.
    FeeAddressTransferIntent:
      title: Fee Address Transfer Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - feeAddressTransfer
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - intentType
            - recipients
        - $ref: '#/components/schemas/BaseIntent'
    FeeInfo:
      type: object
      description: Describes the transaction fee details.
      properties:
        feeString:
          type: string
          description: Fee value as a string (to preserve precision).
      required:
        - feeString
    FeeObject:
      allOf:
        - type: object
          properties:
            coin:
              $ref: '#/components/schemas/BackingFiatCoin'
          required:
            - coin
        - $ref: '#/components/schemas/ConfigFeeInformation'
    FeeOption:
      title: FeeOption
      type: object
      properties:
        unit:
          type: string
          enum:
            - baseUnit
            - cpu
            - ram
        formula:
          type: string
          enum:
            - fixed
            - feeRate
            - perKB
            - custom
            - perVKB
        feeType:
          type: string
          enum:
            - base
            - max
            - tip
        gasLimit:
          $ref: '#/components/schemas/optionalNumber'
        gasPrice:
          $ref: '#/components/schemas/optionalNumber'
    FiatAddress:
      title: Fiat Address
      type: object
      properties:
        bankAccountId:
          type: string
        faBankAccountId:
          type: string
        bankAccount:
          $ref: '#/components/schemas/BankAccountJson'
    FiatTransferCoinSpecific:
      title: Fiat
      type: object
      properties:
        IMAD:
          type: string
        OMAD:
          type: string
        cubixTransactionId:
          type: string
        traceNumber:
          type: string
        transactionType:
          type: string
        bankAccountId:
          type: string
        counterParty:
          type: string
        bankName:
          type: string
        rejectionReason:
          type: string
        returnReason:
          type: string
        reversesTxId:
          type: string
        reversalReason:
          type: string
        rejectedReason:
          type: string
        enterpriseName:
          type: string
        enterpriseId:
          type: string
        type:
          type: string
        instantCreditEligible:
          type: boolean
    FiatTx:
      title: Fiat
      type: object
      properties:
        description:
          type: string
        fiatInfo:
          $ref: '#/components/schemas/FiatTransferCoinSpecific'
    FiatWallet:
      title: Fiat Wallet
      type: object
      properties:
        backingBankAccountId: {}
        backingSENBankAccountId: {}
        lastUsedNonce:
          type: number
      required:
        - backingBankAccountId
        - backingSENBankAccountId
        - lastUsedNonce
    FileStatus:
      type: string
      enum:
        - awaitingUpload
        - uploaded
        - accepted
        - rejected
        - requiresManualReview
      title: FileStatus
      description: >-
        Current status of the file upload. `requiresManualReview` is a terminal
        state set after 2 failed AI screening attempts; the file is locked and
        Trust ops resolves it manually.
    FileView:
      type: string
      enum:
        - front
        - back
        - full
      title: FileView
      description: View or side of the document file
    FillNonceIntent:
      title: FillNonceIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - fillNonce
              description: Must be "fillNonce".
            nonce:
              oneOf:
                - type: string
                - type: number
              description: >-
                The nonce value to fill. The transaction will be a self-send
                that consumes this nonce.
            senderAddress:
              type: string
              description: >-
                Sender address with the stuck nonce. Defaults to the wallet's
                base address.
          required:
            - intentType
            - nonce
        - $ref: '#/components/schemas/BaseIntentWithoutNonce'
      description: >-
        Base codec for fill-nonce intents. Submits a zero-value self-send to
        consume

        a specific nonce on EVM-compatible chains. Used to unblock transaction
        queues

        when a nonce gap has formed.
    FillNonceIntent1:
      title: FillNonceIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - fillNonce
            nonce:
              oneOf:
                - type: string
                - type: number
          required:
            - intentType
            - nonce
        - $ref: '#/components/schemas/BaseIntentWithoutNonce1'
    FilteringConditions:
      type: object
      description: |
        Wrapper object for a list of Filtering Conditions. Not paginated.
      required:
        - conditions
      properties:
        conditions:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/WalletTypeCondition'
              - $ref: '#/components/schemas/WalletIdsCondition'
              - $ref: '#/components/schemas/WalletAllCondition'
    FinalApprovalAction:
      title: Require final approval from wallet users
      type: object
      description: >-
        Requires final approval from wallet users after wallet-admin approval.
        Final approvers don't have to be wallet admins.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
        - parameters
      properties:
        name:
          type: string
          description: The name of the action.
          enum:
            - approvals.customer.finalApproval
          example: approvals.customer.finalApproval
        label:
          type: string
          description: A label for the action which can be shown to an end user.
          example: Require final approval from wallet users
        description:
          type: string
          description: A description for the action which can be shown to an end user.
          example: Require final approval from wallet users
        status:
          type: string
          description: >
            Status of the action. Indicates if the Actions is usable `ACTIVE` or
            not `INACTIVE`.


            * `ACTIVE` - The action is available for use.

            * `INACTIVE` - The action is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal action, false otherwise.
          example: false
        parameters:
          type: array
          description: A list of Parameters to control how the action behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/FinalApproversUserIdsActionParameter'
              - $ref: >-
                  #/components/schemas/InitiatorIsAllowedToApproveActionParameter
    FinalApprovalActionRequest:
      title: Require final approval from wallet users
      type: object
      description: Require final approval from wallet users.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.finalApproval
          example: approvals.customer.finalApproval
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - userIds
          properties:
            userIds:
              type: array
              items:
                type: string
                example: 63cf101298470200073bbae71add80d5
              description: The final approvers
              example:
                - 63cf101298470200073bbae71add80d5
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. true by
                default.
              example: true
              default: true
        operator:
          $ref: '#/components/schemas/OperatorType'
    FinalApproversUserIdsActionParameter:
      title: Final approvers user ids
      type: object
      description: The final approvers.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the action parameter.
          enum:
            - userIds
          example: userIds
        label:
          type: string
          description: A label for the action parameter which can be shown to an end user.
          example: Users
        description:
          type: string
          description: >-
            A description for the action parameter which can be shown to an end
            user.
          example: List of users for final approval
        type:
          type: string
          description: The type of acceptable values for this action parameter.
          enum:
            - BITGO_USER_ID
          example: BITGO_USER_ID
        required:
          type: string
          description: >-
            A value must be always provided for exactly one or more of the
            action Parameters with a 'required' value of `ONE_OR_MORE`. In other
            words, all the action Parameters with a 'required' of `ONE_OR_MORE`
            form a group, and a value must be provided for one or more of the
            action Parameters in the group.
          enum:
            - ONE_OR_MORE
          example: ONE_OR_MORE
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: true
    FlattenedPricingType:
      title: FlattenedPricingType
      allOf:
        - type: object
          properties:
            name:
              $ref: '#/components/schemas/PricingTypeName'
          required:
            - name
        - $ref: '#/components/schemas/ActiveDateRange'
    FlrPDelegationProperties:
      title: FLRP Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          required:
            - validator
            - durationSeconds
          properties:
            validator:
              type: string
              description: P-Chain validator NodeID.
            durationSeconds:
              type: string
              format: bigInteger
              description: Duration of the delegation in seconds.
            startTime:
              type: string
              format: bigInteger
              description: Start time of the delegation in epoch seconds.
            endTime:
              type: string
              format: bigInteger
              description: End time of the delegation in epoch seconds.
            rewardAddress:
              type: string
              description: C-Chain address where rewards are sent.
    FlrPStakingDelegation:
      title: FLRP Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
        - type: object
          description: Flare P-Chain staking delegation.
          properties:
            durationSeconds:
              type: string
              description: Duration of the delegation in seconds (stringified bigint).
            startTime:
              type: string
              description: >-
                Start time of the delegation in epoch seconds (stringified
                bigint).
            endTime:
              type: string
              description: >-
                End time of the delegation in epoch seconds (stringified
                bigint).
            unstakeable:
              type: boolean
              description: >-
                Indicates whether the delegation can currently be unstaked
                (always false for FlrP auto-unstaking).
            permissionAttributes:
              $ref: '#/components/schemas/WalletStakingPermissionAttributes'
    FlrPStakingRequest:
      title: FLRP
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
        - type: object
          properties:
            delegations:
              type: array
              minItems: 1
              maxItems: 1
              items:
                $ref: '#/components/schemas/FlrPStakingDelegation'
            transactions:
              type: array
              minItems: 1
              maxItems: 500
              items:
                $ref: '#/components/schemas/BaseStakingTransaction'
            amount:
              description: >-
                Amount to stake in base units (nanoFLR). 1 FLR = 1,000,000,000
                nanoFLR. Minimum 50,000 FLR.
              type: string
            validator:
              type: string
            duration:
              description: The staking duration in days (14-365).
              type: integer
            rewardAddress:
              description: The C-Chain address where rewards will be sent.
              type: string
          required:
            - validator
            - duration
    FlrPStakingRequestPOSTBody:
      title: FLRP stake
      description: >
        Request to stake FLR tokens on the Flare P-Chain.


        **P-Chain Staking:** FlrP uses Flare's P-Chain for delegation-based
        staking:

        - Stake FLR tokens to selected P-Chain validators

        - Duration-based staking (14-365 days)

        - Rewards distributed to corresponding C-Chain address 

        - Auto-unstaking at the end of staking period


        **Key Features:**

        - C-Chain to P-Chain address derivation (same public key)

        - Configurable staking duration (14 days to 1 year)

        - Gas fees paid in native FLR tokens
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            amount:
              description: Amount to stake in base units (nanoFLR). Minimum 50,000 FLR.
              type: string
              example: '50000000000000'
            validator:
              description: P-Chain validator NodeID to delegate to.
              type: string
              example: NodeID-9bAbQj1s9qEuC4QyF4u7ZqPzKLvr7dVW7
            duration:
              description: The staking duration in days (14-365).
              type: integer
              minimum: 14
              maximum: 365
              example: 30
          required:
            - amount
            - validator
            - duration
    ForUserId:
      type: string
      pattern: ^[a-zA-Z0-9]{32}$
      title: ForUserId
      description: >-
        BitGo public user ID the document is created for; exactly 32
        alphanumeric characters
    ForbiddenErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - AccessDenied
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 403
      description: Forbidden error response
    Freeze:
      title: Freeze
      type: object
      properties:
        time:
          oneOf:
            - type: string
              format: date
              title: Date String
            - type: string
              format: date-time
              title: ISO Date String
          description: When the freeze started
          format: date-time
        expires:
          oneOf:
            - type: string
              format: date
              title: Date String
            - type: string
              format: date-time
              title: ISO Date String
          description: When the freeze will end
          format: date-time
        reason:
          type: string
          description: The reason the entity was frozen
        frozenBy:
          type: string
          description: The user that froze the entity
        unFrozenBy:
          type: string
          description: The user that unfroze the entity
    FreezeMetadata:
      title: FreezeMetadata
      oneOf:
        - type: string
        - type: object
          properties:
            suspiciousTransactionHex:
              type: string
            txParams:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                  amount:
                    oneOf:
                      - type: string
                      - type: number
                  data:
                    oneOf:
                      - type: string
                      - $ref: '#/components/schemas/TokenTransferRecipientParams'
                  feeLimit:
                    type: string
                  tokenData:
                    $ref: '#/components/schemas/TokenTransferRecipientParams'
                  tokenName:
                    type: string
                required:
                  - address
                  - amount
          required:
            - suspiciousTransactionHex
            - txParams
    FreezeReason:
      title: FreezeReason
      type: string
      enum:
        - TxIntentMismatch
        - TxIntentMismatchRecipient
        - TxIntentMismatchContract
        - TxIntentMismatchApproval
        - UserRequest
        - AdminRequest
    FrontTransferSendRequest:
      type: object
      required:
        - halfSigned
      properties:
        halfSigned:
          $ref: '#/components/schemas/HalfSignedGoWithdrawal'
        comment:
          type: string
          nullable: true
        sequenceId:
          type: string
          nullable: true
        goStakingRequestId:
          type: string
          nullable: true
      description: Payload to create a Go staking transfer
    FtxHostType:
      title: FtxHostType
      type: string
      enum:
        - COM
        - LIQUID
        - US
    FundingType:
      type: string
      enum:
        - margin
        - funded
      description: >
        The funding type of the order.

        - Funded orders will be placed using the Go account balance.

        - Margin orders will be placed using the margin account balances.

        See our [Trade Guide](/docs/trade-overview) for more details on each
        funding type.
      default: funded
    FundsSource:
      type: string
      enum:
        - proprietary
        - customer
      title: FundsSource
      description: Whether funds deposited are proprietary or customer funds
    GeneralError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        status:
          type: integer
    GenericReportParamsJSON:
      title: GenericReportParamsJSON
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          minLength: 1
          pattern: ^[0-9a-f]{32}$
        type:
          allOf:
            - $ref: '#/components/schemas/SnowflakeReportType'
          description: Type of report
        format:
          allOf:
            - $ref: '#/components/schemas/ReportFormatType'
          description: Format of report
        status:
          allOf:
            - $ref: '#/components/schemas/ReportStatus1'
          description: Status of report
        createdAt:
          type: string
          description: Date report was created
          format: date-time
          title: ISO Date String
        completedAt:
          type: string
          description: Date report was completed
          format: date-time
          title: ISO Date String
        documentName:
          type: string
          description: Name of the report document
          minLength: 1
        user:
          type: string
          description: ID of the user who requested the report
          example: 59cd72485007a239fb00282ed480da1f
          minLength: 1
          pattern: ^[0-9a-f]{32}$
      required:
        - id
        - type
        - format
        - status
        - createdAt
        - user
    GeographicAddress:
      title: GeographicAddress
      type: object
      properties:
        addressType:
          type: string
        name:
          type: string
          description: >-
            Legal name of the enterprise, not necessarily the same as the
            display name
        street:
          type: string
          description: Address line
        street2:
          nullable: true
          type: string
          description: Optional second address line
        suite:
          nullable: true
          type: string
          description: Optional suite number
        city:
          type: string
          description: City name
        state:
          type: string
          description: State or region
        postalCode:
          type: string
          description: Postal code
        country:
          type: string
          description: ISO 3166-1 Alpha-3 country code
    GetAccountBalancesResponse:
      title: GetAccountBalancesResponse
      type: object
      description: Response containing array of account balances
      properties:
        data:
          type: array
          items:
            type: object
            description: Account balance for a single currency
            properties:
              currency:
                type: string
              balance:
                type: string
              marketPrice:
                type: number
              heldBalance:
                type: string
              availableBalance:
                type: string
            required:
              - currency
              - balance
              - marketPrice
              - heldBalance
              - availableBalance
      required:
        - data
    GetAccountResourcesResponse:
      title: GetAccountResourcesResponse
      type: object
      properties:
        resources:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
              freeBandwidthAvailable:
                type: number
              freeBandwidthUsed:
                type: number
              stakedBandwidthAvailable:
                type: number
              stakedBandwidthUsed:
                type: number
              energyAvailable:
                type: number
              energyUsed:
                type: number
              resourceDeficitForAssetTransfer:
                $ref: '#/components/schemas/TronResourceDeficit'
              maxResourcesDelegatable:
                $ref: '#/components/schemas/MaxResourcesDelegatable'
            required:
              - address
              - freeBandwidthAvailable
              - freeBandwidthUsed
              - stakedBandwidthAvailable
              - stakedBandwidthUsed
              - energyAvailable
              - energyUsed
        failedAddresses:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
              error:
                type: string
            required:
              - address
              - error
      required:
        - resources
        - failedAddresses
    GetBatchSigningResponse:
      title: GetBatchSigningResponse
      type: object
      properties:
        payload:
          type: string
          minLength: 1
      required:
        - payload
    GetDocumentBadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentBadRequestError
      description: Generic error response
    GetDocumentForbiddenError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentForbiddenError
      description: Generic error response
    GetDocumentInternalError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentInternalError
      description: Generic error response
    GetDocumentNotFoundError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentNotFoundError
      description: Generic error response
    GetDocumentResponse:
      type: object
      properties:
        documentId:
          type: string
          description: Unique identifier for the document
        documentType:
          $ref: '#/components/schemas/DocumentType'
        documentTypeLabel:
          type: string
          description: Human-readable label for the document type
        subType:
          $ref: '#/components/schemas/DocumentSubType'
        status:
          $ref: '#/components/schemas/DocumentStatus'
        enterpriseId:
          type: string
          nullable: true
          description: >-
            Enterprise associated with the document when created, or null for
            legacy documents
        forUserId:
          type: string
          nullable: true
          description: >-
            BitGo public user ID the document was created for, or null when not
            attributed
        metadata:
          type: object
          additionalProperties:
            nullable: true
          description: Optional metadata for the document
        files:
          type: array
          items:
            $ref: '#/components/schemas/DocumentFileInfo'
          description: List of files associated with the document
        createdAt:
          type: string
          format: date-time
          description: When the document was created
        updatedAt:
          type: string
          format: date-time
          description: When the document was last updated
      required:
        - documentId
        - documentType
        - documentTypeLabel
        - status
        - enterpriseId
        - forUserId
        - files
        - createdAt
        - updatedAt
      title: GetDocumentResponse
      description: Response containing document information
    GetDocumentUnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentUnauthorizedError
      description: Generic error response
    GetDocumentsBadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentsBadRequestError
      description: Generic error response
    GetDocumentsInternalError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentsInternalError
      description: Generic error response
    GetDocumentsResponse:
      type: object
      properties:
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DocumentSummary'
          description: List of document summaries
        total:
          type: integer
          minimum: 0
          description: Total number of matched documents
        limit:
          $ref: '#/components/schemas/DocumentPaginationLimit'
        offset:
          $ref: '#/components/schemas/DocumentPaginationOffset'
      required:
        - documents
        - total
        - limit
        - offset
      title: GetDocumentsResponse
      description: Paginated list of document summaries
    GetDocumentsUnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: GetDocumentsUnauthorizedError
      description: Generic error response
    GetEnterpriseResponse:
      title: GetEnterpriseResponse
      allOf:
        - type: object
          properties:
            wallets:
              type: array
              items:
                type: string
                minLength: 1
            tags:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  id:
                    type: string
                required:
                  - name
                  - id
            stablecoinAgreementLatestVersion:
              type: number
            hasScimClient:
              type: boolean
              description: Whether the enterprise has a SCIM OAuth client configured
            organizationId:
              type: string
              deprecated: true
          required:
            - wallets
            - tags
            - hasScimClient
        - $ref: '#/components/schemas/Enterprise'
    GetEnterpriseUserSigningKeyResponse:
      title: GetEnterpriseUserSigningKeyResponse
      type: object
      properties:
        userId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        userEmail:
          type: string
          example: user@email.com
          format: email
        derivedPubkey:
          type: string
          description: The derived public key of the user.
          example: 0205f47704d137205ba32560e01ed182428c758760d9a05ae58cf2f66069f5d717
        derivationPath:
          nullable: true
          type: string
          description: >-
            The derivation path used to derive derivedPubkey. Returned only if
            you're fetching your own signing key.
          example: m/999999/51550848/191290384
        ecdhKeychain:
          nullable: true
          type: string
          description: >-
            The bip32 public key that you can use to fetch a v1 keychain.
            Returned only if you're fetching your own signing key.
          example: >-
            xpub661MyMwAqRbcFm7W87Qcns2ybFoSHsHEkGzNQj1KhPeLNUtV7KKiQvtLVLwPpWFaohqXrCBqCit9sM6G5kmtZHaJYSvMC65ge9HATFShe1S
      required:
        - userId
        - userEmail
        - derivedPubkey
    GetInvoicesResponse:
      title: GetInvoicesResponse
      type: object
      properties:
        invoices:
          type: array
          items:
            type: object
            properties:
              memo:
                type: string
                description: A memo or description for the invoice
                example: Payment for the coffee
              amtPaidMsat:
                type: string
                description: >-
                  The number of millisats actually paid to this invoice, this
                  may be greater

                  than the amount requested by the invoice, since lightning
                  allows overpaying

                  (but not underpaying) invoices.
                format: number
              invoice:
                type: string
                description: The BOLT \#11 encoded invoice
                example: >-
                  lnbc500n1p3zv5vkpp5x0thcaz8wep54clc2xt5895azjdzmthyskzzh9yslggy74qtvl6sdpdg3hkuct5d9hkugrxdaezqjn0dphk2fmnypkk2mtsdahkccqzpgxqyz5vqsp5v80q4vq4pwakq2l0hcqgtelgajsymv4ud4jdcrqtnzhvet55qlus9qyyssquqh2wl2m866qs5n72c5vg6wmqx9vzwhs5ypualq4mcu76h2tdkcq3jtjwtggfff7xwtdqxlnwqk8cxpzryjghrmmq3syraswp9vjr7cqry9l96
              paymentHash:
                type: string
                description: The payment hash of the invoice
                example: >-
                  63d9ce82e09d16761a85116ed8b65407db4fb22f85d03573de09c480f2c6d175
              valueMsat:
                type: string
                description: The value of the invoice in millisatoshis
                example: '50000'
                format: number
              expiresAt:
                type: string
                description: ISO-8601 string representing when the invoice will expire
                example: '2022-04-01T18:46:24.677Z'
                format: date-time
                title: ISO Date String
              status:
                type: string
                enum:
                  - open
                  - settled
                  - canceled
                description: The status of the invoice
              walletId:
                allOf:
                  - $ref: '#/components/schemas/WalletIdString'
                description: The wallet to which this invoice belongs
              createdAt:
                type: string
                description: ISO-8601 string representing when the invoice was created
                example: '2022-04-01T18:46:24.677Z'
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: ISO-8601 string representing when the invoice was updated
                example: '2022-04-01T18:46:24.677Z'
                format: date-time
                title: ISO Date String
            required:
              - invoice
              - paymentHash
              - valueMsat
              - expiresAt
              - status
              - walletId
              - createdAt
              - updatedAt
        nextBatchPrevId:
          type: string
      required:
        - invoices
    GetOrdersSummaryResponse:
      title: GetOrdersSummaryResponse
      type: object
      properties:
        byAsset:
          type: object
          additionalProperties:
            type: object
            properties:
              chain:
                type: string
                description: Chain identifier
                example: hteth
              decimals:
                type: number
                description: Token decimals
                example: 18
              mint:
                allOf:
                  - $ref: '#/components/schemas/OrderTypeSummary'
                description: Mint order summary
              burn:
                allOf:
                  - $ref: '#/components/schemas/OrderTypeSummary'
                description: Burn order summary
            required:
              - chain
              - decimals
              - mint
              - burn
          description: Breakdown by individual asset keyed by token identifier
        timeSeries:
          type: array
          items:
            type: object
            properties:
              period:
                type: string
                description: ISO8601 date string representing start of period
                example: '2024-01-01T00:00:00.000Z'
              mintAmount:
                type: string
                description: Total mint amount in lowest denomination
                example: '1000000000000000000000'
              mintCount:
                type: number
                description: Number of mint orders
                example: 5
              burnAmount:
                type: string
                description: Total burn/redeem amount in lowest denomination
                example: '500000000000000000000'
              burnCount:
                type: number
                description: Number of burn/redeem orders
                example: 3
            required:
              - period
              - mintAmount
              - mintCount
              - burnAmount
              - burnCount
            description: >-
              Time-series data points. Only present when groupBy parameter is
              provided.
      required:
        - byAsset
    GetPaymentsResponse:
      title: GetPaymentsResponse
      type: object
      properties:
        payments:
          type: array
          items:
            type: object
            description: Off-chain payment information
            properties:
              id:
                type: string
              paymentHash:
                type: string
              walletId:
                type: string
              txRequestId:
                type: string
              status:
                $ref: '#/components/schemas/PaymentStatus'
              invoice:
                type: string
              feeLimitMsat:
                type: string
                format: number
              destination:
                type: string
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              amountMsat:
                type: string
                format: number
              feeMsat:
                type: string
                format: number
              failureReason:
                $ref: '#/components/schemas/PaymentFailureReason'
              paymentPreimage:
                type: string
            required:
              - id
              - paymentHash
              - walletId
              - txRequestId
              - status
              - invoice
              - feeLimitMsat
              - destination
              - updatedAt
              - createdAt
              - amountMsat
        nextBatchPrevId:
          type: string
      required:
        - payments
    GetPinnedWalletsCountResponse:
      title: GetPinnedWalletsCountResponse
      type: object
      properties:
        pinnedWalletsCount:
          type: number
      required:
        - pinnedWalletsCount
    GetPotentialStuckEthTxs:
      title: Potential Stuck Eth Transactions
      type: object
      properties:
        nonce:
          type: number
          description: The nonce value of the potentially stuck transaction
          example: 200000
          pattern: ^-?\d+$
        txHex:
          type: string
          description: Serialized transaction hex
          example: >-
            01000000000101d58f82d996dd872012675adadf4606734906b25a413f6e2ee535c0c10aef96020000000000ffffffff028de888000000000017a914c91aa24f65827eecec775037d886f2952b73cbe48740420f000000000017a9149304d18497b9bfe9532778a0f06d9fff3b3befaf870500473044022023d7210ba6d8bbd7a28b8af226f40f7235caab79156f93f9c9969fc459ea7f73022050fbdca788fba3de686b66b3501853695ff9d6f375867470207d233b099576e001000069522103d4788cda52f91c1f6c82eb91491ca76108c9c5f0839bc4f02eccc55fedb3311c210391bcef9dcc89570a79ba3c7514e65cd48e766a8868eca2769fa9242fdcc796662102ef3c5ebac4b54df70dea1bb2655126368be10ca0462382fcb730e55cddd2dd6a53aec8b11400
        txId:
          type: string
          description: The on-chain transaction id
          example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
        txType:
          type: string
          description: The transaction type
          example: AddressInitialization
        sendTransfer:
          type: object
          properties:
            abandonedTime:
              type: string
              description: The time this transfer was abandoned
              format: date-time
              title: ISO Date String
            approvedTime:
              type: string
              description: The time this transfer was approved
              format: date-time
              title: ISO Date String
            baseValue:
              type: number
              description: >-
                The value (in base units) sent by this transfer, excluding
                network fees. BitGo is deprecating this field in the future.
            baseValueString:
              type: string
              description: >-
                The value (in base units) sent by this transfer, excluding
                network fees represented as a string. BitGo is deprecating this
                field in the future.
              example: '2000000'
              pattern: ^-?\d+$
            baseValueWithoutFees:
              type: number
              description: >-
                The value (in base units) sent by this transfer excluding
                network fees.
            baseValueWithoutFeesString:
              type: string
              description: >-
                The value (in base units) sent by this transfer, excluding
                network fees, represented as a string
            bitgoOrg:
              type: string
              enum:
                - BitGo Trust
                - BitGo New York
                - BitGo Germany
                - BitGo Switzerland
                - BitGo Europe ApS
                - Frankfurt DE Trust
                - BitGo Singapore
                - BitGo Korea
                - BitGo Custody MENA FZE
                - BitGo India
                - BitGo Sister Trust 1
                - BitGo Inc
            buildParams:
              type: object
              additionalProperties: {}
              description: Parameters used to build the transaction
            coin:
              $ref: '#/components/schemas/CoinString'
            coinSpecific:
              description: Transfer fields specific to each coin type
            comment:
              nullable: true
              type: string
              description: A comment from the user
            commentedTime:
              type: string
              description: The time this transfer was commented on
              format: date-time
              title: ISO Date String
            confirmations:
              type: number
              description: >-
                The number of blocks that have been confirmed since this
                Transfer's block was confirmed
            confirmedTime:
              type: string
              description: The time this transfer was confirmed
              format: date-time
              title: ISO Date String
            consolidateId:
              type: string
              description: Consolidation ID if this transfer is part of a consolidation
            createdTime:
              type: string
              description: The time this transfer was created
              format: date-time
              title: ISO Date String
            customerApprovedTime:
              type: string
              description: >-
                The time this transfer was approved by the customer (trust
                transfers)
              format: date-time
              title: ISO Date String
            date:
              type: string
              description: The date this Transfer was last updated
              format: date-time
              title: ISO Date String
            elliptic:
              type: string
              description: Elliptic risk score information (trust transfers)
            enterprise:
              type: string
              example: 59cd72485007a239fb00282ed480da1f
              pattern: ^[0-9a-f]{32}$
            enterpriseName:
              type: string
              description: Name of the enterprise associated with this transfer
            entries:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                    description: An address affected by this Transfer
                    example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ
                  associatedNativeCoinAddress:
                    type: string
                    description: >-
                      The native coin receive address associated with the solana
                      ATA address.

                      This is currently present only for BitGo addresses.

                      This change was done so that there is a mapping between
                      the two addresses in the transfer entries.
                  backingFeeString:
                    type: string
                    description: Backing fee represented as a string
                  failed:
                    type: boolean
                    description: True if this entry is failed
                  isChange:
                    type: boolean
                    description: >-
                      True if this address is a change address (only exists for
                      UTXO coins) and if this is a "send" transfer
                  isFee:
                    type: boolean
                    description: Indicates if this entry is a fee
                  isInternal:
                    type: boolean
                    description: Indicates if this entry is internal
                  isPayGo:
                    type: boolean
                    description: True if this address is the BitGo PayGo wallet
                  isReward:
                    type: boolean
                    description: Indicates if this entry is a reward
                  memo:
                    type: string
                    description: Memo associated with this entry
                  nftId:
                    type: string
                    description: NFT ID associated with this entry
                  nftSymbol:
                    type: string
                  rewardAddress:
                    type: string
                    description: Reward address associated with this entry
                  subtype:
                    type: string
                    description: Subtype of this entry
                  token:
                    type: string
                    description: If this is a token entry, the token's symbol
                    example: omg
                  tokenContractHash:
                    type: string
                    description: Token contract hash associated with this entry
                  type:
                    type: string
                    enum:
                      - flushForwarderTokens
                      - walletFunding
                      - walletInitialization
                      - addressInitialization
                      - importedOutput
                      - onchainidWalletLinked
                      - onchainidClaimAdded
                      - onchainidClaimRemoved
                      - AccountCreateContract
                  value:
                    type: number
                    description: The change (in base units) in the address' balance
                  valueString:
                    type: string
                    description: >-
                      The change (in base units) in the address' balance
                      represented as a string
                    example: '20000'
                    pattern: '"^-?\d+$"'
                  wallet:
                    type: string
                    description: Only visible when the user has access to the wallet
                    example: 59cd72485007a239fb00282ed480da1f
                    pattern: ^[0-9a-f]{32}$
                  walletLabel:
                    type: string
                    description: >-
                      The label of the wallet referenced by `wallet`. Only
                      visible when the user has access to that

                      wallet. Useful for displaying a human-readable destination
                      name (e.g. for sibling enterprise

                      wallets) instead of a generic external-address fallback.
                    example: My Cold Wallet
                required:
                  - address
                description: >-
                  An array of objects describing the change in address balances
                  made as a result of this Transfer
            failedTime:
              type: string
              description: The time this transfer failed
              format: date-time
              title: ISO Date String
            feeCoin:
              type: string
              description: The coin used to pay the fee (for cross-chain transactions)
            feeString:
              nullable: true
              type: string
              description: The Transfer's fee (in base units) represented as a String
            feeUsd:
              type: number
              description: The fee USD value for token transfers
            feeUsdRate:
              type: number
              description: The fee coin USD rate for token transfers
            goStakingRequestId:
              type: string
              description: Associated GO staking request ID
            height:
              type: number
              description: >-
                The height of the block this Transfer was confirmed in
                (999999999 if unconfirmed)
            heightId:
              type: string
              description: The unique height id of the block
            history:
              type: array
              items:
                type: object
                properties:
                  action:
                    $ref: '#/components/schemas/TransferAction'
                  comment:
                    nullable: true
                    type: string
                    description: >-
                      If this history object is of action "commented", this is
                      the comment from the user
                  date:
                    type: string
                    description: The date of this history object
                    format: date-time
                    title: ISO Date String
                  transferId:
                    type: string
                    description: >-
                      The ID of the transfer that this history object is
                      associated with
                  txid:
                    type: string
                    description: >-
                      The transaction ID of the transaction that this history
                      object is associated with
                  user:
                    type: string
                    example: 59cd72485007a239fb00282ed480da1f
                    pattern: ^[0-9a-f]{32}$
                required:
                  - action
                  - date
                description: >-
                  An audit log of events that have happened to the Transfer
                  during its lifecycle
            id:
              type: string
              example: 59cd72485007a239fb00282ed480da1f
              pattern: ^[0-9a-f]{32}$
            idVerificationTime:
              type: string
              description: The time identity verification was completed (trust transfers)
              format: date-time
              title: ISO Date String
            inputs:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                    description: The address of the UTXO
                  blockHeight:
                    type: number
                    description: The block this Unspent was created in
                  chain:
                    type: number
                    description: The chain of the UTXO
                  coinbase:
                    type: boolean
                    description: True if this unspent came from the coinbase transaction
                  id:
                    type: string
                    description: The ID of the UTXO
                  index:
                    type: number
                    description: The index of the UTXO
                  redeemScript:
                    type: string
                    description: The redeem script of the UTXO
                  value:
                    type: number
                    description: The value of the UTXO
                  witnessScript:
                    type: string
                    description: The witness script of the UTXO
            instant:
              type: boolean
              description: Whether this is an instant transaction
            instantId:
              type: string
              description: The instant transaction ID if applicable
            intendedValueString:
              type: string
              description: >-
                A string representation (in base units) of the initial value for
                the transfer. This is present because when a transaction fails
                on chain, its value is mutated to be zero. This string is
                immutable and will always be the intended value of the initial
                transfer regardless of the final state of the transaction.
            isFee:
              type: boolean
              description: Whether this transfer represents a fee
            isReward:
              type: boolean
              description: Whether this transfer represents a staking reward
            isUnlock:
              type: boolean
              description: Whether this transfer represents an unlock operation
            label:
              type: string
              description: Address labels (if any) from entries concatenated.
            medianUsdRate:
              type: number
              description: The median USD rate at the time this Transfer was created
            medianUsdValue:
              type: number
              description: The median USD value of this Transfer
            metadata:
              type: array
              items:
                type: object
                properties:
                  key:
                    type: string
                  value:
                    type: string
                required:
                  - key
                  - value
                description: Additional metadata associated with the transfer
            nSegwitInputs:
              type: number
              description: DEPRECATED. Number of segwit inputs on the transfer.
            organization:
              type: string
              example: 59cd72485007a239fb00282ed480da1f
              pattern: ^[0-9a-f]{32}$
            outputs:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                    description: The address of the UTXO
                  blockHeight:
                    type: number
                    description: The block this Unspent was created in
                  chain:
                    type: number
                    description: The chain of the UTXO
                  coinbase:
                    type: boolean
                    description: True if this unspent came from the coinbase transaction
                  id:
                    type: string
                    description: The ID of the UTXO
                  index:
                    type: number
                    description: The index of the UTXO
                  redeemScript:
                    type: string
                    description: The redeem script of the UTXO
                  value:
                    type: number
                    description: The value of the UTXO
                  witnessScript:
                    type: string
                    description: The witness script of the UTXO
            payGoFee:
              type: number
              description: The Transfer's BitGo fee (in base units)
            payGoFeeString:
              type: string
              description: The Transfer's BitGo fee (in base units) represented as a String
            pendingApproval:
              type: string
            regeneratedTime:
              type: string
              description: The time this transfer was regenerated
              format: date-time
              title: ISO Date String
            rejectedTime:
              type: string
              description: The time this transfer was rejected
              format: date-time
              title: ISO Date String
            removedTime:
              type: string
              description: The time this transfer was removed
              format: date-time
              title: ISO Date String
            replacedBy:
              type: array
              items:
                type: string
                description: Transaction IDs that replace this transfer.
            replacedByTransferId:
              type: array
              items:
                type: string
                description: Transfer IDs that replace this transfer.
            replacedTime:
              type: string
              description: The time this transfer was replaced
              format: date-time
              title: ISO Date String
            replaces:
              type: array
              items:
                type: string
                description: Transaction IDs that this transfer replaces.
            replacingTime:
              type: string
              description: The time this transfer started replacing another
              format: date-time
              title: ISO Date String
            riskIndicators:
              type: array
              items:
                type: string
                enum:
                  - SELFDESTRUCT
                description: >-
                  Risk indicators for flagged transfers (e.g. SELFDESTRUCT
                  opcode).
            sendAccounting:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                  amountString:
                    type: string
                  id:
                    type: string
                  nOuts:
                    type: number
                  type:
                    type: string
                required:
                  - amountString
                  - nOuts
                  - type
                description: Accounting breakdown for send transactions
            senderInformationVerified:
              type: boolean
              description: Whether sender information has been verified (trust transfers)
            sequenceId:
              type: string
              description: Unique wallet identifier for preventing double-spends
            signedDate:
              type: string
              description: The date this transfer was signed (legacy field)
              format: date-time
              title: ISO Date String
            signedTime:
              type: string
              description: The time this transfer was signed
              format: date-time
              title: ISO Date String
            stakingParams:
              type: object
              properties:
                actionType:
                  type: string
                amount:
                  type: string
                coreDao:
                  type: object
                  properties:
                    amount:
                      type: string
                      format: number
                    expiration:
                      type: string
                      format: date-time
                      title: ISO Date String
                    fee:
                      type: number
                    rewardAddress:
                      type: string
                    validator:
                      type: string
                    version:
                      type: number
                  required:
                    - amount
                    - expiration
                    - fee
                    - rewardAddress
                    - validator
                    - version
                receiverAddress:
                  type: string
                requestId:
                  type: string
                resource:
                  type: string
                source:
                  type: string
                  enum:
                    - external
                    - internal
                validator:
                  type: string
              required:
                - actionType
                - requestId
            state:
              $ref: '#/components/schemas/TransferState1'
            subType:
              type: string
              enum:
                - ofc_deposit
                - ofc_withdrawal
                - ofc_book_transfer
                - ofc_exchange
                - ofc_bn_settlement_transfer
                - ofc_bn_allocation
                - ofc_trading_order
                - ofc_trading_settlement
                - ofc_margin_collateral
                - ofc_margin_position
                - ofc_direct_trade
                - ofc_routed
                - ofc_fee
                - ofc_other
                - ofc_unstake
                - ofc_financing_liquidation
                - receive_from_gastank
                - reserved_amount
                - utxo_message_signing
                - pending_deposit
                - pending_deposit_activity
                - internal_transfer
                - pending_withdrawal_offer
                - pending_deposit_offer
                - offer_accepted
                - offer_rejected
                - confirmed_deposit
                - confirmed_withdrawal
                - deposit_offer_expired
                - withdrawal_offer_expired
                - withdrawal_offer_rejected
                - utxo_expired
                - offer_cancelled
                - cancel_withdrawal_offer
                - mint_request
                - mint_offer
                - mint_accept
                - mint_deposit
                - mint_reject
                - burn_request
                - burn_offer
                - burn_accept
                - burn_withdraw
                - burn_reject
                - pending_participant_onboarding_request
                - participant_onboarding_accepted
                - cash_dvp_settled
                - repo_dvp_open_leg_settled
                - repo_dvp_close_leg_settled
                - staking_eth_withdrawal
                - staking_eth_partial_withdrawal
                - staking_eth_full_withdrawal
                - staking_eth_mev_reward
                - staking_eth_block_reward
                - staking_bera_withdrawal
                - staking_bera_block_reward
              description: Transfer subtype
              x-enumsDeprecated:
                - staking_eth_partial_withdrawal
                - staking_eth_full_withdrawal
            tags:
              type: array
              items:
                type: string
                description: The tags to be used on this Transfer (used in Policies)
            trustFinalApprovalTime:
              type: string
              description: >-
                The time this transfer received final trust approval (trust
                transfers)
              format: date-time
              title: ISO Date String
            trustSignedTime:
              type: string
              description: The time this transfer was signed by trust (trust transfers)
              format: date-time
              title: ISO Date String
            txid:
              type: string
              description: The on-chain transaction id
              example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
            txidType:
              type: string
              description: The type of the transaction id
            txRequestId:
              type: string
              description: Associated transaction request ID
            type:
              allOf:
                - $ref: '#/components/schemas/TransferType2'
              description: >-
                Defines whether or not this Transfer was sent or received by the
                user
            unconfirmedTime:
              type: string
              description: The time this transfer became unconfirmed
              format: date-time
              title: ISO Date String
            usd:
              type: number
              description: >-
                The amount of USD of this Transfer (will be negative if it's a
                send)
            usdRate:
              type: number
              description: The USD rate at the time this Transfer was created
            usersNotified:
              type: boolean
              description: >-
                Whether BitGo already sent notifications to the users of the
                transfer wallet
            value:
              type: number
              description: >-
                The total value (in base units) sent by this Transfer (may be
                approximate for ETH and other coins where amounts in base units
                can exceed 2^53 - 1)
            valueString:
              type: string
              description: >-
                The total value (in base units) sent by this Transfer
                represented as a String
              example: '2000000'
              pattern: ^-?\d+$
            vSize:
              type: number
              description: The size of the transaction
            wallet:
              type: string
              example: 59cd72485007a239fb00282ed480da1f
              pattern: ^[0-9a-f]{32}$
            walletLabel:
              type: string
              description: Label of the wallet associated with this transfer
            walletType:
              type: string
              enum:
                - backing
                - cold
                - custodial
                - custodialPaired
                - hot
                - advanced
                - trading
              description: Wallet type
          required:
            - coin
            - date
            - entries
            - history
            - id
            - state
            - type
            - valueString
            - wallet
        cause:
          type: string
          description: The reason the transaction is potentially stuck
        message:
          type: string
          description: Possible steps to remediate the stuck transaction.
        transferIds:
          type: array
          items:
            type: string
        gasAccelerationFee:
          type: object
          description: >-
            Fee required to remediate a stuck transaction when the cause is 'fee
            acceleration'.
          properties:
            gasPrice:
              type: string
              example: '200000'
              pattern: ^-?\d+$
            maxFeePerGas:
              type: string
              example: '200000'
              pattern: ^-?\d+$
            maxPriorityFeePerGas:
              type: string
              example: '200000'
              pattern: ^-?\d+$
        userActionDisabled:
          type: boolean
          description: True, if manual user action is disabled on this stuck transaction
        coin:
          type: string
          description: The coin name for the stuck transaction
          example: hteth
        wallet:
          type: string
          description: The wallet ID for the stuck transaction
          example: 59cd72485007a239fb00282ed480da1f
        isFeeAddress:
          type: boolean
          description: True if the address is the wallet's dedicated fee/gas address
      required:
        - cause
        - message
    GetPotentialStuckTxsResponse:
      title: GetPotentialStuckTxsResponse
      type: array
      items:
        oneOf:
          - $ref: '#/components/schemas/GetPotentialStuckEthTxs'
          - $ref: '#/components/schemas/GetPotentialStuckUtxoTxs'
    GetPotentialStuckUtxoTxs:
      title: Potential Stuck UTXO Transactions
      type: object
      properties:
        txId:
          type: string
          description: The on-chain transaction id
          example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
          minLength: 1
        sendTransfer:
          $ref: '#/components/schemas/Transfer1'
        rbf:
          type: boolean
      required:
        - txId
    GetResourceDelegationsResponse:
      title: GetResourceDelegationsResponse
      type: object
      properties:
        address:
          type: string
        coin:
          type: string
        delegations:
          type: object
          properties:
            outgoing:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  coin:
                    type: string
                  ownerAddress:
                    type: string
                  receiverAddress:
                    type: string
                  resource:
                    type: string
                    enum:
                      - ENERGY
                      - BANDWIDTH
                  balance:
                    type: string
                  updatedAt:
                    type: string
                required:
                  - id
                  - coin
                  - ownerAddress
                  - receiverAddress
                  - resource
                  - balance
                  - updatedAt
            incoming:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  coin:
                    type: string
                  ownerAddress:
                    type: string
                  receiverAddress:
                    type: string
                  resource:
                    type: string
                    enum:
                      - ENERGY
                      - BANDWIDTH
                  balance:
                    type: string
                  updatedAt:
                    type: string
                required:
                  - id
                  - coin
                  - ownerAddress
                  - receiverAddress
                  - resource
                  - balance
                  - updatedAt
            nextBatchPrevId:
              type: string
          required:
            - outgoing
            - incoming
      required:
        - address
        - coin
        - delegations
    GetSequenceIdsResponse:
      title: GetSequenceIdsResponse
      type: object
      properties:
        sequenceIds:
          type: array
          items:
            type: object
            properties:
              txid:
                type: string
                description: The on-chain transaction id
                example: >-
                  b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
                minLength: 1
              contractSequenceId:
                type: number
                description: The contract sequence id of the transaction
            required:
              - txid
              - contractSequenceId
      required:
        - sequenceIds
    GetTokenConstantsResponse:
      title: GetTokenConstantsResponse
      type: object
      properties:
        trustAccountWalletId:
          type: string
          description: >-
            Identifier for the trust account wallet that holds and manages token
            assets
          example: fake_trust_go_account_id
      required:
        - trustAccountWalletId
    GetTokenDetailsResponse:
      title: GetTokenDetailsResponse
      type: object
      properties:
        token:
          type: string
          description: Token symbol or identifier
          example: usd1
          minLength: 1
        totalSupplyAggregated:
          type: string
          description: >-
            Total supply across all chains, normalized to the highest decimal
            precision among chains.

            Each chain's supply is scaled to this common precision before
            summing:

            chainSupply * 10^(decimals - chain.decimals). Divide by 10^decimals
            for the human-readable total.

            Note: supplyByChain[].supply values use each chain's own decimals,
            not this one.
          example: '"2000000000000000000000" (2000 tokens, with decimals=18)'
          minLength: 1
        decimals:
          type: number
          description: >-
            Decimal precision of totalSupplyAggregated (the max decimals across
            all successful chains)
          example: 18
        supplyByChain:
          type: array
          items:
            type: object
            properties:
              chain:
                type: string
                description: Blockchain network identifier
                example: eth
                minLength: 1
              supply:
                type: string
                description: >-
                  Total supply for this chain in the chain's native smallest
                  unit.

                  Divide by 10^decimals to get the human-readable token amount.

                  Note: this is NOT normalized to the aggregated decimals — use
                  the per-chain decimals field to interpret.
                example: '"1000000000000000000000" (1000 tokens on an 18-decimal chain)'
                minLength: 1
              decimals:
                type: number
                description: >-
                  Number of decimal places for the token on this chain (e.g. 18
                  for EVM, 6 for Solana)
                example: 18
              error:
                type: string
                description: Error message if supply fetch failed
                example: Network timeout
            required:
              - chain
              - supply
              - decimals
            description: Breakdown of supply by chain
        totalReserves:
          type: string
          description: Total reserves
          minLength: 1
      required:
        - token
        - totalSupplyAggregated
        - decimals
        - supplyByChain
        - totalReserves
    GetTransactionRequestsResponse:
      title: GetTransactionRequestsResponse
      type: object
      properties:
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object in the previous batch. To get the next batch of results,
            pass this value via the "prevId" query parameter.
          format: uuid
        txRequests:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/TransactionRequestLite'
              - $ref: '#/components/schemas/TransactionRequestFull'
      required:
        - txRequests
    GetTransactionRequestsWithWalletPermissionsResponse:
      title: GetTransactionRequestsWithWalletPermissionsResponse
      type: object
      properties:
        nextBatchPrevId:
          type: string
        txRequests:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  transactions:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          $ref: '#/components/schemas/TransactionState'
                        unsignedTx:
                          $ref: '#/components/schemas/UnsignedTransaction'
                        signatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                        commitmentShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - commitment
                                    description: The type of the commitment share
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                        txHash:
                          type: string
                        updatedDate:
                          type: string
                          format: date-time
                          title: ISO Date String
                        createdDate:
                          type: string
                          format: date-time
                          title: ISO Date String
                      required:
                        - state
                        - unsignedTx
                      description: The transactions associated with the transaction request
                  messages:
                    type: array
                    items:
                      type: object
                      description: The messages associated with the transaction request
                      properties:
                        state:
                          allOf:
                            - $ref: '#/components/schemas/TransactionState'
                          description: The current state of the message
                        signatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                            description: Signature shares for the message
                        privateSignatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                            description: Private signature shares for the message
                        commitmentShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - commitment
                                    description: The type of the commitment share
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                            description: Commitment shares for the message (used for EdDSA)
                        encryptedShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    $ref: '#/components/schemas/ShareType'
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                            description: Encrypted shares for the message
                        txHash:
                          type: string
                          description: Transaction hash
                        updatedDate:
                          type: string
                          description: Date when the message was last updated
                          format: date-time
                          title: ISO Date String
                        createdDate:
                          type: string
                          description: Date when the message was created
                          format: date-time
                          title: ISO Date String
                        messageRaw:
                          type: string
                          description: The raw message to be signed
                        messageEncoded:
                          type: string
                          description: The encoded message
                        messageBroadcastable:
                          type: string
                          description: The broadcastable message
                        messageStandardType:
                          type: string
                          description: The encoded message
                        derivationPath:
                          type: string
                          description: Derivation path for the message
                        combineSigShare:
                          type: string
                          description: Combined signature share
                        coin:
                          type: string
                          description: Coin type for the message
                        bitgoPaillierChallenge:
                          description: BitGo's Paillier challenge for ECDSA
                        encryptedChallenge:
                          type: string
                          description: >-
                            BitGo's encrypted challenge for ECDSA with Range
                            Proofs
                      required:
                        - state
                        - messageRaw
              - $ref: '#/components/schemas/TransactionRequestBase'
      required:
        - txRequests
    GetTransactionsResponse:
      title: GetTransactionsResponse
      type: object
      properties:
        transactions:
          type: array
          items:
            type: object
            description: Transaction details
            properties:
              id:
                type: string
              normalizedTxHash:
                type: string
              blockHeight:
                type: number
              inputIds: {}
              entries: {}
              inputs: {}
              outputs: {}
              size:
                type: number
              date:
                type: string
                format: date-time
                title: ISO Date String
              fee:
                type: number
              feeString:
                type: string
              hex:
                type: string
              confirmations:
                type: number
              blockHash:
                type: string
              blockPosition:
                type: number
              label:
                type: string
            required:
              - id
              - normalizedTxHash
              - blockHeight
              - inputIds
              - entries
              - inputs
              - outputs
              - size
              - date
              - fee
              - feeString
              - hex
              - confirmations
        nextBatchPrevId:
          type: string
          description: >-
            This is the transaction ID from the last item in the current batch.

            Providing this value as the prevId in the next request will return
            the next batch of transactions.
      required:
        - transactions
    GetTransferByApprovalIdResponse:
      title: GetTransferByApprovalIdResponse
      type: object
      properties:
        transfer:
          $ref: '#/components/schemas/Transfer1'
      required:
        - transfer
    GetTxInfoResponse:
      allOf:
        - title: GetTxInfoResponse
        - $ref: '#/components/schemas/TxDetails'
    GetWalletBalanceResponse:
      title: GetWalletBalanceResponse
      type: object
      properties:
        balances:
          type: array
          items:
            type: object
            properties:
              coin:
                allOf:
                  - $ref: '#/components/schemas/CoinNonEmptyString'
                description: A cryptocurrency or token ticker symbol.
              balanceString:
                type: string
                description: >-
                  String representation of the balance in base units. Guaranteed
                  to not lose precision.
              confirmedBalanceString:
                type: string
                description: >-
                  String representation of the confirmed balance in base units.
                  Guaranteed to not lose precision.
              spendableBalanceString:
                type: string
                description: >-
                  String representation of the spendable in base units.
                  Guaranteed to not lose precision. Will not be included if
                  `excludeSpendableBalances=false`
              stakingBalanceString:
                type: string
                description: >-
                  The staked balance in base units. Guaranteed to not lose
                  precision.

                  The is only returned if the `includeStakingBalances` query
                  parameter is set to `true`.
              rewardBalanceString:
                type: string
                description: >-
                  The staking reward balance in base units. Guaranteed to not
                  lose precision.

                  The is only returned if the `includeStakingBalances` query
                  parameter is set to `true`.
              withdrawHoldAmountUsdString:
                type: string
                description: >-
                  Total USD value (in cents) of active ACH-deposit related
                  withdraw holds on this wallet.

                  Only present for OFC wallets when `allTokens=true` is passed.
              offchain:
                allOf:
                  - $ref: '#/components/schemas/OffChainWalletBalance'
                description: Lightning Balances
            required:
              - coin
              - balanceString
              - confirmedBalanceString
      required:
        - balances
    GetWalletBalancesByCoinResponse:
      title: GetWalletBalancesByCoinResponse
      allOf:
        - type: object
          properties:
            balance:
              type: number
              description: >-
                The total balance of all wallets containing the given coin type.
                May lose precision for large values.
            confirmedBalance:
              type: number
              description: >-
                The total balance of confirmed transactions for all wallets
                containing the given coin type. May lose precision for large
                values.
            spendableBalance:
              type: number
              description: >-
                The total balance of all wallets containing the given coin which
                may be used as inputs for creating new transactions. May lose
                precision for large values.
            stakedBalance:
              type: number
              description: >-
                The total balance of all wallets containing the given coin which
                has been staked. May lose precision for large values.
            stakedBalanceString:
              type: string
              description: >-
                String representation of 'stakedBalance'. Guaranteed to not lose
                precision.
            tokens:
              allOf:
                - $ref: '#/components/schemas/tokenBalances'
              description: >-
                Object of key value pairs where the keys are the token symbols
                (e.g. omg) and the values are the balance data for that token
                symbol.
            unsupportedTokens:
              allOf:
                - $ref: '#/components/schemas/tokenBalances'
              description: >-
                Object of key value pairs where the keys are the unsupported
                token contracts (e.g.
                0x9928e4046d7c6513326ccea028cd3e7a91c7590a) and the values are
                the balance data for that token contract. UnsupportedTokens will
                only be returned for wallets that supports Metamask
                Institutional and has enableMMI flag turned on
          required:
            - balance
            - confirmedBalance
            - spendableBalance
        - $ref: '#/components/schemas/baseBalanceStrings'
    GetWebhookNotificationsRequest:
      required:
        - limit
        - offset
      type: object
      properties:
        webhookNotificationId:
          type: string
          description: Filter by specific webhook notification UUID
          example: 550e8400-e29b-41d4-a716-446655440000
        notificationRequestId:
          type: string
          description: Filter by notification request ID (Cuid)
          example: cjld2cjxh0000qzrmn831i7rn
        start:
          type: string
          description: >-
            Start timestamp (default: now - 1 day). Supports ISO 8601 datetime
            (2023-01-01T00:00:00Z) or simple date (2023-01-01).
          example: '2023-01-01T00:00:00.000Z'
        end:
          type: string
          description: >-
            End timestamp (default: now). Supports ISO 8601 datetime
            (2023-12-31T23:59:59Z) or simple date (2023-12-31).
          example: '2023-12-31T23:59:59.000Z'
        hash:
          type: string
          description: Filter by transaction hash
          example: 11256099
        transferId:
          type: string
          description: Filter by transfer ID
          example: transfer-12345
        status:
          type: string
          description: Filter by notification status
          example: sent
          enum:
            - pending
            - processing
            - sent
            - failed
            - skipped
        limit:
          maximum: 1000
          minimum: 1
          type: integer
          description: Number of records to return (default 25, max 1000)
          format: int32
          example: 25
        offset:
          minimum: 0
          type: integer
          description: Number of records to skip (default 0)
          format: int32
          example: 0
    GetWebhookNotificationsResponse:
      required:
        - limit
        - notifications
        - offset
        - total
      type: object
      properties:
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/WebhookNotificationDTO'
        total:
          type: integer
          format: int64
        limit:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
    GetWebhookOAuthConfigResponse:
      required:
        - clientId
        - createdAt
        - scope
        - tokenUrl
        - updatedAt
        - webhookId
      type: object
      properties:
        webhookId:
          type: string
        tokenUrl:
          type: string
        clientId:
          type: string
        scope:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    GlobalGoStakingRequestStatus:
      type: string
      description: |
        Coarse-grained status for staking requests.
      enum:
        - NEW
        - PENDING
        - FAILED
        - REJECTED
        - CONFIRMED
        - COOLDOWN
        - WARMUP
        - UNSUPPORTED
    GoStakingAttributes:
      type: object
      properties:
        permissionAttributes:
          $ref: '#/components/schemas/PermissionAttributes'
        spendableAttributes:
          $ref: '#/components/schemas/SpendableAttributes'
        disclaimerAttributes:
          $ref: '#/components/schemas/DisclaimerAttributes'
    GoStakingCoinsResults:
      type: object
      properties:
        coins:
          type: array
          items:
            type: string
          example:
            - sol
            - sui
        page:
          type: integer
        totalPages:
          type: integer
        totalElements:
          type: integer
          format: int64
      required:
        - coins
        - page
        - totalPages
        - totalElements
    GoStakingRequest:
      type: object
      required:
        - id
        - status
        - goAccountId
        - amount
        - createdDate
        - properties
      properties:
        id:
          type: string
          format: uuid
        clientId:
          type: string
        status:
          $ref: '#/components/schemas/GlobalGoStakingRequestStatus'
        type:
          $ref: '#/components/schemas/StakingRequestType'
        coin:
          type: string
        goAccountId:
          type: string
        error:
          type: string
        amount:
          type: string
          format: big-integer
        createdDate:
          type: string
          format: date-time
        statusModifiedDate:
          type: string
          format: date-time
        properties:
          $ref: '#/components/schemas/GoStakingRequestProperties'
        source:
          $ref: '#/components/schemas/RequestSource'
    GoStakingRequestProperties:
      type: object
      properties:
        amount:
          type: string
          description: Amount to stake or unstake, in base units
    GoStakingRequestsResults:
      type: object
      properties:
        requests:
          type: array
          items:
            $ref: '#/components/schemas/GoStakingRequest'
        page:
          type: integer
          example: 1
        totalPages:
          type: integer
          example: 5
        totalElements:
          type: integer
          format: int64
          example: 124
      required:
        - requests
        - page
        - totalPages
        - totalElements
    GoStakingWallet:
      type: object
      properties:
        coin:
          type: string
        activeStake:
          type: string
        activeAutoStaked:
          type: string
        pendingStake:
          type: string
        pendingUnstake:
          type: string
        rewards:
          type: string
        attributes:
          $ref: '#/components/schemas/GoStakingAttributes'
    GoStakingWalletsResults:
      type: object
      properties:
        coins:
          type: array
          items:
            $ref: '#/components/schemas/GoStakingWallet'
        page:
          type: integer
        totalPages:
          type: integer
        totalElements:
          type: integer
    GoUnstakeIntent:
      title: GoUnstakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - goUnstake
              description: Must be "goUnstake".
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: The recipients to send unstaked funds to.
          required:
            - intentType
            - recipients
        - $ref: '#/components/schemas/BaseIntent'
      description: >-
        Base intent for GO wallet unstaking operations. Chain-specific
        go-unstake

        intents (e.g. Sol, Sui) compose this and declare `goStakingRequestId`

        according to their own requirements (optional for Sol, required for
        Sui).
    GrantTypes:
      title: GrantTypes
      type: string
      enum:
        - password
        - passkey
        - refresh_token
        - authorization_code
        - oauth
    GreaterThanOrEqualToValue:
      title: Greater than or equal to
      type: object
      description: The greater than or equal to (>=) operator.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - '>='
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Greater than or equal to
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: >-
            The transfer amount must be greater than or equal to the given limit
            for the condition to trigger
    GreaterThanValue:
      title: Greater than
      type: object
      description: The greater than (>) operator.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - '>'
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Greater than
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: >-
            The transfer amount must be greater than the given limit for the
            condition to trigger
    HalfSignedGoWithdrawal:
      type: object
      required:
        - coin
        - recipients
        - fromAccount
        - nonce
        - timestamp
        - feeString
        - payload
        - signature
      properties:
        coin:
          type: string
          description: The coin type, e.g. "ofctsui"
        recipients:
          type: array
          description: List of recipient addresses and amounts
          items:
            type: object
            required:
              - address
              - amount
            properties:
              address:
                type: string
                description: Destination address for the withdrawal
              amount:
                type: string
                format: big-integer
                description: Amount to send
        fromAccount:
          type: string
          description: Source account id
        nonce:
          type: string
          format: uuid
          description: Unique identifier for the transaction
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the half-signed payload was created
        feeString:
          type: string
          description: Fee amount as a string
        shortCircuitBlockchainTransfer:
          type: boolean
          description: Indicates whether to short-circuit blockchain transfer
          default: false
        isIntraJXTransfer:
          type: boolean
          description: Indicates whether the transfer is intra-JX
          default: false
        payload:
          type: string
          description: Raw JSON payload string representing the unsigned transaction data
        signature:
          type: string
          description: Signature of the payload
    HashStakingRequest:
      title: HASH
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    HashStakingRequestPOSTBody:
      title: HASH stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    HashUnStakingRequestPOSTBody:
      title: HASH unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    HbarSwitchValidatorRequestEntityProperties:
      title: HBAR switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
        - type: object
          properties:
            nodeId:
              type: integer
              format: int64
              description: The destination node ID to switch staking to.
            walletBalance:
              allOf:
                - $ref: '#/components/schemas/IntegerString'
              description: The wallet balance at the time of the switch request.
              nullable: true
            srcNodeId:
              type: integer
              format: int64
              description: The source node ID being switched from.
              nullable: true
          required:
            - nodeId
    HbarUpdateAccountIntent:
      title: HBAR Update Account Intent
      allOf:
        - type: object
          properties:
            stakedNodeId:
              $ref: '#/components/schemas/optionalNumber'
            stakedAccountId:
              $ref: '#/components/schemas/optionalString'
            declineStakingReward:
              $ref: '#/components/schemas/optionalBoolean'
        - $ref: '#/components/schemas/AccountBaseUpdateAccountIntent'
    HederaAddress:
      title: Hedera Address
      type: object
      properties:
        baseAddress:
          type: string
        memoId:
          type: string
      required:
        - baseAddress
        - memoId
    HederaSendQueue:
      title: Hedera
      type: object
      properties:
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
        walletInitialization:
          type: boolean
        accountId:
          type: string
        transactionid:
          type: string
      required:
        - trustedTokens
    HederaWallet:
      title: Hedera Wallet
      type: object
      properties:
        addressCount:
          type: number
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
        deployTxHash:
          type: string
        baseAddress:
          type: string
        confirmedTransactionId:
          type: string
      required:
        - addressCount
        - pendingChainInitialization
        - creationFailure
        - trustedTokens
    HistoricalPrice:
      type: object
      description: OHLCV price data for a single time interval.
      required:
        - time
        - open
        - high
        - low
        - close
        - base_volume
        - quote_volume
      properties:
        time:
          type: string
          format: date-time
          description: The timestamp marking the start of this interval (RFC 3339 format).
        open:
          type: number
          format: float
          description: The opening price at the start of the interval.
        high:
          type: number
          format: float
          description: The highest price reached during the interval.
        low:
          type: number
          format: float
          description: The lowest price reached during the interval.
        close:
          type: number
          format: float
          description: The closing price at the end of the interval.
        base_volume:
          type: number
          format: float
          description: The total trading volume in the base currency during the interval.
        quote_volume:
          type: number
          format: float
          description: The total trading volume in the quote currency during the interval.
      example:
        time: '2024-12-17T15:00:00.000Z'
        open: 89750.25
        high: 90125.5
        low: 89500
        close: 90050.75
        base_volume: 1250.85
        quote_volume: 112456780.25
    HistoricalPriceResult:
      type: object
      description: Response containing historical price data with pagination support.
      required:
        - data
      properties:
        data:
          type: object
          required:
            - prices
          properties:
            prices:
              type: object
              description: A map of currency pair to price data
              example: BTC-USD
              additionalProperties:
                type: array
                items:
                  $ref: '#/components/schemas/HistoricalPrice'
            nextBatchPrevId:
              type: string
              nullable: true
              description: |
                Pagination cursor for fetching the next batch of results.
                Null if there are no more results.
      example:
        data:
          prices:
            BTC-USD:
              - time: '2024-12-17T15:00:00.000Z'
                open: 89750.25
                high: 90125.5
                low: 89500
                close: 90050.75
                base_volume: 1250.85
                quote_volume: 112456780.25
          nextBatchPrevId: a0dbb6aad06d9a37c9882231d8dc32ef
    HotValue:
      title: Self-managed hot wallet
      type: object
      description: Self-managed hot wallet wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - hot
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Hot Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A hot wallet
    HypeevmBridgeFundsIntent:
      title: Hypeevm Bridge Funds Intent
      allOf:
        - type: object
          properties:
            feeOptions:
              oneOf:
                - $ref: '#/components/schemas/FeeOption'
                - $ref: '#/components/schemas/EIP1559FeeOptions'
              description: Override gas estimation for the bridge transaction.
        - $ref: '#/components/schemas/BaseBridgeFundsIntent'
      description: |-
        Bridge funds between HypeEVM L2 and L1. Specify the amount and asset via
        the amount field. Used exclusively on the HypeEVM chain.
    HypeevmEnableBridgingIntent:
      title: Hypeevm Enable Bridging Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - enableBridging
            asset:
              type: string
            network:
              $ref: '#/components/schemas/optionalString'
          required:
            - intentType
            - asset
        - $ref: '#/components/schemas/BaseIntent'
    HypeevmSpotTransferIntent:
      title: Hypeevm Spot Transfer Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - spotTransfer
              description: Must be "spotTransfer".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithRecipients'
      description: >-
        Transfer assets via the HypeEVM spot trading mechanism. Provide
        recipients

        with their address and amount. Used exclusively on the HypeEVM chain.
    ICPStakingRequestEntityProperties:
      title: ICP staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            neuronAddress:
              type: string
              description: Optional neuron address.
    ICPStakingTransactionProperties:
      title: ICP Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            neuronAddress:
              type: string
    IcpPaymentIntent:
      title: ICP Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
        - $ref: '#/components/schemas/PaymentIntent'
    Id:
      title: ID
      type: string
      pattern: ^[0-9a-f]{32}$
      example: 59cd72485007a239fb00282ed480da1f
    IdArray:
      type: array
      items:
        $ref: '#/components/schemas/Id'
      example:
        - 585951a5df8380e0e3063e9f
        - 585951a5df8380e0e304a553
    IdVerificationActionRequest:
      title: BitGo ID Verification
      type: object
      description: Require BitGo ID verification.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.idVerification
          example: approvals.bitgo.idVerification
        parameters:
          type: object
          description: Required data needed to configure the Action.
          properties:
            isFallback:
              type: boolean
              description: Whether this is a fallback action.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    Identity:
      title: Identity
      type: object
      properties:
        kyc:
          $ref: '#/components/schemas/Kyc'
        verified:
          type: boolean
          description: Whether the user is verified
    IdentityCreateResponse:
      title: IdentityCreateResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        status:
          $ref: '#/components/schemas/KycIdentityStatus'
      required:
        - id
        - status
    IdentityDocumentGetResponse:
      title: IdentityDocumentGetResponse
      type: object
      properties:
        documents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                title: uuid
              identityId:
                type: string
                title: uuid
              status:
                $ref: '#/components/schemas/IdentityDocumentStatus'
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
              fileUploads:
                type: array
                items:
                  type: object
                  properties:
                    fileName:
                      type: string
                      minLength: 1
                    fileSize:
                      type: number
                    uploadStatus:
                      type: string
                      minLength: 1
                    documentType:
                      $ref: '#/components/schemas/IdentityDocumentType'
                  required:
                    - fileName
                    - fileSize
                    - uploadStatus
                    - documentType
              selectedIdClass:
                $ref: '#/components/schemas/PersonaIdClass'
            required:
              - id
              - identityId
              - status
              - createdAt
              - updatedAt
      required:
        - documents
    IdentityDocumentStatus:
      title: IdentityDocumentStatus
      type: string
      enum:
        - pending
        - processing
        - approved
        - rejected
    IdentityDocumentType:
      title: IdentityDocumentType
      type: string
      enum:
        - frontPhoto
        - backPhoto
        - proofOfResidency
    IdentityGetResponse:
      title: IdentityGetResponse
      type: object
      properties:
        identities:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                title: uuid
              status:
                $ref: '#/components/schemas/KycIdentityStatus'
              organizationId:
                type: string
                minLength: 1
              enterpriseId:
                type: string
                minLength: 1
              userId:
                type: string
                minLength: 1
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
              errorDescription:
                type: string
                minLength: 1
              occupation:
                type: string
              annualIncome:
                type: string
              netWorth:
                type: string
              sourceOfFunds:
                type: string
              sourceOfNetWorth:
                type: string
              countryOfCitizenship:
                type: string
              govIdCountryOfIssuance:
                type: string
              politicallyExposedPerson:
                type: boolean
              debugStatus:
                type: string
              country:
                type: string
              countryOfResidence:
                type: string
              addressCity:
                type: string
              addressPostalCode:
                type: string
              addressStreet1:
                type: string
              addressStreet2:
                type: string
              addressSubdivision:
                type: string
              birthDate:
                type: string
                format: date-time
                title: ISO Date String
              identificationNumber:
                type: string
              nameFirst:
                type: string
              nameLast:
                type: string
              nameMiddle:
                type: string
              phoneNumber:
                type: string
              selectedIdClass:
                type: string
              debugFailureReason:
                type: string
              emailAddress:
                type: string
              contractSignerNameFull:
                type: string
              contractSignedDate:
                type: string
                format: date-time
                title: ISO Date String
              contractSignedIPAddress:
                type: string
              contractVersion:
                type: string
              userAgreesToTerms:
                type: string
              signatureSubmitted:
                type: string
              signaturesSubmitted:
                type: array
                items:
                  type: string
                  enum:
                    - csa
                    - mpa
                    - mic
                    - wvr
                    - aca
              signaturesRequired:
                type: array
                items:
                  type: string
                  enum:
                    - csa
                    - mpa
                    - mic
                    - wvr
                    - aca
            required:
              - id
              - status
      required:
        - identities
    IdentityOccupation:
      title: IdentityOccupation
      type: string
      enum:
        - Agriculture
        - Art Dealer / Auctioneer / Import / Export Company
        - >-
          Financial Services (Asset Mgmt., Bank, Broker Dealer, Commodities,
          Mutual Fund, Ins. Co)
        - Casinos and Gambling Establishments
        - Charity/NGO/Non-Profit/Foundation/Endowment
        - >-
          Computer Programmer / Administrator / Software Engineer / IT or
          Software / Technology Company
        - Crypto Services (ATM, Exchange, Lender, Coins/Token)
        - Education / Teacher
        - >-
          Extractive Industry (Oil, Gas, etc.) / Jewels / Gemstones / Precious
          Metals
        - Family Office
        - Film / TV / Entertainment (not adult)
        - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund)
        - Healthcare
        - Law Enforcement / Military / Protective Services
        - Miner / Mining Pool
        - Money Service Business
        - Other
        - Private Equity / Venture Capital
        - Professional Service Providers (lawyers accountants etc.)
        - Real estate brokers developers and appraisers
        - Recreation / Hospitality
        - Student / Unemployed / Retired
        - Traders / Trading (High Frequency, Proprietary, Market Maker)
        - Other - Default
        - Weapons Dealers
    IdentityStatus:
      type: string
      enum:
        - approved
        - declined
        - input error
        - ssn error
        - gov id error
        - ssn verified
        - gov id verified
        - evaluating submission
        - awaiting document upload
        - records uploaded
        - in review
        - incomplete verifications
        - awaiting signature
        - signature submitted
        - initiating
        - additional information submitted
    IdentityStatusEnum:
      title: IdentityStatusEnum
      type: string
      enum:
        - created
        - approved
        - declined
        - needs review
        - input error
        - ssn error
        - gov id error
        - ssn verified
        - gov id verified
        - enrichment
        - awaiting document upload
        - records uploaded
        - in review
        - incomplete verifications
        - records uploaded 2
        - awaiting signature
        - signature submitted
        - initiating
        - additional information submitted
    IdentityUpdateResponse:
      title: IdentityUpdateResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        status:
          $ref: '#/components/schemas/KycIdentityStatus'
        organizationId:
          type: string
          minLength: 1
        enterpriseId:
          type: string
          minLength: 1
        userId:
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        errorDescription:
          type: string
          minLength: 1
        signaturesSubmitted:
          $ref: '#/components/schemas/ContractTypes'
        signaturesRequired:
          $ref: '#/components/schemas/ContractTypes'
      required:
        - id
        - status
        - organizationId
    InboundTrade:
      title: InboundTrade
      allOf:
        - type: object
          properties:
            counterpartyConnectionId:
              type: string
              title: uuid
        - $ref: '#/components/schemas/TradeBaseReq'
        - $ref: '#/components/schemas/TradeBaseQuoteInbound'
    Individual:
      type: object
      properties:
        nameFirst:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
          description: First name of the individual
        nameLast:
          type: string
          pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ\s'\.\-]+$
          description: Last name of the individual
        birthdate:
          $ref: '#/components/schemas/Birthdate'
        phoneNumber:
          type: object
          properties:
            countryCode:
              type: string
              pattern: ^[0-9]+$
              description: Country code of the phone number
            phoneNumber:
              type: string
              pattern: ^[0-9]+$
              description: Phone number (without country code)
          required:
            - countryCode
            - phoneNumber
        email:
          type: string
          format: email
          description: Email address of the individual
        occupation:
          $ref: '#/components/schemas/Occupation'
        countryOfCitizenship:
          description: Country of citizenship (ISO 3166-1 alpha-3)
        countryOfResidence:
          description: Country of residence (ISO 3166-1 alpha-3)
        govIdCountryOfIssuance:
          description: Country where government ID was issued (ISO 3166-1 alpha-3)
        govIdClass:
          type: string
          enum:
            - cct
            - cid
            - dl
            - foid
            - hic
            - id
            - ipp
            - keyp
            - ltpass
            - munid
            - myn
            - nbi
            - nric
            - ofw
            - rp
            - pan
            - pid
            - pp
            - ppc
            - pr
            - sss
            - td
            - tribalid
            - umid
            - vid
            - visa
            - wp
          description: |-
            Class of government ID. Valid values:
            cct - Citizenship Certificate,
            cid - Consular ID,
            dl - Driver's License,
            foid - CO Foreigner ID,
            hic - Health Insurance Card,
            id - Identification Card,
            ipp - Internal Passport,
            keyp - AU Keypass ID,
            ltpass - Long Term Pass,
            munid - US Municipal ID (e.g. NYC ID),
            myn - JP My Number Card (SSN),
            nbi - PH National Bureau of Investigation Certificate,
            nric - SG National Residency ID,
            ofw - PH Overseas Foreign Worker Card,
            rp - Residence Permit,
            pan - IN Permanent Account Number card (SSN),
            pid - PH Postal Identity Card,
            pp - Passport,
            ppc - Passport Card,
            pr - Permanent Residence Card,
            sss - PH Social Security System Card (SSN),
            td - US Travel Document,
            tribalid - US/CA Tribal ID,
            umid - PH Unified Multi Purpose ID,
            vid - Voter ID,
            visa - Visa,
            wp - Work Permit
        address:
          type: object
          properties:
            street1:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 1
            street2:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: Street address line 2
            city:
              type: string
              pattern: ^[A-Za-zÀ-ÿĀ-ſƀ-ɏ0-9\s'\-\.,#\/( )&]+$
              description: City name
            subdivision:
              type: string
              minLength: 1
              maxLength: 3
              description: >-
                State, province, or region (formatted as subdivision section of
                ISO 3166-2, excludes country code)
            zip:
              type: string
              description: ZIP or postal code
            country:
              description: Country (formatted as ISO 3166-1 alpha-3)
          required:
            - street1
            - city
            - subdivision
            - zip
            - country
        identificationNumber:
          type: string
          description: National identification number (e.g., SSN, passport number)
        politicallyExposedPerson:
          type: boolean
          description: Whether the individual is a politically exposed person
      title: Individual
    IndividualIdentityResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - individual
          description: Type of identity
        userId:
          type: string
          description: The ID of the user
        individual:
          $ref: '#/components/schemas/Individual'
        id:
          type: string
          description: The unique ID of the created identity
        ignoredFields:
          type: array
          items:
            type: string
          description: Ignored fields
        requestedProducts:
          type: array
          items:
            $ref: '#/components/schemas/RequestedProductResponse'
          description: List of products requested for this identity
        requirements:
          type: array
          items:
            $ref: '#/components/schemas/Requirement'
          description: List of requirements related to the identity
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: List of documents associated with the identity
        finalizeSubmission:
          type: boolean
          description: >-
            Whether identity is ready for final submission and requirements
            validation
      required:
        - type
        - userId
        - individual
        - id
        - requestedProducts
        - requirements
        - finalizeSubmission
      title: IndividualIdentityResponse
    InitiateTrustlineParams:
      type: object
      properties:
        memo:
          type: object
          properties:
            type:
              type: string
            value:
              type: string
          description: >
            The memo contains optional extra information that can also be used
            to identify payments in Stellar.
        comment:
          type: string
          description: >
            Optional metadata (only persisted in BitGo) to be applied to the
            transaction. Use this to add transaction-specific information such
            as the transaction's purpose or another identifier that you want to
            reference later. The value is shown in the UI in the transfer
            listing page.
          maxLength: 256
        trustlines:
          type: array
          items:
            $ref: '#/components/schemas/Trustline'
          description: List of trustlines to manage on the account.
      required:
        - trustlines
    InitiatorIsAllowedToApproveActionParameter:
      title: Initiator is allowed to approve
      type: object
      description: Whether the initiator is allowed to approve this action.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the action parameter.
          enum:
            - initiatorIsAllowedToApprove
          example: initiatorIsAllowedToApprove
        label:
          type: string
          description: A label for the action parameter which can be shown to an end user.
          example: Initiator Is Allowed To Approve
        description:
          type: string
          description: >-
            A description for the action parameter which can be shown to an end
            user.
          example: Whether the initiator is allowed to approve this action
        type:
          type: string
          description: The type of acceptable values for this action parameter.
          enum:
            - BOOLEAN
          example: BOOLEAN
        required:
          type: string
          description: A value is not required.
          enum:
            - OPTIONAL
          example: OPTIONAL
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: false
    InjectiveClaimRewardsRequestPOSTBody:
      title: Injective Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Injective.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    InjectiveStakingRequest:
      title: INJECTIVE
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    InjectiveStakingRequestPOSTBody:
      title: INJECTIVE stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    InjectiveSwitchValidatorsRequestPOSTBody:
      title: Injective Switch Validators Request
      type: object
      description: Request to switch staking delegation to a new validator for Injective.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    InjectiveUnStakingRequestPOSTBody:
      title: INJECTIVE unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    InquiryStatus:
      title: InquiryStatus
      type: string
      enum:
        - completed
        - failed
    InquirySubType:
      title: InquirySubType
      type: string
      enum:
        - withdrawalLivenessCheck
        - managePolicyLivenessCheck
    InquiryType:
      title: InquiryType
      type: string
      enum:
        - livenessCheck
    InscriptionId:
      type: string
      description: The ID of the inscription in the form <txid>i<vin>
      example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8i2
      pattern: ^[\da-f]{64}i[\d]+$
    IntegerOrIntegerString:
      oneOf:
        - type: string
          pattern: ^-?\d+$
          example: '2000000'
        - type: integer
    IntegerOrString:
      oneOf:
        - type: string
          example: '2000000'
        - type: integer
    IntegerString:
      type: string
      pattern: ^-?\d+$
      example: '2000000'
    IntentType:
      title: IntentType
      type: string
      enum:
        - payment
        - transferToken
        - consolidate
        - consolidateToken
        - fanout
        - stake
        - unstake
        - delegate
        - undelegate
        - switchValidator
        - claim
        - stakeClaimRewards
        - pledge
        - voteDelegation
        - vote
        - createAccount
        - updateAccount
        - addTrustLine
        - removeTrustLine
        - signMessage
        - signTypedStructuredData
        - enableToken
        - authorize
        - acceleration
        - fillNonce
        - walletRecovery
        - contractCall
        - deactivate
        - customTx
        - closeAssociatedTokenAccount
        - stakeWithCallData
        - unstakeWithCallData
        - switchValidatorWithCallData
        - feeAddressTransfer
        - tokenApproval
        - transferStake
        - validatorRegistration
        - increaseStake
        - decreaseStake
        - signalExit
        - withdrawStake
        - spotTransfer
        - bridgeFunds
        - enableBridging
        - goUnstake
        - createBtcDelegation
        - transferAccept
        - transferReject
        - transferAcknowledge
        - transferOfferWithdrawn
        - cosignDelegationProposal
        - cosignDelegationAccept
        - allocationRequest
        - cantonCommand
        - allocationAllocate
        - allocationOfferWithdrawn
        - allocationReject
        - cantonEndInvestorOnboardingOffer
        - cantonEndInvestorOnboardingAccept
        - cantonEndInvestorOnboardingReject
        - cantonParticipantOnboardingRequest
        - defi-deposit
        - defi-redeem
        - defi-approve
        - delegateResource
        - undelegateResource
        - export
        - import
        - importtoc
    IntentType1:
      title: IntentType
      type: string
      enum:
        - payment
        - transferToken
        - consolidate
        - consolidateToken
        - fanout
        - stake
        - unstake
        - delegate
        - undelegate
        - switchValidator
        - claim
        - stakeClaimRewards
        - pledge
        - vote
        - createAccount
        - updateAccount
        - addTrustLine
        - removeTrustLine
        - signMessage
        - signTypedStructuredData
        - enableToken
        - authorize
        - acceleration
        - fillNonce
        - walletRecovery
        - contractCall
        - deactivate
        - customTx
        - closeAssociatedTokenAccount
        - delegateResource
        - undelegateResource
    IntentType11:
      title: IntentType1
      type: string
      enum:
        - payment
        - consolidate
        - consolidateToken
        - fanout
        - vote
        - createAccount
        - updateAccount
        - addTrustLine
        - removeTrustLine
        - signMessage
        - signTypedStructuredData
        - enableToken
        - acceleration
        - transferToken
        - fillNonce
        - walletRecovery
        - contractCall
        - customTx
        - closeAssociatedTokenAccount
        - export
        - import
        - importtoc
        - transferAcknowledge
        - transferAccept
        - transferReject
        - transferOfferWithdrawn
        - cosignDelegationProposal
        - cosignDelegationAccept
        - allocationRequest
        - allocationAllocate
        - cantonCommand
        - cantonEndInvestorOnboardingOffer
        - cantonEndInvestorOnboardingAccept
        - cantonEndInvestorOnboardingReject
        - cantonParticipantOnboardingRequest
        - stake
        - unstake
        - delegate
        - undelegate
        - switchValidator
        - claim
        - stakeClaimRewards
        - pledge
        - voteDelegation
        - authorize
        - deactivate
        - createBtcDelegation
        - goUnstake
        - stakeWithCallData
        - unstakeWithCallData
        - validatorRegistration
        - increaseStake
        - decreaseStake
        - signalExit
        - withdrawStake
        - switchValidatorWithCallData
        - spotTransfer
        - delegateResource
        - undelegateResource
    InternationalWireAccountResponseProps:
      title: InternationalWireAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - wire
        swiftCode:
          $ref: '#/components/schemas/SwiftCodeType'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - swiftCode
        - accountType
    InternationalWireBankAccount:
      title: International Wire Bank Account
      type: object
      description: >
        An external bank account. `routingNumber` must be set for US bank
        accounts.

        `swiftCode` must be set for banks outside the US.
      properties:
        accountNumber:
          description: Bank account number or IBAN.
          type: string
          minLength: 1
          maxLength: 34
          example: 114584906
        enterpriseId:
          $ref: '#/components/schemas/Id'
        address:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        address1:
          type: string
          example: 2390 El Camino Real
        address2:
          type: string
          example: Palo Alto, CA 94306
        address3:
          type: string
          example: ''
        name:
          type: string
          example: America California Bank
        ownerName:
          type: string
          example: Donald E. Knuth
        ownerAddress:
          type: string
          example: 2390 El Camino Real, Palo Alto, CA 94306
        owner:
          type: object
          description: Bank account owner
          properties:
            name:
              type: string
              example: Donald E. Knuth
            address1:
              type: string
              example: Computer Science Department
            address2:
              type: string
              example: Stanford University
            address3:
              type: string
              example: Stanford, CA 94305-9045
          required:
            - name
            - address1
        swiftCode:
          description: >-
            Bank identifier code, as specified by ISO 9362.  Required for
            international wire transfers.
          type: string
          example: DEUTDEFF500
          minLength: 8
          maxLength: 11
          pattern: ^[A-Z]{6}[0-9A-Z]{2}([0-9A-Z]{3})?$
        shortCountryCode:
          $ref: '#/components/schemas/ShortCountryCode'
        type:
          $ref: '#/components/schemas/BankAccountType'
        currency:
          $ref: '#/components/schemas/BankAccountCurrency'
        furtherCreditTo:
          type: string
          example: Donald E. Knuth
        intermediaryBankName:
          type: string
          example: America California Bank
        intermediaryBankId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
      required:
        - accountNumber
        - address1
        - shortCountryCode
        - name
        - owner
        - enterpriseId
        - swiftCode
    InternationalWireBankAccountRequest:
      title: InternationalWireBankAccountRequest
      description: Request schema for creating an international wire bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - wire
              description: Must be 'wire' for international wire accounts
            swiftCode:
              type: string
              description: SWIFT/BIC code for the international wire account
          required:
            - type
            - swiftCode
        - $ref: '#/components/schemas/BankAccountRequest1'
    InternationalWireBankAccountResponse:
      title: InternationalWireBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/InternationalWireAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    InvalidAddress:
      title: Invalid address
      allOf:
        - $ref: '#/components/schemas/PlatformErrorNoName3'
        - properties:
            context:
              type: object
              properties:
                address:
                  type: string
                coin:
                  $ref: '#/components/schemas/Coin'
              required:
                - address
                - coin
            name:
              type: string
              description: Error code
              enum:
                - InvalidAddress
          required:
            - coin
            - context
            - address
            - name
    InvalidAddress1:
      title: Invalid Address
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidAddress
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidEnterpriseId:
      title: Invalid Enterprise ID
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidEnterpriseId
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidEnterpriseId1:
      title: Invalid enterprise ID
      allOf:
        - $ref: '#/components/schemas/InvalidId1'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidEnterpriseId
          required:
            - name
    InvalidId:
      title: InvalidId
      allOf:
        - type: object
          properties:
            context:
              type: object
              properties:
                id:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
              required:
                - id
          required:
            - context
        - $ref: '#/components/schemas/PlatformErrorNoName'
    InvalidId1:
      allOf:
        - $ref: '#/components/schemas/PlatformErrorNoName3'
        - properties:
            context:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
          required:
            - context
    InvalidOFAC:
      title: Address error
      allOf:
        - $ref: '#/components/schemas/PlatformErrorNoName3'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - AddressError
            error:
              type: string
              description: Human-readable error message
              example: Address cannot be used
          required:
            - name
    InvalidOrganizationId:
      title: Invalid Organization ID
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidOrganizationId
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidPaymentHash:
      title: Invalid Payment Hash
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidPaymentHash
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidPaymentId:
      title: Invalid Payment Id
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidPaymentId
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidTransferId:
      title: Invalid transfer ID
      allOf:
        - $ref: '#/components/schemas/InvalidId1'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidTransferId
          required:
            - name
    InvalidTxId:
      title: Invalid TxId
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidTxId
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    InvalidUserId:
      title: Invalid user ID
      allOf:
        - $ref: '#/components/schemas/InvalidId1'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidUserId
          required:
            - name
    InvalidWalletId:
      title: Invalid wallet id
      allOf:
        - $ref: '#/components/schemas/InvalidId1'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidWalletId
          required:
            - name
    InvalidWalletId1:
      title: Invalid Wallet ID
      allOf:
        - type: object
          properties:
            name:
              type: string
              enum:
                - InvalidWalletId
          required:
            - name
        - $ref: '#/components/schemas/InvalidId'
    IotaBuildOptions:
      title: IOTA Build Options
      allOf:
        - type: object
          properties:
            feeOptions:
              $ref: '#/components/schemas/IotaFeeOptions'
            lockedAmount:
              $ref: '#/components/schemas/optionalString'
          required:
            - feeOptions
            - lockedAmount
        - $ref: '#/components/schemas/BaseIntent'
    IotaConsolidateIntent:
      title: IOTA Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
        - $ref: '#/components/schemas/IotaBuildOptions'
    IotaFeeOptions:
      title: IOTA Fee Options
      type: object
      properties:
        gasLimit:
          type: number
      required:
        - gasLimit
    IotaPaymentIntent:
      title: IOTA Payment Intent
      allOf:
        - type: object
          properties:
            unspents:
              $ref: '#/components/schemas/optionalStringArray'
          required:
            - unspents
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/IotaBuildOptions'
    Ip:
      type: string
      format: ipv4
      example: 127.0.0.1
    IpiFtsAccountResponseProps:
      title: IpiFtsAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - ipi-fts
        swiftCode:
          $ref: '#/components/schemas/SwiftCodeType'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - swiftCode
        - accountType
    IpiFtsBankAccountRequest:
      title: IpiFtsBankAccountRequest
      description: Request schema for creating an IPI-FTS bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - ipi-fts
              description: Must be 'ipi-fts' for IPI-FTS accounts
            swiftCode:
              type: string
              description: SWIFT/BIC code for the IPI-FTS account
          required:
            - type
            - swiftCode
        - $ref: '#/components/schemas/BankAccountRequest1'
    IpiFtsBankAccountResponse:
      title: IpiFtsBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/IpiFtsAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    IssuerOrderResponseBase:
      title: IssuerOrderResponseBase
      allOf:
        - type: object
          properties:
            createdAt:
              type: string
              description: Timestamp when the order was created
              example: '2025-04-04T09:25:48.216Z'
              format: date-time
              title: ISO Date String
            updatedAt:
              type: string
              description: Timestamp when the order was last updated
              example: '2025-04-04T09:55:09.136Z'
              format: date-time
              title: ISO Date String
            fromAssetId:
              type: string
              description: Source asset identifier (UUID)
              example: 08c1271e-b15d-4af8-8929-f75383903da4
              format: uuid
              title: uuid
            toAssetId:
              type: string
              description: Destination asset identifier (UUID)
              example: 49ff49ea-3355-4717-bbb0-5e8f5cae2202
              format: uuid
              title: uuid
            fromAsset:
              type: string
              description: Source asset token identifier
              example: eth:usd1
              minLength: 1
            fromAmount:
              type: string
              description: >-
                Amount to be transferred from source asset, specified in its
                lowest denomination.
              example: '500'
              minLength: 1
            toAsset:
              type: string
              description: Destination asset token identifier
              example: eth:usd1
              minLength: 1
            toAmount:
              type: string
              description: Amount to be received in destination asset
              example: '5000000'
              minLength: 1
            orderMethod:
              type: string
              enum:
                - issuer_direct
                - client_deposit
              description: >-
                How the order was initiated: issuer-direct or standard client
                deposit flow
              example: issuer_direct
          required:
            - createdAt
            - updatedAt
            - fromAssetId
            - toAssetId
            - fromAsset
            - fromAmount
            - toAsset
            - toAmount
        - $ref: '#/components/schemas/OrderResponseBase'
    IssuerOrderResponseType:
      allOf:
        - title: IssuerOrderResponseType
        - $ref: '#/components/schemas/StandardIssuerOrderResponse'
    IssuerOrderStatusFilter:
      title: IssuerOrderStatusFilter
      type: string
      enum:
        - created
        - confirmed_fiat_deposit
        - confirmed_token_deposit
        - initiated_burn_token_transfer
        - completed_burn_token_transfer
        - approved_mint
        - triggering_mint
        - triggering_burn
        - completed_burn
        - approved_client_disbursal
        - initiated_client_disbursal
        - fulfilled
        - failed_mint_initiation
        - failed_mint_transaction
        - failed_burn_transaction
        - failed_burn_token_transfer
        - failed_to_mint
        - failed_to_burn
        - failed_to_initiate_disbursal
        - failed_to_complete_disbursal
        - rejected
        - failed
        - expired
        - triggering_mint_request
        - completed_mint_request
        - triggering_mint_offer
        - completed_mint_offer
        - triggering_mint_accept
        - completed_mint_accept
        - triggering_mint_transfer
        - failed_to_mint_request
        - failed_to_mint_offer
        - failed_to_mint_accept
        - failed_to_mint_transfer
        - rejected_mint_transfer
        - cancelled_mint_transfer
        - expired_mint_transfer
        - triggering_burn_request
        - completed_burn_request
        - triggering_burn_accept
        - failed_to_burn_request
        - failed_to_burn_accept
        - pending
    IssuerOrdersResponse:
      title: IssuerOrdersResponse
      type: object
      properties:
        orders:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/StandardIssuerOrderResponse'
            description: Array of issuer orders
      required:
        - orders
    KavacosmosStakingRequest:
      title: KAVACOSMOS
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    KavacosmosStakingRequestPOSTBody:
      title: KAVACOSMOS stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    KavacosmosUnStakingRequestPOSTBody:
      title: KAVACOSMOS unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    Key:
      title: Multisig
      allOf:
        - $ref: '#/components/schemas/KeyCommon'
        - type: object
          properties:
            pub:
              $ref: '#/components/schemas/Pub'
      required:
        - id
        - type
    Key1:
      title: Key
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        pub:
          type: string
          description: Public part of a key pair
          example: >-
            xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH
        ethAddress:
          type: string
          description: Ethereum address associated with this key
        derivedFromParentWithSeed:
          type: string
        source:
          allOf:
            - $ref: '#/components/schemas/KeySourceC'
          example: user
        hsmType:
          type: string
          enum:
            - institutional
            - nitro
            - SDTrustNitro
            - frankfurtDETrustNitro
            - awsKms
          description: The type of HSM that owns this key.
          example: institutional
        isBitGo:
          type: boolean
          description: '"true" if this key is owned by BitGo'
          example: false
        isTrust:
          type: boolean
          description: '"true" if this key is owned by Trust'
          example: false
        encryptedPrv:
          type: string
          description: The encrypted private key
        aspKeyId:
          type: number
        coinSpecific:
          type: object
          additionalProperties: {}
        type:
          allOf:
            - $ref: '#/components/schemas/KeyTypeC'
          default: independent
          description: >-
            A value from a string enum denoting what kind of key this is.
            Defaults to

            “independent” indicating an on-chain key is requested. If set to
            “tss” this

            tells us that a “tss” key is requested.
          example: tss
        commonKeychain:
          type: string
          description: >-
            The commonKeychain for the key if this is a MPC key. This value is
            required

            to be set when the type is set to “tss” and when the source is
            either “user”

            or “backup”. Setting this indicates to BitGo that the owner of the
            key has

            received all key shares they needed for generating their key. This
            value is

            the concatenation of the common public key (32-byte) with the common
            chaincode

            (32-byte) as a hex string.
        verifiedVssProof:
          type: boolean
        commonPub:
          type: string
          description: >-
            The common public key. This value is required to be set for MPC keys
            when the

            source is either "user" or "backup". Setting this indicates to BitGo
            that the

            owner of the key has received all key shares they needed for
            generating their

            key.
        commonPubSig:
          type: string
        provider:
          type: string
        distributedCustody:
          type: string
        webauthnDevices:
          type: array
          items:
            type: object
            properties:
              authenticatorInfo:
                allOf:
                  - $ref: '#/components/schemas/AuthenticatorInfo'
                description: The information about the authenticator
              encryptedPrv:
                type: string
                description: The encrypted private key
              otpDeviceId:
                type: string
                description: The OTP device ID
              prfSalt:
                type: string
                description: The PRF salt
            required:
              - authenticatorInfo
              - encryptedPrv
              - otpDeviceId
              - prfSalt
        migratedFrom:
          type: string
      required:
        - id
        - pub
        - source
        - type
    KeyCommon:
      type: object
      properties:
        encryptedPrv:
          type: string
          description: The encrypted private key
        id:
          $ref: '#/components/schemas/Id'
        isBitGo:
          type: boolean
          description: True, if this key is owned by BitGo
          example: false
        source:
          $ref: '#/components/schemas/KeySource'
        type:
          $ref: '#/components/schemas/KeyType'
      required:
        - id
        - type
    KeyCreateCoinSpecific:
      type: object
      properties:
        lnbtc:
          $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc'
        tlnbtc:
          $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc'
    KeyCreateCoinSpecificLnbtc:
      type: object
      properties:
        purpose:
          allOf:
            - $ref: '#/components/schemas/KeyPurpose'
          description: The purpose of the key.
    KeyListItem:
      title: KeyListItem
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        encryptedPrv:
          type: string
          description: The encrypted private key
      required:
        - id
    KeyListResponse:
      title: KeyListResponse
      type: array
      items:
        type: object
        properties:
          walletId:
            type: string
          key:
            allOf:
              - $ref: '#/components/schemas/KeyListItem'
            description: >-
              Represents a key associated with a wallet.

              The key can either be a valid `Key` object or `null` if no key is
              associated.
        required:
          - walletId
    KeyPurpose:
      type: string
      enum:
        - userAuth
        - nodeAuth
      example: userAuth
    KeyShare:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The source of the key share.
        to:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The recipient of the key share.
        publicShare:
          type: string
          description: >-
            Public part of the share concatenated with chain code (64+64
            characters hex string).
        privateShare:
          type: string
          description: >-
            Private part of the share concatenated with chain code (64+64
            characters hex string). Depending on who the source and the
            recipient are, the share might be encrypted against the recipient's
            public key.
        privateShareProof:
          type: string
          description: >-
            The certificate of the private share, signed by the source of the
            key share.
        vssProof:
          type: string
          description: The verifiable shamir share verification value
      required:
        - from
        - to
        - publicShare
        - privateShare
    KeyShareResponse:
      allOf:
        - $ref: '#/components/schemas/KeyShare'
        - type: object
          properties:
            hsmSig:
              type: string
              description: >-
                openPGP ASCII armored public key format string. Can be used to
                ensure that the "u" value came from the HSM. This contains the
                HSM signature/certification (signed by bitgo GPG key pair) of
                the public form of the "u" value and notation packets that
                indicate the commonPublicKey and the key ids of the two GPG keys
                used to share wrapping (userGPGPublicKey and
                backupGPGPublicKey).
      required:
        - hsmSig
    KeyShareSource:
      type: string
      enum:
        - user
        - backup
        - bitgo
      example: user
    KeySource:
      type: string
      enum:
        - backup
        - bitgo
        - cold
        - user
      example: user
    KeySourceC:
      title: KeySourceC
      type: string
      enum:
        - user
        - cold
        - bitgo
        - backup
    KeyTSS:
      title: MPC
      allOf:
        - $ref: '#/components/schemas/KeyCommon'
        - type: object
          properties:
            commonKeychain:
              type: string
              description: >-
                The commonKeychain for the key if this is a MPC key. This value
                is required to be set when the type is set to “tss” and when the
                source is either “user” or “backup”. Setting this indicates to
                BitGo that the owner of the key has received all key shares they
                needed for generating their key. This value is the concatenation
                of the common public key (32-byte) with the common chaincode
                (32-byte) as a hex string.
            commonPub:
              type: string
              description: >-
                The common public key. This value is required to be set for MPC
                keys when the source is either "user" or "backup". Setting this
                indicates to BitGo that the owner of the key has received all
                key shares they needed for generating their key.
      required:
        - id
        - type
        - source
    KeyTSSCreated:
      title: MPC key
      description: >-
        This schema contains KeyTSS attributes and several ephemeral fileds
        which are only available during the key creation since they are not
        stored.
      allOf:
        - $ref: '#/components/schemas/KeyTSS'
        - type: object
          properties:
            commonKeychainSig:
              type: string
              description: >-
                openPGP ASCII armored pubkey format string. This contains the
                HSM signature/certification (signed by BitGo MPC GPG key pair)
                of the commonKeychain. This is necessary for verification
                purposes to ensure that the commonKeychain value came from
                BitGo's HSM. Used for full custody/OVC operations.
            commonPublicKeySig:
              type: string
              description: >-
                OpenPGP ASCII pubkey armoured string containing HSM signature
                certification. Allows to ensure that commonPublicKey came from
                the HSM
            keyShares:
              type: array
              items:
                $ref: '#/components/schemas/KeyShareResponse'
            walletHSMGPGPublicKeySigs:
              type: string
              description: >-
                GPG ASCII armored public key format that consists of HSM
                signature/certification and GPG notation data appended to the
                key signature subpackets
      required:
        - id
        - type
        - source
    KeyType:
      type: string
      enum:
        - tss
        - independent
      default: independent
      description: >-
        A value from a string enum denoting what kind of key this is. Defaults
        to “independent” indicating an on-chain key is requested. If set to
        “tss” this tells us that a “tss” key is requested.
      example: tss
    KeyTypeC:
      title: KeyTypeC
      type: string
      enum:
        - tss
        - independent
    Keys:
      type: array
      items:
        $ref: '#/components/schemas/Id'
      example:
        - 585951a5df8380e0e304a553
        - 585951a5df8380e0e30d645c
        - 585951a5df8380e0e30b6147
    KeysResponse:
      type: object
      properties:
        keys:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/Key'
              - $ref: '#/components/schemas/KeyTSS'
      required:
        - keys
    Kyc:
      title: Kyc
      type: object
      properties:
        available:
          type: boolean
        required:
          type: boolean
        data:
          $ref: '#/components/schemas/KycData'
        documents:
          $ref: '#/components/schemas/KycDocuments'
        failureCount:
          type: number
        fullyRequired:
          type: boolean
        hasVideoID:
          type: boolean
        overallState:
          $ref: '#/components/schemas/UserKycState1'
        passport:
          $ref: '#/components/schemas/KycPassport'
        residency:
          $ref: '#/components/schemas/KycResidency'
        ongoingScreening:
          $ref: '#/components/schemas/KycOngoingScreening'
        isScreeningRequired:
          type: boolean
        documentsWaived:
          type: boolean
        unverifiedPaygoUser:
          type: boolean
        enterpriseVideoCallInfo:
          type: array
          items:
            type: object
            properties:
              enterpriseId:
                type: string
              videoCallId:
                type: string
            required:
              - enterpriseId
              - videoCallId
        enhancedVerificationLevel:
          type: string
          enum:
            - L0
            - L1
            - L2
            - L3
      required:
        - available
        - required
    KycData:
      title: KycData
      type: object
      properties:
        state:
          $ref: '#/components/schemas/UserKycState1'
        fields:
          nullable: true
          type: object
          additionalProperties: {}
      required:
        - state
    KycDocuments:
      title: KycDocuments
      type: object
      properties:
        state:
          $ref: '#/components/schemas/UserKycState1'
      required:
        - state
    KycIdentityStatus:
      title: KycIdentityStatus
      type: string
      description: >-
        The status of the KYC identity:

        `initiating`, `awaiting document upload`, `input error`, `ssn error`,
        `taxid error`, `in review`, `incomplete verifications`, `awaiting
        signature`, `records uploaded`, `approved`, `declined`
      minLength: 1
    KycOngoingScreening:
      title: KycOngoingScreening
      type: object
      properties:
        state:
          type: string
          enum:
            - approved
            - rejected
      required:
        - state
    KycPassport:
      title: KycPassport
      type: object
      properties:
        required:
          type: boolean
        state:
          $ref: '#/components/schemas/UserKycState1'
      required:
        - required
    KycResidency:
      title: KycResidency
      type: object
      properties:
        state:
          $ref: '#/components/schemas/UserKycState1'
      required:
        - state
    KycState:
      title: KycState
      type: string
      enum:
        - unverified
        - approved
        - rejected
        - pending
        - qrscanned
        - inreview
        - flagged
        - flagged_retry_allowed
    KycStateCounts:
      title: KycStateCounts
      type: object
      description: >-
        Count of enterprises per enterprise KYC state. All known states are
        present; absent states default to 0.
      properties:
        unverified:
          type: number
        approved:
          type: number
        rejected:
          type: number
        pending:
          type: number
      required:
        - unverified
        - approved
        - rejected
        - pending
    LegalIdentifiers:
      title: LegalIdentifiers
      type: object
      properties:
        legalPersonNameIdentifierType:
          $ref: '#/components/schemas/LegalPersonNameIdentifierType'
        legalPersonName:
          type: string
      required:
        - legalPersonNameIdentifierType
    LegalPersonNameIdentifierType:
      title: LegalPersonNameIdentifierType
      type: string
      enum:
        - LEGL
    LessThanOrEqualToValue:
      title: Less than or equal to
      type: object
      description: The less than or equal to (<=) operator.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - <=
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Less than or equal to
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: >-
            The transfer amount must be less than or equal to the given limit
            for the condition to trigger
    LessThanValue:
      title: Less than
      type: object
      description: The less than (>) operator.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - <
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Less than
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: >-
            The transfer amount must be less than the given limit for the
            condition to trigger
    Level1OrderBookSnapshot:
      required:
        - askPrice
        - askSize
        - bidPrice
        - bidSize
        - product
        - time
      type: object
      properties:
        time:
          type: string
          format: date-time
          description: The timestamp when the order book snapshot was generated
          example: '2025-11-27T18:48:51.383577451Z'
        product:
          type: string
          description: Product name
          example: BTC-USD
        bidPrice:
          type: string
          format: decimal
          description: Highest bid price for base asset in quote currency
          example: '7090.96'
        bidSize:
          type: string
          format: decimal
          description: Quantity of base asset at highest bid price
          example: '1.253433'
        askPrice:
          type: string
          format: decimal
          description: Lowest ask price for base asset in quote currency
          example: '7090.97'
        askSize:
          type: string
          format: decimal
          description: Quantity of base asset at lowest ask price
          example: '1.2'
      example:
        time: '2025-11-27T18:48:51.383577451Z'
        product: BTC-USD
        bidPrice: '7090.96'
        bidSize: '1.253433'
        askPrice: '7090.97'
        askSize: '1.2'
    Level2OrderBookSnapshot:
      required:
        - asks
        - bids
        - product
        - time
      type: object
      properties:
        time:
          type: string
          format: date-time
          description: The timestamp when the order book snapshot was generated
          example: '2025-11-27T18:48:51.383577451Z'
        product:
          type: string
          description: Product name
          example: BTC-USD
        bids:
          type: array
          description: >
            An array of bid price levels. Each level is an array in the format
            [price, size], ordered from highest price to lowest price.

            `price` is the bid price in the quote currency and `size` is the
            quantity of the base asset at that price level.

            With `includeCumulative=true`, each level is `[price, size,
            cumulativeSize]` where `cumulativeSize` is the running total of
            `size` from the top of that side through the level.
          items:
            type: array
            items:
              type: string
              format: decimal
        asks:
          type: array
          description: >
            An array of ask price levels. Each level is an array in the format
            [price, size], ordered from lowest price to highest price.

            `price` is the ask price in the quote currency and `size` is the
            quantity of the base asset at that price level.

            With `includeCumulative=true`, each level is `[price, size,
            cumulativeSize]` where `cumulativeSize` is the running total of
            `size` from the top of that side through the level.
          items:
            type: array
            items:
              type: string
              format: decimal
      example:
        time: '2020-01-01T09:35:26.465Z'
        product: TBTC-TUSD*
        bids:
          - - '7001.10'
            - '1.5084'
        asks:
          - - '7002.55'
            - '2.7524'
    LightningBackupResponse:
      type: object
      properties:
        chanPoints:
          type: array
          items:
            $ref: '#/components/schemas/LightningChanPoints'
          description: List of channel points
        multiChanBackup:
          type: string
          description: Multi-channel backup
    LightningChanPoints:
      type: object
      properties:
        fundingTxid:
          type: string
          description: Funding transaction ID
        outputIndex:
          type: integer
          description: Output index
    LightningCoinSpecificUpdateData:
      title: LightningCoinSpecificUpdateData
      type: object
      properties:
        signature:
          type: string
      required:
        - signature
    LightningCoinWallet:
      title: Lightning Coin Wallet
      type: object
      properties:
        keys:
          type: array
          items:
            type: string
      required:
        - keys
    LightningInvoice:
      title: LightningInvoice
      type: object
      properties:
        memo:
          type: string
          description: A memo or description for the invoice
          example: Payment for the coffee
        amtPaidMsat:
          type: string
          description: >-
            The number of millisats actually paid to this invoice, this may be
            greater

            than the amount requested by the invoice, since lightning allows
            overpaying

            (but not underpaying) invoices.
          format: number
        invoice:
          type: string
          description: The BOLT \#11 encoded invoice
          example: >-
            lnbc500n1p3zv5vkpp5x0thcaz8wep54clc2xt5895azjdzmthyskzzh9yslggy74qtvl6sdpdg3hkuct5d9hkugrxdaezqjn0dphk2fmnypkk2mtsdahkccqzpgxqyz5vqsp5v80q4vq4pwakq2l0hcqgtelgajsymv4ud4jdcrqtnzhvet55qlus9qyyssquqh2wl2m866qs5n72c5vg6wmqx9vzwhs5ypualq4mcu76h2tdkcq3jtjwtggfff7xwtdqxlnwqk8cxpzryjghrmmq3syraswp9vjr7cqry9l96
        paymentHash:
          type: string
          description: The payment hash of the invoice
          example: 63d9ce82e09d16761a85116ed8b65407db4fb22f85d03573de09c480f2c6d175
        valueMsat:
          type: string
          description: The value of the invoice in millisatoshis
          example: '50000'
          format: number
        expiresAt:
          type: string
          description: ISO-8601 string representing when the invoice will expire
          example: '2022-04-01T18:46:24.677Z'
          format: date-time
          title: ISO Date String
        status:
          type: string
          enum:
            - open
            - settled
            - canceled
          description: The status of the invoice
        walletId:
          allOf:
            - $ref: '#/components/schemas/WalletIdString'
          description: The wallet to which this invoice belongs
        createdAt:
          type: string
          description: ISO-8601 string representing when the invoice was created
          example: '2022-04-01T18:46:24.677Z'
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: ISO-8601 string representing when the invoice was updated
          example: '2022-04-01T18:46:24.677Z'
          format: date-time
          title: ISO Date String
      required:
        - invoice
        - paymentHash
        - valueMsat
        - expiresAt
        - status
        - walletId
        - createdAt
        - updatedAt
    LightningOnchainRequest:
      title: LightningOnchainRequest
      type: object
      properties:
        recipients:
          type: array
          items:
            type: object
            properties:
              amountSat:
                type: string
                format: number
              address:
                type: string
            required:
              - amountSat
              - address
        satsPerVbyte:
          type: string
          format: number
        numBlocks:
          type: number
      required:
        - recipients
    LightningPaymentIntent:
      title: Lightning Payment Intent
      oneOf:
        - allOf:
            - type: object
              properties:
                intentType:
                  type: string
                  enum:
                    - payment
              required:
                - intentType
            - $ref: '#/components/schemas/BaseIntent'
            - $ref: '#/components/schemas/LightningPaymentRequestWithSig'
        - allOf:
            - type: object
              properties:
                intentType:
                  type: string
                  enum:
                    - payment
                onchainRequest:
                  $ref: '#/components/schemas/LightningOnchainRequest'
              required:
                - intentType
                - onchainRequest
            - $ref: '#/components/schemas/BaseIntent'
    LightningPaymentRequest:
      title: LightningPaymentRequest
      type: object
      properties:
        invoice:
          type: string
        amountMsat:
          type: string
          format: number
        feeLimitMsat:
          type: string
          format: number
        feeLimitRatio:
          type: number
      required:
        - invoice
    LightningPaymentRequestWithSig:
      title: LightningPaymentRequestWithSig
      type: object
      properties:
        signedRequest:
          $ref: '#/components/schemas/LightningPaymentRequest'
        signature:
          type: string
      required:
        - signedRequest
        - signature
    LightningWalletAddress:
      title: LightningWalletAddress
      allOf:
        - type: object
          properties:
            coin:
              $ref: '#/components/schemas/CoinString'
            wallet:
              type: string
          required:
            - coin
            - wallet
        - $ref: '#/components/schemas/BaseWalletAddress'
    LimitPrice:
      type: string
      format: decimal
      description: >
        The limit price. It always refers to the quote currency.

        - It's maximum precision is determined by the product's
        `quoteDisplayPrecision` field, which can be fetched from the list
        products endpoint.
      example: '10005.00'
    LimitRuleCondition:
      title: LimitRuleCondition
      type: object
      properties:
        amountString:
          type: string
          example: '2000000'
          pattern: ^-?\d+$
        timeWindow:
          type: number
          description: Time window in seconds for a velocity limit, between 1 and 30 days
          minimum: 0
          maximum: 2678400
        groupTags:
          type: array
          items:
            type: string
        startDate:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - amountString
        - timeWindow
    ListAccessTokensResponse:
      title: ListAccessTokensResponse
      type: object
      properties:
        accessTokens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              isExtensible:
                type: boolean
              adminScope:
                type: string
                enum:
                  - read
                  - full
              bitgoAdminPermissions:
                type: array
                items:
                  type: string
              client:
                type: string
              created:
                type: string
                format: date-time
                title: ISO Date String
              enterprise:
                type: string
              expires:
                type: string
                format: date-time
                title: ISO Date String
              extensionAddress:
                type: string
              ip:
                type: string
                description: IP address of the client that requested this access token
                example: 127.0.0.1
                format: ipv4
              ipRestrict:
                type: array
                items:
                  type: string
                  description: >-
                    IP addresses or CIDR block of clients that are allowed to
                    use this token
              label:
                type: string
              origin:
                type: string
                description: BitGo environment that issued this token
                example: test.bitgo.com
              token:
                type: string
              scope:
                type: array
                example:
                  - crypto_compare
                  - user_manage
                  - openid
                  - profile
                  - wallet_create
                  - wallet_manage_all
                  - wallet_approve_all
                  - wallet_spend_all
                  - wallet_edit_all
                  - wallet_view_all
                items:
                  type: string
                  description: Session permissions
              unlock:
                allOf:
                  - type: object
                    properties:
                      spendingLimits:
                        type: object
                        additionalProperties:
                          type: object
                          properties:
                            txCount:
                              type: number
                              description: The transaction count limit for the coin
                            txValue:
                              type: number
                              description: The transaction value limit for the coin
                            txValueLimit:
                              type: number
                              description: The maximum transaction value limit for the coin
                      allErc20TokensLimit:
                        $ref: '#/components/schemas/AllErc20TokenLimit'
                  - $ref: '#/components/schemas/Unlock'
              user:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              oauth:
                type: object
                properties:
                  oauthRequired:
                    type: boolean
                  expires:
                    type: string
                    format: date-time
                    title: ISO Date String
              isMobileAccessToken:
                type: boolean
                description: >-
                  Flag indicating if this token was created via mobile session
                  endpoint
            required:
              - id
              - isExtensible
        nextBatchPrevId:
          type: string
      required:
        - accessTokens
    ListAuditLogsResponse:
      title: ListAuditLogsResponse
      type: object
      properties:
        logs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              type:
                $ref: '#/components/schemas/AuditLogType1'
              isBitGoAdminAction:
                type: boolean
                description: Indicates whether the action was performed by a BitGo admin
                example: false
              ip:
                type: string
                description: The client IP that caused the AuditLog entry to be written
                example: 127.0.0.1
                format: ipv4
              user:
                type: string
                description: The user that caused the AuditLog entry to be written
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              requestId:
                type: string
              walletId:
                $ref: '#/components/schemas/WalletIdString'
              enterpriseId:
                $ref: '#/components/schemas/EnterpriseIdString'
              organizationId:
                $ref: '#/components/schemas/OrganizationIdString'
              coin:
                $ref: '#/components/schemas/CoinString'
              data:
                description: Properties that apply to the given audit log type
              date:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - type
              - isBitGoAdminAction
            description: The audit logs
        coin:
          $ref: '#/components/schemas/CoinString'
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object in the previous batch. To get the next batch of results,
            pass this value via the 'prevId' query parameter.
          example: 59cd72485007a239fb00282ed480da1f
      required:
        - logs
    ListEnterpriseWebhooksResponseScoped:
      title: ListEnterpriseWebhooksResponseScoped
      type: object
      description: Scoped list response for enterprise webhooks.
      properties:
        webhooks:
          type: array
          items:
            type: object
            description: >-
              Webhook response scoped to enterprise webhook types — `coin` is
              optional.
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              created:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              url:
                type: string
                example: https://your.server.com/webhook
                format: uri
              version:
                type: number
                description: 2 for coins running on API v2.
                example: 2
              scope:
                $ref: '#/components/schemas/WebhookScope'
              state:
                $ref: '#/components/schemas/WebhookState'
              successiveFailedAttempts:
                type: number
                example: 0
              listenToFailureStates:
                type: boolean
                description: Whether or not to listen to failed transactions on chain.
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              label:
                type: string
                description: Label of the new webhook.
              walletId:
                type: string
              enterpriseId:
                type: string
              organizationId:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              userId:
                type: string
              type:
                allOf:
                  - $ref: '#/components/schemas/EnterpriseWebhookType'
                description: Event type to listen to.
              numConfirmations:
                type: number
                example: 6
              lastAttempt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              failingSince:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              allToken:
                type: boolean
              txRequestStates:
                type: array
                items:
                  type: string
                  enum:
                    - pendingApproval
                    - canceled
                    - rejected
                    - initialized
                    - pendingDelivery
                    - delivered
                    - pendingUserSignature
                    - pendingUserCommitment
                    - pendingUserRShare
                    - pendingUserGShare
                    - readyToSend
                    - signed
                    - failed
                  description: >-
                    If present, only transaction request state changes from the
                    list will trigger notifications.

                    If not present, all transaction request state changes will
                    trigger notifications.
              txRequestTransactionStates:
                type: array
                items:
                  type: string
                  enum:
                    - initialized
                    - pendingSignature
                    - eddsaPendingCommitment
                    - eddsaPendingRShare
                    - eddsaPendingGShare
                    - ecdsaMPCv2Round1
                    - ecdsaMPCv2Round2
                    - ecdsaMPCv2Round3
                    - eddsaMPCv2Round1
                    - eddsaMPCv2Round2
                    - eddsaMPCv2Round3
                    - readyToCombineShares
                    - signed
                    - held
                    - delivered
                    - invalidSignature
                    - rejected
                  description: >-
                    If present, only transaction request transaction state
                    changes from the list will trigger

                    notifications. If not present, all transaction request
                    transaction state changes will

                    trigger notifications.
            required:
              - id
              - created
              - url
              - version
              - scope
              - state
              - successiveFailedAttempts
              - listenToFailureStates
        nextBatchPrevId:
          type: string
      required:
        - webhooks
    ListOrganizationWebhookNotificationResponseC:
      title: ListOrganizationWebhookNotificationResponseC
      type: object
      properties:
        webhookNotifications:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              type:
                allOf:
                  - $ref: '#/components/schemas/WebhookType'
                description: Event type to listen to.
              wallet:
                type: string
                example: cold
              url:
                type: string
              hash:
                type: string
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              coinChain:
                type: string
              transfer:
                type: string
                example: receive
              state:
                allOf:
                  - $ref: '#/components/schemas/WebhookNotificationState'
                description: >-
                  If "failed", webhook notification failed to connect with the
                  target URL. If "new", webhook notification was newly
                  generated, in response to an event. If "pending", webhook
                  notification is awaiting processing by the webhook worker. If
                  "processed", webhook notification successfully sent to target
                  URL. If "unconfirmed", webhook notification is awaiting
                  confirmation on the blockchain.
              simulation:
                type: boolean
              retries:
                type: number
              webhook:
                type: string
              updatedAt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              nextAttempt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              version:
                type: number
                example: 2
              allowBlockedHosts:
                type: boolean
              heightToConfirm:
                type: number
              payload:
                type: string
              response:
                type: object
                properties:
                  code:
                    oneOf:
                      - type: number
                      - type: string
                  type:
                    type: string
                  body:
                    type: string
                  error:
                    type: string
            required:
              - id
            description: The list of notifications
        nextBatchPrevId:
          type: string
          description: >-
            This is the ID from the last item in the current batch.

            Providing this value as the prevId in the next request will return
            the next batch of notifications.
          minLength: 1
      required:
        - webhookNotifications
    ListOrganizationWebhooksResponseScoped:
      title: ListOrganizationWebhooksResponseScoped
      type: object
      description: Scoped list response for organization webhooks.
      properties:
        webhooks:
          type: array
          items:
            type: object
            description: >-
              Webhook response scoped to organization webhook types — `coin` is
              optional.
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              created:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              url:
                type: string
                example: https://your.server.com/webhook
                format: uri
              version:
                type: number
                description: 2 for coins running on API v2.
                example: 2
              scope:
                $ref: '#/components/schemas/WebhookScope'
              state:
                $ref: '#/components/schemas/WebhookState'
              successiveFailedAttempts:
                type: number
                example: 0
              listenToFailureStates:
                type: boolean
                description: Whether or not to listen to failed transactions on chain.
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              label:
                type: string
                description: Label of the new webhook.
              walletId:
                type: string
              enterpriseId:
                type: string
              organizationId:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              userId:
                type: string
              type:
                allOf:
                  - $ref: '#/components/schemas/OrganizationWebhookType'
                description: Event type to listen to.
              numConfirmations:
                type: number
                example: 6
              lastAttempt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              failingSince:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              allToken:
                type: boolean
              txRequestStates:
                type: array
                items:
                  type: string
                  enum:
                    - pendingApproval
                    - canceled
                    - rejected
                    - initialized
                    - pendingDelivery
                    - delivered
                    - pendingUserSignature
                    - pendingUserCommitment
                    - pendingUserRShare
                    - pendingUserGShare
                    - readyToSend
                    - signed
                    - failed
                  description: >-
                    If present, only transaction request state changes from the
                    list will trigger notifications.

                    If not present, all transaction request state changes will
                    trigger notifications.
              txRequestTransactionStates:
                type: array
                items:
                  type: string
                  enum:
                    - initialized
                    - pendingSignature
                    - eddsaPendingCommitment
                    - eddsaPendingRShare
                    - eddsaPendingGShare
                    - ecdsaMPCv2Round1
                    - ecdsaMPCv2Round2
                    - ecdsaMPCv2Round3
                    - eddsaMPCv2Round1
                    - eddsaMPCv2Round2
                    - eddsaMPCv2Round3
                    - readyToCombineShares
                    - signed
                    - held
                    - delivered
                    - invalidSignature
                    - rejected
                  description: >-
                    If present, only transaction request transaction state
                    changes from the list will trigger

                    notifications. If not present, all transaction request
                    transaction state changes will

                    trigger notifications.
            required:
              - id
              - created
              - url
              - version
              - scope
              - state
              - successiveFailedAttempts
              - listenToFailureStates
        nextBatchPrevId:
          type: string
      required:
        - webhooks
    ListPendingApprovalsCountByEnterpriseResponse:
      title: ListPendingApprovalsCountByEnterpriseResponse
      type: object
      properties:
        enterprises:
          $ref: '#/components/schemas/PendingApprovalsCountSchema'
        organizations:
          type: object
          additionalProperties:
            type: object
            properties:
              pendingApprovalsCount:
                type: number
                description: The number of pending approvals
            required:
              - pendingApprovalsCount
      required:
        - enterprises
    ListReportsJSON:
      title: ListReportsJSON
      type: object
      properties:
        reports:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/ReportParams'
              - $ref: '#/components/schemas/GenericReportParamsJSON'
        nextBatchPrevId:
          type: string
          minLength: 1
      required:
        - reports
    ListRuleEntryType:
      type: string
      enum:
        - address
        - walletId
        - enterpriseId
        - linkAccountId
      description: the kind of resource a list rule entry refers to
    ListTxRequestAwaitingSignatureForWalletResponse:
      title: ListTxRequestAwaitingSignatureForWalletResponse
      type: object
      properties:
        txRequests:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  transactions:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          $ref: '#/components/schemas/TransactionState'
                        unsignedTx:
                          $ref: '#/components/schemas/UnsignedTransaction'
                        signatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                        commitmentShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - commitment
                                    description: The type of the commitment share
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                        txHash:
                          type: string
                        updatedDate:
                          type: string
                          format: date-time
                          title: ISO Date String
                        createdDate:
                          type: string
                          format: date-time
                          title: ISO Date String
                      required:
                        - state
                        - unsignedTx
                      description: The transactions associated with the transaction request
                  messages:
                    type: array
                    items:
                      type: object
                      description: The messages associated with the transaction request
                      properties:
                        state:
                          allOf:
                            - $ref: '#/components/schemas/TransactionState'
                          description: The current state of the message
                        signatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                            description: Signature shares for the message
                        privateSignatureShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  privateShareProof:
                                    type: string
                                    description: The private share proof
                                  publicShare:
                                    type: string
                                    description: The public share
                                  vssProof:
                                    type: string
                                    description: The VSS proof of the signature share
                              - $ref: >-
                                  #/components/schemas/SignatureShareWithoutVssProof
                            description: Private signature shares for the message
                        commitmentShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - commitment
                                    description: The type of the commitment share
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                            description: Commitment shares for the message (used for EdDSA)
                        encryptedShares:
                          type: array
                          items:
                            allOf:
                              - type: object
                                properties:
                                  type:
                                    $ref: '#/components/schemas/ShareType'
                                required:
                                  - type
                              - $ref: '#/components/schemas/BaseShare'
                            description: Encrypted shares for the message
                        txHash:
                          type: string
                          description: Transaction hash
                        updatedDate:
                          type: string
                          description: Date when the message was last updated
                          format: date-time
                          title: ISO Date String
                        createdDate:
                          type: string
                          description: Date when the message was created
                          format: date-time
                          title: ISO Date String
                        messageRaw:
                          type: string
                          description: The raw message to be signed
                        messageEncoded:
                          type: string
                          description: The encoded message
                        messageBroadcastable:
                          type: string
                          description: The broadcastable message
                        messageStandardType:
                          type: string
                          description: The encoded message
                        derivationPath:
                          type: string
                          description: Derivation path for the message
                        combineSigShare:
                          type: string
                          description: Combined signature share
                        coin:
                          type: string
                          description: Coin type for the message
                        bitgoPaillierChallenge:
                          description: BitGo's Paillier challenge for ECDSA
                        encryptedChallenge:
                          type: string
                          description: >-
                            BitGo's encrypted challenge for ECDSA with Range
                            Proofs
                      required:
                        - state
                        - messageRaw
              - $ref: '#/components/schemas/TransactionRequestBase'
        bitgoRangeProofChallenge:
          allOf:
            - type: object
              properties:
                ntildeProof:
                  $ref: '#/components/schemas/NtildeProof'
              required:
                - ntildeProof
            - $ref: '#/components/schemas/Challenge'
        totalCount:
          type: number
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object in the previous batch. To get the next batch of results,
            pass this value via the "prevId" query parameter.
          example: 585951a5df8380e0e3063e9f
          format: uuid
      required:
        - txRequests
    ListUserOrganizationResponse:
      title: ListUserOrganizationResponse
      type: object
      properties:
        organizations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: The organization ID
              name:
                type: string
                description: The organization name
              enterpriseCount:
                type: number
                description: The number of enterprises in the organization
            required:
              - id
              - name
              - enterpriseCount
      required:
        - organizations
    ListWalletShareRequestResponse:
      title: ListWalletShareRequestResponse
      type: object
      properties:
        walletShareRequests:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              walletId:
                $ref: '#/components/schemas/WalletIdString'
              walletLabel:
                type: string
              coin:
                type: string
              userId:
                type: string
              userEmail:
                type: string
              userFullName:
                type: string
              permissions:
                type: array
                items:
                  type: string
                  enum:
                    - spend
              created:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - walletId
              - walletLabel
              - coin
              - userId
              - userEmail
              - userFullName
              - permissions
              - created
      required:
        - walletShareRequests
    ListWalletSharesCountByEnterpriseResponse:
      title: ListWalletSharesCountByEnterpriseResponse
      type: object
      properties:
        enterprises:
          $ref: '#/components/schemas/WalletSharesCountSchema'
      required:
        - enterprises
    ListWalletSharesResponse:
      type: object
      properties:
        incoming:
          type: array
          items:
            $ref: '#/components/schemas/WalletShare1'
        outgoing:
          type: array
          items:
            $ref: '#/components/schemas/WalletShare1'
    ListWebhookKeysResponse:
      type: object
      description: Paginated list of webhook signing keys for an enterprise.
      required:
        - keys
        - total
        - limit
        - prevId
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/WebhookKeyInfo'
        total:
          type: integer
          format: int64
          description: Total number of keys matching the query.
          example: 1
        limit:
          type: integer
          description: Maximum results per page.
          example: 50
        prevId:
          type: integer
          description: The pagination offset used in this request.
          example: 0
    LivenessVerificationFromEnterpriseAdminActionRequest:
      title: Liveness Verification From Enterprise Admins
      type: object
      description: Require liveness verification from enterprise admins.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.livenessVerificationFromEnterpriseAdmins
          example: approvals.bitgo.livenessVerificationFromEnterpriseAdmins
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - minRequired
          properties:
            minRequired:
              type: number
              description: Minimum required number of approvers
              example: 1
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. false
                by default.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    LivenessVerificationFromEnterpriseUsersActionRequest:
      title: Liveness Verification From Specific Users
      type: object
      description: Require liveness verification from specific users.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.livenessVerificationFromUsers
          example: approvals.bitgo.livenessVerificationFromUsers
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - userIds
            - minRequired
          properties:
            userIds:
              type: array
              items:
                type: string
                example: 63cf101298470200073bbae71add80d5
              description: List of enterprise users for approval
              example:
                - 63cf101298470200073bbae71add80d5
            minRequired:
              type: number
              description: Minimum required number of approvers
              example: 1
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. false
                by default.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    LivenessVerificationFromRequestorActionRequest:
      title: Liveness Verification From Requestor
      type: object
      description: Require liveness verification from the requestor.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.livenessVerificationFromRequestor
          example: approvals.bitgo.livenessVerificationFromRequestor
        parameters:
          type: object
          description: Required data needed to configure the Action.
          properties:
            minRequired:
              type: number
              description: Minimum required number of approvers
              example: 1
            initiatorIsAllowedToApprove:
              type: boolean
              description: >-
                Whether the initiator is allowed to approve this action. false
                by default.
              example: false
              default: false
        operator:
          $ref: '#/components/schemas/OperatorType'
    LivenessVerificationParameter:
      title: LivenessVerificationParameter
      type: string
      enum:
        - transactionInitiator
        - walletAdmins
        - videoIdUsers
        - enterpriseAdmin
    LockedSession:
      type: object
      properties:
        created:
          type: string
          format: date-time
        expires:
          type: string
          format: date-time
        id:
          $ref: '#/components/schemas/Id'
        ip:
          allOf:
            - $ref: '#/components/schemas/Ip'
          description: IP address of the client that requested this access token
        ipRestrict:
          type: array
          items:
            type: string
            format: ipv4
          description: >-
            IP addresses or CIDR blockof clients that are allowed to use this
            token
        origin:
          type: string
          example: test.bitgo.com
          description: >-
            BitGo environment that issued this token.  The token is only valid
            in this environment.
        scope:
          allOf:
            - $ref: '#/components/schemas/Scope'
          description: Session permissions
        user:
          $ref: '#/components/schemas/Id'
      required:
        - created
        - expires
        - id
        - origin
        - scope
        - user
    LoginResponse:
      title: LoginResponse
      type: object
      properties:
        access_token:
          type: string
          example: 9b72c68ef394f5146f0f3efc1feafb7a971752cb00e79fafcfd8c1d2db83639c
        derivationPath:
          type: string
        encryptedECDHXprv:
          type: string
        encryptedToken:
          type: string
        expires_at:
          type: number
          description: Unix timestamp
          example: 1534201288
        expires_in:
          type: number
        noECDHKeychain:
          type: boolean
        scope:
          type: array
          example:
            - crypto_compare
            - user_manage
            - openid
            - profile
            - wallet_create
            - wallet_manage_all
            - wallet_approve_all
            - wallet_spend_all
            - wallet_edit_all
            - wallet_view_all
          items:
            type: string
        token_id:
          type: string
          description: >-
            The public ID of the access token — used as the bearer token for v4
            auth
        token_type:
          type: string
        grant_type:
          allOf:
            - $ref: '#/components/schemas/GrantTypes'
          description: Represents the login method that was used
        user:
          $ref: '#/components/schemas/User1'
        warning:
          type: string
        sourceVerificationType:
          type: string
          description: How the request source was verified during login.
          example: trust-my-device
        twoFactorMethod:
          type: string
          description: The two-factor authentication method used during login.
          example: totp
        ssoProvider:
          type: string
          description: The SSO provider used for login, when applicable.
          example: google
      required:
        - expires_at
        - expires_in
        - scope
        - token_type
        - grant_type
        - user
    MarginGetNetOpenPositionsSnapshotResponse:
      type: object
      required:
        - netOpenPositions
      properties:
        netOpenPositions:
          type: array
          items:
            $ref: '#/components/schemas/MarginNetOpenPositionSnapshot'
    MarginGetPositionsActivityResponse:
      type: object
      required:
        - positionsActivity
      properties:
        positionsActivity:
          type: array
          items:
            $ref: '#/components/schemas/PositionActivityEntry'
    MarginNetOpenPosition:
      type: object
      required:
        - currency
        - enterpriseId
        - netOpenPosition
        - netOpenPositionValue
        - shortMarginPositionNotionalLimit
        - longMarginPositionNotionalLimit
        - unrealizedPnL
        - lastModified
      properties:
        currency:
          type: string
          description: Symbol of the instrument (ex. BTC)
        enterpriseId:
          type: string
          format: uuid
          description: Enterprise ID for the margin NOP limit
        netOpenPosition:
          type: string
          pattern: ^-?[0-9]+(\.[0-9]+)?$
          example: '-2.3242'
          description: >-
            The current net open position for the NOP instrument in question
            (ex. -10 BTC). Negative means a short position and positive means a
            long position.
        netOpenPositionValue:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                The net open position denoted in notional amount (ex 600,000
                USD)
        shortMarginPositionNotionalLimit:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                The maximum open margin position that can be short in terms of
                the notional instrument (ex. 10,000 USD) in absolute notional
                terms, as the NOP is signed
        longMarginPositionNotionalLimit:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                The maximum open margin position that can be long in terms of
                the notional instrument (ex. 10,000 USD)
        unrealizedPnL:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                The unrealized profit and loss. Difference between the NOP value
                at the time of creation and the NOP value as of now.
        lastModified:
          type: string
          format: date-time
          description: >-
            ISO format datetime for date and time the record was last updated in
            the database
      example:
        currency: BTC
        enterpriseId: 63925f940c259a00061853808ffea830
        netOpenPosition: '-2.3242'
        netOpenPositionValue:
          quantity: '-124017.22'
          currency: USD
        shortMarginPositionNotionalLimit:
          quantity: '1000000.00'
          currency: USD
        longMarginPositionNotionalLimit:
          quantity: '1000000.00'
          currency: USD
        unrealizedPnL:
          quantity: '1200.00'
          currency: USD
        lastModified: '2024-07-29T21:13:09.000Z'
    MarginNetOpenPositionLimit:
      type: object
      required:
        - enterpriseId
        - currency
        - shortMarginPositionNotionalLimit
        - longMarginPositionNotionalLimit
      properties:
        enterpriseId:
          type: string
          description: The unique identifier for the enterprise (e.g., "enterprise-123").
        currency:
          type: string
          description: The currency symbol for the net open position limit (e.g., "BTC").
        shortMarginPositionNotionalLimit:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                Quantity representing the notional limit for short margin
                positions in the specified currency (e.g., "1000000"). Currency
                represents the currency in which the quantity is valued (e.g.,
                "BTC").
        longMarginPositionNotionalLimit:
          allOf:
            - $ref: '#/components/schemas/Amount3'
            - type: object
              description: >-
                Quantity representing the notional limit for long margin
                positions in the specified currency (e.g., "2000000"). Currency
                represents the currency in which the quantity is valued (e.g.,
                "BTC").
      example:
        enterpriseId: enterprise-123
        currency: BTC
        shortMarginPositionNotionalLimit:
          quantity: '1000000'
          currency: USD
        longMarginPositionNotionalLimit:
          quantity: '2000000'
          currency: USD
    MarginNetOpenPositionSnapshot:
      type: object
      required:
        - currency
        - enterpriseId
        - accountId
        - netOpenPosition
        - appliedFutureTransfers
        - earliestTransactionDate
        - latestTransactionDate
      properties:
        currency:
          type: string
          description: The currency symbol for this position
          example: BTC
        enterpriseId:
          type: string
          description: The enterprise ID associated with this position
          example: 63925f940c259a00061853808ffea830
        accountId:
          type: string
          description: The trading account ID
          example: f230fdebfa084ffebc7e00515f54603f
        netOpenPosition:
          type: string
          pattern: ^-?[0-9]+(\.[0-9]+)?$
          description: >-
            The net position quantity at the snapshot time. Negative values
            indicate short positions (borrowed/owed), positive values indicate
            long positions (owned).
          example: '-2.5'
        appliedFutureTransfers:
          type: string
          pattern: ^[0-9]+(\.[0-9]+)?$
          description: >-
            The total amount of pending transfers (after cutoff) applied to
            cover this position (only when useFutureTransfers=true). Always zero
            for long positions. For short positions, shows how much of the
            position will be covered by pending incoming transfers.
          example: '1.5'
        earliestTransactionDate:
          type: string
          format: date-time
          description: >-
            Timestamp of the earliest transaction that contributed to this
            position
          example: '2025-12-01T01:30:00.000Z'
        latestTransactionDate:
          type: string
          format: date-time
          description: >-
            Timestamp of the most recent transaction that contributed to this
            position (before the cutoff)
          example: '2025-12-01T23:45:00.000Z'
        latestFutureTransferDate:
          type: string
          format: date-time
          nullable: true
          description: >-
            Timestamp of the most recent pending transfer applied to this
            position. Only present when useFutureTransfers=true and pending
            transfers were applied. Null otherwise.
          example: '2025-12-02T10:00:00.000Z'
      example:
        currency: BTC
        enterpriseId: 63925f940c259a00061853808ffea830
        accountId: f230fdebfa084ffebc7e00515f54603f
        netOpenPosition: '-2.5'
        appliedFutureTransfers: '1.5'
        earliestTransactionDate: '2025-12-01T01:30:00.000Z'
        latestTransactionDate: '2025-12-01T23:45:00.000Z'
        latestFutureTransferDate: '2025-12-02T10:00:00.000Z'
    MarketDataError:
      type: object
      description: Error response for market data requests.
      properties:
        error:
          type: string
          description: Detailed error message.
        errorName:
          type: string
          description: Error code identifier.
      required:
        - error
        - errorName
      example:
        errorName: backend:common:invalidArgument
        error: backend:common:invalidArgument key=instrument
    MaskedV1SettlementTransfersOutput:
      title: MaskedV1SettlementTransfersOutput
      type: array
      items:
        type: object
        properties:
          sourceTradingAccountId:
            type: string
            description: The go account id of the source party.
            minLength: 1
          sourceNetworkAccountId:
            type: string
            description: The network account id of the source party.
            title: uuid
          destinationTradingAccountId:
            type: string
            description: The go account id of the destination party.
            minLength: 1
          destinationNetworkAccountId:
            type: string
            description: >-
              The network account id of the destination party (if the
              destination party is a connection).
            title: uuid
          currency:
            type: string
            description: The currency involved in the settlement movement.
            minLength: 1
          quantity:
            allOf:
              - $ref: '#/components/schemas/NonZeroBigAmount'
            description: >-
              The amount of currency being transferred in the settlement
              transfer.

              This is a non-zero value represented as a string.

              If the value is positive, that means funds were moved from the
              source account to the destination account.

              If the value is negative, that means funds were moved from the
              destination account to the source account.
          txIds:
            type: array
            items:
              type: string
              minLength: 1
              description: >-
                The transaction IDs associated with the settlement transfer.
                Only populated once the transfer is completed.
          status:
            allOf:
              - $ref: '#/components/schemas/SettlementTransferStatus'
            description: >-
              The status of the settlement transfer.

              Possible values and implications are:

              - pending: The transfer is pending and has not yet been processed.

              - pending_onchain: The transfer is pending on-chain movement (only
              relevant to on-chain settlements).

              - onchain_initiated: The transfer has been initiated on-chain
              (only relevant to on-chain settlements).

              - onchain_failed: The on-chain transfer has failed (only relevant
              to on-chain settlements).

              - completed: The transfer has been completed successfully.

              - failed: The transfer has failed.

              - rejected: The transfer has been rejected.

              - disputed: The transfer is disputed.
          usdValue:
            nullable: true
            oneOf:
              - type: string
                format: number
              - type: number
            description: |-
              The USD value of the settlement transfer in cents.
              This is a non-negative value represented as a string.
          settlementId:
            type: string
            description: >-
              The unique identifier of the settlement the settlement transfer is
              associated with.

              This is a UUID that uniquely identifies the settlement.
            title: uuid
          disputeClosureId:
            type: string
            description: >-
              The unique identifier of the dispute closure the settlement
              transfer was created from.

              This is a UUID that uniquely identifies dispute closure if the
              transfer was created as a result of closing a 

              dispute.
            title: uuid
          id:
            type: string
            description: >-
              The unique identifier of the settlement transfer.

              This is a UUID that uniquely identifies the settlement transfer
              record.
            title: uuid
          createdAt:
            type: string
            description: |-
              The date and time when the settlement transfer was created.
              Represented as an ISO 8601 formatted date string.
            format: date-time
            title: ISO Date String
          updatedAt:
            type: string
            description: |-
              The date and time when the settlement transfer was last updated.
              Represented as an ISO 8601 formatted date string.
            format: date-time
            title: ISO Date String
          settlementStatus:
            allOf:
              - $ref: '#/components/schemas/SettlementStatuses'
            description: >-
              The status of the settlement the settlement transfer is associated
              with.

              Possible values and implications are:

              - pending: The settlement is pending and has not yet been
              processed.

              - failed: The settlement has failed to process. This is a
              non-terminal state and should be retried.

              - completed: The settlement has been completed successfully. 

              - rejected: The settlement has been rejected by a BitGo admin
              (only relevant to on-chain settlements).
          settlementNotes:
            type: string
            description: Optional notes for the settlement
            minLength: 1
          sourceClientName:
            type: string
            description: >-
              The client name of the source party. Will be obfuscated if the
              source party is not the calling client.
            minLength: 1
          destinationClientName:
            type: string
            description: >-
              The client name of the destination party. Will be obfuscated if
              the destination party is not the calling client.
            minLength: 1
          sourceConnectionName:
            type: string
            description: >-
              The name of the source connection (if the source party is a
              connection).

              Will be obfuscated if the source party is not the calling client.
            minLength: 1
          destinationConnectionName:
            type: string
            description: >-
              The name of the destination connection (if the destination party
              is a connection).

              Will be obfuscated if the destination party is not the calling
              client.
            minLength: 1
        required:
          - currency
          - quantity
          - txIds
          - status
          - usdValue
          - settlementId
          - id
          - createdAt
          - updatedAt
          - settlementStatus
    MaticLikeDelegationProperties:
      title: MATIC-like Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            stakingDestination:
              type: string
    MaticLikeStakingRequestEntityProperties:
      title: Matic-like staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
        - type: object
          properties:
            stakingDestination:
              type: string
              nullable: true
    MaticLikeStakingTransactionProperties:
      title: Matic-like Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            nonce:
              type: integer
            withdrawEpoch:
              $ref: '#/components/schemas/IntegerString'
    MaticStakingDelegation:
      title: MATIC Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    MaticStakingRequest:
      title: MATIC
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/MaticStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for MATIC)
          type: string
    MaticStakingRequestPOSTBody:
      title: MATIC stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    MaticUnStakingRequestPOSTBody:
      title: MATIC unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    MaxResourcesDelegatable:
      title: MaxResourcesDelegatable
      type: object
      properties:
        bandwidthSun:
          type: string
        energySun:
          type: string
      required:
        - bandwidthSun
        - energySun
    MemoObject:
      type: object
      properties:
        type:
          type: string
        value:
          type: string
      description: >
        Extra transaction information for CSPR, EOS, HBAR, RUNE, STX, TON, XLM,
        and XRP. Required for XLM transactions.


        Note: For XRP this is the destination tag (DT), for CSPR this is the
        transfer ID and for ALGO this is the message field.
    MemoString:
      type: string
      maxLength: 100
      description: >-
        A memo for this specific transaction. This format is only available for
        Stacks.
    Message:
      type: object
      properties:
        coin:
          type: string
          description: The coin associated with the wallet.
        combineSigShare:
          type: string
        createdDate:
          description: The date the message was created.
          type: string
          format: date-time
        messageEncoded:
          description: The message encoded as a hex string.
          type: string
        messageRaw:
          description: The message as human readable text.
          type: string
        signatureShares:
          type: array
          items:
            $ref: '#/components/schemas/PlatformSignatureShare'
        state:
          $ref: '#/components/schemas/PlatformTransactionRequestState'
        txHash:
          type: string
          description: The signed hex of the message.
        updatedDate:
          description: The date when the message state was updated.
          type: string
          format: date-time
      required:
        - messageRaw
        - state
    Message1:
      type: object
      properties:
        coin:
          type: string
          description: The coin associated with the wallet.
        combineSigShare:
          type: string
        createdDate:
          description: The date the message was created.
          type: string
          format: date-time
        messageEncoded:
          description: The message encoded as a hex string.
          type: string
        messageRaw:
          description: The message as human readable text.
          type: string
        signatureShares:
          type: array
          items:
            $ref: '#/components/schemas/SignatureShare'
        state:
          $ref: '#/components/schemas/TransactionRequestState1'
        txHash:
          type: string
          description: The signed hex of the message.
        updatedDate:
          description: The date when the message state was updated.
          type: string
          format: date-time
      required:
        - messageRaw
        - state
    MessageIntent:
      title: MessageIntent
      type: object
      properties:
        messageRaw:
          type: string
        intentType:
          $ref: '#/components/schemas/IntentType11'
        custodianMessageId:
          type: string
        isTss:
          type: boolean
        messageStandardType:
          type: string
        preparedTransaction:
          type: string
          description: >-
            Base64-encoded raw transaction bytes (PreparedTransaction protobuf
            or topology tx).

            Not signed — used for clear signing display and HSM payload framing.
      required:
        - messageRaw
        - intentType
    Metadata:
      type: object
      additionalProperties:
        nullable: true
      title: Metadata
      description: Optional metadata for the document (max 100KB)
    MicrosoftOAuthSetting:
      title: MicrosoftOAuthSetting
      allOf:
        - type: object
          properties:
            oauthProvider:
              type: string
              enum:
                - msEntra
            tenantId:
              type: string
          required:
            - oauthProvider
            - tenantId
        - $ref: '#/components/schemas/BaseOAuthSetting'
    MinRequireActionParameter:
      title: Minimum number of approvals required
      type: object
      description: Minimum required number of approvers.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the action parameter.
          enum:
            - minRequired
          example: minRequired
        label:
          type: string
          description: A label for the action parameter which can be shown to an end user.
          example: Approvals Required
        description:
          type: string
          description: >-
            A description for the action parameter which can be shown to an end
            user.
          example: Minimum required number of approvers
        type:
          type: string
          description: The type of acceptable values for this action parameter.
          enum:
            - POSITIVE_NUMBER
          example: POSITIVE_NUMBER
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: false
    MissingRequirement:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the missing requirement
        kind:
          type: string
          enum:
            - businessInformation
            - data
            - document
            - associatedPerson
          description: Type of missing requirement
        name:
          type: string
          description: Name of the missing requirement
        status:
          type: string
          enum:
            - missing
            - countExceeded
            - submitted
            - inReview
            - verified
          description: Current status of the missing requirement
      required:
        - id
        - kind
        - name
        - status
      title: MissingRequirement
    MmiSignMessageIntent:
      title: MMI Sign Message Intent
      allOf:
        - type: object
          properties:
            custodianMessageId:
              type: string
          required:
            - custodianMessageId
        - $ref: '#/components/schemas/SignMessageIntent'
    MmiSignTransactionIntent:
      title: MMI Sign Transaction Intent
      allOf:
        - type: object
          properties:
            custodianTransactionId:
              type: string
          required:
            - custodianTransactionId
        - $ref: '#/components/schemas/PaymentIntent'
    MultiSigType:
      title: MultiSigType
      type: string
      enum:
        - onchain
        - tss
    MultiWalletStuckTxsResponse:
      title: Multi-Wallet Stuck Transactions Response
      type: object
      properties:
        stuckTxs:
          allOf:
            - $ref: '#/components/schemas/GetPotentialStuckTxsResponse'
          description: Array of stuck transactions from all successfully queried wallets
        errors:
          type: array
          items:
            type: object
            title: Stuck Transaction Query Error
            properties:
              walletId:
                type: string
                description: The wallet ID that failed
                example: 59cd72485007a239fb00282ed480da1f
              coin:
                type: string
                description: The coin/chain of the wallet that failed
                example: tbsc
              code:
                type: string
                description: Error code
              message:
                type: string
                description: Human-readable error message
            required:
              - walletId
              - coin
              - code
              - message
            description: >-
              Array of errors encountered while querying individual wallets (if
              any)
      required:
        - stuckTxs
        - errors
    MultisigTypeVersion:
      title: MultisigTypeVersion
      type: string
      enum:
        - MPCv2
    MultisigTypeVersion1:
      type: string
      enum:
        - MPCv2
    MutabilityConstraint:
      title: MutabilityConstraint
      type: string
      enum:
        - permanent
        - managed
    MutabilityConstraint1:
      type: string
      description: >
        Specifies whether a BitGo admin can change `lockDate`

        * `managed` - Not locked, but requires approval from a BitGo admin to
        change

        * `permanent` - `lockDate` cannot be changed
      enum:
        - managed
        - permanent
    MuteEnterpriseRequest:
      required:
        - enterpriseId
      type: object
      properties:
        enterpriseId:
          maxLength: 100
          minLength: 0
          type: string
    MuteResponse:
      required:
        - message
        - success
        - userId
      type: object
      properties:
        userId:
          type: string
        success:
          type: boolean
        message:
          type: string
        mutedEnterpriseIds:
          type: array
          items:
            type: string
        mutedWalletIds:
          type: array
          items:
            type: string
    MuteSettingsResponse:
      required:
        - enterpriseIds
        - walletIds
      type: object
      properties:
        enterpriseIds:
          type: array
          items:
            type: string
        walletIds:
          type: array
          items:
            type: string
    MuteWalletRequest:
      required:
        - walletId
      type: object
      properties:
        walletId:
          maxLength: 100
          minLength: 0
          type: string
    Name:
      type: object
      properties:
        first:
          type: string
          example: Jane
        full:
          type: string
          example: Jane Doe
        last:
          type: string
          example: Doe
    Name1:
      title: Name
      type: object
      properties:
        first:
          type: string
          example: Jane
        full:
          type: string
          example: Jane Doe
        last:
          type: string
          example: Doe
      required:
        - first
        - full
        - last
    NearDelegationProperties:
      title: NEAR Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            stakingDestination:
              type: string
    NearStakeIntent:
      title: Near Stake Intent
      allOf:
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - recipients
        - $ref: '#/components/schemas/StakeIntent'
    NearStakeIntent1:
      title: Near Stake
      allOf:
        - $ref: '#/components/schemas/StakeIntent2'
        - type: object
          properties:
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/RecipientEntry1'
          required:
            - recipients
    NearStakingDelegation:
      title: NEAR Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
    NearStakingRequest:
      title: NEAR
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/NearStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    NearStakingRequestEntityProperties:
      title: NEAR staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            stakingDestination:
              type: string
              nullable: true
    NearStakingRequestPOSTBody:
      title: NEAR stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    NearUnStakingRequestPOSTBody:
      title: NEAR unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    NearUnstakeIntent:
      title: Near Unstake Intent
      allOf:
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - recipients
        - $ref: '#/components/schemas/UnstakeIntent'
    NearUnstakeIntent1:
      title: Near Unstake
      allOf:
        - $ref: '#/components/schemas/UnstakeIntent2'
        - type: object
          properties:
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/RecipientEntry1'
          required:
            - recipients
    NearWallet:
      title: Near Wallet
      type: object
      properties:
        nonceAddress:
          type: string
        lastNonce:
          type: number
        addressCount:
          type: number
        pendingChainInitialization:
          type: boolean
        rootAddrss:
          type: string
        lastChainIndex:
          type: object
          additionalProperties:
            type: number
      required:
        - nonceAddress
        - lastNonce
        - addressCount
        - pendingChainInitialization
    NearWithdrawIntent:
      title: Near Withdraw Intent
      allOf:
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - recipients
        - $ref: '#/components/schemas/WithdrawIntent'
    NearWithdrawIntent1:
      title: Near Claim Unstake
      allOf:
        - $ref: '#/components/schemas/WithdrawIntent2'
        - type: object
          properties:
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/RecipientEntry1'
          required:
            - recipients
    NetworkAccountBalanceRecordForClient:
      title: NetworkAccountBalanceRecordForClient
      type: object
      additionalProperties:
        type: object
        description: |-
          Network account balance information formatted for client consumption.
          Contains details about a partner connection and associated balances.
        properties:
          partnerId:
            type: string
            description: >-
              Unique identifier of the partner associated with this connection.

              This UUID uniquely identifies the OES partner within the BitGo
              system.
            title: uuid
          partnersConnectionId:
            type: string
            description: >-
              External identifier of the connection as known by the partner
              system.

              This is the identifier that the partner uses to reference this
              connection.
            minLength: 1
          name:
            type: string
            description: |-
              Human-readable name of the connection.
              This is typically set during connection creation.
            minLength: 1
          partnerInstitutionIdentifier:
            type: string
            description: >-
              Institution identifier of the partner.

              This is typically set during connection creation to help identify
              the connection.
            minLength: 1
          balances:
            allOf:
              - $ref: '#/components/schemas/AccountBalanceRecord'
            description: >-
              Balances available for this connection, indexed by currency code.

              Represents the funds that have been allocated to this connection
              and their status.
        required:
          - partnerId
          - partnersConnectionId
          - name
          - partnerInstitutionIdentifier
          - balances
    NewLimitOrderRequest:
      title: Limit
      required:
        - product
        - quantity
        - quantityCurrency
        - side
        - type
        - limitPrice
      type: object
      properties:
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        product:
          type: string
          description: Product name e.g. BTC-USD
        type:
          type: string
          description: Must be set to "limit" to place a limit order
        fundingType:
          $ref: '#/components/schemas/FundingType'
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
        quantityCurrency:
          type: string
          description: >
            The quantity currency. Can be in base or quote currency for both buy
            and sell orders.

            - Buy orders in base currency specify an exact quantity to purchase.

            - Buy orders in quote currency specify a total spend amount.

            - Sell orders in base currency specify an exact quantity to sell.

            - Sell orders in quote currency specify a target proceeds amount.

            e.g. If product is `BTC-USD`, the base currency will be `BTC` and
            the quote currency will be `USD`.
        limitPrice:
          $ref: '#/components/schemas/LimitPrice'
        duration:
          type: integer
          description: >
            Duration of the limit order in minutes. When set, the order uses GTD
            (Good Till Date) time in force

            and expires after the specified duration. Cannot be combined with
            timeInForce=GTC.

            For orders that are good till cancelled, omit duration and use
            timeInForce=GTC.
        timeInForce:
          type: string
          enum:
            - GTC
            - IOC
            - FOK
            - GTD
          description: >
            Time in force policy for limit orders. Supported values: GTC, IOC,
            FOK, GTD.

            If not specified, defaults to GTC.

            When `duration` is provided, the order automatically uses GTD
            regardless of this field.

            GTD requires `duration` to be set. GTC cannot be combined with
            `duration`.
      example:
        clientOrderId: myorder1
        type: limit
        product: BTC-USD
        side: buy
        quantity: '1'
        quantityCurrency: BTC
        limitPrice: '10005'
        duration: 60
    NewMarketOrderRequest:
      title: Market
      required:
        - product
        - quantity
        - quantityCurrency
        - side
        - type
      type: object
      properties:
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        product:
          type: string
          description: Product name e.g. BTC-USD
        type:
          type: string
          description: Must be set to "market" to place a market order
        fundingType:
          $ref: '#/components/schemas/FundingType'
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
          description: The quantity of the `quantityCurrency` to buy or sell.
        quantityCurrency:
          type: string
          description: >
            The quantity currency for the order. Can be in base or quote
            currency for both buy and sell orders.

            - Buy orders in quote currency specify a total spend amount (e.g.,
            "buy $10,000 of BTC").

            - Buy orders in base currency specify an exact quantity to purchase
            (e.g., "buy 1 BTC"). When no `limitPrice` is provided, a protective
            marketable limit is computed automatically.

            - Sell orders in base currency specify an exact quantity to sell
            (e.g., "sell 0.5 BTC").

            - Sell orders in quote currency specify a target proceeds amount
            (e.g., "sell $500 of BTC"). When no `limitPrice` is provided, a
            protective marketable limit is computed automatically.

            e.g. If product is `BTC-USD`, the base currency will be `BTC` and
            the quote currency will be `USD`.
        timeInForce:
          type: string
          enum:
            - IOC
            - FOK
          description: >
            Time in force policy for market orders. Only IOC and FOK are
            supported.

            If not specified, defaults to IOC.
      example:
        clientOrderId: myorder1
        type: market
        product: BTC-USD
        side: buy
        quantity: '10000'
        quantityCurrency: USD
    NewOrderRequest:
      oneOf:
        - $ref: '#/components/schemas/NewMarketOrderRequest'
        - $ref: '#/components/schemas/NewLimitOrderRequest'
        - $ref: '#/components/schemas/NewTWAPOrderRequest'
        - $ref: '#/components/schemas/NewSteadyPaceOrderRequest'
        - $ref: '#/components/schemas/NewStopOrderRequest'
    NewSteadyPaceOrderRequest:
      title: Steady Pace
      required:
        - product
        - quantity
        - quantityCurrency
        - side
        - type
      type: object
      properties:
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        product:
          type: string
          description: Product name e.g. BTC-USD
        type:
          type: string
          description: Must be set to "steady_pace" to place a Steady Pace order
        fundingType:
          $ref: '#/components/schemas/FundingType'
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
        quantityCurrency:
          type: string
          description: >
            The quantity currency. Can be in base or quote currency for both buy
            and sell orders.

            - Buy orders in base currency specify an exact quantity to purchase.
            When no `limitPrice` is provided, a protective marketable limit is
            computed automatically.

            - Buy orders in quote currency specify a total spend amount.

            - Sell orders in base currency specify an exact quantity to sell.

            - Sell orders in quote currency specify a target proceeds amount.
            When no `limitPrice` is provided, a protective marketable limit is
            computed automatically.

            e.g. If product is `BTC-USD`, the base currency will be `BTC` and
            the quote currency will be `USD`.
        limitPrice:
          $ref: '#/components/schemas/LimitPrice'
        scheduledDate:
          $ref: '#/components/schemas/ScheduledDate'
        parameters:
          allOf:
            - $ref: '#/components/schemas/SteadyPaceOrderParameters'
      example:
        clientOrderId: myorder1
        type: steady_pace
        product: BTC-USD
        side: buy
        quantity: '100000'
        quantityCurrency: USD
        parameters:
          interval: 5
          intervalUnit: minute
          subOrderSize: '20000'
          variance: 0.02
    NewStopOrderRequest:
      title: Stop
      required:
        - product
        - quantity
        - quantityCurrency
        - side
        - type
        - triggerPrice
      type: object
      properties:
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        product:
          type: string
          description: Product name e.g. BTC-USD
        type:
          type: string
          description: Must be set to "stop" to place a stop order
        fundingType:
          $ref: '#/components/schemas/FundingType'
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
          description: The quantity of the `quantityCurrency` to buy or sell.
        quantityCurrency:
          type: string
          description: >
            The quantity currency. Can be in base or quote currency for both buy
            and sell orders.

            - Buy orders in base currency specify an exact quantity to purchase.

            - Buy orders in quote currency specify a total spend amount.

            - Sell orders in base currency specify an exact quantity to sell.

            - Sell orders in quote currency specify a target proceeds amount.

            e.g. If product is `BTC-USD`, the base currency will be `BTC` and
            the quote currency will be `USD`.
        triggerPrice:
          $ref: '#/components/schemas/TriggerPrice'
        limitPrice:
          $ref: '#/components/schemas/LimitPrice'
        timeInForce:
          type: string
          enum:
            - GTC
          description: >
            Time in force policy for stop orders. Only GTC (Good Till Cancelled)
            is supported.

            If not specified, defaults to GTC.
      example:
        clientOrderId: mystoporder1
        type: stop
        product: BTC-USD
        side: sell
        quantity: '0.5'
        quantityCurrency: BTC
        triggerPrice: '48000'
        limitPrice: '47500'
    NewTWAPOrderRequest:
      title: TWAP
      required:
        - product
        - quantity
        - quantityCurrency
        - side
        - type
        - duration
      type: object
      properties:
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        product:
          type: string
          description: Product name e.g. BTC-USD
        type:
          type: string
          description: Must be set to "twap" to place a TWAP order
        fundingType:
          $ref: '#/components/schemas/FundingType'
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
        quantityCurrency:
          type: string
          description: >
            The quantity currency. Can be in base or quote currency for both buy
            and sell orders.

            - Buy orders in base currency specify an exact quantity to purchase.
            When no `limitPrice` is provided, a protective marketable limit is
            computed automatically.

            - Buy orders in quote currency specify a total spend amount.

            - Sell orders in base currency specify an exact quantity to sell.

            - Sell orders in quote currency specify a target proceeds amount.
            When no `limitPrice` is provided, a protective marketable limit is
            computed automatically.

            e.g. If product is `BTC-USD`, the base currency will be `BTC` and
            the quote currency will be `USD`.
        limitPrice:
          $ref: '#/components/schemas/LimitPrice'
        duration:
          type: integer
          description: Duration of the TWAP order in minutes. Must be greater than 0.
        interval:
          type: integer
          description: >-
            Interval of the time-sliced TWAP order in minutes. Only required if
            `isTimeSliced` is `true`.
        scheduledDate:
          $ref: '#/components/schemas/ScheduledDate'
        parameters:
          allOf:
            - $ref: '#/components/schemas/TWAPOrderParameters'
      example:
        clientOrderId: myorder1
        type: twap
        product: BTC-USD
        side: buy
        quantity: '100000'
        quantityCurrency: USD
        duration: 60
        interval: 5
        parameters:
          isTimeSliced: false
          boundsControl: wide
    NextBatchPrevId:
      type: string
      format: uuid
      example: 585951a5df8380e0e3063e9f
      description: >-
        When a result set is truncated, this field returns the id of the last
        object in the previous batch.  To get the next batch of results, pass
        this value via the `prevId` query parameter.
    NextRewardsDisclaimer:
      type: object
      properties:
        rewardCycle:
          type: integer
    NextRewardsDisclaimerAttributes:
      type: object
      description: Information about the next rewards cycle.
      properties:
        rewardCycle:
          description: Time in seconds until the next reward cycle.
          type: integer
    NonNegativeBigAmount:
      title: NonNegativeBigAmount
      type: string
    NonParticipationTransactionBuildRequest:
      title: Non participation transaction
      allOf:
        - $ref: '#/components/schemas/BuildParams'
        - type: object
          properties:
            nonParticipation:
              type: boolean
          required:
            - nonParticipation
    NonWhitelistedAddressValue:
      title: Not whitelisted
      type: object
      description: The destination is not whitelisted.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - nonWhitelistedAddress
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Non-whitelisted address
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: The destination is not whitelisted
    NonZeroBigAmount:
      title: NonZeroBigAmount
      type: string
    NoneActionRequest:
      title: None
      type: object
      description: No action required.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.noop
          example: approvals.bitgo.noop
        parameters:
          type: object
          description: Required data needed to configure the Action.
          additionalProperties: true
        operator:
          $ref: '#/components/schemas/OperatorType'
    NotFoundErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - NotFound
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 404
      description: Not found error response
    NotificationSubscriptionListRequest:
      required:
        - notificationSubscriptions
      type: object
      properties:
        notificationSubscriptions:
          maxItems: 100
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/NotificationSubscriptionRequest'
    NotificationSubscriptionRequest:
      required:
        - channel
        - isSubscribed
      type: object
      properties:
        notificationName:
          type: string
        categoryName:
          type: string
        channel:
          maxLength: 50
          minLength: 0
          type: string
        isSubscribed:
          type: boolean
    NotificationThresholdsResponse:
      type: object
      properties:
        depositThresholdUsd:
          type: number
        withdrawalThresholdUsd:
          type: number
    NtildeProof:
      title: NtildeProof
      type: object
      description: The ntildeProof value is only required when creating the initial config.
      properties:
        h1WrtH2:
          type: object
          properties:
            alpha:
              type: array
              items:
                type: string
                description: >-
                  The alpha value of the range proof challenge proof is an array
                  of 128 hex strings.
            t:
              type: array
              items:
                type: string
                description: >-
                  The t value of the range proof challenge proof is an array of
                  128 hex strings.
          required:
            - alpha
            - t
        h2WrtH1:
          type: object
          properties:
            alpha:
              type: array
              items:
                type: string
                description: >-
                  The alpha value of the range proof challenge proof is an array
                  of 128 hex strings.
            t:
              type: array
              items:
                type: string
                description: >-
                  The t value of the range proof challenge proof is an array of
                  128 hex strings.
          required:
            - alpha
            - t
      required:
        - h1WrtH2
        - h2WrtH1
    NullableString1:
      title: NullableString
      allOf:
        - $ref: '#/components/schemas/NullableStringType'
    NullableStringType:
      type: string
      nullable: true
    NumKeychains:
      description: |
        Number of keys provided.  This value must be 3 for hot wallets,
        1 for **ofc** wallets, and not specified for custodial wallets.
      type: integer
      example: 3
    NumSignatures:
      description: |
        Number of signatures required.  This value must be 2 for
        hot wallets, 1 for **ofc** wallets, and not specified for custodial
        wallets.
      type: integer
      example: 2
    NumberLike:
      title: NumberLike
      type: number
    NumberOrString:
      oneOf:
        - type: string
          pattern: ^-?[\d\.]+$
          example: '1.5'
        - type: number
    OAuthAccessToken:
      title: OAuthAccessToken
      type: object
      properties:
        bitgoAdminPermissions:
          type: array
          items:
            type: string
            description: The BitGo admin permissions associated with the access token
        client:
          type: string
          description: The client associated with the access token
        created:
          type: string
          description: The creation date of the access token
          format: date-time
          title: ISO Date String
        enterprise:
          type: string
          description: The enterprise associated with the access token
        expires:
          type: string
          description: The expiration date of the access token
          format: date-time
          title: ISO Date String
        extensionAddress:
          type: string
          description: The extension address associated with the access token
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        internal:
          type: boolean
        ip:
          type: string
          description: IP address of the client that requested this access token
          example: 127.0.0.1
          format: ipv4
        ipRestrict:
          type: array
          items:
            type: string
            description: >-
              IP addresses or CIDR block of clients that are allowed to use this
              token
        isExtensible:
          type: boolean
          description: Indicates if the access token is extensible
        label:
          type: string
          description: The label associated with the access token
        organizations:
          type: array
          items:
            type: string
            description: The organizations associated with the access token
        origin:
          type: string
          description: BitGo environment that issued this token
          example: test.bitgo.com
        token:
          type: string
          description: The token value
        scope:
          type: array
          example:
            - crypto_compare
            - user_manage
            - openid
            - profile
            - wallet_create
            - wallet_manage_all
            - wallet_approve_all
            - wallet_spend_all
            - wallet_edit_all
            - wallet_view_all
          items:
            type: string
            description: Session permissions
        unlock:
          allOf:
            - type: object
              properties:
                spendingLimits:
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/PerCoinLimit'
            - $ref: '#/components/schemas/Unlock'
          description: The unlock object, returned if this session is currently unlocked
        user:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
      required:
        - id
        - isExtensible
    OAuthSetting:
      title: OAuthSetting
      oneOf:
        - $ref: '#/components/schemas/MicrosoftOAuthSetting'
        - $ref: '#/components/schemas/OktaOAuthSetting'
    Occupation:
      type: string
      enum:
        - Agriculture
        - Art Dealer / Auctioneer / Import / Export Company
        - >-
          Financial Services (Asset Mgmt., Bank, Broker Dealer, Commodities,
          Mutual Fund, Ins. Co)
        - Casinos and Gambling Establishments
        - Charity/NGO/Non-Profit/Foundation/Endowment
        - >-
          Computer Programmer / Administrator / Software Engineer / IT or
          Software / Technology Company
        - Crypto Services (ATM, Exchange, Lender, Coins/Token)
        - Education / Teacher
        - >-
          Extractive Industry (Oil, Gas, etc.) / Jewels / Gemstones / Precious
          Metals
        - Family Office
        - Film / TV / Entertainment (not adult)
        - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund)
        - Healthcare
        - Law Enforcement / Military / Protective Services
        - Miner / Mining Pool
        - Money Service Business
        - Other
        - Private Equity / Venture Capital
        - Professional Service Providers (lawyers accountants etc.)
        - Real estate brokers developers and appraisers
        - Recreation / Hospitality
        - Student / Unemployed / Retired
        - Traders / Trading (High Frequency, Proprietary, Market Maker)
        - Weapons Dealers
      title: Occupation
      description: Occupation category of the individual
    OfcCoin:
      type: string
      description: Off-chain symbol for the coin.
      enum:
        - OFCSOL
        - OFCSUI
    OfcTxBuildResponse:
      type: object
      description: Represents an unsigned transaction build response for a staking preview.
      properties:
        payload:
          type: string
          description: The unsigned payload that should be signed by the client.
        feeInfo:
          $ref: '#/components/schemas/FeeInfo'
        coin:
          type: string
          description: The coin symbol (e.g. ofc).
        token:
          type: string
          description: The token symbol (e.g. ofctsui).
      required:
        - payload
        - feeInfo
        - coin
        - token
    OffChainWalletBalance:
      title: OffChainWalletBalance
      type: object
      properties:
        inboundBalance:
          type: string
          description: Inbound balance in millisatoshis (remote balance)
        inboundPendingBalance:
          type: string
          description: >-
            Pending inbound balance in millisatoshis (pending open remote
            balance)
        inboundUnsettledBalance:
          type: string
          description: >-
            Unsettled inbound balance in millisatoshis (unsettled remote
            balance)
        outboundBalance:
          type: string
          description: Outbound balance in millisatoshis (local balance)
        outboundPendingBalance:
          type: string
          description: >-
            Pending outbound balance in millisatoshis (pending open local
            balance)
        outboundUnsettledBalance:
          type: string
          description: >-
            Unsettled outbound balance in millisatoshis (unsettled local
            balance)
        outboundLockedBalance:
          type: string
          description: >-
            Locked (from pending force closed channels) outbound balance in
            millisatoshis (locked local balance)
        outboundReservedBalance:
          type: string
          description: >-
            Total outbound reserved balance in millisatoshis (reserved local
            balance)
        outboundSpendableBalance:
          type: string
          description: >-
            Total outbound spendable balance in millisatoshis (spendable local
            balance)
      required:
        - inboundBalance
        - inboundPendingBalance
        - inboundUnsettledBalance
        - outboundBalance
        - outboundPendingBalance
        - outboundUnsettledBalance
        - outboundLockedBalance
        - outboundReservedBalance
        - outboundSpendableBalance
    Offchain:
      title: Offchain
      type: object
      properties:
        needsKeyReshareAfterPasswordReset:
          type: boolean
        pendingSystemInitialization:
          type: boolean
          description: >-
            If true, this wallet is waiting for the system to finish
            initializing.

            In this state, users cannot

            create addresses or initiate withdrawals.
      required:
        - needsKeyReshareAfterPasswordReset
    OffchainAddressSubdocument:
      title: Offchain Address
      type: object
      additionalProperties: {}
    OffchainTx:
      title: Offchain
      type: object
      properties:
        settlementFeeString:
          type: string
        transactionType:
          type: string
        referenceType:
          type: string
        referenceValue:
          type: string
        notation:
          type: string
        fiatInfo:
          $ref: '#/components/schemas/FiatTransferCoinSpecific'
        originalDestination:
          type: string
        memoType:
          type: string
        memoValue:
          type: string
        rtId:
          type: string
        fees:
          type: array
          items:
            type: object
            properties:
              amount:
                type: string
              category:
                type: string
              payee:
                type: string
            required:
              - amount
    OgStakingRequestPOSTBody:
      title: OG stake
      description: >
        Create an OG staking request to delegate tokens to a validator.


        OG uses a share-based delegation model:

        1. You send tokens to the validator contract

        2. The validator issues shares representing your proportional ownership

        3. Shares are stored in the delegation's properties

        4. Share value increases as validator earns rewards (auto-compounding)


        Transaction Details:

        - Function: delegate(address delegatorAddress) payable

        - Tokens sent as msg.value

        - Shares calculated by validator: (tokensDeposited * totalShares) /
        totalTokens

        - No warmup period: delegation active immediately after confirmation
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            validator:
              type: string
              description: |
                OG validator contract address in EVM format (0x...).

                This is the validator's smart contract that manages delegations,
                not the validator's operator address. You can get a list of
                active validators from the /validators endpoint.
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x08fC637A7802C1210Cc071c2dc65bcad26bAdBDf'
          required:
            - validator
      type: object
    OgUnStakingRequestPOSTBody:
      title: OG unstake
      description: >
        Create an OG unstaking request to withdraw tokens from a validator.


        IMPORTANT: OG unstaking is share-based, but you specify token amounts.

        The service calculates shares automatically:


        Process:

        1. You specify the token amount to unstake (e.g., 50 OG)

        2. Service calculates proportional shares: (yourShares * amount) /
        yourDelegated

        3. Service fetches dynamic withdrawal fee from validator contract

        4. Transaction burns your shares and initiates withdrawal

        5. 2-day cooldown period begins

        6. After cooldown, tokens credited to your wallet


        Transaction Details:

        - Function: undelegate(address withdrawalAddress, uint256 shares)
        payable

        - Shares calculated proportionally from amount

        - Withdrawal fee sent as msg.value (fetched from validator)

        - Cooldown: 2 days (172800 seconds)


        Share Calculation Example:
          Your delegation: 100 OG, 100 shares
          Unstake amount: 30 OG
          Shares burned: (100 * 30) / 100 = 30 shares

        Note: Actual tokens received may differ slightly from requested amount

        due to exchange rate changes during transaction confirmation.
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    OktaOAuthSetting:
      title: OktaOAuthSetting
      allOf:
        - type: object
          properties:
            oauthProvider:
              type: string
              enum:
                - okta
            oktaDomain:
              type: string
          required:
            - oauthProvider
            - oktaDomain
        - $ref: '#/components/schemas/BaseOAuthSetting'
    OldOwner:
      title: OldOwner
      allOf:
        - $ref: '#/components/schemas/OldOwnerObject'
    OldOwnerObject:
      type: object
      deprecated: true
      description: DEPRECATED - Use ownerName and normalized address fields instead
      properties:
        name:
          type: string
          minLength: 1
          deprecated: true
          description: DEPRECATED - Use ownerName instead
        address1:
          items:
            allOf:
              - $ref: '#/components/schemas/NullableString1'
          deprecated: true
          description: DEPRECATED - Use ownerAddressLine1 instead
        address2:
          items:
            allOf:
              - $ref: '#/components/schemas/NullableString1'
          deprecated: true
          description: DEPRECATED - Use ownerAddressLine2 instead
        address3:
          items:
            allOf:
              - $ref: '#/components/schemas/NullableString1'
          deprecated: true
          description: DEPRECATED - Use additional normalized address fields instead
    OnboardingAgreement:
      title: OnboardingAgreement
      type: object
      description: |-
        For users doing self-service onboarding, they
        just need to click a checkbox to agree to the terms.
        we will track who & when that happened on a feature-by-feature basis.
      properties:
        user:
          type: string
        date:
          oneOf:
            - type: string
            - type: string
              format: date-time
              title: ISO Date String
            - type: string
              format: date
              title: Date String
        ip:
          type: string
      required:
        - user
        - date
    OperatorConditionParameter:
      title: Operator
      type: object
      description: >-
        The boolean operator used when comparing the transfer amount with the
        limit defined in this condition.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
        - values
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - operator
          example: operator
        label:
          type: string
          description: A label for the condition parameter that you can display to users.
          example: Comparison Operator
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: >-
            The comparison operator to use when comparing the transfer amount
            with the given amount
        type:
          type: string
          description: >-
            Accepts only enumerated values as listed in the 'values' property of
            this condition.
          enum:
            - ENUMERATED
          example: ENUMERATED
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
        values:
          $ref: '#/components/schemas/ValidValues'
    OperatorType:
      type: string
      description: >-
        Boolean operators that join Conditions, and/or Actions. Must be null on
        the last Condition or Action, or if there is only one Condition or
        Action, must be non-null on all others.
      enum:
        - AND
        - OR
      example: AND
    OptionalAccountType:
      title: OptionalAccountType
      type: string
      nullable: true
      enum:
        - checking
        - saving
        - unknown
    Order:
      required:
        - id
        - accountId
        - enterpriseId
        - initiatedByUserId
        - canceledByUserId
        - clientOrderId
        - time
        - creationDate
        - scheduledDate
        - lastFillDate
        - completionDate
        - settleDate
        - fundingType
        - type
        - timeInForce
        - status
        - reason
        - reasonDescription
        - product
        - side
        - quantity
        - quantityCurrency
        - filledQuantity
        - filledQuoteQuantity
        - leavesQuantity
        - leavesQuoteQuantity
        - averagePrice
        - limitPrice
        - duration
        - twapInterval
        - rtId
        - notes
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Unique identifier for the order. Used to reference the order in
            other endpoints.
        accountId:
          $ref: '#/components/schemas/AccountId'
        enterpriseId:
          type: string
        initiatedByUserId:
          type: string
        canceledByUserId:
          type: string
        clientOrderId:
          $ref: '#/components/schemas/ClientOrderId'
        time:
          type: string
          format: date-time
        creationDate:
          type: string
          format: date-time
        scheduledDate:
          $ref: '#/components/schemas/ScheduledDate'
        lastFillDate:
          type: string
          format: date-time
        completionDate:
          type: string
          format: date-time
        settleDate:
          type: string
          format: date-time
        fundingType:
          $ref: '#/components/schemas/FundingType'
        type:
          $ref: '#/components/schemas/OrderType'
        timeInForce:
          $ref: '#/components/schemas/TimeInForce'
        status:
          $ref: '#/components/schemas/OrderStatus'
        reason:
          description: >-
            Reason for order cancellation. 'internalError' indicates an error
            occurred within the server while processing the order, resulting in
            an order cancellation. 'insufficientFunds' indicates that the order
            was cancelled due to shortage of funds to complete the transaction.
          type: string
          enum:
            - internalError
            - insufficientFunds
          example: insufficientFunds
        reasonDescription:
          type: string
        product:
          type: string
          description: Product name e.g. BTC-USD (base-quote)
        side:
          $ref: '#/components/schemas/Side'
        quantity:
          type: string
          format: decimal
          description: The specified quantity.
        quantityCurrency:
          type: string
          description: The specified quantity currency.
        filledQuantity:
          type: string
          format: decimal
          description: The total base quantity filled.
        filledQuoteQuantity:
          type: string
          format: decimal
          description: The total quote quantity filled.
        leavesQuantity:
          type: string
          format: decimal
          description: >
            For orders created with base currency, this field is set to the
            remaining unfilled base quantity.

            - Only one of leavesQuantity or leavesQuoteQuantity will be set.

            - This field is set to null for orders created with quote currency.
        leavesQuoteQuantity:
          type: string
          format: decimal
          description: >
            For orders created with quote currency, this field is set to the
            remaining unfilled quote quantity.

            - Only one of leavesQuantity or leavesQuoteQuantity will be set.

            - This field is set to null for orders created with base currency.
        averagePrice:
          type: string
          format: decimal
          description: The average price for the order's trades.
        limitPrice:
          $ref: '#/components/schemas/LimitPrice'
        triggerPrice:
          $ref: '#/components/schemas/TriggerPrice'
        duration:
          type: integer
          description: Duration of the order in minutes.
        twapInterval:
          type: integer
          description: Interval length of the TWAP order in minutes.
        rtId:
          type: string
          description: The request tracking ID associated with the order.
        parameters:
          allOf:
            - $ref: '#/components/schemas/TWAPOrderParameters'
            - $ref: '#/components/schemas/SteadyPaceOrderParameters'
        notes:
          type: string
          description: Additional notes associated with the order.
      example:
        id: 67fd640c-cb6c-4218-80ae-49e79ec15646
        accountId: 60e740e7898f7d00064d43769a73dc48
        enterpriseId: 129841a2143f99c3229c1f4x590396b4
        initiatedByUserId: 1203c28030c4320a4b90255b4683ecq6
        canceledByUserId: null
        clientOrderId: myorderid1
        time: '2025-11-25T23:12:18.210507Z'
        creationDate: '2025-11-25T23:12:18.210507Z'
        scheduledDate: null
        lastFillDate: '2025-11-25T23:12:17.642764Z'
        completionDate: '2025-11-25T23:12:17.642764Z'
        settleDate: null
        fundingType: funded
        type: market
        timeInForce: null
        status: completed
        reason: null
        reasonDescription: null
        product: BTC-USD
        side: buy
        quantity: '1000'
        quantityCurrency: USD
        filledQuantity: '0.02457152'
        filledQuoteQuantity: '1000'
        leavesQuantity: null
        leavesQuoteQuantity: '0'
        averagePrice: '40697.32'
        limitPrice: null
        triggerPrice: null
        duration: null
        twapInterval: null
        rtId: null
        isFinanced: false
        notes: null
    OrderConflictError:
      required:
        - error
        - errorName
        - reqId
      type: object
      properties:
        error:
          type: string
        errorName:
          type: string
        reqId:
          type: string
      example:
        error: backend:common:inUse key=clientOrderId
        errorName: backend:common:inUse
        reqId: unk-nqo97l23l2ofpvgkbb8z
    OrderHistoryBase:
      title: OrderHistoryBase
      type: object
      properties:
        status:
          type: string
          enum:
            - created
            - confirmed_fiat_deposit
            - confirmed_token_deposit
            - initiated_burn_token_transfer
            - completed_burn_token_transfer
            - approved_mint
            - triggering_mint
            - triggering_burn
            - completed_burn
            - approved_client_disbursal
            - initiated_client_disbursal
            - fulfilled
            - failed_mint_initiation
            - failed_mint_transaction
            - failed_burn_transaction
            - failed_burn_token_transfer
            - failed_to_mint
            - failed_to_burn
            - failed_to_initiate_disbursal
            - failed_to_complete_disbursal
            - rejected
            - failed
            - expired
            - triggering_mint_request
            - completed_mint_request
            - triggering_mint_offer
            - completed_mint_offer
            - triggering_mint_accept
            - completed_mint_accept
            - triggering_mint_transfer
            - failed_to_mint_request
            - failed_to_mint_offer
            - failed_to_mint_accept
            - failed_to_mint_transfer
            - rejected_mint_transfer
            - cancelled_mint_transfer
            - expired_mint_transfer
            - triggering_burn_request
            - completed_burn_request
            - triggering_burn_accept
            - failed_to_burn_request
            - failed_to_burn_accept
          description: Status of the order
          example: created
        timestamp:
          type: string
          description: Timestamp when the status was updated
          example: '2025-04-04T09:25:48.216Z'
          format: date-time
          title: ISO Date String
      required:
        - status
        - timestamp
    OrderResponse:
      title: OrderResponse
      allOf:
        - type: object
          properties:
            sourceWalletId:
              type: string
              description: Source wallet identifier for the order
              example: 67bc4b038f5408faefbfc8edcf6e6577
              minLength: 1
              pattern: ^[0-9a-f]{32}$
            destinationWalletId:
              type: string
              description: Destination wallet identifier for go_account type
              example: 67bc4b038f5408faefbfc8edcf6e6577
              pattern: ^[0-9a-f]{32}$
            destinationAddress:
              type: string
              description: Destination blockchain address
              example: default_address
              minLength: 1
            userId:
              type: string
              description: User identifier who initiated the order
              example: 677cfdceca8396cf5f7534ddeb8d11e3
              minLength: 1
              pattern: ^[0-9a-f]{32}$
            clientDepositTxHash:
              type: string
              description: Transaction hash of the client deposit
              example: 512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
              minLength: 1
            orderHistories:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/OrderHistoryBase'
                description: Array of order status changes with timestamps
            transactions:
              type: array
              items:
                type: object
                properties:
                  txId:
                    nullable: true
                    type: string
                    minLength: 1
                    description: Transaction identifier
                    example: >-
                      512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
                  orderId:
                    type: string
                    description: Associated order identifier
                    example: 95bdbd9c-9cdc-41a4-ae70-165387b7aa51
                    format: uuid
                    title: uuid
                  assetId:
                    type: string
                    description: Asset identifier involved in transaction
                    example: 08c1271e-b15d-4af8-8929-f75383903da4
                    format: uuid
                    title: uuid
                  type:
                    type: string
                    enum:
                      - clientDeposit
                      - mint
                      - burn
                      - burnTokenTransfer
                      - clientDisbursement
                      - treasuryMintTransfer
                      - treasuryBurnTransfer
                      - mintRequest
                      - mintOffer
                      - mintAccept
                      - mintTransfer
                      - burnRequest
                      - burnAccept
                    description: Type of transaction
                    example: clientDeposit
                  sender:
                    type: string
                    description: Sender identifier
                    example: client
                    minLength: 1
                  senderType:
                    type: string
                    enum:
                      - go_account
                      - address
                      - wallet
                    description: Type of sender
                    example: go_account
                  senderId:
                    type: string
                    description: Unique identifier of sender
                    example: 67bc4b038f5408faefbfc8edcf6e6577
                    minLength: 1
                    pattern: ^[0-9a-f]{32}$
                  sendAmount:
                    type: string
                    description: Amount sent in transaction
                    example: '500'
                    minLength: 1
                  receiver:
                    type: string
                    description: Receiver identifier
                    example: trust
                    minLength: 1
                  receiverType:
                    type: string
                    enum:
                      - go_account
                      - address
                    description: Type of receiver
                    example: go_account
                  receiverId:
                    type: string
                    description: Unique identifier of receiver
                    example: 6698e670115059e2efe672436a3aea3b
                    minLength: 1
                    pattern: ^[0-9a-f]{32}$
                  receiveAmount:
                    type: string
                    description: Amount received in transaction
                    example: '500'
                    minLength: 1
                  status:
                    type: string
                    enum:
                      - initiated
                      - signed
                      - unconfirmed
                      - confirmed
                      - rejected
                      - failed
                    description: Current status of transaction
                    example: confirmed
                  createdAt:
                    type: string
                    description: Timestamp when transaction was created
                    example: '2025-04-04T09:26:21.600Z'
                  updatedAt:
                    type: string
                    description: Timestamp when transaction was last updated
                    example: '2025-04-04T09:26:21.600Z'
                  pendingApprovalId:
                    nullable: true
                    type: string
                    minLength: 1
                    description: Pending approval id
                required:
                  - txId
                  - orderId
                  - assetId
                  - type
                  - sender
                  - senderType
                  - senderId
                  - sendAmount
                  - receiver
                  - receiverType
                  - receiverId
                  - receiveAmount
                  - status
                  - createdAt
                  - updatedAt
                  - pendingApprovalId
                description: List of transactions associated with the order
            metadata:
              type: string
              description: Additional metadata about the order
              minLength: 1
            orderMethod:
              type: string
              enum:
                - issuer_direct
                - client_deposit
              description: >-
                How the order was initiated: issuer-direct or standard client
                deposit flow
              example: issuer_direct
            createdAt:
              type: string
              description: Timestamp when the order was created
              example: '2025-04-04T09:25:48.216Z'
              format: date-time
              title: ISO Date String
            updatedAt:
              type: string
              description: Timestamp when the order was last updated
              example: '2025-04-04T09:55:09.136Z'
              format: date-time
              title: ISO Date String
        - $ref: '#/components/schemas/OrderResponseBase'
        - $ref: '#/components/schemas/OrderResponseRequiredFields'
    OrderResponseBase:
      title: OrderResponseBase
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the order
          example: 95bdbd9c-9cdc-41a4-ae70-165387b7aa51
          format: uuid
          title: uuid
        type:
          type: string
          enum:
            - mint
            - burn
            - reward
          description: Type of order operation
          example: mint
        status:
          type: string
          enum:
            - created
            - confirmed_fiat_deposit
            - confirmed_token_deposit
            - initiated_burn_token_transfer
            - completed_burn_token_transfer
            - approved_mint
            - triggering_mint
            - triggering_burn
            - completed_burn
            - approved_client_disbursal
            - initiated_client_disbursal
            - fulfilled
            - failed_mint_initiation
            - failed_mint_transaction
            - failed_burn_transaction
            - failed_burn_token_transfer
            - failed_to_mint
            - failed_to_burn
            - failed_to_initiate_disbursal
            - failed_to_complete_disbursal
            - rejected
            - failed
            - expired
            - triggering_mint_request
            - completed_mint_request
            - triggering_mint_offer
            - completed_mint_offer
            - triggering_mint_accept
            - completed_mint_accept
            - triggering_mint_transfer
            - failed_to_mint_request
            - failed_to_mint_offer
            - failed_to_mint_accept
            - failed_to_mint_transfer
            - rejected_mint_transfer
            - cancelled_mint_transfer
            - expired_mint_transfer
            - triggering_burn_request
            - completed_burn_request
            - triggering_burn_accept
            - failed_to_burn_request
            - failed_to_burn_accept
          description: Current status of the order
          example: fulfilled
        enterpriseId:
          type: string
          description: The Enterprise ID
          example: 67bc4ae090e8af8f9b412d3d67e85252
          minLength: 1
          pattern: ^[0-9a-f]{32}$
      required:
        - id
        - type
        - status
        - enterpriseId
    OrderResponseRequiredFields:
      title: OrderResponseRequiredFields
      type: object
      properties:
        fromAssetId:
          type: string
          description: Source asset identifier
          example: 08c1271e-b15d-4af8-8929-f75383903da4
          format: uuid
          title: uuid
        fromAmount:
          type: string
          description: >-
            Amount to be transferred from source asset, specified in its lowest
            denomination.
          example: '500'
          minLength: 1
        toAssetId:
          type: string
          description: Destination asset identifier
          example: 49ff49ea-3355-4717-bbb0-5e8f5cae2202
          format: uuid
          title: uuid
        toAmount:
          type: string
          description: Amount to be received in destination asset
          example: '5000000'
          minLength: 1
        destinationType:
          type: string
          enum:
            - go_account
            - address
            - wallet
          description: Type of destination for the order
          example: go_account
      required:
        - fromAssetId
        - fromAmount
        - toAssetId
        - toAmount
        - destinationType
    OrderStatus:
      type: string
      enum:
        - pending_open
        - open
        - completed
        - pending_cancel
        - canceled
        - error
        - scheduled
    OrderStatusBreakdown:
      title: OrderStatusBreakdown
      type: object
      properties:
        count:
          type: number
          description: Number of orders in this status
          example: 5
        amount:
          type: string
          description: Total amount in lowest denomination
          example: '45000000000000000000000000'
      required:
        - count
        - amount
    OrderType:
      type: string
      enum:
        - market
        - twap
        - limit
        - steady_pace
        - stop
      description: >-
        The type of order to be placed. See our [Trade
        Guide](/docs/trade-overview) for more details on each order type.
    OrderTypeSummary:
      title: OrderTypeSummary
      type: object
      properties:
        amount:
          type: string
          description: Total amount in lowest denomination
          example: '110002428000000000000000000'
        count:
          type: number
          description: Total number of orders
          example: 12
        byStatus:
          type: object
          description: Breakdown by order status (only includes statuses with data)
          example:
            created:
              count: 5
              amount: '45000000000000000000000000'
          properties:
            created:
              $ref: '#/components/schemas/OrderStatusBreakdown'
            pending:
              $ref: '#/components/schemas/OrderStatusBreakdown'
            fulfilled:
              $ref: '#/components/schemas/OrderStatusBreakdown'
      required:
        - amount
        - count
        - byStatus
    Orders:
      type: array
      items:
        $ref: '#/components/schemas/Order'
    Organization:
      title: Organization
      allOf:
        - type: object
          properties:
            id:
              type: string
              description: The organization ID
          required:
            - id
        - $ref: '#/components/schemas/OrganizationMutableParameters'
    OrganizationAdminActionRequest:
      title: Organization Admin Approval
      type: object
      description: Require approval from organization admins.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.organizationAdmin
          example: approvals.customer.organizationAdmin
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - minRequired
          properties:
            minRequired:
              type: string
              description: Minimum required number of approvers
              example: '1'
        operator:
          $ref: '#/components/schemas/OperatorType'
    OrganizationBusinessModel:
      title: OrganizationBusinessModel
      type: string
      enum:
        - cryptoAsAService
    OrganizationDefaultEnterpriseValue:
      title: OrganizationDefaultEnterpriseValue
      type: object
      properties:
        bitgoOrg:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BitgoOrg'
        licenses:
          type: array
          items:
            type: string
            enum:
              - bitgoNetwork
              - marginTrading
              - metaMaskInstitutional
              - mtGox
              - portfolioAPI
              - portfolioBasic
              - portfolioProfessional
              - portfolioInstitutional
              - tax
              - tradeAPI
              - staking
              - stakingApi
              - cryptoCompare
              - elliptic
              - instantFeeHotWallet
              - bitgoTrustAsKrs
              - escrow
              - escrowTriparty
              - distributedCustodyWallet
              - selfCustodyLightningWallet
              - custodyLightningWallet
              - custodyGoLightning
              - achDebits
              - advancedWallets
              - stablecoins
              - canBorrowAgainstGoAccount
              - autoLiquidation
              - tradeFixApi
              - goStaking
            x-enumsDeprecated:
              - portfolioAPI
              - portfolioBasic
              - portfolioProfessional
              - portfolioInstitutional
              - tax
        labels:
          type: array
          items:
            type: string
            enum:
              - B2B2C - Swan
              - B2B2C - Binance
              - B2B2C - Fold
              - Sofi
              - Mt Gox
              - Bitcoin Builder
              - Employee
              - General
              - B2B2C
              - B2B2B - Keyrails
              - B2B2B - Onramp
              - B2B2C - Onramp
              - starterAccount
              - ftx
              - bitgoTechnologiesFBO
              - retail
              - foundation
              - Coinlist
              - Sales Referral!Frank Wang
        usersViewAllWallets:
          nullable: true
          type: boolean
        videoIdWaived:
          nullable: true
          type: boolean
        pricingPlan:
          nullable: true
          oneOf:
            - type: string
            - type: string
              enum:
                - ''
        upfrontPaymentStatus:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/UpfrontPaymentStatus'
            - type: string
              enum:
                - ''
        accountType:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AccountType'
        pricingType:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PricingTypeName'
            - type: string
              enum:
                - ''
        businessModel:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BusinessModel'
        complianceModel:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ComplianceModel'
        featureFlags:
          type: array
          items:
            type: string
            enum:
              - adaBYOValidator
              - adaBYODRep
              - adaPledging
              - adaStaking
              - atomStaking
              - avaxcAlwaysUseHop
              - avaxpStaking
              - avaxpBYOValidator
              - bscStaking
              - bscBYOValidator
              - babylonStaking
              - cronosStaking
              - fetchStaking
              - lidoStaking
              - cosmosBYOValidator
              - icpStaking
              - nearBYOValidator
              - maticBYOValidator
              - mpcStaking
              - pstAvaxStaking
              - solBYOValidator
              - somniaStaking
              - somniaBYOValidator
              - storyStaking
              - hypeevmStaking
              - hypeevmBYOValidator
              - storyBYOValidator
              - stAvaxStaking
              - sAvaxStaking
              - v2RewardAccrualReportAPI
              - trxStaking
              - trxBYOValidator
              - vetStaking
              - vetBYOValidator
              - xdcBYOValidator
              - reactOnly
              - useEddsaCommitment
              - enableBG23
              - enableBG25Inst
              - enableBG25Retail
              - bitgoNetwork
              - btcHSMv3
              - ecdsaTssColdWallets
              - eddsaTssColdWallets
              - enableMMI
              - ethHSMv3
              - nftWallets
              - checkPendingBalanceOnBuild
              - enableEcdsaWallets
              - enableTendermintHotWallets
              - enableMpcEvmCustody
              - enableMpcEvmHot
              - ethBatchStaking
              - enableConcurrentGg18Evm
              - specialVideoInstructions
              - csprStaking
              - tssCustodial
              - blockTransactionIfPending
              - mystenEmployee
              - mystenInvestor
              - monthlyTrustReports
              - nitroHSM
              - unspentsConsolidation
              - newPolicyServiceShadowMode
              - useEnterpriseEcdsaTssChallenge
              - clearingSettlementUI
              - snowflakeReports
              - multiAssetDVP
              - solStakingAuthorize
              - suiCustomTx
              - csprBYOValidator
              - suiBYOValidator
              - stxStaking
              - stxBYOValidator
              - tonBYOValidator
              - btcBYOValidator
              - btcStaking
              - tonStaking
              - useEcdsaTssPaillierBlum
              - useEcdsaTssPhase5
              - allowBackupKeySigning
              - useCustomValidators
              - sendTxRequestFullNotification
              - addressBookRevised
              - enableEnterprisePolicy
              - bgUILargeEnterprise
              - enableDurableNonce
              - automateGoAccountActivation
              - showUnstableOesPartners
              - stakingReports
              - cosmosClaimRewards
              - cosmosSwitchValidator
              - enablePlaid
              - enableMPCv2
              - useWireWithdrawalConfirmAPI
              - disableDurableNonce
              - tonV1Wallets
              - allowExternalChangeAddressUI
              - eigenStaking
              - eigenBYOValidator
              - eigenLikeClaimRewards
              - enableRiskScoring
              - useValidatorList
              - ethRestaking
              - ethClaimRewards
              - enableKycReverification
              - fetchAdaBalanceFromIndexer
              - polStaking
              - enableTrxFundingFromGasTank
              - useAvailableBandwidthForTokenConsolidation
              - enablePreventDuplicateConsolidations
              - ethUnstakingPolicyService
              - bulkTx
              - eth2Staking
              - nearStaking
              - solStaking
              - dotStaking
              - maticStaking
              - suiStaking
              - wctStaking
              - wflrStaking
              - coredaoStaking
              - coredaoBYOValidator
              - beraStaking
              - beraBYOValidator
              - beraNativeStaking
              - walrusStaking
              - walrusBYOValidator
              - taoStaking
              - taoBYOValidator
              - babylonBYOValidator
              - btcBabylonStaking
              - polyxStaking
              - polyxBYOValidator
              - tokenization
              - globalTravelRule
              - addressReports
              - enableMarginV2
              - enableMarginV2UI
              - mpcV2ReceiveAddress
              - enableUSDS
              - enableDEX
              - enableWalletConnect
              - shouldCreateGoAccountAsynchronously
              - enableWhitelistTestTransactions
              - disableCustodyGoGasVideoWaiver
              - enableFinancing
              - disableFinancing
              - financingGatedRelease
              - enableEnterpriseWhitelist
              - enableEnterpriseAddressBook
              - enableSmartContractCalls
              - enableCrossChainRecovery
              - enablePolicyRuleTemplates
              - enableUserRoleApprovalAction
              - enableTimeBasedPolicies
              - securePolicyWebhooks
              - dontSendStatementEmailNotifications
              - hotBackingWalletsEnabled
              - enableSso
              - enableOktaSso
              - volumeTieredTradingFees
              - enableInternalOnlyTradeProducts
              - showNewTradeProductsBanner
              - enableTokenManagementTab
              - enableNewConsolidationDesign
              - enableMidnightGlacierDrop
              - useImsBuiltTransaction
              - enableNewInfraredRewardTracking
              - skipFailedTxnEntriesUpdate
              - expiryBasedNonceHandler
              - disableSelfCustodyWhitelistLock
              - enableTradeV2UI
              - showOrderBookData
              - achDebitsEnabled
              - enableFrankfurtDETrustTrading
              - enableEVMKeyring
              - invoiceFiatFees
              - seievmStaking
              - seievmBYOValidator
              - jitoStaking
              - enableKoreanLocalization
              - taoBittensorStaking
              - enableDvPBulkInitialization
              - enableUSDMena
              - aptStaking
              - solRedelegationBackfill
              - ignoreSpendingCalculationMissingMarketData
              - enableMobileDownloadBanner
              - enableTrxMpc
              - enterpriseLogoUpload
              - cantonByov
              - disableBridging
        distributedCustody:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/DistributedCustody'
    OrganizationGetResponse:
      title: OrganizationGetResponse
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/Organization'
      required:
        - organization
    OrganizationIdString:
      title: OrganizationIdString
      type: string
      example: 59cd72485007a239fb00282ed480da1f
      pattern: ^[0-9a-f]{32}$
    OrganizationMutableParameters:
      title: OrganizationMutableParameters
      type: object
      properties:
        name:
          type: string
          description: The name of the organization
        pricingPlan:
          nullable: true
          oneOf:
            - type: string
            - type: string
              enum:
                - ''
          description: The pricing plan for the organization
        enterpriseNameSuffix:
          nullable: true
          oneOf:
            - type: string
            - type: string
              enum:
                - ''
          description: The suffix for the enterprise name
        salesforceAccountId:
          type: string
          description: The Salesforce account ID
        enterprises:
          type: array
          items:
            type: string
            description: The list of enterprises associated with the organization
        defaultEnterpriseValues:
          allOf:
            - $ref: '#/components/schemas/OrganizationDefaultEnterpriseValue'
          description: The default values for the enterprise
        approvedVideoIdUsers:
          type: array
          items:
            type: string
            description: The list of approved users for video ID
        defaultOrgEnterpriseTemplateId:
          type: string
        orgFeatureFlags:
          type: array
          items:
            type: string
            enum:
              - disableLivenessAsDefault
              - dontSendStatementEmailNotifications
              - userManagementServiceEnabled
              - achDebitsEnabledAllEnterprises
              - isTriPartyAutoAcceptEnabled
              - tokenManagementServiceEnabled
              - CaaSEnabledFiatPolicies
              - euRegulated
            description: All feature flags that should be set on the organization
        reserveGoAccountId:
          nullable: true
          type: string
          description: The ID of the organization's reserve holdings Go account
        licenses:
          type: array
          items:
            type: string
            enum:
              - DAppConnections
              - KycExemption
            description: Organization-level licenses
        businessModel:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/OrganizationBusinessModel'
          description: The business model for the organization
    OrganizationRole:
      title: OrganizationRole
      type: string
      enum:
        - serviceUser
        - admin
        - member
        - customer
      example: admin
    OrganizationSnowflakeReportType:
      title: OrganizationSnowflakeReportType
      type: string
      enum:
        - organizationHoldings
        - organizationHoldingsByAddress
        - organizationTransactions
        - organizationTrades
        - organizationStaking
        - userAccess
    OrganizationWebhookResponse:
      title: OrganizationWebhookResponse
      type: object
      description: >-
        Webhook response scoped to organization webhook types — `coin` is
        optional.
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        created:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        url:
          type: string
          example: https://your.server.com/webhook
          format: uri
        version:
          type: number
          description: 2 for coins running on API v2.
          example: 2
        scope:
          $ref: '#/components/schemas/WebhookScope'
        state:
          $ref: '#/components/schemas/WebhookState'
        successiveFailedAttempts:
          type: number
          example: 0
        listenToFailureStates:
          type: boolean
          description: Whether or not to listen to failed transactions on chain.
        coin:
          type: string
          description: A cryptocurrency or token ticker symbol.
          example: btc
        label:
          type: string
          description: Label of the new webhook.
        walletId:
          type: string
        enterpriseId:
          type: string
        organizationId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        userId:
          type: string
        type:
          allOf:
            - $ref: '#/components/schemas/OrganizationWebhookType'
          description: Event type to listen to.
        numConfirmations:
          type: number
          example: 6
        lastAttempt:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        failingSince:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        allToken:
          type: boolean
        txRequestStates:
          type: array
          items:
            type: string
            enum:
              - pendingApproval
              - canceled
              - rejected
              - initialized
              - pendingDelivery
              - delivered
              - pendingUserSignature
              - pendingUserCommitment
              - pendingUserRShare
              - pendingUserGShare
              - readyToSend
              - signed
              - failed
            description: >-
              If present, only transaction request state changes from the list
              will trigger notifications.

              If not present, all transaction request state changes will trigger
              notifications.
        txRequestTransactionStates:
          type: array
          items:
            type: string
            enum:
              - initialized
              - pendingSignature
              - eddsaPendingCommitment
              - eddsaPendingRShare
              - eddsaPendingGShare
              - ecdsaMPCv2Round1
              - ecdsaMPCv2Round2
              - ecdsaMPCv2Round3
              - eddsaMPCv2Round1
              - eddsaMPCv2Round2
              - eddsaMPCv2Round3
              - readyToCombineShares
              - signed
              - held
              - delivered
              - invalidSignature
              - rejected
            description: >-
              If present, only transaction request transaction state changes
              from the list will trigger

              notifications. If not present, all transaction request transaction
              state changes will

              trigger notifications.
      required:
        - id
        - created
        - url
        - version
        - scope
        - state
        - successiveFailedAttempts
        - listenToFailureStates
    OrganizationWebhookType:
      title: OrganizationWebhookType
      type: string
      enum:
        - transfer
        - txRequest
        - pendingapproval
        - txRequestTransaction
        - bankAccount
        - identityStatus
        - idvStatus
        - userKycState
        - enterpriseKycState
        - accessToken
        - reversal
        - tradeOrder
    OsmoClaimRewardsRequestPOSTBody:
      title: Osmosis (OSMO) Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Osmosis (OSMO).
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    OsmoStakingRequest:
      title: OSMO
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    OsmoStakingRequestPOSTBody:
      title: OSMO stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    OsmoSwitchValidatorsRequestPOSTBody:
      title: Osmosis (OSMO) Switch Validators Request
      type: object
      description: >-
        Request to switch staking delegation to a new validator for Osmosis
        (OSMO).
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    OsmoUnStakingRequestPOSTBody:
      title: OSMO unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    Otp:
      type: string
      example: '123456'
      description: Second factor authentication token
    OtpType:
      title: OtpType
      type: string
      enum:
        - authy
        - totp
        - u2f
        - webauthn
        - yubikey
    PaginatedResults:
      type: object
      description: Common fields of a paginated result.
      required:
        - page
        - totalPages
        - totalElements
      properties:
        page:
          type: integer
          description: Page number. Page numbers start at 1.
        totalPages:
          type: integer
          description: Total number of pages. Total pages start at 1.
        totalElements:
          type: integer
          description: Total number of elements across all pages.
    PaginatedResultsWithNextBatchPrevId:
      type: object
      description: Common fields of a paginated result paged with a nextBatchPrevId.
      required:
        - nextBatchPrevId
      properties:
        nextBatchPrevId:
          type: string
          description: >-
            The value to pass as the prevId to the API for getting the next
            page.
    PaillierBlumProof:
      title: PaillierBlumProof
      type: object
      description: >-
        The paillierBlumProof value is only required when creating the initial
        config.
      properties:
        w:
          type: string
          description: The w value of the Paillier Blum proof
        x:
          type: array
          items:
            type: string
            description: >-
              The x value of the Paillier Blum proof is an array of 80 hex
              strings
        z:
          type: array
          items:
            type: string
            description: >-
              The z value of the Paillier Blum proof is an array of 80 hex
              strings
      required:
        - w
        - x
        - z
    ParsedTx:
      title: ParsedTx
      type: object
      properties:
        inputs:
          type: array
          items:
            type: object
            properties:
              valueString:
                type: string
              _id:
                type: string
              address:
                type: string
              chain:
                type: number
              derivationIndex:
                type: number
              index:
                type: number
              value:
                oneOf:
                  - type: number
                  - type: number
            required:
              - valueString
        minerFee:
          oneOf:
            - type: string
            - type: number
        outputs:
          type: array
          items:
            type: object
            properties:
              valueString:
                type: string
              address:
                type: string
              change:
                type: boolean
              coinName:
                type: string
              data:
                type: string
              isPayGo:
                type: boolean
              value:
                oneOf:
                  - type: number
                  - type: number
              wallet:
                type: string
              walletV1:
                type: string
              baseAddress:
                type: string
              enterprise:
                type: string
            required:
              - valueString
        spendAmount:
          oneOf:
            - type: string
            - type: number
        gasPrice:
          type: number
        hasUnvalidatedData:
          type: boolean
        payGoFee:
          oneOf:
            - type: string
            - type: number
        spendAmounts:
          type: array
          items:
            type: object
            additionalProperties: {}
        type:
          type: string
      required:
        - inputs
        - minerFee
        - outputs
        - spendAmount
    PartnerAllocationStatusUpdate:
      title: PartnerAllocationStatusUpdate
      type: string
      enum:
        - cleared
        - released
    PartnerConnectionKeySchema:
      title: PartnerConnectionKeySchema
      type: string
      enum:
        - token
        - tokenAndSignature
        - apiKeyAndSecret
        - clearloop
    PartySettlementAmountsRecord:
      title: PartySettlementAmountsRecord
      type: object
      additionalProperties:
        type: object
        additionalProperties:
          type: string
        description: >-
          For mapped settlement amounts where the amount will always be a
          bigint.

          This ensures consistent handling of large monetary values in
          settlements.
      description: >-
        Maps destination connection IDs to currency amounts for settlement.


        Record<Party (destination) connectionId, Record<Currency, Amount
        (bigint)>>


        Used for exchange-style settlements, where the exchange is always the
        source and

        client owned connections are the destination. Each entry maps a
        destination

        connection ID to the currency amounts being settled to that connection.
    PaymentFailureReason:
      title: PaymentFailureReason
      oneOf:
        - type: string
          enum:
            - ERROR
          description: A non-recoverable error
        - type: string
          enum:
            - INSUFFICIENT_BALANCE
          description: Insufficient channel outbound capacity
        - type: string
          enum:
            - INSUFFICIENT_WALLET_BALANCE
          description: Insufficient custodial lightning balance for the customer's wallet
        - type: string
          enum:
            - EXCESS_WALLET_BALANCE
          description: Excess custodial lightning balance for the customer's wallet
        - type: string
          enum:
            - TIMEOUT
            - NO_ROUTE
            - INCORRECT_PAYMENT_DETAILS
            - INVOICE_EXPIRED
            - CANCELED
            - FORCE_FAILED
            - PAYMENT_ALREADY_SETTLED
            - PAYMENT_ALREADY_IN_FLIGHT
            - TRANSIENT_ERROR_RETRY_LATER
    PaymentInfo:
      title: PaymentInfo
      type: object
      description: Off-chain payment information
      properties:
        id:
          type: string
        paymentHash:
          type: string
        walletId:
          type: string
        txRequestId:
          type: string
        status:
          $ref: '#/components/schemas/PaymentStatus'
        invoice:
          type: string
        feeLimitMsat:
          type: string
          format: number
        destination:
          type: string
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        amountMsat:
          type: string
          format: number
        feeMsat:
          type: string
          format: number
        failureReason:
          $ref: '#/components/schemas/PaymentFailureReason'
        paymentPreimage:
          type: string
      required:
        - id
        - paymentHash
        - walletId
        - txRequestId
        - status
        - invoice
        - feeLimitMsat
        - destination
        - updatedAt
        - createdAt
        - amountMsat
    PaymentIntent:
      title: PaymentIntent
      allOf:
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithRecipients'
        - oneOf:
            - type: object
              properties:
                intentType:
                  type: string
                  enum:
                    - payment
                  description: Must be "payment".
              required:
                - intentType
            - type: object
              properties:
                intentType:
                  type: string
                  enum:
                    - payment
                  description: Must be "payment".
                isTestTransaction:
                  type: boolean
                  description: >-
                    When true, marks this as a test transaction (not broadcast
                    to the network).
              required:
                - intentType
                - isTestTransaction
    PaymentIntent1:
      title: PaymentIntent
      allOf:
        - type: object
          properties:
            intent:
              type: string
              enum:
                - payment
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address1'
                  amount:
                    $ref: '#/components/schemas/Amount1'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - intent
            - recipients
        - $ref: '#/components/schemas/BaseIntent1'
    PaymentStatus:
      title: PaymentStatus
      type: string
      enum:
        - in_flight
        - settled
        - failed
    PendingActivityAutoProcessing:
      title: PendingActivityAutoProcessing
      type: string
      enum:
        - requiresScreening
        - preapprovedRoutingNumber
        - screeningFailed
        - screeningApproved
    PendingActivityState:
      title: PendingActivityState
      allOf:
        - $ref: '#/components/schemas/PendingActivityStateObject'
    PendingActivityStateObject:
      oneOf:
        - $ref: '#/components/schemas/PendingActivityTrust'
        - $ref: '#/components/schemas/PendingActivityAutoProcessing'
    PendingActivityTrust:
      title: PendingActivityTrust
      type: string
      enum:
        - flaggedBrokerage
        - trustVerification
        - trustVerificationUpdated
        - trustNameVerification
        - ownerNameMismatch
    PendingApproval:
      title: PendingApproval
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        coin:
          type: string
          description: A cryptocurrency or token ticker symbol.
          example: btc
        wallet:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        walletType:
          type: string
        walletSubType:
          type: string
          description: The subtype of the wallet (e.g., custodialHot)
        wallets:
          type: array
          items:
            type: string
            example: 59cd72485007a239fb00282ed480da1f
            pattern: ^[0-9a-f]{32}$
            description: The wallets of the pending approval
        enterprise:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        organization:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        organizationName:
          type: string
          description: The organization name
        bitgoOrg:
          type: string
          description: The BitGo organization
        creator:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        createDate:
          type: string
          description: The creation date of the pending approval
          format: date-time
          title: ISO Date String
        approvedDate:
          type: string
          description: The date when the approval was granted
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: >-
            The date when the approval was last updated (any update, not just
            processing)
          format: date-time
          title: ISO Date String
        keyCurve:
          type: string
          enum:
            - secp256k1
            - ed25519
            - bls12_381
          description: The key curve of the coin attached to this pending approval
        info:
          allOf:
            - $ref: '#/components/schemas/PendingApprovalInfo'
          description: Information about the pending approval
        state:
          allOf:
            - $ref: '#/components/schemas/PendingApprovalState'
          description: The state of the pending approval
        scope:
          type: string
          enum:
            - enterprise
            - wallet
            - organization
            - global
          description: What kind of entity the Pending Approval is tied to
        userIds:
          type: array
          items:
            type: string
            description: All the Users who should see this Pending Approval
        approvalsRequired:
          type: number
          example: 1
          minimum: 1
        walletLabel:
          type: string
          description: Label for the wallet
        addressLabels:
          type: array
          items:
            type: object
            properties:
              address:
                $ref: '#/components/schemas/AddressString'
              label:
                type: string
                description: The label
              walletLabel:
                type: string
                description: The wallet label
            required:
              - address
              - label
            description: Address labels of recipients in this Pending Approval
        resolvers:
          type: array
          items:
            type: object
            description: Resolvers for the pending approval
            properties:
              autoApproved:
                type: boolean
                description: Whether the resolution was auto approved
              date:
                type: string
                description: The date of resolution
                format: date-time
                title: ISO Date String
              resolutionAction:
                type: string
                enum:
                  - approve
                  - reject
                  - skip
                  - fail
                description: Action taken during resolution
              resolutionMemo:
                type: string
                description: Memo regarding the resolution
              resolutionType:
                allOf:
                  - $ref: '#/components/schemas/PendingApprovalStatePending'
                description: The type of resolution
              user:
                type: string
                description: The user who resolved the approval
              videoApprover:
                type: string
                description: The approver of the video resolution
              videoException:
                type: string
                description: Exception details for the video
              videoLink:
                type: string
                description: Link to the resolution video
            required:
              - resolutionType
        approvers:
          type: array
          items:
            type: string
            description: List of approvers
        singleRunResults:
          type: array
          items:
            type: object
            properties:
              ruleId:
                type: string
                description: The rule ID
              triggered:
                type: boolean
                description: Whether the rule was triggered
            description: Results from single run checks
        txRequestId:
          type: string
          description: Transaction request ID
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
        videoId:
          type: object
          description: ID for the video related to the approval
          properties:
            date:
              type: string
              description: The date of the video ID
              format: date-time
              title: ISO Date String
            user:
              type: string
              description: The user associated with the video ID
            videoApprover:
              type: string
              description: The approver of the video
            videoException:
              type: string
              description: The exception related to the video
            videoLink:
              type: string
              description: The link to the video
        version:
          type: number
          description: Version of the pending approval
        policyEvaluationId:
          type: string
          description: ID for the policy evaluation
        actions:
          type: array
          items:
            type: object
            properties:
              approvers:
                type: array
                items:
                  type: string
                  description: The approvers of the action
              excludedApprovers:
                type: array
                items:
                  type: string
                  description: >-
                    Users that are eligible approvers but cannot approve (e.g.
                    already approved or the initiator)
              id:
                type: string
                description: The ID of the action
              name:
                type: string
                description: The name of the action
              operator:
                type: string
                enum:
                  - AND
                  - OR
                description: The operator of the action
              parameters:
                allOf:
                  - $ref: '#/components/schemas/PolicyActionParameters'
                description: The parameters of the action
              resolvers:
                type: array
                items:
                  type: object
                  description: The resolvers of the action
                  properties:
                    autoApproved:
                      type: boolean
                      description: Whether the resolution was auto approved
                    date:
                      type: string
                      description: The date of resolution
                      format: date-time
                      title: ISO Date String
                    resolutionAction:
                      type: string
                      enum:
                        - approve
                        - reject
                        - skip
                        - fail
                      description: Action taken during resolution
                    resolutionMemo:
                      type: string
                      description: Memo regarding the resolution
                    resolutionType:
                      allOf:
                        - $ref: '#/components/schemas/PendingApprovalStatePending'
                      description: The type of resolution
                    user:
                      type: string
                      description: The user who resolved the approval
                    videoApprover:
                      type: string
                      description: The approver of the video resolution
                    videoException:
                      type: string
                      description: Exception details for the video
                    videoLink:
                      type: string
                      description: Link to the resolution video
                  required:
                    - resolutionType
              status:
                allOf:
                  - $ref: '#/components/schemas/EvaluatedPolicyActionStatus'
                description: The status of the action
            required:
              - id
              - name
              - parameters
              - status
            description: List of actions taken
        resolutionOrder:
          type: array
          items:
            type: object
            properties:
              actions:
                type: array
                items:
                  type: string
                  minLength: 1
            required:
              - actions
            description: Order of resolution
        useLegacyPolicyEngine:
          type: boolean
          description: Flag to use legacy policy engine
        videoCallId:
          type: string
          description: ID for the video call
        lastUpdated:
          type: string
          description: The last date the approval was processing
          format: date-time
          title: ISO Date String
        freeze:
          type: object
          description: The freeze state
          properties:
            actions:
              type: array
              items:
                type: object
                properties:
                  reason:
                    type: string
                  state:
                    type: string
                    enum:
                      - frozen
                      - unFrozen
                  time:
                    type: string
                    format: date-time
                    title: ISO Date String
                  userId:
                    type: string
                  username:
                    type: string
            state:
              type: string
              enum:
                - frozen
                - unFrozen
        memo:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
                description: The text of the memo
              time:
                type: string
                description: The time the memo was created
                format: date-time
                title: ISO Date String
              userId:
                type: string
                description: The user ID of the admin who created the memo
              username:
                type: string
                description: The username of the admin who created the memo
            required:
              - text
              - time
              - userId
              - username
            description: Admin memos attached to this pending approval
        associatedInquiries:
          type: array
          items:
            type: object
            properties:
              inquiryId:
                type: string
              inquiryStatus:
                $ref: '#/components/schemas/InquiryStatus'
              inquirySubType:
                $ref: '#/components/schemas/InquirySubType'
              inquiryType:
                $ref: '#/components/schemas/InquiryType'
            required:
              - inquiryId
              - inquiryStatus
              - inquirySubType
              - inquiryType
            description: Associated inquiries
      required:
        - id
        - creator
        - createDate
        - info
        - state
        - scope
    PendingApproval1:
      title: Pending approval
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        coin:
          $ref: '#/components/schemas/Coin'
        wallet:
          $ref: '#/components/schemas/Id'
        enterprise:
          $ref: '#/components/schemas/Id'
        organization:
          $ref: '#/components/schemas/Id'
        creator:
          $ref: '#/components/schemas/Id'
        createDate:
          type: string
          format: date-time
        info:
          anyOf:
            - $ref: '#/components/schemas/PendingApprovalTransactionRequest'
            - $ref: '#/components/schemas/PendingApprovalTransactionRequestFull1'
            - $ref: '#/components/schemas/PendingApprovalUserChangeRequest'
            - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest'
            - $ref: >-
                #/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest
            - $ref: >-
                #/components/schemas/PendingApprovalEnterpriseModificationResponse1
            - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest'
        state:
          $ref: '#/components/schemas/PendingApprovalState1'
        scope:
          description: What kind of entity the Pending Approval is tied to
          type: string
          enum:
            - enterprise
            - wallet
        userIds:
          description: All the Users who should see this Pending Approval
          type: array
          items:
            $ref: '#/components/schemas/Id'
        approvalsRequired:
          $ref: '#/components/schemas/ApprovalsRequired'
        walletLabel:
          type: string
        resolvers:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
              date:
                type: string
              resolutionType:
                type: string
                enum:
                  - approved
                  - awaitingSignature
                  - pending
                  - pendingBitGoAdminApproval
                  - pendingCryptographicApproval
                  - pendingCustodianApproval
                  - pendingFinalApproval
                  - pendingIdVerification
                  - pendingVideoApproval
                  - processing
                  - rejected
              signatures:
                type: array
                items:
                  type: string
              videoApprover:
                type: string
              videoLink:
                type: string
              videoException:
                type: string
            required:
              - user
              - date
              - resolutionType
              - signatures
        addressLabels:
          type: array
          items:
            $ref: '#/components/schemas/PendingApprovalAddressLabel'
    PendingApprovalAddressLabel:
      description: Address labels of recipients in this Pending Approval
      type: object
      properties:
        address:
          $ref: '#/components/schemas/AddressString3'
        label:
          $ref: '#/components/schemas/AddressLabel'
        walletLabel:
          $ref: '#/components/schemas/WalletLabel'
      required:
        - address
        - label
    PendingApprovalEnterpriseInviteRequest:
      title: Enterprise Invite Request
      type: object
      properties:
        type:
          type: string
          enum:
            - enterpriseInviteRequest
        enterpriseInviteRequest:
          type: object
          properties:
            action:
              type: string
              enum:
                - add
            email:
              type: string
              description: The email address of the user being invited
            userId:
              $ref: '#/components/schemas/Id'
              description: The ID of the user being invited
            isVideoIdUser:
              type: boolean
            enterpriseInfo:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                  description: The ID of the enterprise the user is being invited to
                name:
                  type: string
                  description: The name of the enterprise the user is being invited to
                requiredVerificationStep:
                  type: string
                  description: >-
                    The required verification step needed (if any) before the
                    user can join the enterprise
                invitedBy:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/Id'
                      description: The ID of the user who invited the user
                    fullName:
                      type: string
                      description: The full name of the user who invited the user
                    email:
                      type: string
                      description: The email address of the user who invited the user
    PendingApprovalEnterpriseModificationResponse:
      title: Enterprise modification request
      type: object
      properties:
        policyRuleRequest:
          type: object
          properties:
            action:
              type: string
            updateEnterpriseRequest:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - updateEnterpriseRequest
                action:
                  type: string
                  enum:
                    - add
                    - remove
                permission:
                  type: string
                  enum:
                    - admin
                userId:
                  type: string
                email:
                  allOf:
                    - $ref: '#/components/schemas/PlatformEmail'
                  description: E-Mail address of newly added users
        type:
          type: string
          enum:
            - policyRuleRequest
    PendingApprovalEnterpriseModificationResponse1:
      title: Enterprise modification request
      type: object
      properties:
        policyRuleRequest:
          type: object
          properties:
            action:
              type: string
            updateEnterpriseRequest:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - updateEnterpriseRequest
                action:
                  type: string
                  enum:
                    - add
                    - remove
                permission:
                  type: string
                  enum:
                    - admin
                userId:
                  type: string
                email:
                  allOf:
                    - $ref: '#/components/schemas/Email'
                  description: E-Mail address of newly added users
        type:
          type: string
          enum:
            - policyRuleRequest
    PendingApprovalInfo:
      title: PendingApprovalInfo
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PendingApprovalType'
        userChangeRequest:
          type: object
          properties:
            action:
              type: string
              description: The action taken
            permissions:
              type: array
              items:
                type: string
                description: The permissions associated with the change
            userChanged:
              type: string
              description: The user that changed
        transactionRequest:
          type: object
          properties:
            buildParams:
              description: The build parameters for the transaction
            coinSpecific:
              description: Coin-specific details
            comment:
              nullable: true
              type: string
              description: The comment for the transaction request
            fee:
              description: The fee for the transaction
            isUnsigned:
              nullable: true
              type: boolean
              description: Indicates if the transaction is unsigned
            policyUniqueId:
              description: The unique ID for the policy
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                    description: The address of the recipient
                    example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
                    maxLength: 250
                  amount:
                    description: The amount to be transferred
                    example: '100000'
                  data:
                    type: string
                    description: Additional data for the transaction
                description: The recipients of the transaction
            requestedAmount:
              description: The requested amount
            sourceWallet:
              description: The source wallet
            triggeredPolicy:
              description: The triggered policy for the transaction
            validTransaction:
              type: string
              description: Indicates if the transaction is valid
            validTransactionHash:
              type: string
              description: The hash of the valid transaction
            verificationItems:
              nullable: true
              type: array
              items:
                type: string
              description: The verification items for the transaction
            verificationRuleId:
              nullable: true
              type: string
              description: The ID of the verification rule
            videoApprovers:
              type: array
              items:
                description: The video approvers for the transaction
        transactionRequestFull:
          type: object
          properties:
            intent:
              allOf:
                - $ref: '#/components/schemas/PaymentIntent'
              description: The intent of the transaction request
            policyUniqueId:
              type: string
              description: The unique ID for the policy
            txRequest:
              oneOf:
                - $ref: '#/components/schemas/TransactionRequestLite'
                - $ref: '#/components/schemas/TransactionRequestFull'
              description: The transaction request details
            txRequestId:
              allOf:
                - $ref: '#/components/schemas/TransactionRequestId'
              description: The ID of the transaction request
            verificationItems:
              type: array
              items:
                type: string
                description: The verification items for the transaction
            verificationRuleId:
              type: string
              description: The ID of the verification rule
            videoApprovers:
              type: array
              items:
                type: string
                description: The video approvers for the transaction
            walletRebalanceEventId:
              type: string
              description: The ID of the wallet rebalance event
          required:
            - txRequestId
        policyRuleRequest:
          type: object
          properties:
            action:
              type: string
              description: The action of the policy rule request
            update:
              type: object
              description: The update details of the policy rule request (single-wallet)
              properties:
                action:
                  allOf:
                    - $ref: '#/components/schemas/PolicyRuleAction'
                  description: The action of the policy rule
                coin:
                  $ref: '#/components/schemas/CoinString'
                condition:
                  allOf:
                    - $ref: '#/components/schemas/PolicyRuleUpdateCondition'
                  description: The condition of the policy rule
                generatePolicy:
                  type: boolean
                  description: >-
                    Should generate new whitelist policy when generatePolicy is
                    undefined *
                id:
                  type: string
                  description: The ID of the policy rule
                lockDate:
                  type: string
                  format: date
                  title: Date String
                type:
                  allOf:
                    - $ref: '#/components/schemas/ApiRuleType'
                  description: The type of the API rule
                walletId:
                  type: string
                  description: Optional walletId field for multi-wallet updates
            updates:
              type: array
              items:
                type: object
                properties:
                  action:
                    allOf:
                      - $ref: '#/components/schemas/PolicyRuleAction'
                    description: The action of the policy rule
                  coin:
                    $ref: '#/components/schemas/CoinString'
                  condition:
                    allOf:
                      - $ref: '#/components/schemas/PolicyRuleUpdateCondition'
                    description: The condition of the policy rule
                  generatePolicy:
                    type: boolean
                    description: >-
                      Should generate new whitelist policy when generatePolicy
                      is undefined *
                  id:
                    type: string
                    description: The ID of the policy rule
                  lockDate:
                    type: string
                    format: date
                    title: Date String
                  type:
                    allOf:
                      - $ref: '#/components/schemas/ApiRuleType'
                    description: The type of the API rule
                  walletId:
                    type: string
                    description: Optional walletId field for multi-wallet updates
                description: >-
                  The update details for multi-wallet operations (bulk
                  whitelist)
        updateApprovalsRequiredRequest:
          type: object
          properties:
            requestedApprovalsRequired:
              type: number
              description: The number of requested approvals required
        updateEnterpriseRequest:
          type: object
          properties:
            action:
              type: string
              enum:
                - add
                - update
                - remove
            email:
              type: string
              description: The email of the user
            isVideoIdUser:
              type: boolean
              description: Indicates if the user is a video ID user
            permissions:
              type: string
              enum:
                - admin
                - auditor
              description: The permissions associated with the update
            userId:
              type: string
              description: The ID of the user
        updateOrganizationRequest:
          type: object
          properties:
            action:
              type: string
              enum:
                - add
                - update
                - remove
            email:
              type: string
              description: The email of the user
            inviterInfo:
              type: object
              description: >-
                CaaS org add-invite only (`POST
                /api/v2/organization/{orgId}/user`); UMS org user changes use
                `genericRequest`.
              properties:
                email:
                  type: string
                fullName:
                  type: string
                id:
                  type: string
              required:
                - email
                - fullName
                - id
            role:
              type: string
              enum:
                - serviceUser
                - admin
                - member
                - customer
              description: The role of the user in the organization
              example: admin
            userId:
              type: string
              description: The ID of the user
        genericRequest:
          type: object
          properties:
            anchors:
              type: array
              items:
                type: object
                properties:
                  anchorType:
                    allOf:
                      - $ref: '#/components/schemas/AnchorType'
                    description: The type of the anchor
                  key:
                    type: string
                    description: The key of the anchor
                  value:
                    type: string
                    description: The value of the anchor
                required:
                  - anchorType
                  - key
                  - value
                description: The anchors associated with the request
            changeType:
              allOf:
                - $ref: '#/components/schemas/ChangeType'
              description: The type of change requested
            currentId:
              type: string
              description: The current ID associated with the request
            description:
              type: string
              description: The description of the request
            metadata:
              type: object
              additionalProperties:
                oneOf:
                  - type: string
                  - type: number
                  - type: boolean
                  - type: array
                    items:
                      type: string
              description: The metadata of the request
            proposedId:
              type: string
              description: The proposed ID associated with the request
            resources:
              type: array
              items:
                type: object
                properties:
                  currentId:
                    type: string
                  metadata:
                    type: object
                    additionalProperties:
                      oneOf:
                        - type: string
                        - type: number
                        - type: boolean
                        - type: array
                          items:
                            type: string
                  proposedId:
                    type: string
                description: The resources associated with the request
            resourceType:
              type: string
              description: The resource type of the request
        enterpriseInviteRequest:
          type: object
          properties:
            action:
              type: string
              enum:
                - add
                - update
                - remove
            email:
              type: string
              description: The email of the user
            enterpriseInfo:
              type: object
              description: Additional info used by the client accepting the invite
              properties:
                id:
                  type: string
                invitedBy:
                  $ref: '#/components/schemas/CaasOrganizationInviteInviterInfo'
                name:
                  type: string
                requiredVerificationStep:
                  type: string
                userKycState:
                  type: string
              required:
                - id
                - invitedBy
                - name
                - requiredVerificationStep
            isVideoIdUser:
              type: boolean
              description: Indicates if the user is a video ID user
            permissions:
              type: string
              enum:
                - admin
                - auditor
              description: The permissions associated with the invite
            userId:
              type: string
              description: The ID of the user
        updateWalletSettingRequest:
          type: object
          properties:
            userKeySigningRequired:
              type: object
              properties:
                newValue:
                  type: boolean
                oldValue:
                  type: boolean
              required:
                - newValue
                - oldValue
      required:
        - type
    PendingApprovalPolicyRuleRequest:
      title: Policy rule request
      type: object
      properties:
        policyRuleRequest:
          type: object
          properties:
            action:
              type: string
            update:
              type: object
              properties:
                action:
                  $ref: '#/components/schemas/PolicyRuleActions'
                coin:
                  $ref: '#/components/schemas/Coin'
                condition:
                  type: object
                  properties:
                    excludeTags:
                      $ref: '#/components/schemas/IdArray'
                    groupTags:
                      $ref: '#/components/schemas/IdArray'
                  additionalProperties: true
                id:
                  type: string
                  description: the id of the rule that is being updated
                type:
                  $ref: '#/components/schemas/PolicyRuleTriggers'
        type:
          type: string
          enum:
            - policyRuleRequest
    PendingApprovalState:
      title: PendingApprovalState
      oneOf:
        - $ref: '#/components/schemas/PendingApprovalStatePending'
        - $ref: '#/components/schemas/PendingApprovalStateResolved'
        - $ref: '#/components/schemas/PendingApprovalStateTrust'
        - $ref: '#/components/schemas/PendingApprovalStateProtected'
    PendingApprovalState1:
      anyOf:
        - $ref: '#/components/schemas/PendingApprovalStatePending1'
        - $ref: '#/components/schemas/PendingApprovalStateResolved'
    PendingApprovalStatePending:
      title: Pending
      type: string
      enum:
        - pending
        - awaitingSignature
        - pendingFinalApproval
        - pendingCustodianApproval
        - pendingVideoApproval
        - pendingIdVerification
        - pendingLivenessVerification
        - pendingManualTrustReview
        - pendingManualSupportReview
        - pendingVideoApprovalFromSupport
    PendingApprovalStatePending1:
      title: Pending
      type: string
      enum:
        - pending
        - awaitingSignature
        - pendingFinalApproval
        - pendingCustodianApproval
        - pendingVideoApproval
        - pendingIdVerification
    PendingApprovalStateProtected:
      title: Pending Protected
      type: string
      enum:
        - pendingVideoApproval
        - pendingIdVerification
        - awaitingSignature
        - pendingCustodianApproval
        - pendingManualTrustReview
    PendingApprovalStateResolved:
      title: Resolved
      type: string
      enum:
        - approved
        - processing
        - rejected
    PendingApprovalStateTrust:
      title: Pending Trust
      type: string
      enum:
        - pendingVideoApproval
        - pendingIdVerification
        - awaitingSignature
        - pendingCustodianApproval
        - pendingManualTrustReview
    PendingApprovalTransactionRequest:
      title: Transaction request (lite)
      type: object
      properties:
        transactionRequest:
          type: object
          properties:
            buildParams:
              type: object
            coinSpecific:
              type: object
            comment:
              type: string
            fee:
              $ref: '#/components/schemas/IntegerOrString'
            isUnsigned:
              type: boolean
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/AddressString3'
                  amount:
                    $ref: '#/components/schemas/IntegerOrIntegerString'
                  data:
                    type: string
            requestedAmount:
              $ref: '#/components/schemas/IntegerOrIntegerString'
            sourceWallet:
              $ref: '#/components/schemas/Id'
            triggeredPolicy:
              $ref: '#/components/schemas/Id'
            validTransaction:
              type: string
            validTransactionHash:
              type: string
        type:
          type: string
          enum:
            - transactionRequest
    PendingApprovalTransactionRequestFull:
      title: Transaction request (full)
      type: object
      properties:
        transactionRequestFull:
          type: object
          properties:
            txRequestId:
              type: string
            policyUniqueId:
              $ref: '#/components/schemas/Id'
            verificationItems:
              type: array
              items:
                type: string
            verificationRuleId:
              type: string
            videoApprovers:
              $ref: '#/components/schemas/IdArray'
            walletRebalanceEventId:
              $ref: '#/components/schemas/Id'
            txRequest:
              $ref: '#/components/schemas/PlatformTransactionRequest'
          required:
            - txRequestId
        type:
          type: string
          enum:
            - transactionRequestFull
    PendingApprovalTransactionRequestFull1:
      title: Transaction request (full)
      type: object
      properties:
        transactionRequestFull:
          type: object
          properties:
            txRequestId:
              type: string
            policyUniqueId:
              $ref: '#/components/schemas/Id'
            verificationItems:
              type: array
              items:
                type: string
            verificationRuleId:
              type: string
            videoApprovers:
              $ref: '#/components/schemas/IdArray'
            walletRebalanceEventId:
              $ref: '#/components/schemas/Id'
            txRequest:
              $ref: '#/components/schemas/TransactionRequest'
          required:
            - txRequestId
        type:
          type: string
          enum:
            - transactionRequestFull
    PendingApprovalType:
      title: PendingApprovalType
      type: string
      enum:
        - userChangeRequest
        - transactionRequest
        - transactionRequestFull
        - policyRuleRequest
        - updateApprovalsRequiredRequest
        - updateEnterpriseRequest
        - updateOrganizationRequest
        - genericRequest
        - enterpriseInviteRequest
        - updateWalletSettingRequest
    PendingApprovalUpdateApprovalsRequiredRequest:
      title: Update approvals required request
      type: object
      properties:
        type:
          type: string
          enum:
            - updateApprovalsRequiredRequest
        updateApprovalsRequiredRequest:
          type: object
          properties:
            requestedApprovalsRequired:
              type: number
    PendingApprovalUserChangeRequest:
      title: User change request
      type: object
      properties:
        type:
          type: string
          enum:
            - userChangeRequest
        userChangeRequest:
          type: object
          properties:
            action:
              type: string
            permissions:
              type: string
            userChanged:
              $ref: '#/components/schemas/Id'
    PendingApprovals:
      title: Pending approvals
      type: object
      properties:
        pendingApprovals:
          type: array
          items:
            $ref: '#/components/schemas/PendingApproval1'
    PendingApprovalsCountSchema:
      title: PendingApprovalsCountSchema
      type: object
      additionalProperties:
        type: object
        properties:
          pendingApprovalsCount:
            type: number
            description: The number of pending approvals
        required:
          - pendingApprovalsCount
    PerCoinLimit:
      title: PerCoinLimit
      type: object
      properties:
        txCount:
          type: number
          description: The transaction count limit for the coin
        txValue:
          type: number
          description: The transaction value limit for the coin
        txValueLimit:
          type: number
          description: The maximum transaction value limit for the coin
    PermissionAttributes:
      type: object
      properties:
        staking:
          $ref: '#/components/schemas/StakingPermissionAttributes'
        unstaking:
          $ref: '#/components/schemas/UnstakingPermissionAttributes'
        wallet:
          $ref: '#/components/schemas/WalletPermissionAttributes'
    PersonaIdClass:
      title: PersonaIdClass
      type: string
      enum:
        - cct
        - cid
        - dl
        - foid
        - hic
        - id
        - ipp
        - keyp
        - ltpass
        - munid
        - myn
        - nbi
        - nric
        - ofw
        - rp
        - pan
        - pid
        - pp
        - ppc
        - pr
        - sss
        - td
        - tribalid
        - umid
        - vid
        - visa
        - wp
    Phone:
      title: Phone
      type: object
      properties:
        phone:
          nullable: true
          type: string
          example: 408-718-6885
        verified:
          type: boolean
          example: true
      required:
        - phone
        - verified
    PinnedWallets:
      title: PinnedWallets
      type: object
      properties:
        enterpriseId:
          type: string
        userId:
          type: string
        wallets:
          type: array
          items:
            type: string
      required:
        - enterpriseId
        - userId
        - wallets
    PlatformAdditionalEnterpriseInfo:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/PlatformGeographicAddress'
    PlatformAddress2:
      type: object
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: platform public id for an address
        address:
          $ref: '#/components/schemas/PlatformAddressString'
        chain:
          $ref: '#/components/schemas/Chain'
        index:
          type: integer
        coin:
          type: string
        lastNonce:
          type: integer
          default: -1
        wallet:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The wallet which contains this address
        coinSpecific:
          type: object
          description: Properties which are specific to certain coin types
          properties:
            xlm:
              $ref: '#/components/schemas/PlatformAddressCoinSpecificXlm'
            txlm:
              $ref: '#/components/schemas/PlatformAddressCoinSpecificXlm'
        balance:
          allOf:
            - type: object
            - $ref: '#/components/schemas/PlatformAddressBalance'
          description: >-
            Balance of the address. In case of Eth and Celo, if
            returnBalancesForToken is passed with includeBalances, then it will
            return token balance in the address object. This field will be
            present only when `includeBalances` query param is passed as true.
        label:
          $ref: '#/components/schemas/AddressLabel'
        addressType:
          $ref: '#/components/schemas/PlatformAddressType'
    PlatformAddressBalance:
      type: object
      properties:
        updated:
          type: string
          description: The last time a transaction affected the balance of this address
          format: date-time
        balance:
          type: integer
          description: The cleared balance of the address
          example: 50000
        balanceString:
          type: string
          description: >-
            String representation of `balance`. Guaranteed to not lose
            precision.
          example: '50000'
        totalReceived:
          type: integer
          description: The total amount received on this address (in the chain's base unit)
        totalSent:
          type: integer
          description: The total amount send from this address (in the chain's base unit)
        confirmedBalanceString:
          type: string
          description: >
            The total balance of confirmed transactions for the address (in the
            chain's base unit).

            Guaranteed to not lose precision.
          example: '40000'
        spendableBalanceString:
          type: string
          description: >
            The total balance of the address (in the chain's base unit) which
            may

            be used as inputs for creating new transactions in string
            representation.

            Guaranteed to not lose precision.
          example: '40000'
    PlatformAddressCoinSpecificXlm:
      type: object
      properties:
        memoId:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
            - example: '1'
          description: Latest memo id generated for the wallet
        rootAddress:
          type: string
          description: Root address of the wallet
          example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM
    PlatformAddressString:
      title: Address
      type: string
      example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
      maxLength: 500
    PlatformAddressType:
      type: string
      example: p2sh
      enum:
        - p2sh
        - p2shP2wsh
        - p2wsh
        - p2tr
        - p2trMusig2
    PlatformPlatformError:
      title: API error
      allOf:
        - $ref: '#/components/schemas/PlatformPlatformErrorNoName'
        - properties:
            context:
              type: object
              description: Properties that apply to a specific error name
            name:
              type: string
              description: Error code
          required:
            - name
    PlatformPlatformErrorNoName:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
        requestId:
          type: string
          description: Client request id
      required:
        - error
        - requestId
    PlatformBitgoOrg:
      type: string
      description: BitGo Organization related to this entity
      enum:
        - BitGo Inc
        - BitGo Trust
        - BitGo New York
        - BitGo Germany
        - BitGo Switzerland
        - Frankfurt DE Trust
        - BitGo Sister Trust 1
        - BitGo Korea
        - BitGo Singapore
        - BitGo Europe ApS
        - BitGo Mena Fze
        - BitGo Custody MENA FZE
        - BitGo India
    PlatformCommitmentShare:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The source of the commitment share.
        to:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The recipient of the commitment share.
        share:
          type: string
          description: The commitment share.
        type:
          allOf:
            - $ref: '#/components/schemas/CommitmentType'
            - default: commitment
          description: The type of the commitment share.
      required:
        - from
        - to
        - share
        - type
    PlatformEmail:
      type: string
      format: email
      example: user@example.com
    PlatformEnterprise:
      type: object
      properties:
        accountType:
          $ref: '#/components/schemas/EnterpriseAccountType'
        additionalEnterpriseInfo:
          $ref: '#/components/schemas/PlatformAdditionalEnterpriseInfo'
        admin:
          type: object
          properties:
            policy:
              $ref: '#/components/schemas/PlatformPolicy'
        approvedVideoIdUsers:
          type: array
          items:
            $ref: '#/components/schemas/Id'
          description: >-
            IDs of users on the enterprise that are approved for custodial video
            ID
        approvalsRequired:
          type: integer
          description: How many Enterprise Admins are required for action to fire
          example: 1
        bitgoEthKey:
          type: string
          description: >-
            The public portion of the ethererum key generated for the enterprise
            fee address
        bitgoOrg:
          $ref: '#/components/schemas/PlatformBitgoOrg'
        canAccessBorrowing:
          type: boolean
          description: whether the enterprise has the licence for BitGo Prime Borrowing
        canAccessLending:
          type: boolean
          description: whether the enterprise has the licence for BitGo Prime Lending
        canAccessSettlement:
          type: boolean
          description: >-
            whether the enterprise has the licence to utilize settlement
            functionality
        canAccessTrading:
          type: boolean
          description: whether the enterprise has the licence to access BitGo Trading
        canCreateColdWallet:
          type: boolean
          description: whether the enterprise has the license to create cold wallets
        canCreateCustodialWallets:
          type: boolean
          description: whether the enterprise has the license to create custodial wallets
        canCreateHotWallet:
          type: boolean
          description: whether the enterprise has the license to create hot wallets
        contract:
          $ref: '#/components/schemas/PlatformEnterpriseContract'
        custodyServicesAgreement:
          $ref: '#/components/schemas/CustodyServicesAgreement'
        emergencyPhone:
          $ref: '#/components/schemas/EmergencyPhone'
        ethFeeAddress:
          type: string
          description: >-
            The eth fee address used to pay for network transaction fees of this
            enterprise
        freeze:
          $ref: '#/components/schemas/PlatformFreeze'
        id:
          $ref: '#/components/schemas/Id'
        mutablePolicyWindow:
          type: integer
          description: >-
            Time in seconds after which policies on this Enterprise cannot be
            updated
          example: 172800
        name:
          type: string
          example: Small Company
        pricingTypes:
          $ref: '#/components/schemas/EnterprisePricingTypes'
        activePricingType:
          $ref: '#/components/schemas/EnterpriseActivePricingType'
        kits:
          $ref: '#/components/schemas/EnterpriseKits'
        activeKits:
          $ref: '#/components/schemas/EnterpriseActiveKits'
        primaryContact:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The Id of the User who is the primary contact
        preferredUi:
          allOf:
            - $ref: '#/components/schemas/EnterpriseAvailableUI'
          description: The UI that this enterprise prefers to use
        totalWalletsCount:
          type: integer
          description: The total number of wallets in the enterprise
          example: 1
        usersViewAllWallets:
          $ref: '#/components/schemas/ViewAllWallets'
        videoIdWaived:
          $ref: '#/components/schemas/VideoIdWaived'
      required:
        - id
    PlatformEnterpriseContract:
      type: object
      properties:
        startDate:
          type: string
          description: The contract start date for an enterprise
        endDate:
          type: string
          description: The contract end date for an enterprise
    PlatformFreeze:
      type: object
      properties:
        time:
          type: string
          format: date-time
          description: When the freeze started
        expires:
          type: string
          format: date-time
          description: When the freeze will end
    PlatformGeographicAddress:
      type: object
      properties:
        name:
          type: string
          description: Legal name of the enterprise, not neccessarily the enterprise name
        street:
          type: string
          description: Address line
        street2:
          type: string
          nullable: true
          description: Optional 2nd address line
        suite:
          type: string
          description: Optional suite number
        city:
          type: string
          description: City name
        state:
          type: string
          description: State or region
        postalCode:
          type: string
          description: Postcal code
        country:
          type: string
          description: ISO 3166-1 Alpha-3 country code
      example:
        name: Jane Doe
        street: '1'
        street2: Wall Street
        suite: '3'
        city: New York
        state: NY
        postalCode: '10005'
        country: USA
    PlatformInvalidEnterpriseId:
      title: Invalid enterprise ID
      allOf:
        - $ref: '#/components/schemas/PlatformInvalidId'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidEnterpriseId
          required:
            - name
    PlatformInvalidId:
      allOf:
        - $ref: '#/components/schemas/PlatformPlatformErrorNoName'
        - properties:
            context:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
          required:
            - context
    PlatformInvalidWalletId:
      title: Invalid wallet id
      allOf:
        - $ref: '#/components/schemas/PlatformInvalidId'
        - properties:
            name:
              type: string
              description: Error code
              enum:
                - InvalidWalletId
          required:
            - name
    PlatformLegalIdentifiers:
      type: object
      properties:
        legalPersonName:
          type: string
          description: Legal name of the Enterprise
      required:
        - legalPersonName
      example:
        legalPersonName: Pineapple Capital Inc
    PlatformMultisigTypeVersion:
      type: string
      enum:
        - MPCv2
    PlatformMutabilityConstraint:
      type: string
      description: >
        Specifies whether a BitGo admin can change `lockDate`

        * `managed` - Not locked, but requires approval from a BitGo admin to
        change

        * `permanent` - `lockDate` cannot be changed
      enum:
        - managed
        - permanent
    PlatformPendingApproval:
      title: Pending approval
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        coin:
          $ref: '#/components/schemas/Coin'
        wallet:
          $ref: '#/components/schemas/Id'
        enterprise:
          $ref: '#/components/schemas/Id'
        organization:
          $ref: '#/components/schemas/Id'
        creator:
          $ref: '#/components/schemas/Id'
        createDate:
          type: string
          format: date-time
        info:
          anyOf:
            - $ref: '#/components/schemas/PendingApprovalTransactionRequest'
            - $ref: '#/components/schemas/PendingApprovalTransactionRequestFull'
            - $ref: '#/components/schemas/PendingApprovalUserChangeRequest'
            - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest'
            - $ref: >-
                #/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest
            - $ref: >-
                #/components/schemas/PendingApprovalEnterpriseModificationResponse
            - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest'
        state:
          $ref: '#/components/schemas/PlatformPendingApprovalState'
        scope:
          description: What kind of entity the Pending Approval is tied to
          type: string
          enum:
            - enterprise
            - wallet
        userIds:
          description: All the Users who should see this Pending Approval
          type: array
          items:
            $ref: '#/components/schemas/Id'
        approvalsRequired:
          $ref: '#/components/schemas/ApprovalsRequired'
        walletLabel:
          type: string
        resolvers:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
              date:
                type: string
              resolutionType:
                type: string
                enum:
                  - approved
                  - awaitingSignature
                  - pending
                  - pendingBitGoAdminApproval
                  - pendingCryptographicApproval
                  - pendingCustodianApproval
                  - pendingFinalApproval
                  - pendingIdVerification
                  - pendingVideoApproval
                  - processing
                  - rejected
              signatures:
                type: array
                items:
                  type: string
              videoApprover:
                type: string
              videoLink:
                type: string
              videoException:
                type: string
            required:
              - user
              - date
              - resolutionType
              - signatures
        addressLabels:
          type: array
          items:
            $ref: '#/components/schemas/PendingApprovalAddressLabel'
    PlatformPendingApprovalState:
      anyOf:
        - $ref: '#/components/schemas/PlatformPendingApprovalStatePending'
        - $ref: '#/components/schemas/PlatformPendingApprovalStateResolved'
    PlatformPendingApprovalStatePending:
      title: Pending
      type: string
      enum:
        - pending
        - awaitingSignature
        - pendingFinalApproval
        - pendingCustodianApproval
        - pendingVideoApproval
        - pendingIdVerification
    PlatformPendingApprovalStateResolved:
      title: Resolved
      type: string
      enum:
        - approved
        - processing
        - rejected
    PlatformPolicy:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        date:
          type: string
          format: date-time
        label:
          type: string
        latest:
          type: boolean
        rules:
          type: array
          items:
            $ref: '#/components/schemas/PlatformPolicyRule'
        version:
          type: integer
      required:
        - id
        - latest
        - rules
        - version
    PlatformPolicyRule:
      type: object
      properties:
        id:
          type: string
        lockDate:
          type: string
          description: The time at which this rule becomes immutable
          format: date-time
        mutabilityConstraint:
          $ref: '#/components/schemas/PlatformMutabilityConstraint'
        coin:
          $ref: '#/components/schemas/Coin'
        type:
          $ref: '#/components/schemas/PolicyRuleTriggers'
        condition:
          $ref: '#/components/schemas/PolicyRuleConditions'
        action:
          $ref: '#/components/schemas/PolicyRuleActions'
      required:
        - id
        - lockDate
        - type
        - action
    PlatformSignatureShare:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The source of the signature share.
        to:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The recipient of the signature share.
        share:
          type: string
          description: The signature share.
      required:
        - from
        - to
        - share
    PlatformTransaction:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/PlatformTransactionState'
        unsignedTx:
          allOf:
            - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction'
          description: Holds the unsigned transaction for this transaction in a tx-request.
        signatureShares:
          type: array
          description: >-
            Only used for MPC coins. This is used to collect signature shares
            from and exchange them with the user. Holds the signature shares for
            this transaction in a tx-request.
          items:
            $ref: '#/components/schemas/PlatformSignatureShare'
        commitmentShares:
          type: array
          description: >-
            Only used for MPC coins on EdDSA curve. This is used to collect
            commitment shares from and exchange them with the user. Holds the
            commitment shares for this transaction in a tx-request.
          items:
            $ref: '#/components/schemas/PlatformCommitmentShare'
        txHash:
          type: string
          description: >-
            The hash of the transaction from the TxRequest that has been signed
            and is pending broadcast.
        bitgoPaillierChallenge:
          description: >-
            BitGo-to-user paillier challenge. Required when signing with ECDSA
            MPC wallets.
          type: object
          properties:
            p:
              type: array
              items:
                type: string
      required:
        - state
        - unsignedTx
    PlatformTransactionRequest:
      anyOf:
        - $ref: '#/components/schemas/PlatformTransactionRequestLite'
        - $ref: '#/components/schemas/PlatformTransactionRequestFull'
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
    PlatformTransactionRequestBase:
      type: object
      properties:
        txRequestId:
          type: string
          description: >-
            A unique ID for the TxRequest document across all wallets. The
            combination of the txRequestId and version will always be unique.
        version:
          type: number
          description: >-
            The version of the document. Data changes are done only with inserts
            and incrementing the version.
        latest:
          type: boolean
          description: >-
            A boolean flag that indicates whether the document is the latest
            version of the TxRequest.
        walletId:
          type: string
          description: The id of the Wallet the TxRequest is for.
        walletType:
          allOf:
            - $ref: '#/components/schemas/WalletTypePublic'
          description: >-
            The type describes who owns the keys to the wallet associated to the
            TxRequest.
        enterpriseId:
          type: string
          description: >-
            If the wallet that owns the TxRequest is owned by an enterprise then
            this is the Id of said enterprise.
        state:
          $ref: '#/components/schemas/PlatformTransactionRequestState'
        date:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: >-
            The date and time this version of the TxRequest document was
            created.
        createdDate:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: The date and time the version 1 TxRequest document was created.
        userId:
          type: string
          description: >-
            The Id of the User that produced this version of the TxRequest
            document. Could have created a new document or updated an existing
            document.
        initiatedBy:
          type: string
          description: >-
            The Id of the User that originally created the TxRequest document
            (initiated the TxRequest).
        updatedBy:
          type: string
          description: >-
            The Id of the User that last updated the TxRequest document. This is
            an alias for the userId field.
        intent:
          $ref: '#/components/schemas/TransactionRequestIntent'
        intents:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRequestIntent'
        pendingApprovalId:
          type: string
          description: >-
            The id of the Pending Approval that was created for the TxRequest if
            one was required.
        isCanceled:
          type: boolean
          description: True, if the transaction request is canceled.
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - createdDate
        - userId
        - initiatedBy
        - updatedBy
        - intents
    PlatformTransactionRequestFull:
      title: Full
      allOf:
        - $ref: '#/components/schemas/PlatformTransactionRequestBase'
        - type: object
          properties:
            transactions:
              description: Transaction information.
              type: array
              items:
                $ref: '#/components/schemas/PlatformTransaction'
            messages:
              description: Messages for the transaction request.
              type: array
              items:
                $ref: '#/components/schemas/Message'
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
        - transactions
    PlatformTransactionRequestLite:
      title: Lite
      allOf:
        - $ref: '#/components/schemas/PlatformTransactionRequestBase'
        - type: object
          properties:
            unsignedTxs:
              type: array
              description: >-
                Holds all unsigned transactions that will be used to fulfill the
                TxRequest for MPC wallets.
              items:
                $ref: '#/components/schemas/TransactionRequestUnsignedTransaction'
            signatureShares:
              type: array
              description: >-
                Only used for MPC coins. This is used to collect signature
                shares from and exchange them with the user.
              items:
                $ref: '#/components/schemas/PlatformSignatureShare'
            commitmentShares:
              type: array
              description: >-
                Only used for MPC coins on EdDSA curve. This is used to collect
                commitment shares from and exchange them with the user.
              items:
                $ref: '#/components/schemas/PlatformCommitmentShare'
            txHashes:
              type: array
              items:
                type: string
                description: >-
                  The hashes of all transactions from the TxRequest that have
                  been signed and are pending broadcast.
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
    PlatformTransactionRequestState:
      type: string
      enum:
        - initialized
        - pendingApproval
        - pendingUserCommitment
        - pendingUserRShare
        - pendingUserGShare
        - readyToSend
        - pendingUserSignature
        - pendingDelivery
        - signed
        - delivered
        - canceled
        - rejected
        - failed
    PlatformTransactionState:
      type: string
      enum:
        - initialized
        - pendingSignature
        - eddsaPendingCommitment
        - eddsaPendingRShare
        - eddsaPendingGShare
        - readyToCombineShares
        - signed
        - held
        - delivered
        - invalidSignature
        - rejected
        - ecdsaMPCv2Round1
        - ecdsaMPCv2Round2
        - ecdsaMPCv2Round3
    PlatformUpdateWalletShareResponse:
      type: object
      properties:
        state:
          allOf:
            - $ref: '#/components/schemas/PlatformWalletShareState'
          description: New state of the wallet share after update
        changed:
          type: boolean
    PlatformVerifiedKycState:
      type: string
      enum:
        - approved
        - pending
        - rejected
    PlatformWallet:
      type: object
      properties:
        admin:
          type: object
          properties:
            policy:
              $ref: '#/components/schemas/PlatformPolicy'
        allowBackupKeySigning:
          type: boolean
        approvalsRequired:
          $ref: '#/components/schemas/ApprovalsRequired'
        balanceString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: Total balance in base units (e.g. Satoshis)
        buildDefaults:
          $ref: '#/components/schemas/WalletBuildDefaults'
        coin:
          $ref: '#/components/schemas/Coin'
        coinSpecific:
          $ref: '#/components/schemas/WalletCoinSpecific'
        custodialWallet:
          type: object
          description: The associated custodial wallet object
        custodialWalletId:
          $ref: '#/components/schemas/Id'
        deleted:
          type: boolean
        disableTransactionNotifications:
          type: boolean
        enterprise:
          $ref: '#/components/schemas/Id'
        freeze:
          type: object
          properties:
            time:
              type: string
              format: dateTime
            expires:
              type: string
              format: dateTime
            reason:
              type: string
              description: Reason why the wallet was frozen
              enum:
                - TxIntentMismatch
                - TxIntentMismatchRecipient
                - TxIntentMismatchContract
                - TxIntentMismatchApproval
                - UserRequest
                - AdminRequest
            referenceId:
              type: string
              description: Optional reference ID for tracking purposes
            adminOrUserId:
              type: string
              description: The user who froze the wallet
        id:
          $ref: '#/components/schemas/Id'
        isCold:
          type: boolean
        keys:
          $ref: '#/components/schemas/Keys'
        label:
          $ref: '#/components/schemas/WalletLabel'
        m:
          $ref: '#/components/schemas/NumSignatures'
        'n':
          $ref: '#/components/schemas/NumKeychains'
        nodeId:
          $ref: '#/components/schemas/Id'
        receiveAddress:
          $ref: '#/components/schemas/PlatformAddress2'
        recoverable:
          type: boolean
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        spendableBalanceString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: Spendable balance in base units (e.g. Satoshis)
        unspentCount:
          type: number
          example: 100
          description: Number of unspent outputs present in the wallet
        startDate:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: Wallet creation time
        type:
          $ref: '#/components/schemas/WalletTypePublic'
        users:
          type: array
          items:
            $ref: '#/components/schemas/WalletUser'
        customChangeKeySignatures:
          $ref: '#/components/schemas/CustomChangeKeySignatures'
        multisigType:
          $ref: '#/components/schemas/WalletMultisigType'
        multisigTypeVersion:
          $ref: '#/components/schemas/PlatformMultisigTypeVersion'
      required:
        - approvalsRequired
        - coin
        - deleted
        - disableTransactionNotifications
        - id
        - label
    PlatformWalletShareState:
      type: string
      example: active
      enum:
        - pendingapproval
        - active
        - accepted
        - canceled
        - rejected
    PlatformWebhook:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        label:
          type: string
          example: Test Webhook
        created:
          $ref: '#/components/schemas/DateTime'
        coin:
          $ref: '#/components/schemas/Coin'
        type:
          $ref: '#/components/schemas/WebhookTypeWallet'
        url:
          type: string
          format: uri
          example: https://your.server.com/webhook
        version:
          type: integer
          example: 2
          description: 2 for coins running on API v2.
        numConfirmations:
          type: integer
          example: 6
        state:
          type: string
          description: >-
            If `active`, indicates the webhook can trigger and send to the URL.
            If `suspended`, indicates the webhook can't trigger.
          enum:
            - active
            - suspended
          example: active
        lastAttempt:
          $ref: '#/components/schemas/DateTime'
        failingSince:
          $ref: '#/components/schemas/DateTime'
        successiveFailedAttempts:
          type: integer
          example: 0
        walletId:
          type: string
        allowBlockedHosts:
          type: boolean
        allToken:
          type: boolean
        txRequestStates:
          type: array
          items:
            $ref: '#/components/schemas/PlatformTransactionRequestState'
          description: >-
            If present, only transaction request state changes from the list
            will trigger notifications. If not present, all transaction request
            state changes will trigger notifications.
        txRequestTransactionStates:
          type: array
          items:
            $ref: '#/components/schemas/PlatformTransactionState'
          description: >-
            If present, only transaction request transaction state changes from
            the list will trigger notifications. If not present, all transaction
            request transaction state changes will trigger notifications.
        identityStatus:
          type: array
          items:
            $ref: '#/components/schemas/IdentityStatus'
          description: >-
            If present, only identity status changes from the list will trigger
            notifications. If not present, all identity status changes will
            trigger notifications.
        userKycState:
          type: array
          items:
            $ref: '#/components/schemas/PlatformVerifiedKycState'
          description: >-
            If present, only user kyc state changes from the list will trigger
            notifications. If not present, all kyc state changes will trigger
            notifications.
        enterpriseKycState:
          type: array
          items:
            $ref: '#/components/schemas/PlatformVerifiedKycState'
          description: >-
            If present, only enterprise kyc state changes from the list will
            trigger notifications. If not present, all kyc state changes will
            trigger notifications.      
      required:
        - url
    PolStakingRequest:
      title: POL
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for POL)
          type: string
    PolStakingRequestPOSTBody:
      title: POL stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    PolUnStakingRequestPOSTBody:
      title: POL unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    Policy:
      title: Policy
      type: object
      properties:
        date:
          oneOf:
            - type: string
              format: date-time
              title: ISO Date String
            - type: string
              format: date
              title: Date String
          format: date-time
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        latest:
          type: boolean
        version:
          type: number
        enterpriseId:
          type: string
        label:
          type: string
        rules:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                $ref: '#/components/schemas/ApiRuleType'
              action:
                allOf:
                  - $ref: '#/components/schemas/PolicyRuleAction'
                description: What happens when this rule is triggered
              latest:
                type: boolean
              version:
                type: number
              lockDate:
                type: string
                description: The time at which this rule becomes immutable
                format: date-time
                title: ISO Date String
              mutabilityConstraint:
                allOf:
                  - $ref: '#/components/schemas/MutabilityConstraint'
                description: >-
                  Specifies whether a BitGo admin can change "lockDate" *
                  "managed" - Not locked, but requires approval from a BitGo
                  admin to change * "permanent" - "lockDate" cannot be changed *
                  "sticky" - Not included in bulk unlock, but "lockDate" can be
                  individually changed
              coin:
                $ref: '#/components/schemas/CoinString'
              condition:
                allOf:
                  - $ref: '#/components/schemas/Condition'
                description: Parameters for the type
              walletId:
                type: string
                description: >-
                  The ID of the wallet this rule originates from.

                  Populated only when the rule is returned as part of an EVM
                  keyring

                  aggregated response (includeEvmKeyringWhitelist=true) for
                  rules that

                  belong to a derived wallet. Absent for rules on the main
                  wallet itself.
            required:
              - id
              - type
              - action
        walletId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
      required:
        - date
        - id
        - latest
        - version
    Policy1:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        date:
          type: string
          format: date-time
        label:
          type: string
        latest:
          type: boolean
        rules:
          type: array
          items:
            $ref: '#/components/schemas/PolicyRule'
        version:
          type: integer
      required:
        - id
        - latest
        - rules
        - version
    PolicyActionParameters:
      title: PolicyActionParameters
      type: object
      properties:
        minRequired:
          oneOf:
            - type: string
              minLength: 1
            - type: number
        userIds:
          type: array
          items:
            type: string
            minLength: 1
        initiatorIsAllowedToApprove:
          type: boolean
        webhookURL:
          type: string
          minLength: 1
        livenessCheckUser:
          $ref: '#/components/schemas/LivenessVerificationParameter'
        isFallback:
          type: boolean
        walletSubtype:
          $ref: '#/components/schemas/CustodialWalletSubType'
        userRoleIds:
          type: array
          items:
            type: string
            minLength: 1
    PolicyRecommendation:
      type: object
      description: A recommended policy configuration for the enterprise.
      required:
        - recommendationId
        - adoptionPercentage
        - confidenceScore
        - explanation
        - source
        - enterpriseAdoptionCount
        - totalPeers
        - title
        - template
      properties:
        recommendationId:
          type: string
          description: Unique identifier for this recommendation.
          example: rec-abc123
        adoptionPercentage:
          type: number
          format: double
          description: Adoption rate for this policy pattern.
          example: 0.75
        confidenceScore:
          type: number
          format: double
          description: Confidence score for this recommendation (0.0 to 1.0).
          example: 0.85
        explanation:
          type: string
          description: Human-readable explanation of why this policy is recommended.
          example: >-
            75% of similar enterprises enforce a spending limit on segregated
            wallet transfers.
        description:
          type: string
          description: Additional description of the recommendation.
          example: >-
            Protect against unauthorized large transfers by requiring approval
            above a threshold.
        source:
          $ref: '#/components/schemas/RecommendationSource'
        enterpriseAdoptionCount:
          type: integer
          description: Number of enterprises that have adopted this policy pattern.
          example: 150
        totalPeers:
          type: integer
          description: Total number of enterprises considered.
          example: 200
        title:
          type: string
          description: Short title for the recommendation.
          example: Add spending limit on wallet transfers
        template:
          $ref: '#/components/schemas/RecommendationTemplate'
    PolicyRecommendationResponse:
      type: object
      description: Response containing policy recommendations for an enterprise.
      required:
        - enterpriseId
        - recommendations
      properties:
        enterpriseId:
          type: string
          description: The enterprise ID.
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        recommendations:
          type: array
          description: List of policy recommendations.
          items:
            $ref: '#/components/schemas/PolicyRecommendation'
    PolicyRule:
      type: object
      properties:
        id:
          type: string
        lockDate:
          type: string
          description: The time at which this rule becomes immutable
          format: date-time
        mutabilityConstraint:
          $ref: '#/components/schemas/MutabilityConstraint1'
        coin:
          $ref: '#/components/schemas/Coin'
        type:
          $ref: '#/components/schemas/PolicyRuleTriggers'
        condition:
          $ref: '#/components/schemas/PolicyRuleConditions'
        action:
          $ref: '#/components/schemas/PolicyRuleActions'
      required:
        - id
        - lockDate
        - type
        - action
    PolicyRule1:
      type: object
      description: >
        A Policy Rule, the combination of a Scope, a Touchpoint, Conditions, and
        Actions. It allows you to define what

        needs to happen (Actions) before a user can execute a sensitive
        operation (Touchpoint) on a Scope (e.g. a Wallet)

        depending on the specific details of the operation (Conditions). See
        Concepts.
      required:
        - id
        - uniqueId
        - name
        - status
        - adminOnly
        - touchpointId
        - touchpointLabel
        - scopeId
        - scopeLabel
        - clauses
        - filteringConditions
        - locked
        - lockType
        - createdBy
        - modifiedBy
        - createdDate
        - modifiedDate
      properties:
        id:
          type: string
          description: >-
            Id of the Policy Rule. This identifier is not unique in isolation,
            it must be paired with an specific Policy Rule Version number to
            uniquely identified a particular version of a Policy Rule. A UUID.
          example: 306258df-dcab-489e-a9fe-ff28ce9fa312
        uniqueId:
          type: string
          description: The uniqueId of the Policy Rule version. A UUID.
          example: cb4e0a0a-2768-4024-904a-178ca6d2cd54
        name:
          type: string
          description: Human readable name of the rule.
          example: My first policy rule
        status:
          type: string
          description: >
            Indicates if the Policy Rule is considered in Evaluations.


            * `ACTIVE` - Will be Evaluated.

            * `INACTIVE` - Will NOT be Evaluated.

            * `DENIED` - The requested policy rule change was Denied.

            * `PENDING_APPROVAL` - This version of the policy rule is Pending
            Approval before it can be activated.

            * `UNLOCK_PENDING` - This version of the policy rule is created when
            a request to unlock a policy is initiated.
          enum:
            - ACTIVE
            - INACTIVE
            - DENIED
            - PENDING_APPROVAL
            - UNLOCK_PENDING
          example: ACTIVE
        version:
          type: integer
          description: >-
            The Policy Rule Version, an integer that is incremented each time
            the Policy Rule changes.
          default: 1
          example: 1
        adminOnly:
          type: boolean
          description: >-
            true, if the Policy Rule is a BitGo internal rule. Typically, this
            allows setting Global Policy Rules across enterprises.
          example: false
        touchpointId:
          type: string
          description: The id of the Touchpoint associated with the Policy Rule. A UUID.
          example: 0a244ae3-26cf-48ed-9854-edd5b9751f3e
        touchpointLabel:
          type: string
          description: >-
            Label of the Touchpoint associated with the Policy Rule. For example
            the Transfer from a Wallet Touchpoint.
          example: Transfer from a Wallet
        scopeId:
          type: string
          description: The id of the Scope associated with the Policy Rule. A UUID.
          example: 08a3f714-c330-41e6-bd83-bad3a8d37188
        scopeLabel:
          type: string
          description: >-
            Label of the Scope associated with the Policy Rule. For example the
            All Wallets Scope.
          example: All Wallets
        clauses:
          type: array
          description: >
            List of Policy Rule Clauses: a combination of Conditions and
            Actions.
          items:
            $ref: '#/components/schemas/Clause'
        filteringConditions:
          type: array
          description: >-
            List of Filtering Conditions that must trigger for this Policy Rule
            to be Evaluated.
          items:
            anyOf:
              - $ref: '#/components/schemas/WalletTypeFilteringCondition'
              - $ref: '#/components/schemas/WalletIdsFilteringCondition'
              - $ref: '#/components/schemas/WalletAllFilteringCondition'
              - $ref: '#/components/schemas/RuleAllFilteringCondition'
              - $ref: '#/components/schemas/WalletMultipleIdsFilteringCondition'
        locked:
          type: boolean
          description: true, if the Policy Rule is locked, false otherwise.
          example: false
        lockType:
          type: string
          description: >
            Indicates how the Policy Rule is locked.


            * `LOCK_AFTER_DATE` - Will lock after the lockDate set on the Policy
            Rule.

            * `PERMANENT` - Is permanently locked.
          enum:
            - LOCK_AFTER_DATE
            - PERMANENT
          example: PERMANENT
        lockDate:
          type: string
          description: >
            The date after which the Policy Rule will be locked. Only applicable
            if the Policy Rule is locked with

            `LOCK_AFTER_DATE`.
          format: date-time
          example: '2023-11-13T14:49:48.830522Z'
        enterpriseId:
          type: string
          description: The id of the Enterprise this Policy Rule belongs to.
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        organizationId:
          type: string
          description: The id of the Organization this Policy Rule belongs to.
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        lastTriggeredDate:
          type: string
          description: >
            The date when the Policy Rule was last triggered. Only applicable if
            the Policy Rule is locked with

            `LOCK_AFTER_DATE`.
          format: date-time
          example: '2023-11-13T14:49:48.830522Z'
        lastTriggeredEvaluationId:
          type: string
          description: >
            The id of the Evaluation that last triggered the Policy Rule. A
            UUID.
          example: 306258df-dcab-489e-a9fe-ff28ce9fa312
        createdBy:
          type: string
          description: >-
            The id of the user who created the Policy Rule or the string
            \"BitGo\".
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        modifiedBy:
          type: string
          description: >-
            The id of the user who last modified the Policy Rule or the string
            \"BitGo\".
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        createdDate:
          type: string
          description: The date when the Policy Rule was created. A timestamp.
          format: date-time
          example: '2023-11-13T14:49:48.830522Z'
        modifiedDate:
          type: string
          description: The date when the Policy Rule was last modified. A timestamp.
          format: date-time
          example: '2023-11-13T14:49:48.830522Z'
        lockModifiedBy:
          type: string
          description: The id of the user who last modified the lock of the Policy Rule.
          example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000
        evaluationId:
          type: string
          description: >
            The id of the Evaluation that was done when this Policy Rule version
            was requested to be created, modified

            or deleted. A UUID.
          example: 306258df-dcab-489e-a9fe-ff28ce9fa312
    PolicyRuleAction:
      title: PolicyRuleAction
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/ActionType'
          description: The type of the action
        userIds:
          type: array
          items:
            type: string
            description: The user IDs associated with the action
      required:
        - type
    PolicyRuleActions:
      description: What happens when this rule is triggered
      type: object
      properties:
        type:
          type: string
          enum:
            - deny
            - getApproval
            - getFinalApproval
            - getCustodianApproval
            - getIdVerification
        userIds:
          description: For a final approver action, who can approve
          type: array
          items:
            $ref: '#/components/schemas/Id'
      required:
        - type
    PolicyRuleConditions:
      title: Type
      description: Parameters for the type
      oneOf:
        - title: Velocity limit
          type: object
          properties:
            amountString:
              $ref: '#/components/schemas/IntegerString'
            timeWindow:
              type: integer
              minimum: 0
              maximum: 2678400
              description: >-
                Time window in seconds for a velocity limit, between 1 and a
                month
        - title: USD velocity limit
          type: object
          properties:
            amountString:
              $ref: '#/components/schemas/IntegerString'
            timeWindow:
              type: integer
              minimum: 0
              maximum: 2678400
              description: >-
                Time window in seconds for a velocity limit, between 1 and 30
                days
        - title: Whitelist
          type: object
          properties:
            addresses:
              description: Addresses allowed/restricted for a whitelist/blacklist
              type: array
              items:
                oneOf:
                  - type: string
                  - $ref: '#/components/schemas/Id'
        - title: Advanced whitelist
          type: object
          properties:
            entries:
              description: >-
                Entries specifying which addresses/ wallets/ enterprises are on
                the whitelist
              type: array
              items:
                $ref: '#/components/schemas/AdvancedListRuleEntry1'
        - title: Webhook
          type: object
          properties:
            url:
              type: string
              description: the url to query for the webhook
    PolicyRuleTriggers:
      type: string
      enum:
        - advancedWhitelist
        - allTx
        - bitcoinAddressWhitelist
        - coinAddressWhitelist
        - coinAddressBlacklist
        - transactionLimit
        - velocityLimit
        - webhook
      description: What causes this rule to trigger
    PolicyRuleUpdateCondition:
      title: PolicyRuleUpdateCondition
      oneOf:
        - $ref: '#/components/schemas/AddressListRuleUpdateCondition'
        - $ref: '#/components/schemas/AdvancedListRuleUpdateCondition'
        - $ref: '#/components/schemas/TxUsdThresholdRuleCondition'
        - $ref: '#/components/schemas/LimitRuleCondition'
        - $ref: '#/components/schemas/WebhookRuleCondition'
    PolicyRuleUpdateConditions:
      title: Type
      description: Parameters for the type
      anyOf:
        - title: Advanced whitelist
          type: object
          properties:
            add:
              $ref: '#/components/schemas/AdvancedListRuleEntry1'
          required:
            - add
        - title: Whitelist
          type: object
          properties:
            add:
              description: Address to add to the list
              oneOf:
                - type: string
                - $ref: '#/components/schemas/Id'
            metaData:
              type: object
              description: An object with arbitrary metadata about the added address.
              properties:
                addedBy:
                  type: string
                  description: Text indicating who added this address to the whitelist
              additionalProperties: true
          required:
            - add
        - title: Remove address from whitelist
          type: object
          properties:
            remove:
              description: Address to remove from the list
              oneOf:
                - type: string
                - $ref: '#/components/schemas/Id'
                - $ref: '#/components/schemas/AdvancedListRuleEntry1'
          required:
            - remove
        - type: object
    PolicyRuleVersions:
      type: object
      description: |
        description: All versions of a policy rule. Not paginated.
      required:
        - versions
      properties:
        versions:
          type: array
          description: >
            List of policy rule versions. The list is sorted by version number
            in descending order, but rules with a

            null version, such as those in pending approval or denied, appear
            first.
          items:
            $ref: '#/components/schemas/PolicyRule1'
    PolicyRulesResults:
      description: Paginated list of Policy Rules.
      allOf:
        - $ref: '#/components/schemas/PaginatedResultsWithNextBatchPrevId'
        - type: object
          properties:
            rules:
              type: array
              description: |
                A list of Policy Rules matching the search criteria.
              items:
                $ref: '#/components/schemas/PolicyRule1'
    PolyxBaseIntent:
      title: POLYX Base Intent
      allOf:
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
          required:
            - recipients
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    PolyxCreateAccountIntent:
      title: POLYX Create Account Intent
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
            index:
              $ref: '#/components/schemas/optionalNumber'
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
        - $ref: '#/components/schemas/AccountBaseCreateAccountIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    PolyxDelegationProperties:
      title: POLYX Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validators:
              type: object
              description: >
                Map of nominated validator addresses to their provider type.

                Contains all currently nominated validators for this delegation.

                Empty for legacy delegations created before multi-validator
                support.
              additionalProperties:
                type: string
                description: Provider type for the validator (e.g. FIGMENT, UNKNOWN).
    PolyxPreApproveAssetIntent:
      title: POLYX Pre-Approve Asset Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - enableToken
            enableTokens:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  address:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - name
            memo:
              $ref: '#/components/schemas/optionalString'
          required:
            - intentType
            - enableTokens
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    PolyxStakeIntent:
      title: POLYX Stake Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stake
            addToStake:
              $ref: '#/components/schemas/optionalBoolean'
            validators:
              type: array
              items:
                type: string
          required:
            - intentType
        - $ref: '#/components/schemas/PolyxBaseIntent'
    PolyxStakingRequest:
      title: POLYX
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    PolyxStakingRequestEntityProperties:
      title: Polyx staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              description: >
                Single validator address. Null for multi-validator nominations
                where the

                validators list is used instead. Retained for backward
                compatibility.
              nullable: true
            validators:
              type: array
              description: >
                List of nominated validator addresses. Present for all requests
                after

                multi-validator support was introduced. Contains a single entry
                for

                single-validator requests.
              items:
                type: string
              nullable: true
          required:
            - validatorAddress
    PolyxStakingRequestPOSTBody:
      title: POLYX stake
      description: >
        Request to stake POLYX tokens on Polymesh.


        **Single-validator staking:** Provide either `validator` or a
        single-element `validators` list.


        **Multi-validator nomination:** Provide a `validators` list with up to
        16 unique addresses.

        This nominates multiple validators simultaneously. The `validator` field
        must be omitted when

        using a multi-element `validators` list.


        **Re-stake to existing delegation:** If a validator is not specified and
        an active delegation

        already exists, the existing validator(s) are reused automatically.
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        validators:
          description: >
            List of validator addresses to nominate. Supports up to 16 unique
            addresses.

            Mutually exclusive with `validator` when list has more than one
            entry.
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 16
          nullable: true
    PolyxStakingTransactionProperties:
      title: PolyX Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            addToStake:
              type: boolean
    PolyxSwitchValidatorIntent:
      title: POLYX Switch Validator Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - switchValidator
            validators:
              type: array
              items:
                type: string
          required:
            - intentType
            - validators
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    PolyxSwitchValidatorRequestEntityProperties:
      title: Polyx switch validator request entity properties
      description: Entity properties for a POLYX switch validator (nominate) request.
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validators:
              type: array
              description: The new set of validator addresses to nominate. 1–16 entries.
              items:
                type: string
              minItems: 1
              maxItems: 16
            delegationId:
              type: string
              description: >-
                ID of the delegation being updated. Resolved automatically if
                absent.
              format: uuid
              nullable: true
          required:
            - validators
    PolyxSwitchValidatorTransactionProperties:
      title: PolyX Switch Validator Transaction Properties
      description: >-
        Transaction properties for a POLYX nominate (switch validator)
        operation.
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
              description: Always "0" — nominate-only, no balance movement.
              example: '0'
            validators:
              type: array
              description: >-
                The new set of validator addresses submitted to the Polymesh
                nominate extrinsic.
              items:
                type: string
              minItems: 1
              maxItems: 16
    PolyxSwitchValidatorsRequestPOSTBody:
      title: POLYX switch validator
      type: object
      description: >
        Request to switch the nomination set for an active POLYX staking
        delegation.


        **Nominate-only operation:** No balance movement occurs. The existing
        delegation is updated

        in-place to use the new validator set after the transaction is confirmed
        on-chain.


        **Multi-validator support:** Provide a `validators` list with 1–16
        unique addresses to

        nominate multiple validators simultaneously. Use a single-element list
        or the `validator`

        field to nominate a single validator.


        **Constraints:**

        - The delegation must be ACTIVE with delegated balance > 0.

        - No full unstake may be in progress.

        - No pending stake may be in progress.

        - The new validator set must differ from the current nomination set.

        - Only one switch validator request may be in-flight at a time per
        wallet.
      required:
        - type
        - validators
      properties:
        clientId:
          type: string
          description: Optional client-defined identifier to detect duplicate requests.
          maxLength: 256
          nullable: true
        type:
          type: string
          enum:
            - SWITCH_VALIDATORS
          description: Type of request. Must be SWITCH_VALIDATORS.
        delegationId:
          type: string
          description: >-
            Optional ID of the active delegation to switch. Resolved
            automatically if omitted.
          format: uuid
          nullable: true
        validator:
          type: string
          description: >
            Single validator address to nominate. Mutually exclusive with
            `validators` when `validators`

            has more than one entry. Normalized into `validators` if provided
            alone.
          nullable: true
        validators:
          type: array
          description: >
            List of validator addresses to nominate. Supports 1–16 unique
            addresses.

            Required when nominating multiple validators. Mutually exclusive
            with `validator` when

            list has more than one entry.
          items:
            type: string
          minItems: 1
          maxItems: 16
    PolyxUnStakingRequestPOSTBody:
      title: POLYX unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    PolyxUnstakeIntent:
      title: POLYX Unstake Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
            stopStaking:
              $ref: '#/components/schemas/optionalBoolean'
          required:
            - intentType
        - $ref: '#/components/schemas/PolyxBaseIntent'
    PolyxUnstakingTransactionProperties:
      title: PolyX Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            claimEra:
              type: string
            stopStaking:
              type: boolean
    PolyxWithdrawIntent:
      title: POLYX Withdraw Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
          required:
            - intentType
        - $ref: '#/components/schemas/PolyxBaseIntent'
    PositionActivityEntry:
      type: object
      required:
        - type
        - id
        - currency
        - quantity
        - enterpriseId
        - accountId
        - transactionDate
      properties:
        type:
          type: string
          enum:
            - fill-base-leg
            - fill-quote-leg
            - position-transfer
          description: The type of activity
          example: fill-base-leg
        id:
          type: string
          description: The unique identifier of the fill or position transfer
          example: 0d674606-431b-428f-83d1-b9199a6feb7d
        currency:
          type: string
          description: The currency symbol for this activity
          example: BTC
        quantity:
          type: string
          pattern: ^-?[0-9]+(\.[0-9]+)?$
          description: >-
            The quantity contribution to the open position. Negative values
            indicate short positions, positive values indicate long positions.
          example: '-2.5'
        enterpriseId:
          type: string
          description: The enterprise ID for the activity
          example: 63925f940c259a00061853808ffea830
        accountId:
          type: string
          description: The trading account ID for the activity
          example: 669e42a3c3fa7a17bf8483e7296373e1
        transactionDate:
          type: string
          format: date-time
          description: The date and time when the activity occurred
          example: '2025-07-29T21:13:09+00:00'
      example:
        type: fill-base-leg
        id: 0d674606-431b-428f-83d1-b9199a6feb7d
        currency: BTC
        quantity: '-2.5'
        enterpriseId: 63925f940c259a00061853808ffea830
        accountId: 669e42a3c3fa7a17bf8483e7296373e1
        transactionDate: '2025-07-29T21:13:09+00:00'
    PositiveAllocationAmount:
      title: PositiveAllocationAmount
      oneOf:
        - $ref: '#/components/schemas/PositiveCurrencyAmount'
        - $ref: '#/components/schemas/PositiveBigNumberCurrencyAmount'
    PositiveBNCurrencyAmount:
      title: PositiveBNCurrencyAmount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/BNSupportedCurrency'
        quantity:
          type: string
      required:
        - currency
        - quantity
    PositiveBigNumberCurrencyAmount:
      title: PositiveBigNumberCurrencyAmount
      type: object
      properties:
        currency:
          type: string
          minLength: 1
        quantity:
          type: string
      required:
        - currency
        - quantity
    PositiveCurrencyAmount:
      title: PositiveCurrencyAmount
      type: object
      properties:
        currency:
          type: string
          minLength: 1
        quantity:
          type: string
      required:
        - currency
        - quantity
    PositivePartnerCurrencyAmount:
      title: PositivePartnerCurrencyAmount
      type: object
      properties:
        currency:
          type: string
          minLength: 1
        quantity:
          type: string
      required:
        - currency
        - quantity
    PostBulkWebhookNotificationsRequest:
      required:
        - limit
        - offset
        - retrigger
        - webhookIds
      type: object
      properties:
        webhookIds:
          maxItems: 25
          minItems: 1
          type: array
          description: List of webhook IDs to fetch notifications for (max 25)
          items:
            type: string
            description: List of webhook IDs to fetch notifications for (max 25)
        filters:
          $ref: '#/components/schemas/BulkWebhookNotificationFilters'
        offset:
          minimum: 0
          type: integer
          description: Number of records to skip (default 0)
          format: int32
          example: 0
        limit:
          maximum: 50
          minimum: 1
          type: integer
          description: Number of records per page (default 50, max 50)
          format: int32
          example: 50
        retrigger:
          type: boolean
          description: >-
            If true, all matched notifications are retriggered after fetching.
            Retrigger outcome (success or error) is returned inline on each
            notification. Subject to per-webhook rate limits (default 50/min).
            Default: false.
          example: false
    PostBulkWebhookNotificationsResponse:
      required:
        - metadata
        - notifications
      type: object
      properties:
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/BulkWebhookNotificationDTO'
        metadata:
          $ref: '#/components/schemas/BulkWebhookNotificationMetadata'
    PostIdentityDocumentCreateResponse:
      title: PostIdentityDocumentCreateResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        status:
          $ref: '#/components/schemas/IdentityDocumentStatus'
        selectedIdClass:
          $ref: '#/components/schemas/PersonaIdClass'
        fileUploads:
          type: array
          items:
            type: object
            properties:
              fileName:
                type: string
                minLength: 1
              fileSize:
                type: number
              uploadStatus:
                type: string
                minLength: 1
              documentType:
                $ref: '#/components/schemas/IdentityDocumentType'
            required:
              - fileName
              - fileSize
              - uploadStatus
              - documentType
      required:
        - id
        - status
        - selectedIdClass
        - fileUploads
    PreviewGoStakingRequest:
      type: object
      required:
        - amount
      properties:
        clientId:
          type: string
          maxLength: 256
          nullable: true
        amount:
          type: string
          format: big-integer
          description: Amount to stake, must be a positive value
    PricingTypeName:
      title: PricingTypeName
      type: string
      enum:
        - starter
        - growth
        - employee
        - FTX Retail
        - FTX Institutional
    PrimaryBusinessType:
      type: string
      enum:
        - Crypto Services (Exchange, ATM, Borrow/Lend)
        - >-
          Crypto Solutions (DAO, Staking, CaaS, hot wallet provider,
          miner/mining pool, coins/tokens (developer, issuer, foundation))
        - Custodian
        - Agriculture
        - Arts, Media, Entertainment
        - Asset Management (i.e. revocable/irrevocable trust, IRA, pension fund)
        - Bank
        - Broker/Dealer
        - Casinos and Gambling Establishments
        - Charity/NGO/Non-profit/Foundation/Endowment
        - Commodities/Futures Commission Merchant
        - Corporate Holding Company
        - Education
        - Energy companies
        - Family Office
        - Food, hospitality, and tourism
        - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund)
        - Import/Export Companies
        - Industrial (construction, manufacturing, textiles, chemicals, etc.)
        - Insurance Company
        - Law Enforcement / Military / Protective Services
        - Marijuana-related Business
        - Money Services Business (MSB)
        - Mutual Funds
        - >-
          NBFI (Venture Capital Fund, Hedge Fund, Private Equity Fund, Pooled
          Investment Fund, Index Fund, ETF Issuer, Registered Investment
          Advisor, Prime Brokerage)
        - OTC
        - Other
        - Payment Platforms
        - Personal Holding Company
        - Private Equity / Venture Capital
        - Private Investment Companies / International Business Corporations
        - Professional Service Providers (lawyers, accountants, etc.)
        - Real estate brokers, developers, and appraisers
        - Retail Lender
        - Software or Technology Company
        - Traders / Trading (High Frequency, Proprietary, Market Maker)
        - Transportation & Shipping
        - Weapons Dealers
      title: PrimaryBusinessType
      description: Primary type of business
    PrimeTrade:
      required:
        - id
        - orderId
        - time
        - creationDate
        - product
        - side
        - price
        - quoteQuantity
        - quantity
        - fundingType
        - settled
        - accountId
        - enterpriseId
      type: object
      properties:
        id:
          type: string
          format: uuid
        orderId:
          type: string
          format: uuid
        time:
          type: string
          format: date-time
          description: The date when the trade occurred
        creationDate:
          type: string
          format: date-time
          description: The date when the trade was created in our system
        product:
          type: string
          description: Product name e.g. BTC-USD
        side:
          $ref: '#/components/schemas/Side'
        price:
          type: string
          format: decimal
          description: Filled price, e.g. For BTC-USD product, 90000.00 USD
        quoteQuantity:
          type: string
          format: decimal
          description: Filled quote quantity, e.g. For BTC-USD product, 100.50 USD
        quantity:
          type: string
          format: decimal
          description: Filled base quantity, e.g. For BTC-USD product, 0.0045 BTC
        fundingType:
          $ref: '#/components/schemas/FundingType'
        settled:
          type: boolean
        settleDate:
          type: string
          format: date-time
          nullable: true
          description: The date when the trade was settled. Null if not yet settled.
        accountId:
          $ref: '#/components/schemas/AccountId'
        enterpriseId:
          type: string
          description: The BitGo enterprise ID associated with this trade
      example:
        id: 7e0c768e-2d16-4c1e-b39d-06fa20009397
        orderId: d50ec984-77a8-460a-b958-66f114b0de9b
        time: '2025-11-26T15:27:35.1234Z'
        creationDate: '2025-11-26T15:27:41.5318Z'
        side: buy
        product: BTC-USD
        quoteQuantity: '100.50'
        price: '22333.33'
        quantity: '0.0045'
        fundingType: funded
        settled: true
        settleDate: '2025-11-27T10:00:00.0000Z'
        accountId: 66fdc289c4f722d994fedj8021f5ffb1
        enterpriseId: 59cd72485007a239fb00282ed480da1f
    Product:
      required:
        - baseCurrencyId
        - baseCurrency
        - baseMinSize
        - baseMaxSize
        - baseIncrement
        - quoteDisplayPrecision
        - id
        - isTradeDisabled
        - isMarginTradeSupported
        - name
        - quoteCurrencyId
        - quoteCurrency
        - quoteIncrement
        - quoteMinSize
        - quoteMaxSize
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID of the product
          example: b68baef1-8dcf-4b33-acd3-6424124cb379
        name:
          type: string
          description: Product name
          example: BTC-USD
        baseCurrencyId:
          type: string
          format: uuid
          description: ID of the base currency
          example: 6016e0a9-545a-45fb-8370-caab1680956a
        baseCurrency:
          type: string
          description: Base currency (the first asset in the trade pair) name
          example: BTC
        quoteCurrencyId:
          type: string
          format: uuid
          description: ID of the quote currency
          example: 7d5d1e8d-e6e1-4676-99af-190012515418
        quoteCurrency:
          type: string
          description: Quote currency (the second asset in the trade pair) name
          example: USD
        baseMinSize:
          type: string
          format: decimal
          description: Minimum order size in base currency
          example: '0.00000001'
        baseMaxSize:
          type: string
          format: decimal
          description: Maximum order size in base currency
          example: '10000.00'
        baseIncrement:
          type: string
          format: decimal
          description: >-
            Maximum precision allowed when entering order quantities in base
            currency
          example: '0.00000001'
        quoteMinSize:
          type: string
          format: decimal
          description: Minimum order size in quote currency
          example: '10.00'
        quoteMaxSize:
          type: string
          format: decimal
          description: Maximum order size in quote currency
          example: '100000000.00'
        quoteIncrement:
          type: string
          format: decimal
          description: >-
            Maximum precision allowed when entering order quantities in the
            quote currency
          example: '0.01'
        quoteDisplayPrecision:
          type: integer
          description: >-
            Maximum number of decimal places used when displaying quote currency
            amounts and limit prices
          example: 4
        isTradeDisabled:
          type: boolean
          description: True, if trading is disabled for the product
        isMarginTradeSupported:
          type: boolean
          description: True, if margin trading is supported for the product
      example:
        id: 86d09911-e58e-4f27-ac1f-91d5f9c79952
        name: BTC-USD
        baseCurrencyId: 6016e0a9-545a-45fb-8370-caab1680956a
        quoteCurrencyId: 7d5d1e8d-e6e1-4676-99af-190012515418
        baseCurrency: BTC
        quoteCurrency: USD
        baseMinSize: '0.00001'
        baseMaxSize: '10000.00'
        baseIncrement: '0.00000001'
        quoteMinSize: '0.01'
        quoteMaxSize: '100000000.00'
        quoteIncrement: '0.00000001'
        quoteDisplayPrecision: 2
        isTradeDisabled: false
        isMarginTradeSupported: true
    Products:
      type: array
      items:
        $ref: '#/components/schemas/Product'
    ProofChain:
      title: ProofChain
      type: string
      enum:
        - BITCOIN
        - ETHEREUM
    ProofType:
      title: ProofType
      type: string
      enum:
        - BITCOIN_P2SH
        - BITCOIN_P2SH_P2WSH
        - BITCOIN_P2WSH
        - ETHEREUM_CONTRACT
    PsbtHex:
      type: string
      description: BIP174 serialization of a PSBT
      example: >-
        70736274ff0100530100000001ccf3d1b853dcff06a939afef91d8b178d74028516bb831d77fcfd5b1ce6715f00000000000ffffffff01f0b9f5050000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387000000004f010488b21e0000000000000000003a922e29f0c8eb0db2a60484cbdcb631f6b107c9caae3ffdcf3e7d2ec1f6bcd00312148715f361dab685a669d42431e5d6d3f973404dab9c9fd1b950b279ad763404cc18ae084f010488b21e0000000000000000006d1d656d3ddd91c194c04565a3603702a21016ced14a265f38982d6275e67b6403d3bac2313a7c6b21cbb11b14b0d10341f922c0a403a8bd8c87f0dc820f35af6e04f65cd8694f010488b21e000000000000000000cb04fd63ab34d90fe6466b880e2a02ccf8a863374312991af8911b1aaab443340336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b62909504f2ef0389000100c00100000000010101010101010101010101010101010101010101010101010101010101010101010000000000ffffffff0100e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87024730440220360d495738071ed6930084713724262ef55d710e06d85f90b56727ab83c91b5702200ae452a812717ef0ac8866989ffc963d88c14f9694fa57ef046dd699bea1d5da01210247496797efe8b56780cd9bee19ac3d916624829cacd3f1236fa608000193e54d0000000001012000e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87010469522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae220602cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b420914f2ef038900000000000000000000000000000000220602d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab14cc18ae080000000000000000000000000000000022060344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f114f65cd8690000000000000000000000000000000000010069522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae2202035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf214cc18ae0800000000000000000100000000000000220203e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b14f65cd86900000000000000000100000000000000220203f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f14f2ef03890000000000000000010000000000000000
    Pub:
      type: string
      description: public part of a key pair
      example: >-
        xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH
    PublicAsset:
      type: object
      description: Metadata for a single digital asset (coin or token).
      required:
        - id
        - name
        - symbol
        - display_name
        - display_symbol
        - type
        - custody_supported
        - staking_supported
        - wallet_connect
        - token_supported
        - goaccounts_supported
        - trade_supported
      properties:
        id:
          type: string
          description: Unique identifier for the asset.
          example: d5ef3942-9985-4c4a-b30e-1a6078f14ca3
        name:
          type: string
          description: Full name of the asset.
          example: Bitcoin
        symbol:
          type: string
          description: Ticker symbol used by BitGo (e.g., `btc`, `eth`, `sol`).
          example: btc
        display_name:
          type: string
          description: Human-readable display name.
          example: Bitcoin
        display_symbol:
          type: string
          description: Display symbol, same as `symbol`.
          example: btc
        environment:
          type: string
          description: Network environment.
          enum:
            - mainnet
            - testnet
          example: mainnet
        type:
          type: string
          description: Whether this asset is a native chain coin or a token on a chain.
          enum:
            - chain
            - token
          example: chain
        network:
          type: string
          description: >-
            Network family the asset belongs to (e.g., `btc`, `eth`, `sol`,
            `trx`).
          example: eth
        decimal:
          type: integer
          description: Number of decimal places for the asset's smallest unit.
          example: 18
        wallet_type:
          type: array
          description: >-
            Supported wallet types for this asset. Possible values are `MPC` and
            `Multisig`.
          items:
            type: string
            enum:
              - MPC
              - Multisig
          example:
            - MPC
            - Multisig
        key_curve:
          type: string
          description: Cryptographic key curve used by the asset.
          example: secp256k1
        explorer:
          type: string
          nullable: true
          description: URL of the block explorer for this asset's network.
          example: https://etherscan.io
        contract_address:
          type: string
          nullable: true
          description: >-
            Smart contract address for token assets. Null for native chain
            coins.
          example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
        custody_supported:
          type: boolean
          description: >-
            Whether BitGo custody is available for this asset. Returns `false`
            if the asset is currently gatekept.
          example: true
        custody_jurisdiction:
          type: array
          description: >-
            List of jurisdiction codes where custody is available for this asset
            (e.g., `US`, `DE`).
          items:
            type: string
          example:
            - US
            - DE
        staking_supported:
          type: boolean
          description: Whether staking is supported for this asset.
          example: true
        wallet_connect:
          type: boolean
          description: Whether WalletConnect DeFi integration is supported.
          example: false
        token_supported:
          type: boolean
          description: >-
            Whether this chain supports tokens (only relevant for chain-type
            assets).
          example: true
        testnet_symbol:
          type: string
          nullable: true
          description: Symbol of the corresponding testnet asset, if one exists.
          example: hteth
        goaccounts_supported:
          type: boolean
          description: Whether BitGo Go accounts are available for this asset.
          example: true
        trade_supported:
          type: boolean
          description: Whether trading is supported for this asset.
          example: false
        staking:
          nullable: true
          description: >-
            Detailed staking information. Only present when the
            `stakingData=true` query parameter is provided. Null for assets that
            do not support staking.
          allOf:
            - $ref: '#/components/schemas/StakingDetails'
    PutIdentityDocumentUpdateResponse:
      title: PutIdentityDocumentUpdateResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        status:
          $ref: '#/components/schemas/IdentityDocumentStatus'
        selectedIdClass:
          $ref: '#/components/schemas/PersonaIdClass'
      required:
        - id
        - status
        - selectedIdClass
    Recipient:
      type: object
      properties:
        amount:
          type: string
          description: The amount to stake in base units.
        address:
          type: string
          description: The recipient address.
        data:
          type: string
          description: Optional staking data (ABI format).
    RecipientAmount:
      oneOf:
        - type: string
          pattern: ^(-?\d+|max|invoice)$
          example: '2000000'
        - type: integer
    RecipientEntry:
      title: RecipientEntry
      type: object
      properties:
        address:
          $ref: '#/components/schemas/Address'
        amount:
          $ref: '#/components/schemas/Amount'
        data:
          $ref: '#/components/schemas/optionalString'
      required:
        - address
        - amount
    RecipientEntry1:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/TxAddress'
        amount:
          $ref: '#/components/schemas/Amount2'
        data:
          type: string
        tokenData:
          $ref: '#/components/schemas/TokenData1'
      required:
        - address
        - amount
    RecommendationActionEntry:
      type: object
      description: An action entry in the recommendation template.
      required:
        - action
      properties:
        action:
          $ref: '#/components/schemas/RecommendationActionMeta'
        actionParameters:
          type: object
          description: Recommended parameter values for the action.
          additionalProperties: true
    RecommendationActionMeta:
      type: object
      description: Metadata for a recommended action.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
        - parameters
        - bitgoManaged
      properties:
        name:
          type: string
          description: Name of the action.
          example: approvals.customer.walletAdmin
        label:
          type: string
          description: Human-readable label.
          example: Wallet Admin
        description:
          type: string
          description: Description of the action.
          example: Require approval from wallet admins
        status:
          type: string
          description: Status of the action.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: Whether this action is admin-only.
          example: false
        parameters:
          type: array
          description: Parameter definitions for the action.
          items:
            $ref: '#/components/schemas/RecommendationParameterDef'
        bitgoManaged:
          type: boolean
          description: Whether this action is managed by BitGo.
          example: false
    RecommendationConditionEntry:
      type: object
      description: A condition entry in the recommendation template.
      required:
        - condition
      properties:
        condition:
          $ref: '#/components/schemas/RecommendationConditionMeta'
        conditionParameters:
          type: object
          description: Recommended parameter values for the condition.
          additionalProperties: true
    RecommendationConditionMeta:
      type: object
      description: Metadata for a recommended condition.
      required:
        - name
        - label
        - description
        - status
        - parameters
        - bitgoManaged
      properties:
        name:
          type: string
          description: Name of the condition.
          example: transfer.amount
        label:
          type: string
          description: Human-readable label.
          example: Spending limit
        description:
          type: string
          description: Description of the condition.
          example: Allows creating a condition based on the Transfer Amount
        status:
          type: string
          description: Status of the condition.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: Whether this condition is admin-only.
          default: false
          example: false
        parameters:
          type: array
          description: Parameter definitions for the condition.
          items:
            $ref: '#/components/schemas/RecommendationParameterDef'
        bitgoManaged:
          type: boolean
          description: Whether this condition is managed by BitGo.
          example: false
    RecommendationParameterDef:
      type: object
      description: Definition of a parameter for a condition or action.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: Name of the parameter.
          example: amount
        label:
          type: string
          description: Human-readable label.
          example: Amount
        description:
          type: string
          description: Description of the parameter.
          example: The amount that can be spent within the time window
        type:
          type: string
          description: Type of the parameter value.
          example: NON_NEGATIVE_NUMBER
        required:
          type: string
          description: Whether the parameter is required.
          enum:
            - ALWAYS
            - OPTIONAL
            - ONE_OR_MORE
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: Whether multiple values can be provided.
          example: false
        values:
          type: array
          description: List of valid values (empty if free-form).
          items: {}
    RecommendationScopeCondition:
      type: object
      description: The scope condition for the recommended policy rule.
      required:
        - name
        - label
        - description
        - status
      properties:
        name:
          type: string
          description: Name of the scope condition.
          example: wallet.type
        label:
          type: string
          description: Human-readable label.
          example: Wallet Type
        description:
          type: string
          description: Description of the scope condition.
          example: Allows creating a condition based on the Wallet Type
        status:
          type: string
          description: Status of the scope condition.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: Parameter definitions for the scope condition.
          items: {}
        adminOnly:
          type: boolean
          description: Whether this scope condition is admin-only.
          default: false
          example: false
        bitgoManaged:
          type: boolean
          description: Whether this scope condition is managed by BitGo.
          default: false
          example: false
    RecommendationSource:
      type: string
      description: >
        The source of the recommendation.


        * `PEER_POPULAR` - Based on popular adoption among enterprises.

        * `PARAMETER_DRIFT` - Based on differences from common parameter
        configurations.

        * `DEFAULT_TEMPLATE` - Based on a default best-practice template.
      enum:
        - PEER_POPULAR
        - PARAMETER_DRIFT
        - DEFAULT_TEMPLATE
      example: PEER_POPULAR
    RecommendationTemplate:
      type: object
      description: >-
        The recommended policy rule template with scope, touchpoint, conditions,
        and actions.
      required:
        - name
        - scopeCondition
        - touchpoint
        - touchpointConditions
        - touchpointActions
      properties:
        name:
          type: string
          description: Name of the template.
          example: Spending limit on segregated wallet transfers
        scopeCondition:
          $ref: '#/components/schemas/RecommendationScopeCondition'
        touchpoint:
          $ref: '#/components/schemas/RecommendationTouchpoint'
        touchpointConditions:
          type: array
          description: List of conditions for the policy rule.
          items:
            $ref: '#/components/schemas/RecommendationConditionEntry'
        touchpointActions:
          type: array
          description: List of actions for the policy rule.
          items:
            $ref: '#/components/schemas/RecommendationActionEntry'
        scopeConditionParameters:
          type: object
          description: Parameter values for the scope condition.
          additionalProperties: true
          nullable: true
        touchpointConditionsOperator:
          allOf:
            - $ref: '#/components/schemas/ClauseOperator'
          nullable: true
        touchpointActionsOperator:
          allOf:
            - $ref: '#/components/schemas/ClauseOperator'
          nullable: true
    RecommendationTouchpoint:
      type: object
      description: The touchpoint (trigger point) for the recommended policy rule.
      required:
        - id
        - name
        - status
        - label
        - description
        - adminOnly
      properties:
        id:
          type: string
          description: Unique identifier of the touchpoint.
          example: 0441ea9f-cd66-4d60-a52a-471aecd3e54e
        name:
          type: string
          description: Name of the touchpoint.
          example: wallet.segregated.transfer
        status:
          type: string
          description: Status of the touchpoint.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        label:
          type: string
          description: Human-readable label for the touchpoint.
          example: Transfer from a Segregated Wallet
        description:
          type: string
          description: Description of the touchpoint.
          example: When transferring from a BitGo Segregated Wallet
        adminOnly:
          type: boolean
          description: Whether this touchpoint is admin-only.
          example: false
    RecoveryCodesResponse:
      title: RecoveryCodesResponse
      type: object
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        created:
          type: string
          description: ISO 8601 string representation of date
          example: '2019-05-02T15:27:35.773Z'
          format: date-time
          title: ISO Date String
        codes:
          type: array
          minItems: 10
          maxItems: 10
          items:
            type: object
            properties:
              code:
                type: string
                description: The recovery code
                example: uFN4wrsjdpK3
              isActive:
                type: boolean
                description: Whether the recovery code is active
                example: true
            required:
              - code
              - isActive
      required:
        - id
        - created
        - codes
    ReferralCodeString:
      title: ReferralCodeString
      type: string
      description: An Enterprise Referral Code
    Referrer:
      title: Referrer
      type: object
      properties:
        campaign:
          nullable: true
          type: string
        source:
          nullable: true
          type: string
    RegionalFeatures:
      title: RegionalFeatures
      type: object
      properties:
        trading:
          type: boolean
        custody:
          type: boolean
        lending:
          type: boolean
        borrowing:
          type: boolean
      required:
        - trading
        - custody
        - lending
        - borrowing
    RegisterWebhookKeyRequest:
      type: object
      description: Request to register a new webhook signing key.
      properties:
        jwks:
          type: object
          description: >
            Inline JWKS payload containing the public key(s). Mutually exclusive
            with jwksUri.

            The `kid` field inside the JWK object becomes the `keyId` for this
            registration.

            Choose a stable, unique `kid` value (e.g. `my-key-v2`) because once
            a `keyId`

            is revoked it is permanently tombstoned and cannot be reused.
          properties:
            keys:
              type: array
              description: Array of JWK objects. Exactly one key must be provided.
              items:
                type: object
                additionalProperties: true
          required:
            - keys
        jwksUri:
          type: string
          description: >-
            URI pointing to a hosted JWKS endpoint. Mutually exclusive with
            jwks.
          example: https://example.com/.well-known/jwks.json
        keyId:
          type: string
          description: >
            Customer-provided key identifier. Required when registering via
            `jwksUri` (must

            match the `kid` in your JWKS endpoint). Optional when registering
            inline JWKS

            (derived from the JWK `kid` field if not provided).


            **Permanent restriction:** Once a `keyId` is registered under an
            enterprise —

            even if the key is later revoked — the `keyId` is permanently
            tombstoned and

            cannot be reused. Attempting to re-register the same `keyId` returns
            a 400 error.

            Choose stable, unique values (e.g. `my-key-v2`) to avoid needing to
            update

            secrets and configuration after key rotation.
          example: my-key-v2
          maxLength: 255
        keyName:
          type: string
          description: Human-readable name for the key.
          example: Production Webhook Key
    RegisterWebhookKeyResponse:
      type: object
      description: Response after successfully registering a webhook signing key.
      required:
        - id
        - keyId
        - status
        - createdDate
      properties:
        id:
          type: string
          format: uuid
          description: Internal UUID of the registered key.
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
        keyId:
          type: string
          description: The derived key identifier.
          example: customer-prod-key-2026
        algorithm:
          type: string
          nullable: true
          description: >-
            The signing algorithm (EdDSA or ECDSA). Null for JWKS URI
            registrations.
          enum:
            - EdDSA
            - ECDSA
          example: EdDSA
        jwksUri:
          type: string
          nullable: true
          description: The JWKS URI if the key was registered via URI.
          example: https://example.com/.well-known/jwks.json
        status:
          type: string
          description: Status of the newly registered key.
          example: ACTIVE
        createdDate:
          type: string
          format: date-time
          description: When the key was registered.
          example: '2026-01-12T10:30:00.000Z'
    RejectReshare:
      type: object
      properties:
        userId:
          $ref: '#/components/schemas/Id'
      required:
        - userId
    ReportFormatType:
      title: ReportFormatType
      type: string
      enum:
        - csv
        - pdf
    ReportJSON:
      title: ReportJSON
      allOf:
        - $ref: '#/components/schemas/ReportParams'
        - $ref: '#/components/schemas/GenericReportParamsJSON'
    ReportParams:
      title: ReportParams
      type: object
      properties:
        holdings:
          type: object
          description: Holdings report
          properties:
            byWallet:
              type: boolean
            enterprise:
              type: string
              description: ID of the enterprise
              example: 59cd72485007a239fb00282ed480da1f
              minLength: 1
              pattern: ^[0-9a-f]{32}$
            includeStaking:
              type: boolean
            snapshotDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
          required:
            - enterprise
            - snapshotDate
        transactions:
          type: object
          description: Transactions report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            enterprise:
              $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
            isAddressReport:
              type: boolean
            isDetailed:
              type: boolean
            startDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - endDate
            - enterprise
            - startDate
        quarterly:
          type: object
          description: Quarterly report
          properties:
            endDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            enterprise:
              $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
            startDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
          required:
            - endDate
            - enterprise
            - startDate
        trades:
          type: object
          description: Trades report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            enterprise:
              $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
            isCostBasisReport:
              type: boolean
            isFillsReport:
              type: boolean
            startDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
          required:
            - endDate
            - enterprise
            - startDate
        staking:
          type: object
          description: Staking report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            enterprise:
              $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
            isBalanceReport:
              type: boolean
            startDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - endDate
            - enterprise
            - startDate
        holdingsByAddress:
          type: object
          description: Address-level Holdings report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            enterprise:
              type: string
              minLength: 1
            snapshotDate:
              type: string
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - enterprise
            - snapshotDate
        organizationHoldings:
          type: object
          description: Organization-level Holdings report
          properties:
            byWallet:
              type: boolean
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            includeStaking:
              type: boolean
            organization:
              type: string
              minLength: 1
            snapshotDate:
              type: string
              format: date-time
              title: ISO Date String
          required:
            - organization
            - snapshotDate
        organizationTransactions:
          type: object
          description: Organization-level Transactions report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              format: date-time
              title: ISO Date String
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            isAddressReport:
              type: boolean
            isDetailed:
              type: boolean
            organization:
              type: string
              minLength: 1
            startDate:
              type: string
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - endDate
            - organization
            - startDate
        organizationHoldingsByAddress:
          type: object
          description: Organization-level Holdings by Address report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            organization:
              type: string
              minLength: 1
            snapshotDate:
              type: string
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - organization
            - snapshotDate
        organizationStaking:
          type: object
          description: Organization-level Staking report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              format: date-time
              title: ISO Date String
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            isBalanceReport:
              type: boolean
            organization:
              type: string
              minLength: 1
            startDate:
              type: string
              format: date-time
              title: ISO Date String
            wallets:
              type: array
              items:
                type: string
                minLength: 1
                example: 59cd72485007a239fb00282ed480da1f
            walletTypes:
              type: array
              items:
                type: string
                minLength: 1
          required:
            - endDate
            - organization
            - startDate
        organizationTrades:
          type: object
          description: Organization-level Trades report
          properties:
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              format: date-time
              title: ISO Date String
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            isFillsReport:
              type: boolean
            organization:
              type: string
              minLength: 1
            startDate:
              type: string
              format: date-time
              title: ISO Date String
          required:
            - endDate
            - organization
            - startDate
        userAccess:
          type: object
          description: Organization-level User Access Review report (DE-519)
          properties:
            allEnterprises:
              type: boolean
            asOfDate:
              type: string
              format: date-time
              title: ISO Date String
            enterprises:
              type: array
              items:
                type: string
                minLength: 1
            organization:
              type: string
              minLength: 1
            reportContents:
              $ref: '#/components/schemas/UserAccessReportContents'
          required:
            - asOfDate
            - organization
            - reportContents
        policies:
          type: object
          description: Policies report
          properties:
            completeHistory:
              type: boolean
            enterprise:
              type: string
              minLength: 1
          required:
            - enterprise
        costBasis:
          type: object
          deprecated: true
          properties:
            account:
              type: string
            assets:
              type: array
              items:
                type: string
                minLength: 1
            endDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
            enterprise:
              $ref: '#/components/schemas/EnterpriseIdNonEmptyString'
            startDate:
              type: string
              description: Date of the snapshot
              format: date-time
              title: ISO Date String
          required:
            - endDate
            - enterprise
            - startDate
    ReportStatus1:
      title: ReportStatus
      type: string
      enum:
        - pending
        - processing
        - completed
        - failed
    RequestSource:
      type: string
      enum:
        - MANUAL
        - AUTO_STAKE
    RequestedProductResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the requested permission
        name:
          type: string
          enum:
            - Instant Fee Wallets
            - Go Account
            - ACH Debits
            - Settlement
            - Tax
            - Trade API
            - Margin Trading
            - Elliptic
            - CryptoCompare
            - MetaMask
            - Custody
            - Borrowing
            - Lending
            - DeFi
            - Cold Self-Custody
            - Go Network
            - Staking
            - Trade
            - Hot Self-Custody
            - Escrow
            - Escrow - Triparty
            - Distributed Custody
          description: Name of the BitGo product
        bitgoOrg:
          type: string
          enum:
            - BitGo Trust
            - BitGo New York
            - BitGo Germany
            - BitGo Switzerland
            - BitGo Europe ApS
            - Frankfurt DE Trust
            - BitGo Singapore
            - BitGo Korea
            - BitGo Mena Fze
            - BitGo Custody MENA FZE
            - BitGo India
            - BitGo Sister Trust 1
            - BitGo Inc
          description: The BitGo entity identifier
        country:
          description: The country where the permission is being requested
        subdivision:
          type: string
          minLength: 1
          maxLength: 3
          description: The subdivision where the permission is being requested
        status:
          type: string
          enum:
            - missingLocation
            - missingEntityStructure
            - missingRequirements
            - readyForSubmission
            - inReview
            - approved
            - rejected
          description: Status of the requested permission
      required:
        - id
        - name
        - bitgoOrg
        - status
      title: RequestedProductResponse
    Requirement:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the requirement
        kind:
          type: string
          enum:
            - businessInformation
            - data
            - document
            - associatedPerson
          description: Type of requirement
        name:
          type: string
          description: Name of the requirement
        status:
          type: string
          enum:
            - missing
            - countExceeded
            - submitted
            - inReview
            - verified
          description: Current status of the requirement
        minRequired:
          type: number
          description: Minimum number required (for associated persons)
        maxAllowed:
          type: number
          description: Maximum number allowed (for associated persons)
      required:
        - id
        - kind
        - name
        - status
      title: Requirement
    ResendShareEmailResponse:
      type: object
      properties:
        resent:
          type: boolean
    ReservedUnspent:
      type: object
      description: a ReservedUnspent object
      properties:
        id:
          type: string
          description: The id of the unspent in the form <txid>:<tx_index>
          example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2
        walletId:
          $ref: '#/components/schemas/Id'
        expireTime:
          type: string
          format: date-time
        userId:
          $ref: '#/components/schemas/Id'
      required:
        - id
        - walletId
        - expireTime
        - userId
    Restaking:
      type: object
      description: Attributes related to restaking positions.
      properties:
        total:
          description: Total amount currently restaked.
          type: string
        pendingStake:
          description: Amount of stake that has been requested but is not yet active.
          type: string
        pendingUnstake:
          description: Amount of stake that is pending to be unstaked.
          type: string
        operator:
          description: The operator identifier for the restaking position.
          type: string
        type:
          description: The type of restaking (e.g., EigenLayer, AVS, etc.).
          type: string
        avses:
          description: >-
            Optional list of AVS (Actively Validated Services) identifiers
            linked to this restaking.
          type: array
          items:
            type: string
        apy:
          description: Annual percentage yield (APY) for the restaking position.
          type: string
          format: decimal
        commissionPercent:
          description: Commission percentage charged by the operator.
          type: string
          format: decimal
    RethRocketStakingRequest:
      title: RETH-ROCKET
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for RETH-ROCKET)
          type: string
    RethRocketStakingRequestPOSTBody:
      title: RETH-ROCKET stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    RethRocketUnStakingRequestPOSTBody:
      title: RETH-ROCKET unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    RetriggerNotificationResult:
      required:
        - webhookNotificationId
      type: object
      properties:
        webhookNotificationId:
          type: string
          format: uuid
        retriggeredNotificationRequestId:
          type: string
        error:
          type: string
    RetriggerWebhookNotificationsRequest:
      type: object
      properties:
        webhookNotificationIds:
          type: array
          items:
            type: string
            format: uuid
    RetriggerWebhookNotificationsResponse:
      required:
        - failedNotifications
        - successfulNotifications
        - totalFailed
        - totalRequested
        - totalSuccess
      type: object
      properties:
        totalRequested:
          type: integer
          format: int32
        totalSuccess:
          type: integer
          format: int32
        totalFailed:
          type: integer
          format: int32
        successfulNotifications:
          type: array
          items:
            $ref: '#/components/schemas/RetriggerNotificationResult'
        failedNotifications:
          type: array
          items:
            $ref: '#/components/schemas/RetriggerNotificationResult'
    RevokeWebhookKeyResponse:
      type: object
      description: Response after successfully revoking a webhook signing key.
      required:
        - success
        - keyId
        - revokedAt
        - revokedBy
      properties:
        success:
          type: boolean
          description: Whether the revocation was successful.
          example: true
        keyId:
          type: string
          description: The customer-provided key identifier that was revoked.
          example: customer-prod-key-2026
        revokedAt:
          type: string
          format: date-time
          description: When the key was revoked.
          example: '2026-01-12T15:00:00.000Z'
        revokedBy:
          type: string
          description: User who revoked the key.
          example: admin@example.com
    Reward:
      type: object
      required:
        - goAccountId
        - coin
        - amount
        - rewardType
        - period
        - createdDate
      properties:
        goAccountId:
          type: string
        coin:
          type: string
          description: The coin symbol for this reward (e.g. "ofcsol", "ofcsui")
        amount:
          type: string
          format: big-integer
        rewardType:
          type: string
          enum:
            - REWARD
            - ADJUSTMENT
        period:
          type: string
        createdDate:
          type: string
          format: date-time
    RewardPairs:
      type: object
      properties:
        tokenAddress:
          description: The optional token address.
          type: string
          nullable: true
        amount:
          description: The total amount of the reward pair in base units.
          type: string
        activeAmount:
          description: The currently active amount in base units.
          type: string
        coin:
          description: The optional coin for this reward pair.
          type: string
          nullable: true
      required:
        - amount
        - activeAmount
    RewardsResults:
      type: object
      properties:
        rewards:
          type: array
          items:
            $ref: '#/components/schemas/Reward'
        page:
          type: integer
          example: 1
        totalPages:
          type: integer
          example: 5
        totalElements:
          type: integer
          format: int64
          example: 124
      required:
        - rewards
        - page
        - totalPages
        - totalElements
    RoutingNumberString:
      title: RoutingNumberString
      type: string
    RuleAllFilteringCondition:
      title: All rules
      type: object
      description: Filter by all rules.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - rule.all
          example: rule.all
        parameters:
          type: object
          description: Required data needed to evaluate the Filtering Condition.
          additionalProperties: true
    STXStakingOptions:
      title: STX
      type: object
      properties:
        contractName:
          type: string
          description: The STX staking contract name. Use pox-3.
          default: pox-3
        functionName:
          type: string
          description: STX staking contract function.
          oneOf:
            - type: string
              description: Function name used to delegate funds.
              default: delegate-stx
            - type: string
              description: Function name used to revoke delegated funds.
              default: revoke-delegate-stx
        functionArgs:
          type: array
          description: The 4 Objects are required and in the order expressed.
          items:
            anyOf:
              - title: uint128
                type: object
                properties:
                  type:
                    type: string
                    default: uint128
                    description: Type of argument. Use the default.
                  val:
                    type: string
                    description: Amount in micro-stx
              - title: principal
                type: object
                properties:
                  type:
                    type: string
                    default: principal
                    description: Type of argument. Use the default.
                  val:
                    type: string
                    description: Address of the validator
              - title: optional
                type: object
                properties:
                  type:
                    type: string
                    default: optional
                    description: Type of argument. Use the default.
                  val:
                    type: string
                    description: >-
                      The number of cycles that the delegation will last. This
                      is a mandatory field that must be greater than 1.
              - title: optional
                type: object
                properties:
                  type:
                    type: string
                    default: optional
                    description: Type of argument. Use the default.
                  val:
                    type: object
                    properties:
                      type:
                        type: string
                        default: tuple
                        description: Type of argument. Use the default.
                      val:
                        type: array
                        description: The 2 objects are required and in the order expressed.
                        items:
                          anyOf:
                            - title: hash
                              type: object
                              properties:
                                key:
                                  type: string
                                  default: hashbytes
                                  description: Type of argument. Use the default.
                                type:
                                  type: string
                                  default: buffer
                                  description: Type of argument. Use the default.
                                val:
                                  type: string
                                  description: The BTC Address hash.
                            - title: version
                              type: object
                              properties:
                                key:
                                  type: string
                                  default: version
                                  description: Type of argument. Use the default.
                                type:
                                  type: string
                                  default: buffer
                                  description: Type of argument. Use the default.
                                val:
                                  type: string
                                  description: The BTC Address version.
    ScheduledDate:
      type: string
      format: date-time
      description: >-
        Date to schedule the order. If not provided, the order will be placed
        immediately.
    Scope:
      type: array
      items:
        type: string
      example:
        - crypto_compare
        - user_manage
        - openid
        - profile
        - wallet_create
        - wallet_manage_all
        - wallet_approve_all
        - wallet_spend_all
        - wallet_edit_all
        - wallet_view_all
    ScopeConditionParameter:
      title: Scope
      type: object
      description: Defines the entities included in the velocity calculation.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
        - values
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - scope
          example: scope
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: scope
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Entities that will be included in the velocity calculation
        type:
          type: string
          description: >-
            Accepts only enumerated values as listed in the 'values' property of
            this condition.
          enum:
            - ENUMERATED
          example: ENUMERATED
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
        values:
          type: array
          description: A list of valid values, only values from this list will be accepted.
          items:
            anyOf:
              - $ref: '#/components/schemas/WalletValue'
              - $ref: '#/components/schemas/EnterpriseValue'
    SeiClaimRewardsRequestPOSTBody:
      title: Sei Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Sei.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    SeiEvmStakingRequestPOSTBody:
      title: SEIEVM stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            validator:
              type: string
              description: SEIEVM validator address
          required:
            - validator
      type: object
    SeiEvmSwitchValidatorRequestEntityProperties:
      title: SEIEVM switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
        - type: object
          properties:
            amountInMicro:
              type: string
              description: Amount in MICRO (6 decimals) for smart contract calls.
          required:
            - amountInMicro
    SeiEvmSwitchValidatorsRequestPOSTBody:
      title: SEIEVM switch validator
      description: >
        Request to switch staking delegation from one validator to another for
        SeiEVM.

        Supports both full and partial redelegation.


        **Partial Redelegation:** You can redelegate a specific amount from the
        source validator.

        - Specify the exact amount to redelegate in wei (18 decimals)

        - If partially redelegating, must leave at least the minimum stake
        amount (1 SEI = 1000000000000000000 wei) in the source delegation

        - If the remaining amount would be less than minimum stake, must
        redelegate the full amount

        - Source delegation remains active with the remaining balance after
        partial redelegation

        - Example: To redelegate 10 SEI from a 50 SEI delegation, use amount
        '10000000000000000000' (leaves 40 SEI in source)


        **Redelegation Constraints:** SeiEVM enforces protocol-level
        redelegation limits:

        - Maximum 7 redelegations between the same validator pair within 21 days

        - 21-day lock period on the destination validator after redelegation
        (cannot redelegate FROM the destination validator for 21 days)

        - These constraints are enforced by the blockchain protocol and cannot
        be bypassed


        **Auto-Claim Feature:** During validator switching, any pending rewards
        from the source validator

        may be automatically claimed and included in the transaction. This
        auto-claim behavior is handled

        transparently and will be reflected in the transaction events and
        delegation reward tracking.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
      type: object
      properties:
        amount:
          type: string
          description: >
            Amount to redelegate in wei (18 decimals).


            For partial redelegation:

            - Specify the amount to move from source to destination validator

            - Must leave at least 1 SEI (1000000000000000000 wei) in the source
            delegation

            - Source delegation remains active with the remaining balance


            For full redelegation:

            - Specify the entire delegated amount

            - Source delegation becomes inactive after completion


            The amount must be between the minimum stake (1 SEI) and the maximum
            switchable amount

            (available balance minus pending unstake, as shown in wallet
            attributes).


            Examples:

            - Partial: '10000000000000000000' (10 SEI from 50 SEI delegation,
            leaves 40 SEI)

            - Full: '50000000000000000000' (50 SEI, entire delegation amount)
          example: '10000000000000000000'
      required:
        - amount
    SeiEvmUnStakingRequestPOSTBody:
      title: SEIEVM unstake
      description: >
        Request to unstake SEIEVM tokens.


        **Auto-Claim Feature:** During unstaking, any pending rewards may be
        automatically claimed

        and included in the final transaction. This auto-claim behavior is
        handled transparently

        and will be reflected in the transaction events and delegation reward
        tracking.


        **Unbonding Period:** After the unstake transaction completes, tokens
        enter a 21-day

        unbonding period before they become available in your wallet. During
        this period, the

        tokens are locked and cannot be used for staking or transfers.


        **Decimal Units:** Amount must be specified in micro units (6 decimals).

        Example: 1 SEI = 1,000,000 micro. To unstake 10 SEI, use amount
        '10000000'.
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
      properties:
        amount:
          description: >-
            Amount to unstake in micro units (6 decimals). Example - 1000000
            micro = 1 SEI. Supports partial unstaking.
          type: string
          example: '1000000'
        validator:
          description: The SEIEVM validator address (seivaloper format) to unstake from.
          type: string
          example: seivaloper19tup24vtzed7za6nz3r0dylm0eln2clpvhtawu
      required:
        - amount
        - validator
    SeiStakingRequest:
      title: SEI
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    SeiStakingRequestPOSTBody:
      title: SEI stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    SeiSwitchValidatorsRequestPOSTBody:
      title: Sei Switch Validators Request
      type: object
      description: Request to switch staking delegation to a new validator for Sei.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    SeiUnStakingRequestPOSTBody:
      title: SEI unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    SendLabel:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        coin:
          $ref: '#/components/schemas/Coin'
        address:
          $ref: '#/components/schemas/AddressString3'
        enterpriseId:
          $ref: '#/components/schemas/Id'
        label:
          type: string
          maxLength: 250
      required:
        - id
        - coin
        - address
        - enterpriseId
        - label
    SendQueueCoinSpecific:
      title: SendQueueCoinSpecific
      oneOf:
        - $ref: '#/components/schemas/AlgorandSendQueue'
        - $ref: '#/components/schemas/AvaxcTxSubdocument'
        - $ref: '#/components/schemas/UtxoSendQueue'
        - $ref: '#/components/schemas/CasperSendQueue'
        - $ref: '#/components/schemas/EosSendQueue'
        - $ref: '#/components/schemas/Ethereum2SendQueue'
        - $ref: '#/components/schemas/HederaSendQueue'
        - $ref: '#/components/schemas/FiatTx'
        - $ref: '#/components/schemas/OffchainTx'
        - $ref: '#/components/schemas/StacksSendQueue'
        - $ref: '#/components/schemas/TestcoinTx'
        - $ref: '#/components/schemas/TronSendQueue'
        - $ref: '#/components/schemas/StellarSendQueue'
        - $ref: '#/components/schemas/XRPSendQueue'
        - $ref: '#/components/schemas/TezosSendQueue'
        - $ref: '#/components/schemas/SolSendQueue'
        - $ref: '#/components/schemas/SuiSendQueue'
        - $ref: '#/components/schemas/EthereumTx'
    SendTransaction:
      title: Sent Transaction
      allOf:
        - $ref: '#/components/schemas/BuildParams'
        - type: object
          description: >-
            Include buildParams from the build request to be stored in case of
            rebuilding.
      type: object
      description: This endpoint broadcasts half-signed transactions.
      properties:
        comment:
          type: string
          description: An optional memo for the transaction.
          maxLength: 256
        halfSigned:
          type: object
          properties:
            txHex:
              type: string
          description: >-
            The half-signed transaction. The request must include this or a
            txHex.
        txHex:
          type: string
          description: >-
            The half-signed, serialized transaction hex. Alternative to sending
            halfSigned.
        sequenceId:
          type: string
          description: Your own unique ID
        videoApprovers:
          $ref: '#/components/schemas/VideoApprovers'
    SepaAccountResponseProps:
      title: SepaAccountResponseProps
      type: object
      properties:
        type:
          type: string
          enum:
            - sepa
        swiftCode:
          $ref: '#/components/schemas/SwiftCodeType'
        accountType:
          $ref: '#/components/schemas/OptionalAccountType'
      required:
        - type
        - swiftCode
        - accountType
    SepaBankAccountRequest:
      title: SepaBankAccountRequest
      description: Request schema for creating a SEPA bank account.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - sepa
              description: Must be 'sepa' for SEPA accounts
            swiftCode:
              type: string
              description: SWIFT/BIC code for the SEPA account
          required:
            - type
            - swiftCode
        - $ref: '#/components/schemas/BankAccountRequest1'
    SepaBankAccountResponse:
      title: SepaBankAccountResponse
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/SepaAccountResponseProps'
        - $ref: '#/components/schemas/BankAccountResponseProps'
    ServerErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - UnexpectedError
            - ThirdPartyError
            - DatabaseError
            - USER_FALLBACK_TIMEOUT
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 500
      description: Internal server error response
    Session1:
      type: object
      properties:
        created:
          type: string
          format: date-time
        expires:
          type: string
          format: date-time
        id:
          $ref: '#/components/schemas/Id'
        ip:
          allOf:
            - $ref: '#/components/schemas/Ip'
          description: IP address of the client that requested this access token
        ipRestrict:
          type: array
          items:
            type: string
            format: ipv4
          description: >-
            IP addresses or CIDR block of clients that are allowed to use this
            token
        origin:
          type: string
          example: test.bitgo.com
          description: BitGo environment that issued this token
        scope:
          allOf:
            - $ref: '#/components/schemas/Scope'
          description: Session permissions
        unlock:
          allOf:
            - $ref: '#/components/schemas/Unlock1'
          description: The Unlock object, returned if this session is currently unlocked.
        user:
          $ref: '#/components/schemas/Id'
      required:
        - created
        - expires
        - id
        - origin
        - scope
        - user
    SettlementClearingMethod:
      title: SettlementClearingMethod
      type: string
      enum:
        - manual
        - manual-netting
        - automated-netting
    SettlementListResponse:
      title: SettlementListResponse
      type: object
      properties:
        settlementList:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                minLength: 1
              externalId:
                type: string
                minLength: 1
              expireAt:
                type: string
                format: date-time
                title: ISO Date String
              notation:
                type: string
              requesterAccountId:
                type: string
                minLength: 1
              status:
                $ref: '#/components/schemas/SettlementStatus'
              type:
                $ref: '#/components/schemas/SettlementType'
              bypassCounterpartySigning:
                type: boolean
              routedTransactionId:
                type: string
                title: uuid
              clearingMethod:
                $ref: '#/components/schemas/SettlementClearingMethod'
              approvalRequests:
                type: array
                items:
                  type: object
                  description: ApprovalRequestResponse with settlementId not required
                  properties:
                    id:
                      type: string
                      minLength: 1
                    accountId:
                      type: string
                      minLength: 1
                    status:
                      $ref: '#/components/schemas/ApprovalRequestStatus'
                    payload:
                      type: string
                      minLength: 1
                    signature:
                      type: string
                      minLength: 1
                    policyDetailId:
                      type: string
                      title: uuid
                    policyDetail:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                        resolutionTime:
                          type: string
                          format: date-time
                          title: ISO Date String
                        resolvedBy:
                          type: array
                          items:
                            type: string
                            minLength: 1
                      required:
                        - id
                        - resolutionTime
                        - resolvedBy
                    signedAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                    signedBy:
                      type: string
                      minLength: 1
                    approvedAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                    createdAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                    updatedAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - id
                    - accountId
                    - status
                    - payload
                    - createdAt
                    - updatedAt
              settlementTransfers:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      title: uuid
                    sourceTradingAccountId:
                      type: string
                      minLength: 1
                    destinationTradingAccountId:
                      type: string
                      minLength: 1
                    currency:
                      $ref: '#/components/schemas/SupportedCurrency'
                    quantity:
                      type: string
                    txIds:
                      type: array
                      items:
                        type: string
                        minLength: 1
                    estimatedFeeInNativeToken:
                      type: string
                    estimatedFeeInUSD:
                      type: string
                    createdAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                    updatedAt:
                      type: string
                      format: date-time
                      title: ISO Date String
                  required:
                    - id
                    - sourceTradingAccountId
                    - destinationTradingAccountId
                    - currency
                    - quantity
                    - createdAt
                    - updatedAt
              requesterAccountName:
                type: string
                minLength: 1
              finalizedAt:
                type: string
                format: date-time
                title: ISO Date String
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
              unlockDate:
                type: string
            required:
              - id
              - externalId
              - requesterAccountId
              - status
              - type
              - approvalRequests
              - settlementTransfers
              - createdAt
              - updatedAt
        totalCount:
          type: number
      required:
        - settlementList
    SettlementResponse:
      title: SettlementResponse
      type: object
      properties:
        id:
          type: string
          minLength: 1
        externalId:
          type: string
          minLength: 1
        expireAt:
          type: string
          format: date-time
          title: ISO Date String
        notation:
          type: string
        requesterAccountId:
          type: string
          minLength: 1
        status:
          $ref: '#/components/schemas/SettlementStatus'
        type:
          $ref: '#/components/schemas/SettlementType'
        bypassCounterpartySigning:
          type: boolean
        routedTransactionId:
          type: string
          title: uuid
        clearingMethod:
          $ref: '#/components/schemas/SettlementClearingMethod'
        approvalRequests:
          type: array
          items:
            type: object
            description: ApprovalRequestResponse with settlementId not required
            properties:
              id:
                type: string
                minLength: 1
              accountId:
                type: string
                minLength: 1
              status:
                $ref: '#/components/schemas/ApprovalRequestStatus'
              payload:
                type: string
                minLength: 1
              signature:
                type: string
                minLength: 1
              policyDetailId:
                type: string
                title: uuid
              policyDetail:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                  resolutionTime:
                    type: string
                    format: date-time
                    title: ISO Date String
                  resolvedBy:
                    type: array
                    items:
                      type: string
                      minLength: 1
                required:
                  - id
                  - resolutionTime
                  - resolvedBy
              signedAt:
                type: string
                format: date-time
                title: ISO Date String
              signedBy:
                type: string
                minLength: 1
              approvedAt:
                type: string
                format: date-time
                title: ISO Date String
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - accountId
              - status
              - payload
              - createdAt
              - updatedAt
        settlementTransfers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                title: uuid
              sourceTradingAccountId:
                type: string
                minLength: 1
              destinationTradingAccountId:
                type: string
                minLength: 1
              currency:
                $ref: '#/components/schemas/SupportedCurrency'
              quantity:
                type: string
              txIds:
                type: array
                items:
                  type: string
                  minLength: 1
              estimatedFeeInNativeToken:
                type: string
              estimatedFeeInUSD:
                type: string
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - sourceTradingAccountId
              - destinationTradingAccountId
              - currency
              - quantity
              - createdAt
              - updatedAt
        requesterAccountName:
          type: string
          minLength: 1
        finalizedAt:
          type: string
          format: date-time
          title: ISO Date String
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        unlockDate:
          type: string
      required:
        - id
        - externalId
        - requesterAccountId
        - status
        - type
        - approvalRequests
        - settlementTransfers
        - createdAt
        - updatedAt
    SettlementStatus:
      title: SettlementStatus
      type: string
      enum:
        - canceled
        - pending
        - rejected
        - settled
        - expired
        - pending-acknowledgement
    SettlementStatuses:
      title: SettlementStatuses
      type: string
      enum:
        - failed
        - completed
        - pending
        - rejected
    SettlementTransferStatus:
      title: SettlementTransferStatus
      type: string
      enum:
        - pending
        - pending_onchain
        - onchain_initiated
        - onchain_failed
        - completed
        - failed
        - rejected
        - disputed
        - pending_settlement_assignment
    SettlementType:
      title: SettlementType
      type: string
      enum:
        - direct
        - agency
        - disbursement
    SettlementTypes:
      title: SettlementTypes
      type: string
      enum:
        - onchain
        - offchain
    ShareType:
      title: ShareType
      type: string
      enum:
        - encryptedSignerShare
        - encryptedRShare
    ShareWalletRequest:
      type: object
      properties:
        permission:
          type: string
          description: |
            Comma-separated list of privileges for a wallet. Includes:

              - `admin` - Can manage wallet policies and users and approve or reject pending approvals.
              - `freeze` - Can freeze a wallet, disabling all withdrawals.
              - `spend` - Can initiate withdrawals and generate new receive addresses.
              - `trade` - Can initiate trades from a Go Account (`trading` wallet type).
              - `view` - Can view balances and transactions.

            Permissions don't overlap. Required parameter if 'reshare' is false.
          enum:
            - admin
            - spend
            - trade
            - view
          example: spend,view
        message:
          type: string
          description: User readable message to display to the share recipient
        reshare:
          type: boolean
          description: >-
            Flag for reinviting a user to the wallet. This is required if the
            invitee has already been invited to the wallet, but has changed
            their password and needs a new invite
        disableEmail:
          type: boolean
          description: Flag for disabling invite notification email
        user:
          $ref: '#/components/schemas/Id'
        keychain:
          $ref: '#/components/schemas/WalletShareKeychain'
        skipKeychain:
          type: boolean
          description: >-
            If true, allows creating wallet shares without a sharing a key
            (keychain) when the wallet is shared with spend permission.
      required:
        - user
    ShareWalletResponse:
      type: object
      description: Wallet share object
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Wallet share id
        coin:
          allOf:
            - $ref: '#/components/schemas/Coin'
          description: Coin of the wallet
        wallet:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Wallet id
        walletLabel:
          $ref: '#/components/schemas/WalletLabel'
        fromUser:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Id of the user sharing the wallet
        toUser:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Id of the user receiving the share
        permissions:
          type: string
          allOf:
            - $ref: '#/components/schemas/WalletPermission'
        message:
          type: string
          description: Message for the user receiving the share
        state:
          type: string
          allOf:
            - $ref: '#/components/schemas/WalletShareState1'
          description: State of the share
        enterprise:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: If the wallet belongs to an enterprise, the id of that enterprise
        pendingApprovalId:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: >-
            If the share generated a pending approval, the id of that pending
            approval
        keychain:
          $ref: '#/components/schemas/WalletShareKeychain'
    ShortCountryCode:
      type: string
      description: Two-letter country code, as specified by ISO 3166-1 alpha-2
      minLength: 2
      maxLength: 2
      example: US
      enum:
        - AD
        - AE
        - AF
        - AG
        - AI
        - AL
        - AM
        - AO
        - AQ
        - AR
        - AS
        - AT
        - AU
        - AW
        - AX
        - AZ
        - BA
        - BB
        - BD
        - BE
        - BF
        - BG
        - BH
        - BI
        - BJ
        - BL
        - BM
        - BN
        - BO
        - BQ
        - BR
        - BS
        - BT
        - BV
        - BW
        - BY
        - BZ
        - CA
        - CC
        - CD
        - CF
        - CG
        - CH
        - CI
        - CK
        - CL
        - CM
        - CN
        - CO
        - CR
        - CU
        - CV
        - CW
        - CX
        - CY
        - CZ
        - DE
        - DJ
        - DK
        - DM
        - DO
        - DZ
        - EC
        - EE
        - EG
        - EH
        - ER
        - ES
        - ET
        - FI
        - FJ
        - FK
        - FM
        - FO
        - FR
        - GA
        - GB
        - GD
        - GE
        - GF
        - GG
        - GH
        - GI
        - GL
        - GM
        - GN
        - GP
        - GQ
        - GR
        - GS
        - GT
        - GU
        - GW
        - GY
        - HK
        - HM
        - HN
        - HR
        - HT
        - HU
        - ID
        - IE
        - IL
        - IM
        - IN
        - IO
        - IQ
        - IR
        - IS
        - IT
        - JE
        - JM
        - JO
        - JP
        - KE
        - KG
        - KH
        - KI
        - KM
        - KN
        - KP
        - KR
        - KW
        - KY
        - KZ
        - LA
        - LB
        - LC
        - LI
        - LK
        - LR
        - LS
        - LT
        - LU
        - LV
        - LY
        - MA
        - MC
        - MD
        - ME
        - MF
        - MG
        - MH
        - MK
        - ML
        - MM
        - MN
        - MO
        - MP
        - MQ
        - MR
        - MS
        - MT
        - MU
        - MV
        - MW
        - MX
        - MY
        - MZ
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NL
        - 'NO'
        - NP
        - NR
        - NU
        - NZ
        - OM
        - PA
        - PE
        - PF
        - PG
        - PH
        - PK
        - PL
        - PM
        - PN
        - PR
        - PS
        - PT
        - PW
        - PY
        - QA
        - RE
        - RO
        - RS
        - RU
        - RW
        - SA
        - SB
        - SC
        - SD
        - SE
        - SG
        - SH
        - SI
        - SJ
        - SK
        - SL
        - SM
        - SN
        - SO
        - SR
        - SS
        - ST
        - SV
        - SX
        - SY
        - SZ
        - TC
        - TD
        - TF
        - TG
        - TH
        - TJ
        - TK
        - TL
        - TM
        - TN
        - TO
        - TR
        - TT
        - TV
        - TW
        - TZ
        - UA
        - UG
        - UM
        - US
        - UY
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - YE
        - YT
        - ZA
        - ZM
        - ZW
    Side:
      description: The side of the order
      type: string
      enum:
        - buy
        - sell
      example: buy
    SignMessageIntent:
      title: SignMessageIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - signMessage
            messageRaw:
              type: string
              description: A plain text message
              example: 'for EVM: test message'
            messageEncoded:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: An encoded string
              example: 'for EVM: \x19Ethereum Signed Message:\n12test message'
            messageStandardType:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                The type of message standard, e.g. 'EIP191', 'EIP712', 'CIP8'
                etc.
              example: 'for EVM: EIP191'
            signerAddress:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                The address of the signer, could be the root address or a
                receive address of the wallet
          required:
            - intentType
            - messageRaw
            - messageEncoded
            - messageStandardType
            - signerAddress
        - $ref: '#/components/schemas/BaseIntent'
    SignOrganizationEnterpriseContractResponseC:
      title: SignOrganizationEnterpriseContractResponseC
      type: object
      properties:
        success:
          type: boolean
        contractsSigned:
          type: array
          items:
            type: object
            properties:
              contractType:
                type: string
              signedBy:
                type: string
              signedDate:
                type: string
              ip:
                type: string
            required:
              - contractType
              - signedBy
              - signedDate
              - ip
        message:
          type: string
      required:
        - success
        - contractsSigned
        - message
    SignatureShare:
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The source of the signature share.
        to:
          allOf:
            - $ref: '#/components/schemas/KeyShareSource'
          description: The recipient of the signature share.
        share:
          type: string
          description: The signature share.
      required:
        - from
        - to
        - share
    SignatureShareType:
      title: SignatureShareType
      type: string
      enum:
        - user
        - backup
        - bitgo
    SignatureShareWithoutVssProof:
      title: SignatureShareWithoutVssProof
      type: object
      properties:
        from:
          allOf:
            - $ref: '#/components/schemas/SignatureShareType'
          description: The source of the signature share.
        to:
          allOf:
            - $ref: '#/components/schemas/SignatureShareType'
          description: The recipient of the signature share.
        share:
          type: string
          description: The signature share
      required:
        - from
        - to
        - share
    SimulateEnterpriseWebhookResponseBody:
      title: SimulateEnterpriseWebhookResponseBody
      type: object
      properties:
        webhookNotifications:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              type:
                allOf:
                  - $ref: '#/components/schemas/WebhookType'
                description: Event type to listen to.
              wallet:
                type: string
                example: cold
              url:
                type: string
              hash:
                type: string
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              coinChain:
                type: string
              transfer:
                type: string
                example: receive
              state:
                allOf:
                  - $ref: '#/components/schemas/WebhookNotificationState'
                description: >-
                  If "failed", webhook notification failed to connect with the
                  target URL. If "new", webhook notification was newly
                  generated, in response to an event. If "pending", webhook
                  notification is awaiting processing by the webhook worker. If
                  "processed", webhook notification successfully sent to target
                  URL. If "unconfirmed", webhook notification is awaiting
                  confirmation on the blockchain.
              simulation:
                type: boolean
              retries:
                type: number
              webhook:
                type: string
              updatedAt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              nextAttempt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              version:
                type: number
                example: 2
              allowBlockedHosts:
                type: boolean
              heightToConfirm:
                type: number
              payload:
                type: string
              response:
                type: object
                properties:
                  code:
                    oneOf:
                      - type: number
                      - type: string
                  type:
                    type: string
                  body:
                    type: string
                  error:
                    type: string
            required:
              - id
      required:
        - webhookNotifications
    SimulateOrganizationWebhookResponseBody:
      title: SimulateOrganizationWebhookResponseBody
      type: object
      properties:
        webhookNotifications:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              type:
                allOf:
                  - $ref: '#/components/schemas/WebhookType'
                description: Event type to listen to.
              wallet:
                type: string
                example: cold
              url:
                type: string
              hash:
                type: string
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              coinChain:
                type: string
              transfer:
                type: string
                example: receive
              state:
                allOf:
                  - $ref: '#/components/schemas/WebhookNotificationState'
                description: >-
                  If "failed", webhook notification failed to connect with the
                  target URL. If "new", webhook notification was newly
                  generated, in response to an event. If "pending", webhook
                  notification is awaiting processing by the webhook worker. If
                  "processed", webhook notification successfully sent to target
                  URL. If "unconfirmed", webhook notification is awaiting
                  confirmation on the blockchain.
              simulation:
                type: boolean
              retries:
                type: number
              webhook:
                type: string
              updatedAt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              nextAttempt:
                type: string
                example: '2021-01-01T00:00:00.000Z'
                format: date-time
                title: ISO Date String
              version:
                type: number
                example: 2
              allowBlockedHosts:
                type: boolean
              heightToConfirm:
                type: number
              payload:
                type: string
              response:
                type: object
                properties:
                  code:
                    oneOf:
                      - type: number
                      - type: string
                  type:
                    type: string
                  body:
                    type: string
                  error:
                    type: string
            required:
              - id
      required:
        - webhookNotifications
    SimulateTransactionRequest:
      title: SimulateTransactionRequest
      type: object
      description: >-
        Request body for creating a simulated test deposit transaction. Only
        testnet currencies are accepted. Non-production only.
      properties:
        walletId:
          type: string
          minLength: 1
          description: The Go Account wallet ID to create the deposit for.
        currency:
          type: string
          description: >-
            A testnet backing fiat currency (e.g., tfiatusd, tfiateur,
            tfiatsgd).
        amount:
          type: string
          description: >-
            The deposit amount in cents as a string. Defaults to "1000" (i.e.,
            $10.00) if not provided.
          default: '1000'
        type:
          type: string
          description: >-
            The transaction type. Defaults to "wire". ACH transactions are
            created in an incomplete/delayed state with a 1-day clearing window.
          enum:
            - wire
            - ach
          default: wire
        instantCreditEligible:
          type: boolean
          description: >-
            Whether the transaction is eligible for instant credit. Only
            relevant for ACH transactions. When true and type is ach, the
            platform is notified immediately.
        withdrawHoldReleaseAt:
          type: string
          format: date-time
          description: >-
            Optional ISO 8601 datetime for when a withdraw hold should be
            released.
        description:
          type: string
          minLength: 1
          description: >-
            Optional custom description for the simulated deposit. When
            provided, replaces the default description. When omitted, defaults
            to "Test Deposit for {currency} wallet {walletId}".
      required:
        - walletId
        - currency
    SimulateWalletWebhookRequestBody:
      oneOf:
        - title: Transfer
          type: object
          properties:
            transferId:
              allOf:
                - $ref: '#/components/schemas/Id'
              description: >-
                The ID of a transfer on the specified wallet. This must be
                provided if the webhook is of type `transfer`.
          required:
            - transferId
        - title: Pending Approval
          type: object
          properties:
            pendingApprovalId:
              allOf:
                - $ref: '#/components/schemas/Id'
              description: >-
                The ID of a pending approval on the specified wallet. This must
                be provided if the webhook is of type `pendingApproval`.
          required:
            - pendingApprovalId
        - title: Transaction request
          type: object
          properties:
            txRequestId:
              type: string
              description: >-
                The txRequestId of a transaction request on the specified
                wallet. This must be provided if the webhook is of type
                `txRequest` or `txRequestTransaction`.
          required:
            - txRequestId
        - title: Transaction hash
          type: object
          properties:
            txHash:
              type: string
              description: >-
                The txHash of a specific transaction for the specified coin.
                This must be provided if the webhook is of type `transaction` or
                `transaction_finality_on_l1`.
          required:
            - txHash
        - title: Use placeholder data
          type: object
          properties:
            usePlaceholderData:
              type: boolean
              description: >-
                Boolean to indicate that the simulated webhook should use
                generated placeholder data.
          required:
            - usePlaceholderData
    SingleBankAccountResponse:
      title: SingleBankAccountResponse
      description: Unified schema for a single bank account response
      allOf:
        - $ref: '#/components/schemas/BankAccountResponse1'
    SmartContractMetadata:
      title: SmartContractMetadata
      type: object
      description: >-
        Smart-contract metadata for an asset.


        Flat shape: every field is optional. Which fields are populated depends
        on

        the asset's contract type (TokenGovernor, UUPS Stablecoin, SPL Token,
        SPL

        Token-2022, Aptos RegulatedToken, Tempo precompile). Consumers should
        treat

        absent fields as "not applicable for this asset/chain".


        See the contract-roles reference doc for the per-asset, per-chain
        mapping.
      properties:
        contractAddress:
          type: string
          description: >-
            Primary contract address: governor / proxy / SPL mint / Aptos
            package.
        implementationAddress:
          type: string
          description: EIP-1967 implementation address (UUPS Stablecoin proxies only).
        governedTokenAddress:
          type: string
          description: >-
            Underlying token address governed by a TokenGovernor (EVM/Tron USD1
            only).
        tokenProgramId:
          type: string
          description: Solana token program (Tokenkeg... or Token-2022).
        recoveryManagers:
          type: array
          items:
            type: string
        minters:
          type: array
          items:
            type: string
        burners:
          type: array
          items:
            type: string
        bridgeMintersOrBurners:
          type: array
          items:
            type: string
        freezers:
          type: array
          items:
            type: string
        unfreezers:
          type: array
          items:
            type: string
        pausers:
          type: array
          items:
            type: string
        unpausers:
          type: array
          items:
            type: string
        owner:
          type: string
        freezer:
          type: string
        blacklister:
          type: string
        rescuer:
          type: string
        upgrader:
          type: string
        mintAuthority:
          type: string
        freezeAuthority:
          type: string
        transferFeeConfigAuthority:
          type: string
        confidentialTransferAuthority:
          type: string
        transferHookAuthority:
          type: string
        scaledUiAmountAuthority:
          type: string
        metadataPointerAuthority:
          type: string
        pausableAuthority:
          type: string
        tokenMetadataUpdateAuthority:
          type: string
    SnowflakeReportType:
      title: SnowflakeReportType
      type: string
      enum:
        - holdings
        - transactions
        - trades
        - staking
        - holdingsByAddress
        - userAccess
        - policies
        - costBasis
        - organizationHoldings
        - organizationHoldingsByAddress
        - organizationTransactions
        - organizationTrades
        - organizationStaking
        - quarterly
    SolAddress:
      title: Sol Address
      type: object
      properties:
        rootAddress:
          type: string
        minimumFunding:
          type: number
        pendingChainInitialization:
          type: boolean
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
        nonceExpiresAt:
          type: string
          format: date
          title: Date String
        nonceTxRequestid:
          type: string
        type:
          type: string
      required:
        - rootAddress
        - minimumFunding
        - pendingChainInitialization
        - trustedTokens
    SolAuthorizeIntent:
      title: SOL Authorize Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - authorize
              description: Must be "authorize".
            transactionMessage:
              type: string
              description: >-
                The pre-signed serialized transaction message, validated by the
                platform against the provided address fields.
            stakeAccount:
              type: string
              description: The on-chain stake account whose authority is being transferred.
            oldWithdrawPublicKey:
              type: string
              description: The current withdrawal authority public key.
            newWithdrawPublicKey:
              type: string
              description: The new withdrawal authority public key.
            lockupPublicKey:
              type: string
              description: The lockup authority public key.
            nonceAccount:
              type: string
              description: The durable nonce account used for this transaction.
            nonceAuthority:
              type: string
              description: The authority of the nonce account.
            blockhash:
              type: string
              description: The recent blockhash used in the transaction message.
          required:
            - intentType
            - transactionMessage
            - stakeAccount
            - oldWithdrawPublicKey
            - newWithdrawPublicKey
            - lockupPublicKey
            - nonceAccount
            - nonceAuthority
            - blockhash
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Transfer the withdrawal and lockup authority of a SOL stake account to
        new public keys on Solana. The transactionMessage must be a pre-signed
        serialized transaction validated by the platform against all provided
        address fields. Spending policy is not evaluated for this intent.
        Requires the solStakingAuthorize enterprise feature flag.
    SolBuildOptions:
      title: SolBuildOptions
      allOf:
        - type: object
          properties:
            memo:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Memo string for the transaction. The key must be present; pass
                an empty string (or omit the value) if unused.
          required:
            - memo
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
      description: >-
        Solana build fragment intersected by **every** Sol intent codec that
        composes

        `SolBuildOptions` (e.g. payment, stake, consolidate, close-ATA, etc.).


        **`memo` is part of the legacy wire contract:** `t.type({ memo:
        optionalString })`

        keeps the **`memo` key structurally present** for `.is()` / `decode`
        (value may

        be a string or `undefined` per `optionalString`). Payloads that omit
        `memo`

        entirely are not accepted by this codec.


        Upstream services (for example wallet-platform when persisting

        `closeAssociatedTokenAccount` intents) may normalize a missing `memo` to

        `""` before validation so stored objects match this shape. Other Sol
        flows

        should send `memo` or apply the same normalization if they share this
        path.
    SolBuildOptions1:
      title: SolBuildOptions
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
          required:
            - memo
        - $ref: '#/components/schemas/AccountBaseBuildOptions1'
    SolClaimIntent:
      title: SOL Claim Intent
      allOf:
        - type: object
          properties:
            stakingAddress:
              type: string
              description: The on-chain stake account address to withdraw from.
          required:
            - stakingAddress
        - $ref: '#/components/schemas/WithdrawIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Withdraw the balance from a deactivated SOL stake account back to the
        wallet on Solana. The stake account must have been deactivated
        (unstaked) before claiming. Spending policy is not evaluated for this
        intent.
    SolClaimIntent1:
      title: SOL Claim Intent
      allOf:
        - type: object
          properties:
            stakingAddress:
              type: string
            amount:
              $ref: '#/components/schemas/Amount1'
          required:
            - stakingAddress
            - amount
        - $ref: '#/components/schemas/WithdrawIntent1'
        - $ref: '#/components/schemas/SolBuildOptions1'
    SolClaimRewardsRequestPOSTBody:
      title: Solana (SOL) Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Solana (SOL).
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    SolCloseAssociatedTokenAccountIntent:
      title: SOL Close Associated Token Account Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - closeAssociatedTokenAccount
              description: Must be "closeAssociatedTokenAccount".
            recipients:
              allOf:
                - $ref: >-
                    #/components/schemas/solCloseAssociatedTokenAccountRecipients
              description: >-
                One or more zero-balance ATAs to close. Each entry must have
                amount.value === "0", must not carry tokenName or tokenData, and
                all entries must share the same on-chain owner. Maximum 27 ATAs
                per transaction.
          required:
            - intentType
            - recipients
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Close one or more zero-balance SPL Associated Token Accounts (ATAs) on
        Solana and recover their rent lamports to the wallet root address. All
        ATAs must have a zero token balance (consolidate tokens first), share
        the same on-chain owner, and be owned by this wallet. Maximum 27
        distinct ATAs per transaction. Spending policy is not evaluated for this
        intent.
    SolCloseAssociatedTokenAccountIntent1:
      title: SOL Close Associated Token Account Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - closeAssociatedTokenAccount
            recipients:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/RecipientEntry1'
          required:
            - intentType
            - recipients
        - $ref: '#/components/schemas/BaseIntent1'
        - $ref: '#/components/schemas/SolBuildOptions1'
    SolConsolidateIntent:
      title: SOL Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
      description: >-
        Sweep native SOL and SPL token balances from a receive address into the
        wallet's root address on Solana. The platform automatically calculates
        transferable amounts, reserving rent-exempt minimums and transaction
        fees.
    SolCreateAssociatedTokenAccountIntent:
      title: SOL Create Associated Token Account Intent
      allOf:
        - $ref: '#/components/schemas/EnableTokenIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Initialize one or more Associated Token Accounts (ATAs) on Solana so the
        wallet can receive SPL tokens. All entries in enableTokens must target
        the same wallet address. Spending policy is not evaluated for this
        intent.
    SolCreateAssociatedTokenAccountIntent1:
      title: SOL Create Associated Token Account Intent
      allOf:
        - type: object
          properties: {}
        - $ref: '#/components/schemas/EnableTokenIntent1'
        - $ref: '#/components/schemas/SolBuildOptions1'
    SolCustomTxIntent:
      title: SOL Custom Transaction Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - customTx
              description: >-
                Must be "customTx". For legacy (non-versioned) transactions
                only; use SolVersionedCustomTxIntent for versioned transactions.
            solInstructions:
              type: array
              items:
                type: object
                properties:
                  programId:
                    type: string
                    description: The program ID to invoke.
                  keys:
                    type: array
                    items:
                      type: object
                      properties:
                        pubkey:
                          type: string
                          description: The account public key.
                        isSigner:
                          type: boolean
                          description: Whether this account is a signer.
                        isWritable:
                          type: boolean
                          description: Whether this account is writable.
                      required:
                        - pubkey
                        - isSigner
                        - isWritable
                      description: Account keys referenced by this instruction.
                  data:
                    type: string
                    description: Instruction data encoded as base58 or hex.
                required:
                  - programId
                  - keys
                  - data
                description: >-
                  Array of raw Solana program instructions to include in the
                  transaction. Use for legacy (non-versioned) transactions only.
          required:
            - intentType
            - solInstructions
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Submit a custom Solana transaction using raw legacy program
        instructions. Use this intent for legacy (non-versioned) transactions;
        for versioned transactions (address lookup tables, v0 messages) use the
        customTx intent with solVersionedTransactionData instead. Wallets
        without the enableSolCustomTx flag require a second admin approval
        before the transaction is processed.
    SolDeactivateIntent:
      title: SOL Deactivate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - deactivate
              description: Must be "deactivate".
            stakingAddresses:
              allOf:
                - $ref: '#/components/schemas/optionalStringArray'
              description: >-
                Batch of stake account addresses to deactivate. Provide either
                this or stakingAddress.
            stakingAddress:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                A single stake account address to deactivate. Provide either
                this or stakingAddresses.
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Deactivate one or more SOL stake accounts on Solana to begin the
        cooldown period before funds can be claimed. No value is transferred.
        Provide either stakingAddress (single account) or stakingAddresses
        (batch). After cooldown completes, use the claim intent to withdraw.
        Spending policy is not evaluated for this intent. Requires the
        solStakingAuthorize enterprise feature flag.
    SolDelegateIntent:
      title: SOL Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
              description: Must be "delegate".
            validatorAddress:
              type: string
              description: The validator vote account address to delegate to.
            stakingAddresses:
              allOf:
                - $ref: '#/components/schemas/optionalStringArray'
              description: >-
                Batch of stake account addresses to delegate. Provide either
                this or stakingAddress.
            stakingAddress:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                A single stake account address to delegate. Provide either this
                or stakingAddresses.
          required:
            - intentType
            - validatorAddress
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Delegate one or more deactivated SOL stake accounts to a validator on
        Solana. No value is transferred; this intent re-activates an existing
        stake account under a new or the same validator. Provide either
        stakingAddress (single account) or stakingAddresses (batch). Spending
        policy is not evaluated for this intent. Requires the
        solStakingAuthorize enterprise feature flag.
    SolDelegationProperties:
      title: SOL Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            lastProcessedTipSlot:
              type: integer
              format: int64
              nullable: true
            lastProcessedTipSignature:
              type: string
              nullable: true
            stakingType:
              type: string
              enum:
                - SOL_STAKE
                - MARINADE
                - MARINADE_SELECT
                - JITO
            bondingTimestamp:
              type: string
              format: bigInteger
              nullable: true
            unbondingTimestamp:
              type: string
              format: bigInteger
              nullable: true
    SolGoUnstakeIntent:
      title: SOL Go Unstake Intent
      allOf:
        - type: object
          properties:
            goStakingRequestId:
              allOf:
                - $ref: '#/components/schemas/optionalString'
              description: >-
                Internal coordination identifier for the GO staking request.
                Accepted by the schema but only processed on admin/internal
                routes — external API consumers should omit this field.
        - $ref: '#/components/schemas/GoUnstakeIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Unstake SOL via the GO wallet program on Solana and transfer the
        proceeds to the specified recipients. This intent uses the same transfer
        path as the payment intent.
    SolJitoStakingTransactionProperties:
      title: Solana Jito Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            stakePoolEpochData:
              $ref: '#/components/schemas/StakePoolEpochData'
    SolPaymentIntent:
      title: SOL Payment Intent
      allOf:
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Transfer native SOL or SPL tokens to one or more recipients on Solana.
        For token transfers, the recipient amount symbol must use the
        "sol:tokenName" format (e.g. "sol:usdc"). Native SOL recipients must not
        be Associated Token Account (ATA) addresses.
    SolSendQueue:
      title: Sol
      type: object
      properties:
        walletInitialization:
          type: boolean
        addressInitialization:
          type: boolean
    SolStakeIntent:
      title: SOL Stake Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
              description: The validator vote account address to stake SOL with.
            isMarinade:
              type: boolean
              deprecated: true
            stakingType:
              type: string
              enum:
                - NATIVE
                - MARINADE
                - JITO
              description: >-
                The staking provider type. Accepted values: "NATIVE",
                "MARINADE", "JITO". Supersedes the deprecated isMarinade field.
          required:
            - validatorAddress
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Stake SOL to a validator on Solana by creating a new stake account. The
        platform generates an ephemeral keypair for the stake account and
        whitelists it on the wallet. Requires the enterprise to have staking
        permissions. Supports native, Marinade liquid, and Jito staking via the
        stakingType field.
    SolStakeIntent1:
      title: SOL Stake Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
            amount:
              $ref: '#/components/schemas/Amount1'
          required:
            - validatorAddress
            - amount
        - $ref: '#/components/schemas/StakeIntent1'
        - $ref: '#/components/schemas/SolBuildOptions1'
    SolStakingDelegation:
      title: SOL Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
      type: object
      properties:
        properties:
          $ref: '#/components/schemas/SolDelegationProperties'
        unstakingFee:
          type: string
          format: bigInteger
        partialUnstakingMax:
          type: string
          format: bigInteger
        unstakingMin:
          type: string
          format: bigInteger
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
    SolStakingRequest:
      title: SOL
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/SolStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    SolStakingRequestEntityProperties:
      title: Solana staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            stakingType:
              type: string
              enum:
                - SOL_STAKE
                - MARINADE
                - MARINADE_SELECT
            validator:
              type: string
              nullable: true
    SolStakingRequestPOSTBody:
      title: SOL stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: The subtype of SOL staking to use.
          type: string
          enum:
            - SOL_STAKE
            - MARINADE
            - MARINADE_SELECT
          default: SOL_STAKE
    SolUnStakingRequestPOSTBody:
      title: SOL unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    SolUnStakingTransactionProperties:
      title: SOL Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            unstakingAddress:
              type: string
            stakePoolEpochData:
              $ref: '#/components/schemas/StakePoolEpochData'
    SolUnstakeIntent:
      title: SOL Unstake Intent
      allOf:
        - type: object
          properties:
            stakingAddress:
              type: string
              description: The stake account address to deactivate.
            amount:
              type: object
              description: >-
                For partial unstake: the amount to remove from the stake
                account. Must be provided together with remainingStakingAmount.
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
            remainingStakingAmount:
              type: object
              description: >-
                For partial unstake: the amount to keep in the existing stake
                account after the split. Must be provided together with amount.
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
            isMarinade:
              type: boolean
              deprecated: true
            stakingType:
              type: string
              enum:
                - NATIVE
                - MARINADE
                - JITO
              description: >-
                The staking provider type. Accepted values: "NATIVE",
                "MARINADE", "JITO". Supersedes the deprecated isMarinade field.
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
                description: >-
                  Required for Marinade unstaking: the recipient address to
                  receive the unstaked SOL.
          required:
            - stakingAddress
        - $ref: '#/components/schemas/UnstakeIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Begin deactivating a SOL stake account on Solana. For native staking,
        the stake account enters a cooldown period before funds can be claimed.
        For partial unstakes, provide both amount and remainingStakingAmount to
        split the stake account. Supports native, Marinade liquid, and Jito
        staking via the stakingType field. Requires the enterprise to have
        staking permissions.
    SolUnstakeIntent1:
      title: SOL Unstake Intent
      allOf:
        - type: object
          properties:
            stakingAddress:
              type: string
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
            remainingStakingAmount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - stakingAddress
        - $ref: '#/components/schemas/UnstakeIntent1'
        - $ref: '#/components/schemas/SolBuildOptions1'
    SolVersionedCustomTxIntent:
      title: SOL Versioned Custom Transaction Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - customTx
              description: >-
                Must be "customTx". Presence of solVersionedTransactionData
                distinguishes this from legacy SolCustomTxIntent at runtime.
            solVersionedTransactionData:
              type: object
              description: >-
                Versioned transaction data in Solana v0 message format. Presence
                of this field indicates a versioned transaction.
              properties:
                versionedInstructions:
                  type: array
                  items:
                    type: object
                    properties:
                      programIdIndex:
                        type: number
                        description: >-
                          Index into the staticAccountKeys array identifying the
                          program to invoke.
                      accountKeyIndexes:
                        type: array
                        items:
                          type: number
                          description: >-
                            Indexes into the combined account keys (static +
                            lookup) for this instruction.
                      data:
                        type: string
                        description: Instruction data encoded as base58 or hex.
                    required:
                      - programIdIndex
                      - accountKeyIndexes
                      - data
                    description: The program instructions for this versioned transaction.
                addressLookupTables:
                  type: array
                  items:
                    type: object
                    properties:
                      accountKey:
                        type: string
                        description: The on-chain address of the lookup table account.
                      writableIndexes:
                        type: array
                        items:
                          type: number
                          description: Indexes of writable accounts in the lookup table.
                      readonlyIndexes:
                        type: array
                        items:
                          type: number
                          description: Indexes of read-only accounts in the lookup table.
                    required:
                      - accountKey
                      - writableIndexes
                      - readonlyIndexes
                    description: >-
                      Address lookup tables to extend the number of accounts
                      beyond the static limit. Required when using account
                      lookup tables in a v0 transaction.
                staticAccountKeys:
                  type: array
                  items:
                    type: string
                    description: The static account keys referenced by this transaction.
                messageHeader:
                  type: object
                  description: >-
                    Solana message header specifying the number of required
                    signers and read-only accounts.
                  properties:
                    numRequiredSignatures:
                      type: number
                      description: Number of signatures required for this transaction.
                    numReadonlySignedAccounts:
                      type: number
                      description: Number of read-only accounts that require signatures.
                    numReadonlyUnsignedAccounts:
                      type: number
                      description: >-
                        Number of read-only accounts that do not require
                        signatures.
                  required:
                    - numRequiredSignatures
                    - numReadonlySignedAccounts
                    - numReadonlyUnsignedAccounts
                recentBlockhash:
                  type: string
                  description: >-
                    Optional recent blockhash; when provided the platform uses
                    it instead of fetching a durable nonce.
              required:
                - versionedInstructions
                - addressLookupTables
                - staticAccountKeys
                - messageHeader
          required:
            - intentType
            - solVersionedTransactionData
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SolBuildOptions'
      description: >-
        Submit a custom Solana versioned (v0) transaction with optional address
        lookup tables. Use this intent for versioned transactions; for legacy
        instruction-based transactions use the customTx intent with
        solInstructions instead. When recentBlockhash is provided, the platform
        uses it directly without fetching a durable nonce. Wallets without the
        enableSolCustomTx flag require a second admin approval before the
        transaction is processed.
    SolWallet:
      title: Sol Wallet
      type: object
      properties:
        pendingChainInitialization:
          type: boolean
        minimumFunding:
          type: number
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
        rootAddress:
          type: string
        nonceAddress:
          type: string
        lastBlockHash:
          type: string
        lastChainIndex: {}
        nonceExpiresAt:
          type: string
          format: date
          title: Date String
        nonceTxRequestId:
          type: string
      required:
        - pendingChainInitialization
        - minimumFunding
        - trustedTokens
    SomiClaimRewardsRequestPOSTBody:
      title: Somi Claim Rewards Request
      type: object
      description: >
        Request to claim staking rewards for Somi.


        **Key Features:**

        - Requires explicit delegation ID to specify which delegation to claim
        rewards from

        - Validates claim amount against actual claimable rewards on blockchain

        - Auto-claim detection: Rewards may be automatically claimed during
        undelegate transactions

        - Amount synchronization: The requested amount is adjusted to match
        actual claimable amount

        - Follows standard claim rewards pattern consistent with other
        blockchain services


        **Note:** The delegationId parameter is required to identify the
        specific delegation to claim rewards from.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    SomiDelegationProperties:
      title: SOMI Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validator:
              type: string
            amount:
              type: string
              format: bigInteger
    SomiStakingRequest:
      title: SOMI
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        validatorAddress:
          description: The validator address to delegate to.
          type: string
      required:
        - validatorAddress
    SomiStakingRequestEntityProperties:
      title: SOMI staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              description: Validator address.
          required:
            - validatorAddress
    SomiStakingRequestPOSTBody:
      title: SOMI stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    SomiSwitchValidatorsRequestPOSTBody:
      title: Somi Switch Validators Request
      type: object
      description: Request to switch staking delegation to a new validator for Somi.
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    SomiUnStakingRequestPOSTBody:
      title: SOMI unstake
      description: >
        Request to unstake SOMI tokens.


        **Auto-Claim Feature:** During unstaking, any pending rewards may be
        automatically claimed 

        and included in the final transaction. This auto-claim behavior is
        handled transparently 

        and will be reflected in the transaction events and delegation reward
        tracking.
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
      properties:
        amount:
          description: >-
            Amount to unstake in base units (wei for SOMI). Supports partial
            unstaking.
          type: string
          example: '2000000000000000000'
      required:
        - amount
    SomiUnstakingTransactionProperties:
      title: SOMI Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            validatorAddress:
              type: string
            claimedRewards:
              type: object
              additionalProperties:
                type: string
    SpendableAttributes:
      type: object
      properties:
        staking:
          $ref: '#/components/schemas/StakingSpendableAttributes'
        unstaking:
          $ref: '#/components/schemas/UnStakingSpendableAttributes'
    SpendingLimits:
      type: object
      additionalProperties:
        type: object
        properties:
          txCount:
            type: integer
          txValue:
            type: integer
          txValueLimit:
            type: number
      example:
        btc:
          txCount: 1
          txValue: 0
          txValueLimit: 100000000
        eth:
          txCount: 1
          txValue: 0
          txValueLimit: 50000000000
    StacksAddress:
      title: Stacks Address
      type: object
      properties:
        baseAddress:
          type: string
        memoId:
          type: string
      required:
        - baseAddress
        - memoId
    StacksSendQueue:
      title: Stacks
      type: object
      properties:
        memo:
          type: string
        type:
          type: string
        subtype:
          type: string
    StacksWallet:
      title: Stacks Wallet
      type: object
      properties:
        baseAddress:
          type: string
        feeAddress:
          type: string
        lastNonce:
          type: number
        addressCount:
          type: number
    StakeClaimRewardsIntent:
      title: StakeClaimRewardsIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeClaimRewards
              description: Must be "stakeClaimRewards".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Claim accumulated staking rewards on EVM-compatible chains. Specify the
        amount of rewards to claim. Requires a staking request ID from the BitGo
        staking service.
    StakeGoStakingRequest:
      type: object
      required:
        - amount
      properties:
        clientId:
          type: string
          maxLength: 256
          nullable: true
        amount:
          type: string
          format: big-integer
          description: Amount to stake, must be a positive value
        type:
          type: string
          enum:
            - STAKE
          description: Must always be STAKE
        frontTransferSendRequest:
          allOf:
            - $ref: '#/components/schemas/FrontTransferSendRequest'
          nullable: true
          type: object
          description: Optional transfer request to initiate before staking
    StakeIntent:
      title: StakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stake
              description: Must be "stake".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    StakeIntent1:
      title: StakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stake
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent1'
    StakeIntent2:
      allOf:
        - $ref: '#/components/schemas/BaseStakeIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stake
          required:
            - intentType
    StakePoolEpochData:
      type: object
      properties:
        poolAmountInTokens:
          $ref: '#/components/schemas/IntegerString'
        epoch:
          $ref: '#/components/schemas/IntegerString'
        totalLamports:
          $ref: '#/components/schemas/IntegerString'
        poolTokenSupply:
          $ref: '#/components/schemas/IntegerString'
    StakeSwitchValidatorIntent:
      title: StakeSwitchValidatorIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - switchValidator
            validatorAddress:
              type: string
              description: >-
                Bech32 source validator address to redelegate from (e.g.
                cosmosvaloper1...).
            destValidatorAddress:
              type: string
              description: >-
                Bech32 destination validator address to redelegate to (e.g.
                cosmosvaloper1...).
          required:
            - intentType
            - validatorAddress
            - destValidatorAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    StakeWithCallDataIntent:
      title: Stake With CallData Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeWithCallData
              description: Must be "stakeWithCallData".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
      description: >-
        Submit an EVM staking transaction using pre-computed calldata provided
        by

        the BitGo staking service. Used when the staking protocol requires
        custom

        calldata that cannot be derived from standard deposit parameters.
    StakeableCoins:
      type: object
      properties:
        symbol:
          type: string
        baseUnit:
          type: string
        isToken:
          type: boolean
        isTss:
          type: boolean
        isMultiSig:
          type: boolean
        l1Chain:
          type: string
        comingSoon:
          type: boolean
        disclaimer:
          $ref: '#/components/schemas/StakingDisclaimerAttributes'
        jurisdictions:
          type: array
          items:
            type: string
          description: List of jurisdictions where staking is available for this coin.
    StakeableCoinsResult:
      title: Stakeable coins
      type: object
      properties:
        coins:
          type: array
          items:
            $ref: '#/components/schemas/StakeableCoins'
        page:
          type: integer
        totalPages:
          type: integer
        totalElements:
          type: integer
    StakingDelegation:
      type: object
      properties:
        id:
          description: The staking request ID.
          type: string
        coin:
          description: The staking asset.
          type: string
        walletId:
          description: The ID of the wallet that the delegation is tied to.
          type: string
        delegationAddress:
          description: The delegation address.
          type: string
        validatorAddress:
          description: The validator address of the delegation.
          type: string
        provider:
          description: The staking provider backing the delegation.
          type: string
        providerType:
          description: >-
            The staking provider backing the delegation. This field is used in
            bitgo UI to map provider with icon
          type: string
        withdrawalAddress:
          description: The withdrawal address.
          type: string
        delegated:
          description: The delegation amount.
          type: string
        status:
          $ref: '#/components/schemas/DelegationStatus'
        rewards:
          description: The amount of rewards received over the lifetime.
          type: string
        lockedRewards:
          description: The amount of locked rewards received.
          type: string
        pendingUnstake:
          description: The amount that is pending unstake.
          type: string
        pendingStake:
          description: The amount that is pending stake.
          type: string
        reserved:
          description: The amount that is reserved for this delegation.
          type: string
        pendingReserved:
          description: The amount that is pending reservation for this delegation.
          type: string
        apy:
          description: The estimated reward APY or APR if rewards are not compounding.
          type: string
        unstakeable:
          description: Indicates whether the delegation can currently be unstaked.
          type: boolean
    StakingDetails:
      type: object
      description: Detailed staking information for an asset.
      properties:
        rewardRate:
          type: string
          nullable: true
          description: Annual reward rate as a percentage string.
          example: '5.98'
        walletType:
          type: array
          description: Wallet types that support staking for this asset.
          items:
            type: string
            enum:
              - MPC
              - Multisig
          example:
            - MPC
        minToStake:
          type: number
          nullable: true
          description: >-
            Minimum amount required to stake, denominated in the asset's base
            unit (adjusted for decimals).
          example: 32
        stakeWarmupPeriod:
          type: string
          nullable: true
          description: Human-readable duration for the staking warmup period.
          example: 2 days
        claimMethod:
          type: string
          description: >-
            How staking rewards are claimed. `manual` means the user must
            explicitly claim rewards; `auto` means rewards are distributed
            automatically.
          enum:
            - manual
            - auto
          example: auto
        autoCompound:
          type: string
          description: Whether staking rewards are automatically compounded.
          enum:
            - 'yes'
            - 'no'
          example: 'yes'
        unbonding:
          type: string
          nullable: true
          description: Human-readable duration for the unbonding/unstaking period.
          example: 21 days
        rewardFrequency:
          type: string
          nullable: true
          description: Human-readable duration between reward distributions.
          example: 3 days
    StakingDisclaimer:
      type: object
      properties:
        info:
          type: array
          items:
            type: string
        rewardPercentageRate:
          type: string
          nullable: true
        stakeWarmupPeriodDesc:
          type: string
          nullable: true
    StakingDisclaimerAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseDisclaimer'
      type: object
      description: Disclaimer information specific to staking.
      properties:
        stakeWarmupPeriodDesc:
          description: Optional description of the staking warmup period.
          type: string
          nullable: true
        rewardPercentageRate:
          description: Optional reward percentage rate for staking.
          type: string
          format: decimal
          nullable: true
        apyMarginOfError:
          description: Optional margin of error for the APY rate.
          type: string
          format: decimal
          nullable: true
        rewardsCompounding:
          description: True if rewards are compounded.
          type: boolean
        period:
          $ref: '#/components/schemas/EstimationPeriodAttributes'
        minStake:
          description: Minimum amount required to stake.
          type: string
        minStakeMore:
          description: Minimum additional amount to add to an active stake.
          type: string
          nullable: true
        stakingSubTypes:
          description: Optional list of staking sub-types with their own disclaimers.
          type: array
          items:
            $ref: '#/components/schemas/StakingSubTypeDisclaimerAttributes'
          nullable: true
    StakingEnterprise:
      type: object
      properties:
        enterpriseId:
          description: The ID of the enterprise where the staking request was created from.
          type: string
        coin:
          description: The staking asset.
          type: string
        delegated:
          description: The delegated staked amount in base units.
          type: string
        rewards:
          description: The reward accrual amount in base units.
          type: string
        apy:
          description: >-
            Reward accrual annual percentage rate. Estimated yearly based on the
            last 7 days. Same methodology as leading beacon chain validator
            aggregators (e.g. https://beaconcha.in/validators).
          type: string
        pendingStake:
          description: The pending stake amount in base units.
          type: string
        pendingUnstake:
          description: The pending unstake amount in base units.
          type: string
        pendingClaimRewards:
          description: The pending claimable rewards in base units.
          type: string
        baseUnit:
          description: The coin base unit (e.g., wei for ETH).
          type: string
        isToken:
          description: True if the staking asset is a token.
          type: boolean
        isTss:
          description: True if the staking wallet uses threshold signatures (TSS).
          type: boolean
        isMultiSig:
          description: True if the staking wallet uses multisig.
          type: boolean
        l1Chain:
          description: >-
            The underlying L1 chain if the staking asset is on a different chain
            (e.g., ETH for L2 assets).
          type: string
          nullable: true
        comingSoon:
          description: True if the staking feature for this asset is marked as coming soon.
          type: boolean
        disclaimer:
          $ref: '#/components/schemas/WalletStakingDisclaimerAttributes'
        walletCount:
          description: >-
            The number of wallets with delegations in this enterprise for the
            given coin.
          type: integer
        rewardCoin:
          description: The coin used for rewards (if different from the staked asset).
          type: string
          nullable: true
        rewardPairs:
          description: Reward pairs associated with the staking asset.
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
    StakingError:
      title: Staking Error
      type: object
      properties:
        error:
          type: string
        errorName:
          type: string
        reqId:
          type: string
        context:
          type: object
    StakingField:
      type: object
      properties:
        name:
          description: Machine-readable name of the staking field.
          type: string
        label:
          description: Human-readable label for display.
          type: string
        required:
          description: Whether this field must be provided.
          type: boolean
          default: true
        type:
          description: Input type (e.g., text, number, select).
          type: string
        coin:
          description: Optional coin symbol associated with the field.
          type: string
        useValidatorList:
          description: Whether this field should use the validator list as options.
          type: boolean
          default: false
        readonly:
          description: If true, the field is not editable.
          type: boolean
          default: false
        value:
          description: Optional pre-filled or default value for the field.
          type: string
        min:
          description: Optional minimum value (serialized as string).
          type: string
        max:
          description: Optional maximum value (serialized as string).
          type: string
        options:
          description: Select/dropdown options for the field, if applicable.
          type: array
          items:
            $ref: '#/components/schemas/StakingFieldOption'
    StakingFieldOption:
      type: object
      properties:
        label:
          description: Human-readable label for the option.
          type: string
        value:
          description: Machine-readable value for the option.
          type: string
        description:
          description: Optional explanation of the option.
          type: string
        amount:
          description: >-
            Optional amount associated with this option (used for fixed-amount
            staking like VET NFT tiers).
          type: string
    StakingLicenseFee:
      type: object
      properties:
        coin:
          description: The name of the coin.
          type: string
        fee:
          description: The corresponding fee for the coin in the current license.
          type: string
    StakingLicenseResponse:
      type: object
      properties:
        enterpriseId:
          type: string
          description: The enterprise ID.
        defaultFee:
          type: string
          description: The default fee for the asset.
        fees:
          type: array
          description: The list of per-coin fees for this license.
          items:
            $ref: '#/components/schemas/StakingLicenseFee'
    StakingOptions:
      description: >-
        Union of concrete staking option types. One of the concrete option
        schemas below.
      oneOf:
        - $ref: '#/components/schemas/AvaxPStakingOptions'
        - $ref: '#/components/schemas/BtcStakingOptions'
        - $ref: '#/components/schemas/CsprStakingOptions1'
        - $ref: '#/components/schemas/StxStakingOptions1'
    StakingParams:
      type: object
      properties:
        requestId:
          type: string
          format: uuid
        amount:
          type: string
          description: The amount to stake in base units.
        coin:
          type: string
        validator:
          type: string
        provider:
          type: string
        blsPublicKey:
          type: string
        blsSignature:
          type: string
        actionType:
          type: string
          description: The action type (e.g. delegate, unstake).
        stakingOptions:
          $ref: '#/components/schemas/StakingOptions'
        coreDao:
          $ref: '#/components/schemas/CoreDaoStakingParams'
        babylon:
          $ref: '#/components/schemas/BabylonStakingParams'
        ownerAddress:
          type: string
          description: TRX specific owner address
        frozenBalance:
          type: string
          description: TRX specific frozen balance
        unfreezeBalance:
          type: string
          description: TRX specific unfreeze balance
        resource:
          type: string
          description: TRX specific resource type
        votes:
          type: array
          items:
            $ref: '#/components/schemas/Vote'
    StakingPartneredValidator:
      type: object
      properties:
        delegationAddress:
          description: The delegation address.
          type: string
        type:
          description: The validator provider.
          type: string
        totalStaked:
          description: The total staked amount in base units.
          type: string
        delegated:
          description: The delegated amount in base units.
          type: string
        rewards:
          description: The reward accrual amount in base units.
          type: string
        apy:
          description: The annual percentage yield.
          type: string
        commission:
          description: The fee charged by the validator as a percentage.
          type: string
        coin:
          description: The staked coin.
          type: string
        rewardCoin:
          description: The coin used for rewards.
          type: string
        avses:
          description: The validator's actively validated services (AVS) for restaking.
          type: array
          items:
            type: string
        historicRatePerformance:
          description: The validator's historical reward rate for the last 30 days.
          type: string
        pendingStake:
          description: The amount pending staking.
          type: string
        pendingUnstake:
          description: The amount pending unstaking.
          type: string
        enterpriseId:
          description: The enterprise ID associated with the validator.
          type: string
        walletId:
          description: The wallet ID associated with the validator.
          type: string
        lastRedelegationTimestamp:
          description: The last redelegation timestamp.
          type: string
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        spendableAttributes:
          $ref: '#/components/schemas/WalletStakingSpendableAttributes'
        pendingClaimRewards:
          description: Pending claimable rewards in base units.
          type: string
        activeRewards:
          description: Active rewards in base units.
          type: string
        count:
          description: The validator’s delegation count.
          type: string
        preferred:
          description: Whether this validator is marked as preferred.
          type: boolean
          default: false
        rewardPairs:
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
        stakingType:
          description: The staking type.
          type: string
          default: STAKE
        endTime:
          description: The end time for validator participation (if applicable).
          type: string
        provider:
          description: The validator provider enum used for staking.
          type: string
    StakingPartneredValidatorsResponse:
      type: object
      properties:
        validators:
          type: array
          minItems: 1
          maxItems: 500
          items:
            allOf:
              - $ref: '#/components/schemas/StakingPartneredValidator'
              - type: object
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    StakingPermissionAttributes:
      type: object
      properties:
        enabled:
          type: boolean
        disabledReason:
          type: string
          nullable: true
        allowClientToUseOwnValidator:
          type: boolean
    StakingPermissionAttributes1:
      allOf:
        - $ref: '#/components/schemas/BasePermissionAttributes'
      type: object
      description: Permission attributes specific to staking.
      properties:
        allowClientToUseOwnValidator:
          description: True if the client is allowed to stake to their own validator.
          type: boolean
          default: false
        allowClientToUseOwnDRep:
          description: >-
            ADA-specific. True if the client can use their own DRep for
            governance.
          type: boolean
          nullable: true
        allowVoteDelegation:
          description: ADA-specific. True if the client can delegate votes.
          type: boolean
          nullable: true
        requireVoteDelegation:
          description: ADA-specific. True if vote delegation is required.
          type: boolean
          nullable: true
    StakingRequest1:
      title: Staking Request
      type: object
      properties:
        id:
          description: Staking request ID.
          type: string
        clientId:
          description: Optional clientId if passed into the request.
          type: string
        requestingUserId:
          description: The ID of the user that created the staking request.
          type: string
        enterpriseId:
          description: The ID of the enterprise where the the staking request was created.
          type: string
        walletId:
          description: The ID of the wallet where the staking request was created.
          type: string
        walletLabel:
          description: The label of the wallet where the staking request was created.
          type: string
          nullable: true
        withdrawalAddress:
          description: Withdrawal Address
          type: string
        walletType:
          description: >-
            The type of wallet the staking request was created from either cold,
            custodial, or hot.
          type: string
          enum:
            - cold
            - custodial
            - custodialPaired
            - hot
            - trading
        type:
          $ref: '#/components/schemas/StakingRequestType1'
        coin:
          $ref: '#/components/schemas/Coin2'
        createdDate:
          description: The date the staking request was created.
          type: string
          format: date-time
        status:
          $ref: '#/components/schemas/StakingRequestStatus'
        statusModifiedDate:
          description: The last date the status changed.
          type: string
          format: date-time
        error:
          description: The reason the staking request failed.
          type: string
          nullable: true
        rawError:
          description: Raw internal error message if available.
          type: string
          nullable: true
        delegations:
          description: The delegations associated with this staking request.
          type: array
          items:
            $ref: '#/components/schemas/StakingDelegation'
        transactions:
          description: The staking transactions associated with this request.
          type: array
          items:
            $ref: '#/components/schemas/StakingTransaction'
        totalStaked:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            The sum of the amounts of all confirmed staking transactions in this
            request.
          nullable: true
        properties:
          oneOf:
            - $ref: '#/components/schemas/StakingRequestEntityProperties'
            - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
            - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
            - $ref: '#/components/schemas/UnknownStakingRequestEntityProperties'
            - $ref: '#/components/schemas/EthStakingRequestEntityProperties'
            - $ref: '#/components/schemas/EthP2POrgStakingRequestEntityProperties'
            - $ref: '#/components/schemas/TrxStakingRequestEntityProperties'
            - $ref: '#/components/schemas/NearStakingRequestEntityProperties'
            - $ref: '#/components/schemas/SolStakingRequestEntityProperties'
            - $ref: '#/components/schemas/DotStakingRequestEntityProperties'
            - $ref: '#/components/schemas/MaticLikeStakingRequestEntityProperties'
            - $ref: '#/components/schemas/AdaStakingRequestEntityProperties'
            - $ref: '#/components/schemas/AdaClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/TrxClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/AtomStakingRequestEntityProperties'
            - $ref: '#/components/schemas/AtomClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/CosmosLikeStakingRequestEntityProperties'
            - $ref: >-
                #/components/schemas/CosmosLikeClaimRewardsRequestEntityProperties
            - $ref: '#/components/schemas/BaseSwitchStakingRequestEntityProperties'
            - $ref: >-
                #/components/schemas/CosmosLikeSwitchStakingRequestEntityProperties
            - $ref: '#/components/schemas/AvaxPStakingRequestEntityProperties'
            - $ref: '#/components/schemas/BscStakingRequestEntityProperties'
            - $ref: '#/components/schemas/CsprStakingRequestEntityProperties'
            - $ref: '#/components/schemas/SuiLikeStakingRequestEntityProperties'
            - $ref: '#/components/schemas/SuiSwitchStakingRequestEntityProperties'
            - $ref: '#/components/schemas/TonStakingRequestEntityProperties'
            - $ref: '#/components/schemas/StxStakingRequestEntityProperties'
            - $ref: '#/components/schemas/EigenLikeStakingRequestEntityProperties'
            - $ref: >-
                #/components/schemas/EigenLikeClaimRewardsRequestEntityProperties
            - $ref: '#/components/schemas/BtcStakingRequestEntityProperties'
            - $ref: '#/components/schemas/WctStakingRequestEntityProperties'
            - $ref: '#/components/schemas/WctUnstakingRequestEntityProperties'
            - $ref: '#/components/schemas/WctClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/CoredaoStakingRequestEntityProperties'
            - $ref: '#/components/schemas/CoredaoUnstakingRequestEntityProperties'
            - $ref: '#/components/schemas/CoredaoClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/BtcClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/BeraStakingRequestEntityProperties'
            - $ref: '#/components/schemas/BeraUnstakingRequestEntityProperties'
            - $ref: '#/components/schemas/TaoStakingRequestEntityProperties'
            - $ref: '#/components/schemas/TaoSwitchValidatorRequestEntityProperties'
            - $ref: '#/components/schemas/PolyxStakingRequestEntityProperties'
            - $ref: '#/components/schemas/PolyxSwitchValidatorRequestEntityProperties'
            - $ref: '#/components/schemas/ICPStakingRequestEntityProperties'
            - $ref: '#/components/schemas/AvaxcStakingRequestEntityProperties'
            - $ref: '#/components/schemas/AvaxcUnstakingRequestEntityProperties'
            - $ref: '#/components/schemas/WflrStakingRequestEntityProperties'
            - $ref: '#/components/schemas/WflrUnstakingRequestEntityProperties'
            - $ref: '#/components/schemas/SomiStakingRequestEntityProperties'
            - $ref: '#/components/schemas/VetStakingRequestEntityProperties'
            - $ref: '#/components/schemas/WflrClaimRewardsRequestEntityProperties'
            - $ref: '#/components/schemas/StoryStakingRequestEntityProperties'
            - $ref: >-
                #/components/schemas/SeiEvmSwitchValidatorRequestEntityProperties
            - $ref: '#/components/schemas/HbarSwitchValidatorRequestEntityProperties'
      required:
        - id
        - requestingUserId
        - enterpriseId
        - walletId
        - withdrawalAddress
        - walletType
        - type
        - coin
        - createdDate
        - status
        - statusModifiedDate
    StakingRequestEntityProperties:
      title: Base staking request entity properties
      type: object
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: The amount involved in the staking request.
        objectType:
          $ref: '#/components/schemas/StakingRequestPropertiesType'
      required:
        - amount
        - objectType
    StakingRequestPOSTBody:
      title: Generic staking request
      type: object
      properties:
        clientId:
          description: Optional user-generated identifier to detect duplicated requests.
          type: string
          maxLength: 256
          nullable: true
        amount:
          description: >-
            Amount to stake in base units. For Ethereum, must be a multiple of
            32 ETH (32000000000000000000 Wei). Testnet restrictions may differ.
          type: string
          example: '32000000000000000000'
        type:
          description: Staking request type. Always 'STAKE' for this endpoint.
          type: string
          example: STAKE
        validator:
          description: The validator to delegate to.
          type: string
          nullable: true
        duration:
          description: Optional staking duration in base units (e.g., seconds, blocks).
          type: string
          nullable: true
        delegationRequests:
          description: Optional list of individual delegation requests.
          type: array
          items:
            $ref: '#/components/schemas/DelegationRequest'
          nullable: true
      required:
        - amount
        - type
    StakingRequestPropertiesType:
      type: string
      description: Type of staking request entity properties.
      enum:
        - AVAXP_STAKE
        - ETH_STAKE
        - TRX
        - TRX_UNSTAKE
        - TRX_CLAIM_REWARDS
        - ETH_CLAIM_REWARDS
        - ETH_UNSTAKE
        - ETH_STAKE_SSV
        - NEAR_STAKE
        - SOL_STAKE
        - SOL_UNSTAKE
        - DOT_STAKE
        - MATIC_STAKE
        - UNSTAKE
        - MATIC_UNSTAKE
        - CSPR_STAKE
        - CSPR_UNSTAKE
        - SUI_STAKE
        - SUI_SWITCH
        - SUI_UNSTAKE
        - ADA_STAKE
        - ADA_CLAIM_REWARDS
        - ATOM_STAKE
        - ATOM_CLAIM_REWARDS
        - COSMOS_STAKE
        - COSMOS_CLAIM_REWARDS
        - COSMOS_SWITCH
        - BASE_SWITCH
        - BSC_STAKE
        - TON_STAKE
        - TON_UNSTAKE
        - STX_STAKE
        - STX_UNSTAKE
        - EIGEN_STAKE
        - EIGEN_CLAIM_REWARDS
        - EIGEN_UNSTAKE
        - BTC_STAKE
        - BTC_UNSTAKE
        - BTC_CLAIM_REWARDS
        - WCT_STAKE
        - WCT_UNSTAKE
        - WCT_CLAIM_REWARDS
        - COREDAO_STAKE
        - COREDAO_UNSTAKE
        - COREDAO_CLAIM_REWARDS
        - BERA_STAKE
        - BERA_UNSTAKE
        - TAO_STAKE
        - TAO_UNSTAKE
        - TAO_SWITCH
        - POLYX_STAKE
        - POLYX_UNSTAKE
        - POLYX_SWITCH_VALIDATOR
        - ICP
        - AVAXC_STAKE
        - AVAXC_UNSTAKE
        - WFLR_STAKE
        - WFLR_UNSTAKE
        - FLRP_STAKE
        - SOMI_STAKE
        - STORY_STAKE
        - VET_STAKE
        - WFLR_CLAIM_REWARDS
        - UNKNOWN
    StakingRequestSchemas:
      oneOf:
        - $ref: '#/components/schemas/AdaStakingRequest'
        - $ref: '#/components/schemas/AptStakingRequest'
        - $ref: '#/components/schemas/AsiStakingRequest'
        - $ref: '#/components/schemas/KavacosmosStakingRequest'
        - $ref: '#/components/schemas/AtomStakingRequest'
        - $ref: '#/components/schemas/AvaxCStakingRequest'
        - $ref: '#/components/schemas/AvaxPStakingRequest'
        - $ref: '#/components/schemas/BabyStakingRequest'
        - $ref: '#/components/schemas/BeraStakingRequest'
        - $ref: '#/components/schemas/BldStakingRequest'
        - $ref: '#/components/schemas/BscStakingRequest'
        - $ref: '#/components/schemas/BtcStakingRequest'
        - $ref: '#/components/schemas/CoredaoStakingRequest'
        - $ref: '#/components/schemas/CoreumStakingRequest'
        - $ref: '#/components/schemas/CosmosLikeStakingRequest'
        - $ref: '#/components/schemas/CronosStakingRequest'
        - $ref: '#/components/schemas/CsprStakingRequest'
        - $ref: '#/components/schemas/DotStakingRequest'
        - $ref: '#/components/schemas/EigenStakingRequest'
        - $ref: '#/components/schemas/EthStakingRequest'
        - $ref: '#/components/schemas/HashStakingRequest'
        - $ref: '#/components/schemas/InjectiveStakingRequest'
        - $ref: '#/components/schemas/MaticStakingRequest'
        - $ref: '#/components/schemas/NearStakingRequest'
        - $ref: '#/components/schemas/OsmoStakingRequest'
        - $ref: '#/components/schemas/PolStakingRequest'
        - $ref: '#/components/schemas/PolyxStakingRequest'
        - $ref: '#/components/schemas/RethRocketStakingRequest'
        - $ref: '#/components/schemas/SeiStakingRequest'
        - $ref: '#/components/schemas/SolStakingRequest'
        - $ref: '#/components/schemas/SomiStakingRequest'
        - $ref: '#/components/schemas/StxStakingRequest'
        - $ref: '#/components/schemas/SuiStakingRequest'
        - $ref: '#/components/schemas/SuiWalStakingRequest'
        - $ref: '#/components/schemas/TaoStakingRequest'
        - $ref: '#/components/schemas/TiaStakingRequest'
        - $ref: '#/components/schemas/TonStakingRequest'
        - $ref: '#/components/schemas/TrxStakingRequest'
        - $ref: '#/components/schemas/WctStakingRequest'
        - $ref: '#/components/schemas/WethStakingRequest'
        - $ref: '#/components/schemas/ZetaStakingRequest'
        - $ref: '#/components/schemas/WflrStakingRequest'
        - $ref: '#/components/schemas/FlrPStakingRequest'
    StakingRequestSource:
      title: StakingRequestSource
      type: string
      enum:
        - MANUAL
        - AUTO_STAKE
        - EXTERNAL
    StakingRequestStatus:
      title: Staking Request Status
      description: >-
        The status of the staking request. For ETH the status will change from
        NEW to READY when a validator has been assigned to the wallet's address.
      type: string
      enum:
        - NEW
        - PENDING_VALIDATORS
        - READY
        - PENDING_APPROVAL
        - PENDING_BITGO_TRUST_APPROVAL
        - PENDING
        - FAILED
        - REJECTED
        - VALIDATOR_ACTIVATING
        - PARTIAL_CONFIRMED
        - CONFIRMED
        - COOLDOWN
        - WARMUP
        - DELAYED_COOLDOWN
        - DELAYED_WARMUP
        - ETH_PARTIAL_EXITED
        - ETH_EXITED
    StakingRequestType:
      type: string
      enum:
        - STAKE
        - UNSTAKE
        - UNSUPPORTED
      default: STAKE
      description: >
        Type of staking request. `STAKE` to delegate, `UNSTAKE` to undelegate.
        `UNSUPPORTED` is a fallback.
    StakingRequestType1:
      title: Staking Request Type
      description: The type of staking request.
      type: string
      enum:
        - STAKE
        - UNSTAKE
        - CLAIM_REWARDS
        - SWITCH_VALIDATOR
        - UNSUPPORTED
    StakingRequestWithGasPOSTBody:
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            gasPrice:
              type: string
              description: >-
                User overridden gas price to apply for the generated
                transactions for this request. GasPrice is in base units.
    StakingRequestsListResponse:
      type: object
      properties:
        requests:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingRequestSchemas'
    StakingRequestsResponse:
      type: object
      properties:
        requests:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingRequestSchemas'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    StakingReward:
      type: object
      properties:
        reward:
          description: The reward in base units.
          type: string
        coin:
          description: The coin associated with the reward.
          type: string
        walletId:
          description: The wallet ID.
          type: string
        enterpriseId:
          description: The enterprise ID.
          type: string
        delegationId:
          description: The delegation ID, only present when aggregationLevel is delegation.
          type: string
        date:
          description: The date and time of the reward.
          type: string
          format: date-time
        properties:
          description: >-
            Detailed reward information including consensus, transaction, and
            MEV rewards. Only populated for ETH delegations.
          type: object
          properties:
            consensusReward:
              description: Amount of rewards from consensus participation.
              type: number
            transactionReward:
              description: Amount of rewards from transaction fees.
              type: number
            mevReward:
              description: Amount of rewards from MEV (Maximum Extractable Value).
              type: number
            provider:
              description: The staking provider name.
              type: string
      required:
        - reward
        - coin
        - date
    StakingRewards:
      type: object
      properties:
        rewards:
          description: An array of rewards.
          type: array
          items:
            $ref: '#/components/schemas/StakingReward'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    StakingSpendableAttributes:
      type: object
      properties:
        fee:
          type: string
        max:
          type: string
        min:
          type: string
        netMax:
          type: string
        netMin:
          type: string
        minStakeMore:
          type: string
        minDuration:
          type: string
          nullable: true
        maxDuration:
          type: string
          nullable: true
    StakingSpendableAttributes1:
      allOf:
        - $ref: '#/components/schemas/BaseSpendableAttributes'
      type: object
      properties:
        netMax:
          description: The maximum spendable amount minus fees.
          type: string
        netMin:
          description: The net minimum spendable amount plus fees.
          type: string
        isStakingDurationNeeded:
          description: True, if staking duration in seconds is required.
          type: boolean
        defaultStakingDuration:
          description: Optional default staking duration in seconds.
          type: string
        unlockTimeEpochSeconds:
          description: Optional unlock time in epoch seconds.
          type: string
        minStakeMore:
          description: The minimum amount required to stake more to the same validator.
          type: string
        minDuration:
          description: Minimum allowed staking duration in seconds.
          type: string
        maxDuration:
          description: Maximum allowed staking duration in seconds.
          type: string
        durationLabel:
          description: Optional label for staking duration (e.g., "Epoch").
          type: string
        breakdown:
          $ref: '#/components/schemas/StakingSpendableBreakdown'
        name:
          description: Optional staking type name (UI label).
          type: string
        type:
          description: Optional staking type identifier.
          type: string
        fields:
          description: >-
            Additional form fields required for staking (e.g., resource type
            selection dropdown).
          type: array
          items:
            $ref: '#/components/schemas/StakingField'
        stakingSubTypes:
          description: Available staking sub-types with their own attributes.
          type: array
          items:
            $ref: '#/components/schemas/StakingSubTypeSpendableAttributes'
        isDelegated:
          description: True if this staking is delegated.
          type: boolean
        restaking:
          $ref: '#/components/schemas/Restaking'
        stakingSubTypesStyle:
          description: Optional style hint for rendering staking sub-types.
          type: string
        decimal:
          description: >-
            Optional custom conversion factor, when provided, use amount ÷
            decimal to get derived unit.
          type: string
        displayUnit:
          description: >-
            Optional custom unit (e.g., "TP" for TronPower). When provided, this
            unit is the derived unit of the amounts in the attributes.
          type: string
        fixedAmountStaking:
          description: >-
            Indicates that staking amounts are fixed per tier/option and should
            be auto-filled from the selected option's amount field. When true,
            the UI should prefill and make the amount field readonly.
          type: boolean
          default: false
    StakingSpendableBreakdown:
      type: object
      description: >-
        Breakdown of staking spendable amounts, including balances, fees, and
        limits.
      properties:
        balance:
          description: Total balance available for staking operations.
          type: string
        stakingFee:
          description: Fee amount required to perform staking operations.
          type: string
        unstakingFee:
          description: Fee amount required to perform unstaking operations.
          type: string
        pendingStake:
          description: Amount of stake that has been requested but is not yet active.
          type: string
        proxyCost:
          description: Proxy fee cost (applies to DOT staking only).
          type: string
        maxSpendable:
          description: >-
            Maximum amount that can be spent on staking after accounting for
            fees and limits.
          type: string
        minSpendable:
          description: Minimum amount required for a valid staking operation.
          type: string
    StakingSubTypeDisclaimerAttributes:
      type: object
      description: Disclaimer information for a staking sub-type.
      properties:
        type:
          description: Sub-type identifier.
          type: string
        name:
          description: Sub-type display name.
          type: string
        info:
          description: List of disclaimer messages for the sub-type.
          type: array
          items:
            type: string
        transactionsNeeded:
          description: Number of transactions required for the sub-type.
          type: integer
        rewardsCompounding:
          description: True if rewards are compounded for this sub-type.
          type: boolean
        period:
          $ref: '#/components/schemas/EstimationPeriodAttributes'
        minStake:
          description: Minimum staking amount for this sub-type.
          type: string
        minStakeMore:
          description: Optional minimum additional stake required for this sub-type.
          type: string
          nullable: true
        url:
          description: Optional URL for more information about this sub-type.
          type: string
          nullable: true
        iconName:
          description: Optional icon name for UI representation.
          type: string
          nullable: true
        defaultApy:
          description: Optional default APY for this sub-type.
          type: string
          format: decimal
          nullable: true
        stakeWarmupPeriodDesc:
          description: Optional description of the staking warmup period for this sub-type.
          type: string
          nullable: true
        rewardPercentageRate:
          description: Optional reward percentage rate for this sub-type.
          type: string
          format: decimal
          nullable: true
        apyMarginOfError:
          description: Optional margin of error for the APY rate for this sub-type.
          type: string
          format: decimal
          nullable: true
        rewardCycle:
          description: >-
            Optional time in seconds between reward distributions for this
            staking subtype. When present, this value overrides the base-level
            nextRewards.rewardCycle for this specific staking method.
          type: integer
          nullable: true
    StakingSubTypeSpendableAttributes:
      type: object
      properties:
        name:
          description: The display name of the staking sub-type.
          type: string
        type:
          description: The identifier of the staking sub-type.
          type: string
        fee:
          description: The blockchain fee for this sub-type.
          type: string
        max:
          description: The maximum amount for this sub-type.
          type: string
        min:
          description: The minimum amount for this sub-type.
          type: string
        netMax:
          description: The net maximum amount for this sub-type.
          type: string
        netMin:
          description: The net minimum amount for this sub-type.
          type: string
        multiplier:
          description: The multiplier for this sub-type.
          type: string
        decimal:
          description: >-
            Optional custom conversion factor, when provided, should use amount
            ÷ decimal to get converted to derived unit.
          type: string
        displayUnit:
          description: >-
            Optional custom unit (e.g., "TP" for TronPower). When provided, this
            unit is the derived unit of the amounts in the attributes.
          type: string
    StakingTransaction:
      title: Staking Transaction
      type: object
      properties:
        id:
          description: The staking transaction ID.
          type: string
        stakingRequestId:
          description: The staking request ID.
          type: string
        transactionType:
          allOf:
            - $ref: '#/components/schemas/StakingTransactionType'
            - type: string
          description: The transaction type (delegate).
        txHash:
          description: The transaction hash.
          type: string
        createdDate:
          description: The date the transaction was created.
          type: string
          format: date-time
        status:
          $ref: '#/components/schemas/StakingTransactionStatus'
        statusModifiedDate:
          description: The last date the status changed.
          type: string
          format: date-time
        error:
          description: The reason the transaction failed.
          type: string
        rawError:
          description: Raw internal error message if available.
          type: string
        amount:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: The transaction Amount in base units (i.e. Wei for ETH).
        delegationId:
          description: The staking delegation the transaction is acting on.
          type: string
        pendingApprovalId:
          description: Pending Approval ID
          type: string
        transferId:
          description: Transfer ID
          type: string
        txRequestId:
          description: Transaction Request ID for the Transaction Request API
          type: string
        coin:
          description: The coin associated with this staking transaction.
          type: string
        buildParams:
          $ref: '#/components/schemas/TransactionBuildParams'
      required:
        - stakingRequestId
        - transactionType
        - createdDate
        - status
        - statusModifiedDate
        - delegationId
        - amount
    StakingTransactionProperties:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/IntegerString'
        type:
          $ref: '#/components/schemas/StakingTransactionPropertiesType'
      required:
        - amount
        - type
    StakingTransactionPropertiesOneOf:
      oneOf:
        - $ref: '#/components/schemas/UnknownStakingTransactionProperties'
        - $ref: '#/components/schemas/BaseStakingTransactionProperties'
        - $ref: '#/components/schemas/MaticLikeStakingTransactionProperties'
        - $ref: '#/components/schemas/EthStakingTransactionProperties'
        - $ref: '#/components/schemas/SolJitoStakingTransactionProperties'
        - $ref: '#/components/schemas/EthUnstakingTransactionProperties'
        - $ref: '#/components/schemas/DotUnstakingTransactionProperties'
        - $ref: '#/components/schemas/DotStakingTransactionProperties'
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
        - $ref: '#/components/schemas/CsprStakingTransactionProperties'
        - $ref: '#/components/schemas/SuiStakingTransactionProperties'
        - $ref: '#/components/schemas/TonStakingTransactionProperties'
        - $ref: '#/components/schemas/TonUnstakingTransactionProperties'
        - $ref: '#/components/schemas/SuiUnstakingTransactionProperties'
        - $ref: '#/components/schemas/CsprUnstakingTransactionProperties'
        - $ref: '#/components/schemas/SuiSwitchTransactionProperties'
        - $ref: '#/components/schemas/AdaStakingTransactionProperties'
        - $ref: '#/components/schemas/AdaClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/TrxClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/AdaUnstakingTransactionProperties'
        - $ref: '#/components/schemas/AtomStakingTransactionProperties'
        - $ref: '#/components/schemas/AtomUnstakingTransactionProperties'
        - $ref: '#/components/schemas/AtomClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/CosmosLikeStakingTransactionProperties'
        - $ref: '#/components/schemas/CosmosLikeUnstakingTransactionProperties'
        - $ref: '#/components/schemas/BscStakingTransactionProperties'
        - $ref: '#/components/schemas/CosmosLikeClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/CosmosLikeSwitchTransactionProperties'
        - $ref: '#/components/schemas/BaseSwitchTransactionProperties'
        - $ref: '#/components/schemas/BscWithdrawUndelegatedTransactionProperties'
        - $ref: '#/components/schemas/BscUnstakingTransactionProperties'
        - $ref: '#/components/schemas/SolUnStakingTransactionProperties'
        - $ref: '#/components/schemas/StxStakingTransactionProperties'
        - $ref: '#/components/schemas/StxUnstakingTransactionProperties'
        - $ref: '#/components/schemas/EigenLikeStakingTransactionProperties'
        - $ref: '#/components/schemas/EigenLikeClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/EigenLikeUnstakingTransactionProperties'
        - $ref: '#/components/schemas/CoredaoClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/BtcStakingTransactionProperties'
        - $ref: '#/components/schemas/BtcBabylonStakingProperties'
        - $ref: '#/components/schemas/BtcCoredaoStakingProperties'
        - $ref: '#/components/schemas/BtcUnstakingTransactionProperties'
        - $ref: '#/components/schemas/BtcClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/WctStakingTransactionProperties'
        - $ref: '#/components/schemas/WctClaimRewardsTransactionProperties'
        - $ref: '#/components/schemas/BeraStakingTransactionProperties'
        - $ref: '#/components/schemas/BeraUnstakingTransactionProperties'
        - $ref: '#/components/schemas/TaoStakingTransactionProperties'
        - $ref: '#/components/schemas/TaoSwitchValidatorTransactionProperties'
        - $ref: '#/components/schemas/PolyxStakingTransactionProperties'
        - $ref: '#/components/schemas/PolyxUnstakingTransactionProperties'
        - $ref: '#/components/schemas/PolyxSwitchValidatorTransactionProperties'
        - $ref: '#/components/schemas/ICPStakingTransactionProperties'
        - $ref: '#/components/schemas/SomiUnstakingTransactionProperties'
        - $ref: '#/components/schemas/AvaxcStakingTransactionProperties'
        - $ref: '#/components/schemas/AvaxcUnstakingTransactionProperties'
        - $ref: '#/components/schemas/VetStakingTransactionProperties'
        - $ref: '#/components/schemas/XdcStakingTransactionProperties'
        - $ref: '#/components/schemas/XdcUndelegateTransactionProperties'
        - $ref: '#/components/schemas/XdcWithdrawTransactionProperties'
    StakingTransactionPropertiesType:
      type: string
      enum:
        - BASE
        - MATIC
        - DOT_STAKE
        - DOT_UNSTAKE
        - CSPR
        - CSPR_UNSTAKE
        - SUI
        - SUI_UNSTAKE
        - SUI_SWITCH
        - ETH_STAKE_PECTRA
        - ETH_UNSTAKE
        - ETH_CLAIM_REWARDS
        - SOL_JITO_STAKE
        - SOL_UNSTAKE
        - ADA
        - ADA_CLAIM_REWARDS
        - TRX_CLAIM_REWARDS
        - ADA_UNSTAKE
        - ATOM
        - ATOM_UNSTAKE
        - ATOM_CLAIM_REWARDS
        - COSMOS
        - COSMOS_UNSTAKE
        - COSMOS_CLAIM_REWARDS
        - COSMOS_SWITCH
        - BASE_SWITCH
        - BSC
        - BSC_UNSTAKE
        - BSC_CLAIM_REWARDS
        - BSC_WITHDRAW_UNDELEGATED
        - TON
        - TON_UNSTAKE
        - STX
        - STX_UNSTAKE
        - EIGEN_LIKE
        - EIGEN_LIKE_CLAIM_REWARDS
        - EIGEN_LIKE_UNSTAKE
        - BTC
        - BTC_UNSTAKE
        - BTC_CLAIM_REWARDS
        - WCT
        - WCT_CLAIM_REWARDS
        - BERA_STAKE
        - BERA_UNSTAKE
        - TAO_STAKE
        - TAO_SWITCH
        - POLYX_STAKE
        - POLYX_UNSTAKE
        - POLYX_SWITCH_VALIDATOR
        - ICP_STAKE
        - COREDAO_CLAIM_REWARDS
        - AVAXC_STAKE
        - VET
        - AVAXC_UNSTAKE
        - SOMI_UNSTAKE
        - OG_UNSTAKE
        - XDC
        - XDC_UNDELEGATE
        - XDC_WITHDRAW
        - UNKNOWN
    StakingTransactionSendRequest:
      type: object
      properties:
        halfSigned:
          type: object
          properties:
            contractSequenceId:
              type: string
              nullable: true
              description: Optional contract sequence ID of the transaction.
            eip1559:
              $ref: '#/components/schemas/Eip1559Params'
            txHex:
              type: string
              description: Raw transaction hex for the multisig transaction.
        comment:
          type: string
        txHex:
          type: string
          description: Raw transaction hex.
    StakingTransactionStatus:
      title: Staking Transaction Status
      description: >-
        The status of the transaction, either NEW, READY, INITIATED, CONFIRMED,
        or REJECTED.
      type: string
      enum:
        - WAITING
        - READY
        - SENDING
        - PENDING_APPROVAL
        - PENDING_BITGO_TRUST_APPROVAL
        - REJECTED
        - PENDING
        - FAILED
        - CONFIRMED
        - VALIDATOR_ACTIVATING
        - DELAYED_READY
    StakingTransactionType:
      title: Staking Transaction Type
      description: The type of staking transaction.
      type: string
      enum:
        - delegate
        - reward
        - undelegate
        - withdraw_undelegated
        - authorize
        - ''
    StakingValidator:
      type: object
      properties:
        delegationAddress:
          description: The delegation address.
          type: string
        coin:
          description: The staked coin.
          type: string
        delegated:
          description: The total delegated amount in base units.
          type: string
        totalStaked:
          description: The total staked amount in base units.
          type: string
        rewards:
          description: The reward accrual amount in base units.
          type: string
        activeRewards:
          description: The amount of active rewards in base units.
          type: string
        pendingClaimRewards:
          description: The amount of rewards pending claim in base units.
          type: string
        apy:
          description: The annual percentage yield.
          type: string
        historicRatePerformance:
          description: The historical APY/return performance of the validator.
          type: string
        commission:
          description: The validator commission rate.
          type: string
        type:
          description: The validator provider display used for staking.
          type: string
        provider:
          description: The validator provider enum used for staking.
          type: string
        rewardCoin:
          description: The coin in which rewards will be received.
          type: string
        endTime:
          description: >-
            The timestamp when the staking position expires, at which point it
            will either be unstaked automatically or become available for manual
            unstaking.
          type: string
        pendingStake:
          description: The amount currently pending stake.
          type: string
        pendingUnstake:
          description: The amount currently pending unstake.
          type: string
        enterpriseId:
          description: The enterprise ID of the wallet.
          type: string
        walletId:
          description: The wallet ID.
          type: string
        lastRedelegationTimestamp:
          description: The timestamp of the last redelegation.
          type: string
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        spendableAttributes:
          $ref: '#/components/schemas/WalletStakingSpendableAttributes'
        count:
          description: The number of delegations for this validator.
          type: string
        avses:
          description: List of AVSEs associated with the validator.
          type: array
          items:
            type: string
        preferred:
          description: Whether this validator is preferred.
          type: boolean
        rewardPairs:
          description: List of reward pairs.
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
        stakingType:
          description: The staking type, e.g., STAKE.
          type: string
    StakingValidatorsResponse:
      type: object
      properties:
        validators:
          type: array
          minItems: 1
          maxItems: 500
          items:
            allOf:
              - $ref: '#/components/schemas/StakingValidator'
              - type: object
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
    StakingWallet:
      type: object
      properties:
        enterpriseId:
          description: The ID of the enterprise where the staking request was created.
          type: string
        walletId:
          description: The ID of the wallet where the staking request was created.
          type: string
        stakingWalletId:
          description: The unique identifier of the staking wallet entity.
          type: string
          nullable: true
        walletType:
          description: The type of wallet the staking request was created from.
          type: string
          enum:
            - cold
            - custodial
            - custodialPaired
            - hot
            - trading
        label:
          description: The label of the wallet the staking request was created from.
          type: string
          nullable: true
        coin:
          description: The staking asset.
          type: string
        parentCoin:
          description: The parent asset of the staking coin.
          type: string
          nullable: true
        rewardCoin:
          description: >-
            The coin in which rewards are denominated, if different from the
            staking coin (e.g., VTHO for VET staking).
          type: string
          nullable: true
        assetBalance:
          description: The total asset balance in base units.
          type: string
          nullable: true
        delegated:
          description: The delegated staked amount in base units.
          type: string
        pendingUnstake:
          description: The amount that is actively being unstaked.
          type: string
        pendingStake:
          description: The amount that is actively being staked.
          type: string
        spendableAttributes:
          $ref: '#/components/schemas/WalletStakingSpendableAttributes'
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        users:
          description: The users associated with the staking wallet.
          type: array
          items:
            $ref: '#/components/schemas/WalletUser1'
          nullable: true
        rewards:
          description: The amount of rewards received in base units.
          type: string
        pendingClaimRewards:
          description: The amount of rewards that are pending claim in base units.
          type: string
        lockedRewards:
          description: The amount of locked rewards in base units.
          type: string
        reserved:
          description: The amount reserved in base units.
          type: string
        pendingReserved:
          description: The amount pending reservation in base units.
          type: string
        apy:
          description: >-
            The reward accrual annual percentage rate. The rate is estimated
            yearly based on the last 7 days using the same methodology as
            leading beacon chain validator aggregators (e.g.
            https://beaconcha.in/validators).
          type: string
        createdDate:
          description: The date the staking request was created.
          type: string
          format: date-time
          nullable: true
        modifiedDate:
          description: The last date the staking wallet was modified.
          type: string
          format: date-time
          nullable: true
        properties:
          $ref: '#/components/schemas/StakingWalletEntityProperties'
      required:
        - enterpriseId
        - walletId
        - walletType
        - coin
        - delegated
        - pendingUnstake
        - pendingStake
        - rewards
        - pendingClaimRewards
        - lockedRewards
        - reserved
        - pendingReserved
        - apy
    StakingWalletEntityProperties:
      oneOf:
        - $ref: '#/components/schemas/BaseStakingWalletEntityProperties'
        - $ref: '#/components/schemas/EthStakingWalletEntityProperties'
        - $ref: '#/components/schemas/EigenLikeStakingWalletEntityProperties'
        - $ref: '#/components/schemas/WctStakingWalletEntityProperties'
        - $ref: '#/components/schemas/BeraStakingWalletEntityProperties'
        - $ref: '#/components/schemas/AvaxcStakingWalletEntityProperties'
    StakingWalletsResponse:
      type: object
      properties:
        stakingWallets:
          description: An array of staking wallets.
          type: array
          items:
            $ref: '#/components/schemas/StakingWallet'
        page:
          type: integer
          description: The page number for paging purposes.
        totalPages:
          type: integer
          description: The total number of pages for paging purposes.
        totalElements:
          type: integer
          description: The number of elements per page used for paging purposes.
      required:
        - stakingWallets
        - page
        - totalPages
        - totalElements
    StandardIssuerOrderResponse:
      title: StandardIssuerOrderResponse
      allOf:
        - type: object
          properties:
            asset:
              type: string
              description: Full asset identifier (e.g., "eth:usd1", "hteth:sofid")
              example: eth:usd1
              minLength: 1
            destinationWalletId:
              type: string
              description: Destination wallet identifier
              example: 8iMXoeSpS1d1ziEJ
            destinationAddress:
              type: string
              description: Destination blockchain address
              example: d526909b2398a6d579c817dc07fc9d72
              minLength: 1
              pattern: ^[0-9a-f]{32}$
            userId:
              type: string
              description: User identifier who initiated the order
              example: test-user
              minLength: 1
            clientDepositTxHash:
              type: string
              description: Transaction hash of the client deposit
              minLength: 1
            transactions:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - clientDeposit
                      - mint
                      - burn
                      - burnTokenTransfer
                      - clientDisbursement
                      - treasuryMintTransfer
                      - treasuryBurnTransfer
                      - mintRequest
                      - mintOffer
                      - mintAccept
                      - mintTransfer
                      - burnRequest
                      - burnAccept
                    description: Transaction type
                    example: clientDeposit
                  txHash:
                    nullable: true
                    type: string
                    minLength: 1
                    description: Transaction hash (for on-chain transactions)
                    example: >-
                      512f64d10b5f358f6dbf3303f90013cfa46006b02a03282456d6bd6432cc5daf
                  asset:
                    type: string
                    description: Asset token identifier
                    example: eth:usd1
                    minLength: 1
                  amount:
                    type: string
                    description: Transaction amount in lowest denomination
                    example: '500'
                    minLength: 1
                  status:
                    type: string
                    enum:
                      - initiated
                      - signed
                      - unconfirmed
                      - confirmed
                      - rejected
                      - failed
                    description: Current status of transaction
                    example: confirmed
                  createdAt:
                    type: string
                    description: Timestamp when transaction was created
                    example: '2025-04-04T09:26:21.600Z'
                  updatedAt:
                    type: string
                    description: Timestamp when transaction was last updated
                    example: '2025-04-04T09:26:21.600Z'
                required:
                  - type
                  - txHash
                  - asset
                  - amount
                  - status
                  - createdAt
                  - updatedAt
                description: List of transactions associated with the order
        - $ref: '#/components/schemas/IssuerOrderResponseBase'
    StaticFee:
      title: StaticFee
      type: object
      properties:
        type:
          type: string
          enum:
            - static
        amount:
          type: string
          minLength: 1
      required:
        - type
        - amount
    SteadyPaceOrderParameters:
      type: object
      required:
        - interval
        - intervalUnit
        - subOrderSize
      properties:
        interval:
          type: integer
          description: >-
            The interval for the SteadyPace order, specified in conjunction with
            the interval unit.
        intervalUnit:
          type: string
          description: The unit of time for the interval. Defaults to "minute".
          enum:
            - second
            - minute
            - hour
        subOrderSize:
          type: string
          format: decimal
          description: The size of each sub-order in the SteadyPace order.
        variance:
          type: string
          format: decimal
          description: >
            Optional degree of randomization for sub-order sizes. Accepts a
            decimal value rounded to two decimal places between 0 and 1,
            representing the variation in the size of each sub-order. 

            For example, a value of 0.20 indicates a 20% variance in sub-order
            sizes.
    StellarAddress:
      title: Stellar Address
      type: object
      properties:
        memoId:
          type: string
        rootAddress:
          type: string
      required:
        - memoId
        - rootAddress
    StellarSendQueue:
      title: Stellas
      type: object
      properties:
        account:
          type: string
        feeString:
          type: string
        memo:
          type: string
        memoType:
          type: string
        sequenceId:
          type: string
        trustlines:
          type: array
          items:
            type: object
            properties:
              limit:
                type: string
              token:
                type: string
        muxedAddresses:
          type: array
          items:
            type: object
            properties:
              baseAddress:
                type: string
              address:
                type: string
              id:
                type: string
            required:
              - baseAddress
              - address
              - id
        walletInitialization:
          type: boolean
        recipient:
          type: string
    StellarWallet:
      title: Stellar Wallet
      type: object
      properties:
        rootAddress:
          type: string
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        lastMemoId:
          type: string
        stellarUsername:
          type: string
        homeDomain:
          type: string
        stellarAddress:
          type: string
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
      required:
        - rootAddress
        - pendingChainInitialization
        - creationFailure
        - lastMemoId
    StoryDelegationProperties:
      title: STORY Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              description: The BLS public key of the validator.
            stakingPeriod:
              type: string
              format: bigInteger
              description: Staking period (0 for flexible staking).
    StoryStakingRequestEntityProperties:
      title: STORY staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              description: BLS public key of the validator to delegate to.
          required:
            - validatorAddress
    StoryStakingRequestPOSTBody:
      title: STORY stake
      description: >
        Request to stake IP/TIP tokens on Story Protocol.


        **Staking Periods:** Story supports flexible and locked staking periods:

        - FLEXIBLE (default): No lock-up period, 14-day cooldown on unstake

        - SHORT: 90 days lock-up

        - MEDIUM: 360 days lock-up

        - LONG: 540 days lock-up


        Locked staking periods may offer higher rewards but tokens cannot be
        unstaked until the lock period expires.
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            amount:
              description: >-
                Amount to stake in base units (wei for IP/TIP). Minimum 1024 IP
                (1024000000000000000000 wei).
              type: string
              example: '1536000000000000000000'
            validator:
              description: The validator BLS public key to delegate to.
              type: string
            stakingPeriod:
              description: |
                The staking period type determining lock-up duration.
                - FLEXIBLE: No lock-up period (default)
                - SHORT: 90 days lock-up
                - MEDIUM: 360 days lock-up
                - LONG: 540 days lock-up
              type: string
              enum:
                - FLEXIBLE
                - SHORT
                - MEDIUM
                - LONG
              default: FLEXIBLE
              example: FLEXIBLE
          required:
            - amount
            - validator
    StoryUnStakingRequestPOSTBody:
      title: STORY unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    StxDelegationProperties:
      title: STX Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            stxStakingType:
              type: string
              enum:
                - STACK
                - SELF_STACK
                - UNSTACK
            delegationCycle:
              type: string
              format: bigInteger
            validatorAddress:
              type: string
              nullable: true
            btcRewardAddress:
              type: string
              nullable: true
            signerPub:
              type: string
              nullable: true
            signerSignature:
              type: string
              nullable: true
    StxFunctionArg:
      type: object
      description: Generic STX function argument representation (best-effort)
      properties:
        type:
          type: string
          description: Argument type (e.g. 'uint', 'principal', 'buffer', etc.)
        value:
          type: string
          description: Argument value serialized as string
    StxStakingDelegation:
      title: STX Staking Delegation
      allOf:
        - $ref: '#/components/schemas/BaseDelegation'
      type: object
      properties:
        subType:
          description: The staking type.
          type: string
          enum:
            - STACK
        btcRewardAddress:
          description: The BTC address where rewards will be sent.
          type: string
    StxStakingOptions1:
      type: object
      description: STX staking options
      properties:
        functionName:
          type: string
          description: Name of the contract function to call
        functionArgs:
          type: array
          items:
            $ref: '#/components/schemas/StxFunctionArg'
          description: Arguments to pass to the function
        contractName:
          type: string
          default: pox-4
          description: Contract name used for stacking (defaults to pox-4)
      required:
        - functionName
        - functionArgs
    StxStakingRequest:
      title: STX
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/StxStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: The staking type.
          type: string
          enum:
            - STACK
        duration:
          description: The staking duration in blocks.
          type: string
    StxStakingRequestEntityProperties:
      title: STX staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            stxStakingType:
              type: string
              description: Type of STX staking request.
              enum:
                - STACK
                - SELF_STACK
                - UNSTACK
            delegationCycle:
              type: string
            validator:
              type: string
              nullable: true
            btcRewardAddress:
              type: string
              nullable: true
            signerPub:
              type: string
              nullable: true
            signerSignature:
              type: string
              nullable: true
            authId:
              type: string
              nullable: true
            maxAmount:
              type: string
              nullable: true
            contractName:
              type: string
              nullable: true
          required:
            - stxStakingType
            - delegationCycle
    StxStakingRequestPOSTBody:
      title: STX stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: The staking type.
          type: string
          enum:
            - STACK
            - SELF_STACK
          default: STACK
        duration:
          description: The staking duration in blocks.
          type: string
          example: '100'
        validator:
          description: The validator address.
          type: string
        btcRewardAddress:
          description: The BTC address where rewards will be sent.
          type: string
        signerPub:
          description: The public key of the signer.
          type: string
        signerSignature:
          description: The signature of the signer.
          type: string
        authId:
          description: The authorization ID.
          type: string
        maxAmount:
          description: The maximum amount that can be staked.
          type: string
        contractName:
          description: The name of the staking contract.
          type: string
          default: pox-4
    StxStakingTransactionProperties:
      title: STX Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            stxStakingType:
              type: string
              description: Type of STX staking request.
              enum:
                - STACK
                - SELF_STACK
                - UNSTACK
            validatorAddress:
              type: string
            btcRewardAddress:
              type: string
            signerPub:
              type: string
            signerSignature:
              type: string
            maxAmount:
              $ref: '#/components/schemas/IntegerString'
            authId:
              $ref: '#/components/schemas/IntegerString'
            delegationCycle:
              $ref: '#/components/schemas/IntegerString'
    StxUnStakingRequestPOSTBody:
      title: STX unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    StxUnstakingTransactionProperties:
      title: STX Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            stxStakingType:
              type: string
              description: Type of STX staking request.
              enum:
                - STACK
                - SELF_STACK
                - UNSTACK
    SubstrateAccountBaseBuildOptions:
      title: SubstrateAccountBaseBuildOptions
      allOf:
        - type: object
          properties:
            fee:
              type: object
              properties:
                amount:
                  oneOf:
                    - type: string
                    - type: number
                formula:
                  type: string
                  enum:
                    - fixed
                    - feeRate
                    - perKB
                    - custom
                type:
                  type: string
                  enum:
                    - base
                    - max
                    - tip
                unit:
                  type: string
                  enum:
                    - baseUnit
                    - cpu
                    - ram
              required:
                - amount
        - $ref: '#/components/schemas/AccountBaseBuildOptions'
    SubstrateConsolidateIntent:
      title: Substrate Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
    SubstratePaymentIntent:
      title: Substrate Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    SuiBuildOptions:
      title: SuiBuildOptions
      allOf:
        - type: object
          properties:
            feeOptions:
              $ref: '#/components/schemas/SuiFeeOptions'
            lockedAmount:
              $ref: '#/components/schemas/optionalString'
          required:
            - feeOptions
            - lockedAmount
        - $ref: '#/components/schemas/BaseIntent'
    SuiClaimRewardsRequestPOSTBody:
      title: Sui Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Sui.
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    SuiConsolidateIntent:
      title: SUI Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
        - $ref: '#/components/schemas/SuiBuildOptions'
    SuiCustomTxIntent:
      title: SUI Custom Tx Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - customTx
            rawTx:
              type: string
          required:
            - intentType
            - rawTx
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/SuiBuildOptions'
    SuiDelegationProperties:
      title: SUI Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            stakedSuiObjectId:
              type: string
              nullable: true
            bondingTimestamp:
              type: string
              format: bigInteger
              nullable: true
    SuiFeeOptions:
      title: SuiFeeOptions
      type: object
      properties:
        gasLimit:
          type: number
      required:
        - gasLimit
    SuiGoUnstakeIntent:
      title: SuiGoUnstakeIntent
      allOf:
        - $ref: '#/components/schemas/GoUnstakeIntent'
        - $ref: '#/components/schemas/BaseGoStakeIntent'
        - $ref: '#/components/schemas/SuiBuildOptions'
    SuiLikeStakingRequestEntityProperties:
      title: Sui-like staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
          nullable: true
        delegationRequests:
          type: array
          items:
            $ref: '#/components/schemas/DelegationRequest'
          nullable: true
    SuiPaymentIntent:
      title: SUI Payment Intent
      allOf:
        - $ref: '#/components/schemas/PaymentIntent'
        - $ref: '#/components/schemas/SuiBuildOptions'
    SuiSendQueue:
      title: Sui
      type: object
      properties:
        publicKey:
          type: string
        signature:
          type: string
        pendingUnspents:
          type: array
          items:
            type: string
      required:
        - publicKey
        - signature
        - pendingUnspents
    SuiStakingDelegation:
      title: SUI Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
      type: object
      properties:
        properties:
          $ref: '#/components/schemas/SuiDelegationProperties'
        unstakingFee:
          type: string
          format: bigInteger
        unstakingMin:
          type: string
          format: bigInteger
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
    SuiStakingIntent:
      title: SUI Stake Intent
      allOf:
        - type: object
          properties:
            validatorAddress:
              $ref: '#/components/schemas/optionalString'
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
            recipients:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/Address'
                  amount:
                    $ref: '#/components/schemas/Amount'
                  data:
                    $ref: '#/components/schemas/optionalString'
                required:
                  - address
                  - amount
        - $ref: '#/components/schemas/StakeIntent'
    SuiStakingRequest:
      title: SUI
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/SuiStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    SuiStakingRequestPOSTBody:
      title: SUI stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    SuiStakingTransactionProperties:
      title: SUI Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
        - type: object
          properties:
            delegationRequest:
              type: array
              items:
                $ref: '#/components/schemas/DelegationRequest'
    SuiSwitchStakingRequestEntityProperties:
      title: Sui switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
      properties:
        validator:
          type: string
          nullable: true
        delegationId:
          type: string
          nullable: true
        stakedSuiObjectId:
          type: string
          nullable: true
        srcValidatorAddress:
          type: string
          description: The source validator address being switched from.
          nullable: true
        destValidatorAddress:
          type: string
          description: The destination validator address being switched to.
          nullable: true
    SuiSwitchTransactionProperties:
      title: SUI Switch Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
        - type: object
          properties:
            stakedSuiObjectId:
              type: string
    SuiUnStakingRequestPOSTBody:
      title: SUI unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    SuiUnstakingIntent:
      title: SUI Unstaking Intent
      allOf:
        - type: object
          properties:
            stakedSuiObjectId:
              type: string
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - stakedSuiObjectId
        - $ref: '#/components/schemas/WithdrawIntent'
    SuiUnstakingTransactionProperties:
      title: SUI Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            stakedSuiObjectId:
              type: string
    SuiWalStakingRequest:
      title: SUIWAL
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    SuiWalStakingRequestPOSTBody:
      title: SUI:WAL stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    SuiWalUnStakingRequestPOSTBody:
      title: SUI:WAL unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    SupportedAddressFormat:
      title: SupportedAddressFormat
      type: string
      enum:
        - cashaddr
        - base58
    SupportedCurrency:
      title: SupportedCurrency
      type: string
      minLength: 1
    SupportedTokenRecipientEntryItem:
      title: SupportedTokenRecipientEntryItem
      type: object
      properties:
        tokenName:
          type: string
      required:
        - tokenName
    SwiftCodeType:
      title: SwiftCodeType
      type: string
    SwitchValidatorDisclaimerAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseDisclaimer'
      type: object
      description: Disclaimer information for switching validators.
      properties:
        cooldownPeriod:
          description: Cooldown period as a string (e.g., "24h").
          type: string
    SwitchValidatorPermissionAttributes:
      allOf:
        - $ref: '#/components/schemas/BasePermissionAttributes'
      type: object
      description: Permission attributes specific to switching validators.
    SwitchValidatorRequestEntityProperties:
      title: Switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validator:
              type: string
              description: Validator address or identifier to switch to.
              nullable: true
            delegationId:
              type: string
              description: The delegation ID associated with this switch request.
              nullable: true
            srcValidatorAddress:
              type: string
              description: The source validator address being switched from.
              nullable: true
            destValidatorAddress:
              type: string
              description: The destination validator address being switched to.
              nullable: true
    SwitchValidatorSpendableAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseSpendableAttributes'
      type: object
      properties:
        breakdown:
          $ref: '#/components/schemas/SwitchValidatorSpendableBreakdown'
        requiresDelegationId:
          type: boolean
          description: True if a delegation ID must be specified when switching validators.
        requiresAmount:
          type: boolean
          description: True if an amount must be specified when switching validators.
        useDelegationForTarget:
          type: boolean
          description: >-
            True if the validator field of a switch validator request must be a
            validator public key.
    SwitchValidatorSpendableBreakdown:
      type: object
      properties:
        balance:
          type: string
          description: The wallet balance available for validator switching.
        switchFee:
          type: string
          description: The fee required to switch validators.
        switchable:
          $ref: '#/components/schemas/SwitchValidatorSwitchableBreakdown'
    SwitchValidatorSwitchableBreakdown:
      type: object
      properties:
        stakedBalance:
          type: string
          description: The total balance currently staked that can be switched.
        pendingUnstake:
          type: string
          description: The amount currently pending unstake, not switchable until complete.
        maxSwitchable:
          type: string
          description: >-
            The maximum amount of balance that can be switched to another
            validator.
    SwitchValidatorWithCallDataIntent:
      title: Switch Validator With CallData Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - switchValidatorWithCallData
              description: Must be "switchValidatorWithCallData".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
      description: >-
        Switch validators on EVM-compatible chains using pre-computed calldata.

        Supply the staking service's stakingRequestId and the pre-computed
        calldata

        for the validator switch.
    SwitchValidatorsRequestPOSTBody:
      type: object
      description: Base request to switch staking delegation to a new validator.
      required:
        - type
        - delegationId
        - validator
      properties:
        clientId:
          type: string
          description: Optional client defined identifier.
        type:
          type: string
          enum:
            - SWITCH_VALIDATORS
          description: Type of request.
        delegationId:
          type: string
          description: Identifier of the existing delegation to switch from.
        validator:
          type: string
          description: Address of the new validator to delegate to.
    TWAPOrderParameters:
      type: object
      properties:
        isTimeSliced:
          type: boolean
          description: >
            The isTimeSliced field when provided determines the order's time
            slicing behavior:

            - If isTimeSliced is set to true, the order will be executed using a
            time-sliced strategy.

            - If isTimeSliced is set to false, the order will be executed using
            a regular TWAP strategy without time slicing.

            - If isTimeSliced is not specified, the default behavior uses a
            regular TWAP strategy without time slicing.
        boundsControl:
          type: string
          description: >
            The boundsControl field when provided determines how strictly the
            TWAP order adheres to its target fill progression.

            This parameter only applies to regular TWAP orders. It is not
            supported for TimeSliced orders and will be ignored if provided.

            - narrow - within 3% or 3 minutes

            - standard - within 5% or 5 minutes

            - wide - within 7.5% or 7.5 minutes

            - If boundsControl is not specified, the default behavior is
            `standard`.
          enum:
            - narrow
            - standard
            - wide
    TaoDelegationProperties:
      title: TAO Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
              description: The hotkey address of the validator.
            netUID:
              type: string
              format: bigInteger
              description: >-
                The network UID (subnet) where this delegation exists. TAO uses
                different subnets for different purposes.
              nullable: true
            alphaTokenName:
              type: string
              description: The name of the alpha token for this subnet.
              nullable: true
            alphaAmount:
              type: string
              format: bigInteger
              description: The amount of alpha tokens staked in alpha units.
              nullable: true
            totalAlphaRewards:
              type: string
              format: bigInteger
              description: The total alpha rewards accrued in alpha units.
              nullable: true
    TaoStakeIntent:
      title: Tao Stake Intent
      allOf:
        - type: object
          properties:
            amountStaked:
              type: string
          required:
            - amountStaked
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/TaoStakingBaseIntent'
    TaoStakingBaseIntent:
      title: Tao Staking Base Intent
      allOf:
        - type: object
          properties:
            hotkey:
              type: string
            netuid:
              type: string
          required:
            - hotkey
            - netuid
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    TaoStakingRequest:
      title: TAO
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    TaoStakingRequestEntityProperties:
      title: TAO staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validator:
              type: string
              description: Optional validator address.
            netUID:
              type: string
              description: Optional network UID.
    TaoStakingRequestPOSTBody:
      title: TAO stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        netUID:
          description: >-
            The network UID (subnet) for the staking request. TAO uses different
            subnets for different purposes (0-128).
          type: integer
          minimum: 0
          maximum: 128
          nullable: true
          example: 0
    TaoStakingTransactionProperties:
      title: TAO Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            validator:
              type: string
    TaoSwitchNetuidRequestPOSTBody:
      title: TAO Switch Network UID Request
      type: object
      description: >
        Request to switch TAO stake from one subnet (netUID) to another.

        This operation moves your stake to a different subnet, potentially with
        the same or different validator.

        If validator is not specified, the stake will remain with the same
        validator in the new subnet.
      required:
        - type
        - delegationId
        - netUID
      properties:
        clientId:
          type: string
          description: Optional client-defined identifier to detect duplicate requests.
          maxLength: 256
          nullable: true
        type:
          type: string
          enum:
            - SWITCH_VALIDATORS
          description: Type of request. Must be SWITCH_VALIDATORS for netuid switching.
        delegationId:
          type: string
          description: The ID of the existing delegation to switch from.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        validator:
          type: string
          description: >-
            Optional hotkey address of the validator in the new subnet. If not
            provided, uses the same validator.
          example: 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty
          nullable: true
        netUID:
          type: integer
          description: The destination network UID (subnet) to switch to.
          minimum: 0
          maximum: 128
          example: 1
        amount:
          type: string
          description: >-
            The amount to switch in base units (RAO). If not specified, the
            entire delegation will be switched.
          example: '1000000000'
          nullable: true
        switchNetuid:
          type: boolean
          description: Must be set to true to indicate this is a netUID switch operation.
          default: true
          example: true
    TaoSwitchValidatorIntent:
      title: Tao Switch Validator Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - switchValidator
            originHotkey:
              type: string
            destinationHotkey:
              type: string
            originNetuid:
              type: string
            destinationNetuid:
              type: string
            alphaAmount:
              type: string
          required:
            - intentType
            - originHotkey
            - destinationHotkey
            - originNetuid
            - destinationNetuid
            - alphaAmount
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    TaoSwitchValidatorRequestEntityProperties:
      title: TAO switch validator staking request entity properties
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorRequestEntityProperties'
        - type: object
          properties:
            destinationNetuid:
              type: string
              description: TAO-specific destination network UID.
    TaoSwitchValidatorRequestPOSTBody:
      title: TAO Switch Validator Request
      type: object
      description: >
        Request to switch TAO stake from one validator to another within the
        same subnet.

        This operation moves your existing stake to a different validator
        without unstaking.
      required:
        - type
        - delegationId
        - validator
      properties:
        clientId:
          type: string
          description: Optional client-defined identifier to detect duplicate requests.
          maxLength: 256
          nullable: true
        type:
          type: string
          enum:
            - SWITCH_VALIDATORS
          description: Type of request. Must be SWITCH_VALIDATORS for validator switching.
        delegationId:
          type: string
          description: The ID of the existing delegation to switch from.
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        validator:
          type: string
          description: The hotkey address of the new validator to switch to.
          example: 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty
        amount:
          type: string
          description: >-
            The amount to switch in base units (RAO). If not specified, the
            entire delegation will be switched.
          example: '1000000000'
          nullable: true
    TaoSwitchValidatorTransactionProperties:
      title: TAO Switch Validator Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
              description: The amount being switched in base units (RAO).
            validatorAddress:
              type: string
              description: The hotkey address of the origin validator.
            destValidatorAddress:
              type: string
              description: The hotkey address of the destination validator.
            originNetuid:
              type: string
              description: The network UID (subnet) where the stake is currently located.
            destinationNetuid:
              type: string
              description: The network UID (subnet) where the stake will be moved to.
    TaoTransferStakeIntent:
      title: Tao Transfer Stake Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferStake
            originColdkey:
              $ref: '#/components/schemas/optionalString'
            destinationColdkey:
              type: string
            hotkey:
              type: string
            originNetuid:
              type: string
            destinationNetuid:
              type: string
            alphaAmount:
              type: string
          required:
            - intentType
            - originColdkey
            - destinationColdkey
            - hotkey
            - originNetuid
            - destinationNetuid
            - alphaAmount
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/SubstrateAccountBaseBuildOptions'
    TaoUnStakingRequestPOSTBody:
      title: TAO unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    TaoUnstakeIntent:
      title: Tao Unstake Intent
      allOf:
        - type: object
          properties:
            amountUnstaked:
              type: string
          required:
            - amountUnstaked
        - $ref: '#/components/schemas/WithdrawIntent'
        - $ref: '#/components/schemas/TaoStakingBaseIntent'
    TestcoinAddress:
      title: Testcoin Address
      type: object
      additionalProperties: {}
    TestcoinTx:
      title: Testcoin
      type: object
      properties:
        fee:
          type: number
        recipients: {}
        outputs:
          type: array
          items:
            type: string
      required:
        - fee
        - recipients
        - outputs
    TestcoinWallet:
      title: Testcoin Wallet
      type: object
      properties:
        lastChainIndex:
          type: number
    TezosAddress:
      title: Tezos Address
      type: object
      properties:
        counter:
          type: number
        updateTime:
          type: string
          format: date
          title: Date String
        txCount:
          type: number
        pendingChainInitialization:
          type: boolean
        pendingPublicKeyRevelation:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        delegate:
          type: string
        previousLowBalanceEmailSentAt:
          type: string
          format: date
          title: Date String
      required:
        - counter
        - updateTime
        - txCount
        - pendingChainInitialization
        - pendingPublicKeyRevelation
        - creationFailure
    TezosSendQueue:
      title: Tezos
      type: object
      properties:
        feeAddress:
          type: string
        feeAddressCounter:
          type: string
        contactAddress:
          type: string
        contactAddressCounter:
          type: string
        delegate:
          type: string
        walletInitialization:
          type: boolean
        publicKeyRevelation:
          type: boolean
    TezosWallet:
      title: Tezos Wallet
      type: object
      properties:
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        deployedInBlock:
          oneOf:
            - type: number
            - type: boolean
        deployTxHash:
          type: string
        lastChainIndex: {}
        baseAddress:
          type: string
        feeAddress:
          type: string
        safeModeActivated:
          type: string
        lowPriorityFeeAddress:
          type: string
        delegate:
          type: string
      required:
        - pendingChainInitialization
        - creationFailure
    TiaClaimRewardsRequestPOSTBody:
      title: Celestia (TIA) Claim Rewards Request
      type: object
      description: Request to claim staking rewards for Celestia (TIA).
      allOf:
        - $ref: '#/components/schemas/ClaimRewardsRequestPOSTBody'
    TiaStakingRequest:
      title: TIA
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    TiaStakingRequestPOSTBody:
      title: TIA stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    TiaSwitchValidatorsRequestPOSTBody:
      title: Celestia (TIA) Switch Validators Request
      type: object
      description: >-
        Request to switch staking delegation to a new validator for Celestia
        (TIA).
      allOf:
        - $ref: '#/components/schemas/SwitchValidatorsRequestPOSTBody'
    TiaUnStakingRequestPOSTBody:
      title: TIA unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    TimeInForce:
      type: string
      enum:
        - GTC
        - IOC
        - FOK
        - GTD
      description: >
        Time in force policy for the order.

        - GTC (Good Till Cancelled): Order remains active until filled or
        cancelled.

        - IOC (Immediate or Cancel): Order fills as much as possible
        immediately, any unfilled remainder is cancelled.

        - FOK (Fill or Kill): The entire order must be filled immediately or it
        is cancelled completely. Unlike IOC, no partial fills are accepted.

        - GTD (Good Till Date): Order remains active until filled, cancelled, or
        the specified duration expires. Requires `duration` to be set.
    TimeRange:
      type: string
      description: The time range for the data, either hourly or daily.
      enum:
        - HOURLY
        - DAILY
    TimeWindowConditionParameter:
      title: Time window
      type: object
      description: The period of time this condition covers, in seconds.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - timeWindow
          example: timeWindow
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: time window
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The period of time this condition covers, in seconds
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - NON_NEGATIVE_NUMBER
          example: NON_NEGATIVE_NUMBER
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    Token:
      title: Token
      type: object
      properties:
        limit:
          type: string
        token:
          type: string
    TokenAllowanceResponse:
      title: TokenAllowanceResponse
      type: object
      properties:
        allowance:
          type: string
      required:
        - allowance
    TokenAndSignatureConnectionKey:
      title: TokenAndSignatureConnectionKey
      type: object
      properties:
        schema:
          type: string
          enum:
            - tokenAndSignature
        connectionToken:
          type: string
          minLength: 1
        signature:
          type: string
          minLength: 1
      required:
        - schema
        - connectionToken
        - signature
    TokenApprovalIntent:
      title: Intent for approving tokens for spending by a batcher contract
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - tokenApproval
              description: Must be "tokenApproval".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithTokenName'
      description: |-
        Approve an ERC-20 token for spending by the BitGo batcher contract on
        EVM-compatible chains. Required before sending a token that has not been
        previously approved. Provide tokenName to identify the token.
    TokenConnectionKey:
      title: TokenConnectionKey
      type: object
      properties:
        schema:
          type: string
          enum:
            - token
        connectionToken:
          type: string
          minLength: 1
      required:
        - schema
        - connectionToken
    TokenData:
      title: TokenData
      allOf:
        - $ref: '#/components/schemas/TokenRecipientEntryItem'
        - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem'
        - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem'
    TokenData1:
      type: object
      properties:
        tokenType:
          type: string
          description: The type of standard of the token.
          example: ERC721
        tokenQuantity:
          type: string
          description: The quantity of token to transfer (should be 1 for ERC721).
          example: '101'
        tokenContractAddress:
          type: string
          description: >-
            Address of the token contract which is necessary if the token is not
            supported on WP.
          example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a'
        tokenName:
          type: string
          description: Name of the token as it is supported on WP.
          example: tpolygon:name
        tokenId:
          type: string
          description: Id of the token to be transferred which is required for NFTs.
          example: '123'
        decimalPlaces:
          type: number
          description: >-
            Number of decimal places the token uses (for fungible tokens
            unsupported in WP).
          example: 18
    TokenLimits:
      title: TokenLimits
      type: object
      properties:
        spendingLimits:
          type: array
          items:
            type: object
            properties:
              coin:
                type: string
              txValueLimit:
                type: string
              maxLimit:
                type: boolean
            required:
              - coin
        allErc20TokensLimit:
          $ref: '#/components/schemas/AllErc20TokensTemplateLimit'
    TokenRecipientEntryItem:
      title: TokenRecipientEntryItem
      type: object
      properties:
        tokenQuantity:
          type: string
        tokenType:
          type: string
        tokenId:
          $ref: '#/components/schemas/optionalString'
      required:
        - tokenQuantity
        - tokenType
    TokenTransferRecipientParams:
      title: TokenTransferRecipientParams
      type: object
      description: Token transfer recipient params used in freeze metadata.
      properties:
        tokenType:
          type: string
        tokenQuantity:
          type: string
        tokenContractAddress:
          type: string
        tokenName:
          type: string
        tokenId:
          type: string
        decimalPlaces:
          type: number
      required:
        - tokenType
        - tokenQuantity
    TonAddress:
      title: Ton Address
      type: object
      properties:
        addresses:
          type: array
          items:
            type: string
      required:
        - addresses
    TonConsolidateIntent:
      title: TON Consolidate Intent
      allOf:
        - $ref: '#/components/schemas/AccountBaseConsolidateIntent'
    TonDelegateIntent:
      title: TON Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
            useSingleNominator:
              type: boolean
            ownerAddress:
              $ref: '#/components/schemas/optionalString'
            tonStakingType:
              $ref: '#/components/schemas/TonStakingType'
          required:
            - intentType
            - validatorAddress
            - useSingleNominator
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    TonDelegationProperties:
      title: TON Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - MULTI_NOMINATOR_STAKE
                - SINGLE_NOMINATOR_STAKE
                - TON_WHALES
            stakedTonObjectId:
              type: string
              nullable: true
    TonMultiNominatorDelegateIntent:
      title: TON Multi Nominator Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - MULTI_NOMINATOR
          required:
            - intentType
            - validatorAddress
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    TonMultiNominatorUndelegateIntent:
      title: TON Multi Nominator Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - MULTI_NOMINATOR
          required:
            - intentType
            - validatorAddress
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
    TonPaymentIntent:
      title: TON Payment Intent
      allOf:
        - type: object
          properties:
            memo:
              $ref: '#/components/schemas/optionalString'
        - $ref: '#/components/schemas/PaymentIntent'
    TonSingleNominatorDelegateIntent:
      title: TON Single Nominator Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
            ownerAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - SINGLE_NOMINATOR
          required:
            - intentType
            - validatorAddress
            - ownerAddress
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    TonSingleNominatorUndelegateIntent:
      title: TON Single Nominator Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - SINGLE_NOMINATOR
          required:
            - intentType
            - validatorAddress
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    TonStakingDelegation:
      title: TON Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
      type: object
      properties:
        unstakingFee:
          type: string
          format: bigInteger
        unstakingMin:
          type: string
          format: bigInteger
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        properties:
          $ref: '#/components/schemas/TonDelegationProperties'
    TonStakingRequest:
      title: TON
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/TonStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: The staking type.
          type: string
          enum:
            - MULTI_NOMINATOR_STAKE
            - SINGLE_NOMINATOR_STAKE
            - TON_WHALES
    TonStakingRequestEntityProperties:
      title: TON staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            tonStakingType:
              type: string
              description: TON staking mode.
              enum:
                - MULTI_NOMINATOR_STAKE
                - SINGLE_NOMINATOR_STAKE
                - TON_WHALES
            validator:
              type: string
              nullable: true
          required:
            - tonStakingType
    TonStakingRequestPOSTBody:
      title: TON stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: The staking type.
          type: string
          enum:
            - MULTI_NOMINATOR_STAKE
            - SINGLE_NOMINATOR_STAKE
            - TON_WHALES
          default: MULTI_NOMINATOR_STAKE
    TonStakingTransactionProperties:
      title: TON Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/ByovStakingTransactionProperties'
        - type: object
          properties:
            tonStakingType:
              type: string
              description: TON staking mode.
              enum:
                - MULTI_NOMINATOR_STAKE
                - SINGLE_NOMINATOR_STAKE
                - TON_WHALES
    TonStakingType:
      title: TonStakingType
      type: string
      enum:
        - SINGLE_NOMINATOR
        - MULTI_NOMINATOR
        - TON_WHALES
    TonUnStakingRequestPOSTBody:
      title: TON unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
    TonUndelegateIntent:
      title: TON Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
            useSingleNominator:
              type: boolean
            singleNominatorAmount:
              $ref: '#/components/schemas/Amount'
            tonStakingType:
              $ref: '#/components/schemas/TonStakingType'
          required:
            - intentType
            - validatorAddress
            - useSingleNominator
            - singleNominatorAmount
        - $ref: '#/components/schemas/BaseIntent'
    TonUnstakingTransactionProperties:
      title: TON Unstaking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              description: TON staking mode.
              enum:
                - MULTI_NOMINATOR_STAKE
                - SINGLE_NOMINATOR_STAKE
                - TON_WHALES
            singleNomWithdrawTime:
              type: string
              format: date-time
    TonWallet:
      title: Ton Wallet
      type: object
      properties:
        rootAddress:
          type: string
        memoId:
          type: string
        lastMemoId:
          type: string
        seqno:
          type: number
        lastChainIndex:
          type: object
          additionalProperties:
            type: number
        walletVersion:
          type: number
      required:
        - rootAddress
        - memoId
        - lastMemoId
        - seqno
    TonWhalesDelegateIntent:
      title: TON Whales Delegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegate
            validatorAddress:
              type: string
            tonStakingType:
              type: string
              enum:
                - TON_WHALES
          required:
            - intentType
            - validatorAddress
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    TonWhalesUndelegateIntent:
      title: TON Whales Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            validatorAddress:
              type: string
            withdrawalAmount:
              $ref: '#/components/schemas/Amount'
            tonStakingType:
              type: string
              enum:
                - TON_WHALES
          required:
            - intentType
            - validatorAddress
            - withdrawalAmount
            - tonStakingType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    Touchpoint:
      type: object
      description: A Touchpoint. For example the Transfer from a Wallet Touchpoint.
      required:
        - id
        - name
        - status
        - label
        - description
        - adminOnly
      properties:
        id:
          type: string
          description: Id of the Touchpoint. A UUID.
          example: 306258df-dcab-489e-a9fe-ff28ce9fa312
        name:
          type: string
          description: Name of the Touchpoint.
          enum:
            - wallet.segregated.transfer
            - policies.management.edit
          example: wallet.segregated.transfer
        label:
          type: string
          description: A label for the Touchpoint which can be shown to an end user.
          example: Transfer from a Segregated Wallet
        description:
          type: string
          description: A description for the Touchpoint which can be shown to an end user.
          example: When transferring from a BitGo Segregated Wallet
        status:
          type: string
          description: >
            Status of the Touchpoint. Indicates if the Touchpoint is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The Touchpoint is available for use.

            * `INACTIVE` - The Touchpoint is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal Touchpoint, false otherwise.
          example: false
    TouchpointsResults:
      description: A paginated list of Touchpoints
      allOf:
        - type: object
          properties:
            touchpoints:
              type: array
              items:
                $ref: '#/components/schemas/Touchpoint'
        - $ref: '#/components/schemas/PaginatedResults'
    TradeBaseQuoteInbound:
      title: TradeBaseQuoteInbound
      oneOf:
        - type: object
          properties:
            base:
              $ref: '#/components/schemas/TradeCurrencyPositiveInbound'
            quote:
              $ref: '#/components/schemas/TradeCurrencyNegativeInbound'
          required:
            - base
            - quote
        - type: object
          properties:
            base:
              $ref: '#/components/schemas/TradeCurrencyNegativeInbound'
            quote:
              $ref: '#/components/schemas/TradeCurrencyPositiveInbound'
          required:
            - base
            - quote
    TradeBaseReq:
      title: TradeBaseReq
      type: object
      properties:
        externalId:
          type: string
          minLength: 1
        externalOrderId:
          type: string
          minLength: 1
        partyConnectionId:
          type: string
          title: uuid
        tradedAt:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - externalId
        - externalOrderId
        - partyConnectionId
        - tradedAt
    TradeCurrencyNegativeInbound:
      title: TradeCurrencyNegativeInbound
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/BNSupportedCurrency'
        quantity:
          type: string
      required:
        - currency
        - quantity
    TradeCurrencyPositiveInbound:
      title: TradeCurrencyPositiveInbound
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/BNSupportedCurrency'
        quantity:
          type: string
      required:
        - currency
        - quantity
    TradePayloadResponse:
      title: TradePayloadResponse
      type: object
      properties:
        payload:
          type: string
      required:
        - payload
    TradeUser:
      required:
        - email
        - firstName
        - id
        - lastName
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the user
        firstName:
          type: string
          description: First name of the user
        lastName:
          type: string
          description: Last name of the user
        email:
          type: string
          format: email
          description: Email address of the user
      example:
        id: a253c86c-1f0f-42cc-bcd0-2dcc5040b204
        firstName: John
        lastName: Doe
        email: john.doe@example.com
    Trades:
      type: array
      items:
        $ref: '#/components/schemas/PrimeTrade'
    TradfyCurrency:
      title: TradfyCurrency
      type: string
      enum:
        - usd
      description: Supported tradfy currencies (extensible)
    TradfyTransferDirection:
      title: TradfyTransferDirection
      allOf:
        - $ref: '#/components/schemas/TradfyTransferDirectionEnum'
      description: Supported transfer directions (extensible)
    TradfyTransferDirectionEnum:
      type: string
      enum:
        - in
    TradfyTransferType:
      title: TradfyTransferType
      allOf:
        - $ref: '#/components/schemas/TradfyTransferTypeEnum'
      description: Supported transfer types (extensible)
    TradfyTransferTypeEnum:
      type: string
      enum:
        - ach-us
    TradingAccountSettingsResponse:
      title: TradingAccountSettingsResponse
      type: object
      properties:
        accountId:
          type: string
        affirmationExpirationTime:
          type: number
        feeRates:
          type: object
          properties:
            settlement:
              oneOf:
                - type: number
                  maximum: 1
                - type: string
          required:
            - settlement
        referralCode:
          type: string
        queueAutomationEnabled:
          type: boolean
        queueAutomationTransactionRouteId:
          type: string
        queueLastProcessed:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - accountId
        - affirmationExpirationTime
        - referralCode
        - queueAutomationEnabled
    TradingPartnerListResponse:
      title: TradingPartnerListResponse
      type: object
      properties:
        tradingPartnerList:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              primaryAccountId:
                type: string
              primaryEnterpriseName:
                type: string
              secondaryAccountId:
                type: string
              secondaryEnterpriseName:
                type: string
              status:
                $ref: '#/components/schemas/TradingPartnerStatuses'
              addressBookConnectionId:
                type: string
              addressBookConnectionUpdatedAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - primaryAccountId
              - primaryEnterpriseName
              - secondaryAccountId
              - secondaryEnterpriseName
              - status
              - updatedAt
      required:
        - tradingPartnerList
    TradingPartnerStatuses:
      title: TradingPartnerStatuses
      oneOf:
        - $ref: '#/components/schemas/TradingPartnerUpdateStatus'
        - type: string
          enum:
            - pending
    TradingPartnerUpdateStatus:
      title: TradingPartnerUpdateStatus
      type: string
      enum:
        - accepted
        - rejected
        - canceled
    TradingValue:
      title: Go Account
      type: object
      description: Go Account.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - trading
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Trading Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: A trading wallet
    Transaction:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/TransactionState1'
        unsignedTx:
          allOf:
            - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction'
          description: Holds the unsigned transaction for this transaction in a tx-request.
        signatureShares:
          type: array
          description: >-
            Only used for MPC coins. This is used to collect signature shares
            from and exchange them with the user. Holds the signature shares for
            this transaction in a tx-request.
          items:
            $ref: '#/components/schemas/SignatureShare'
        commitmentShares:
          type: array
          description: >-
            Only used for MPC coins on EdDSA curve. This is used to collect
            commitment shares from and exchange them with the user. Holds the
            commitment shares for this transaction in a tx-request.
          items:
            $ref: '#/components/schemas/CommitmentShare'
        txHash:
          type: string
          description: >-
            The hash of the transaction from the TxRequest that has been signed
            and is pending broadcast.
        bitgoPaillierChallenge:
          description: >-
            BitGo-to-user paillier challenge. Required when signing with ECDSA
            MPC wallets.
          type: object
          properties:
            p:
              type: array
              items:
                type: string
      required:
        - state
        - unsignedTx
    Transaction1:
      title: Transaction
      type: object
      description: Transaction details
      properties:
        id:
          type: string
        normalizedTxHash:
          type: string
        blockHeight:
          type: number
        inputIds: {}
        entries: {}
        inputs: {}
        outputs: {}
        size:
          type: number
        date:
          type: string
          format: date-time
          title: ISO Date String
        fee:
          type: number
        feeString:
          type: string
        hex:
          type: string
        confirmations:
          type: number
        blockHash:
          type: string
        blockPosition:
          type: number
        label:
          type: string
      required:
        - id
        - normalizedTxHash
        - blockHeight
        - inputIds
        - entries
        - inputs
        - outputs
        - size
        - date
        - fee
        - feeString
        - hex
        - confirmations
    TransactionBuildParams:
      type: object
      properties:
        sequenceId:
          type: string
          format: uuid
          description: Unique sequence identifier
        recipients:
          type: array
          description: Recipient build params data
          items:
            $ref: '#/components/schemas/Recipient'
        stakingParams:
          $ref: '#/components/schemas/StakingParams'
        gasPrice:
          type: string
          description: The gas price in base units.
        gasLimit:
          type: string
          description: The gas limit in base units.
        stakingOptions:
          $ref: '#/components/schemas/StakingOptions'
        type:
          type: string
          description: The transaction type (internal use).
        senderWalletId:
          type: string
          description: The wallet ID of the sender.
        feeRate:
          type: integer
          description: Fee rate (used in UTXO chains).
        unspents:
          type: array
          items:
            type: string
          description: List of unspent transaction outputs (UTXOs).
        silentSignature:
          type: boolean
          description: Indicates if silent signature is enabled.
        unstakingParams:
          $ref: '#/components/schemas/UnstakingParams'
    TransactionBuildRequest:
      title: Withdrawal
      allOf:
        - $ref: '#/components/schemas/BuildParams'
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  amount:
                    allOf:
                      - $ref: '#/components/schemas/RecipientAmount'
                    description: >-
                      String representation of the amount to send in base units
                      (satoshis/litoshis/zatoshis/duffs). For doge, only string
                      is allowed. Passing in 'max' will send the recipient the
                      maximum amount available, minus fees and amounts for other
                      recipients. Only a single recipient with a 'max' amount is
                      allowed.
                  address:
                    allOf:
                      - $ref: '#/components/schemas/AddressString3'
                    description: The address to send to
                  memo:
                    anyOf:
                      - $ref: '#/components/schemas/MemoString'
                      - $ref: '#/components/schemas/MemoObject'
              description: >
                A list of recipient addresses and amounts. Must be present but
                empty for Child-Pays-For-Parent transactions and for ERC-7984
                token enablement transactions (use `enableTokens` in that case —
                the server derives the delegation calldata and overrides this
                field internally).
            txFormat:
              $ref: '#/components/schemas/UtxoTransactionFormat'
            enableTokens:
              type: array
              description: >
                Tokens to enable decryption delegation for (ERC-7984 / Zama
                confidential tokens, ETH family only). When present,
                `recipients` must be an empty array — the server derives
                delegation calldata from this field and overrides `recipients`
                internally.
              items:
                type: object
                required:
                  - name
                  - address
                properties:
                  name:
                    type: string
                    description: Token coin name (e.g. "hteth:cusdt")
                  address:
                    type: string
                    description: >-
                      Wallet address that will delegate decryption rights (the
                      owner address — must be registered to this wallet)
          required:
            - recipients
    TransactionBuildResult:
      type: object
      properties:
        keyDerivationPath:
          type: string
    TransactionInitiateRequest:
      allOf:
        - $ref: '#/components/schemas/BuildParams'
        - type: object
          properties:
            recipients:
              type: array
              items:
                type: object
                properties:
                  amount:
                    allOf:
                      - $ref: '#/components/schemas/RecipientAmount'
                    description: >-
                      String representation of the amount to send in base units
                      (satoshis/litoshis/zatoshis/duffs). For doge, only string
                      is allowed. Passing in 'max' will send the recipient the
                      maximum amount available, minus fees and amounts for other
                      recipients. Only a single recipient with a 'max' amount is
                      allowed.
                  address:
                    allOf:
                      - $ref: '#/components/schemas/AddressString3'
                    description: The address to send to
                  memo:
                    anyOf:
                      - $ref: '#/components/schemas/MemoString'
                      - $ref: '#/components/schemas/MemoObject'
              description: >-
                A list of recipient addresses and amounts. Must be present but
                empty for Child-Pays-For-Parent transactions.
    TransactionIntent:
      title: TransactionIntent
      oneOf:
        - $ref: '#/components/schemas/AdaConsolidateIntent'
        - $ref: '#/components/schemas/AdaPaymentIntent'
        - $ref: '#/components/schemas/AdaStakeClaimRewardsIntent'
        - $ref: '#/components/schemas/AdaStakeIntent'
        - $ref: '#/components/schemas/AdaUnstakeIntent'
        - $ref: '#/components/schemas/AdaVoteDelegationIntent'
        - $ref: '#/components/schemas/AptCustomTxIntent'
        - $ref: '#/components/schemas/AtomPaymentIntent'
        - $ref: '#/components/schemas/AtomStakeIntent'
        - $ref: '#/components/schemas/AtomUnstakeIntent'
        - $ref: '#/components/schemas/BabyCreateBtcDelegationIntent'
        - $ref: '#/components/schemas/BabyWithdrawRewardIntent'
        - $ref: '#/components/schemas/BscDelegateIntent'
        - $ref: '#/components/schemas/BscUnDelegateIntent'
        - $ref: '#/components/schemas/BscWithdrawUndelegateIntent'
        - $ref: '#/components/schemas/CantonAllocationAllocateIntent'
        - $ref: '#/components/schemas/CantonAllocationOfferWithdrawnIntent'
        - $ref: '#/components/schemas/CantonAllocationRejectIntent'
        - $ref: '#/components/schemas/CantonAllocationRequestIntent'
        - $ref: '#/components/schemas/CantonCosignDelegationAcceptIntent'
        - $ref: '#/components/schemas/CantonCosignDelegationProposalIntent'
        - $ref: '#/components/schemas/CantonCommandIntent'
        - $ref: '#/components/schemas/CantonPaymentIntent'
        - $ref: '#/components/schemas/CantonTransferAcceptIntent'
        - $ref: '#/components/schemas/CantonTransferAcknowledgeIntent'
        - $ref: '#/components/schemas/CantonTransferOfferWithdrawnIntent'
        - $ref: '#/components/schemas/CantonTransferRejectIntent'
        - $ref: '#/components/schemas/CantonEndInvestorOnboardingOfferIntent'
        - $ref: '#/components/schemas/CantonEndInvestorOnboardingAcceptIntent'
        - $ref: '#/components/schemas/CantonEndInvestorOnboardingRejectIntent'
        - $ref: '#/components/schemas/CantonParticipantOnboardingRequestIntent'
        - $ref: '#/components/schemas/ClaimIntent'
        - $ref: '#/components/schemas/CosmosContractCallIntent'
        - $ref: '#/components/schemas/CosmosPaymentIntent'
        - $ref: '#/components/schemas/CosmosStakeClaimRewardsIntent'
        - $ref: '#/components/schemas/CosmosStakeIntent'
        - $ref: '#/components/schemas/CosmosSwitchValidatorIntent'
        - $ref: '#/components/schemas/CosmosUnstakeIntent'
        - $ref: '#/components/schemas/DefiDepositIntent'
        - $ref: '#/components/schemas/DefiRedeemIntent'
        - $ref: '#/components/schemas/DotConsolidateIntent'
        - $ref: '#/components/schemas/DotCreateAccountIntent'
        - $ref: '#/components/schemas/DotPaymentIntent'
        - $ref: '#/components/schemas/DotStakingIntent'
        - $ref: '#/components/schemas/DotUnstakingIntent'
        - $ref: '#/components/schemas/DotWithdrawStakeIntent'
        - $ref: '#/components/schemas/DelegateIntent'
        - $ref: '#/components/schemas/EthAccelerationIntent'
        - $ref: '#/components/schemas/EthConsolidateIntent'
        - $ref: '#/components/schemas/EthConsolidateTokenIntent'
        - $ref: '#/components/schemas/EthFillNonceIntent'
        - $ref: '#/components/schemas/FillNonceIntent'
        - $ref: '#/components/schemas/EthPaymentIntent'
        - $ref: '#/components/schemas/EthStakingIntent'
        - $ref: '#/components/schemas/EthTransferTokenIntent'
        - $ref: '#/components/schemas/StakeClaimRewardsIntent'
        - $ref: '#/components/schemas/UndelegateIntent'
        - $ref: '#/components/schemas/FeeAddressTransferIntent'
        - $ref: '#/components/schemas/HbarUpdateAccountIntent'
        - $ref: '#/components/schemas/HypeevmBridgeFundsIntent'
        - $ref: '#/components/schemas/HypeevmSpotTransferIntent'
        - $ref: '#/components/schemas/HypeevmEnableBridgingIntent'
        - $ref: '#/components/schemas/IcpPaymentIntent'
        - $ref: '#/components/schemas/IotaConsolidateIntent'
        - $ref: '#/components/schemas/IotaPaymentIntent'
        - $ref: '#/components/schemas/LightningPaymentIntent'
        - $ref: '#/components/schemas/MmiSignMessageIntent'
        - $ref: '#/components/schemas/MmiSignTransactionIntent'
        - $ref: '#/components/schemas/NearStakeIntent'
        - $ref: '#/components/schemas/NearUnstakeIntent'
        - $ref: '#/components/schemas/NearWithdrawIntent'
        - $ref: '#/components/schemas/PolyxCreateAccountIntent'
        - $ref: '#/components/schemas/PolyxPreApproveAssetIntent'
        - $ref: '#/components/schemas/PolyxStakeIntent'
        - $ref: '#/components/schemas/PolyxSwitchValidatorIntent'
        - $ref: '#/components/schemas/PolyxUnstakeIntent'
        - $ref: '#/components/schemas/PolyxWithdrawIntent'
        - $ref: '#/components/schemas/SolAuthorizeIntent'
        - $ref: '#/components/schemas/SolClaimIntent'
        - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent'
        - $ref: '#/components/schemas/SolConsolidateIntent'
        - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent'
        - $ref: '#/components/schemas/SolCustomTxIntent'
        - $ref: '#/components/schemas/SolDeactivateIntent'
        - $ref: '#/components/schemas/SolDelegateIntent'
        - $ref: '#/components/schemas/SolGoUnstakeIntent'
        - $ref: '#/components/schemas/SolPaymentIntent'
        - $ref: '#/components/schemas/SolStakeIntent'
        - $ref: '#/components/schemas/SolUnstakeIntent'
        - $ref: '#/components/schemas/SolVersionedCustomTxIntent'
        - $ref: '#/components/schemas/SubstrateConsolidateIntent'
        - $ref: '#/components/schemas/SubstratePaymentIntent'
        - $ref: '#/components/schemas/SuiConsolidateIntent'
        - $ref: '#/components/schemas/SuiCustomTxIntent'
        - $ref: '#/components/schemas/SuiGoUnstakeIntent'
        - $ref: '#/components/schemas/SuiPaymentIntent'
        - $ref: '#/components/schemas/SuiStakingIntent'
        - $ref: '#/components/schemas/SuiUnstakingIntent'
        - $ref: '#/components/schemas/TaoStakeIntent'
        - $ref: '#/components/schemas/TaoSwitchValidatorIntent'
        - $ref: '#/components/schemas/TaoTransferStakeIntent'
        - $ref: '#/components/schemas/TaoUnstakeIntent'
        - $ref: '#/components/schemas/TokenApprovalIntent'
        - $ref: '#/components/schemas/TonConsolidateIntent'
        - $ref: '#/components/schemas/TonDelegateIntent'
        - $ref: '#/components/schemas/TonMultiNominatorDelegateIntent'
        - $ref: '#/components/schemas/TonMultiNominatorUndelegateIntent'
        - $ref: '#/components/schemas/TonPaymentIntent'
        - $ref: '#/components/schemas/TonSingleNominatorDelegateIntent'
        - $ref: '#/components/schemas/TonSingleNominatorUndelegateIntent'
        - $ref: '#/components/schemas/TonUndelegateIntent'
        - $ref: '#/components/schemas/TonWhalesDelegateIntent'
        - $ref: '#/components/schemas/TonWhalesUndelegateIntent'
        - $ref: '#/components/schemas/TrxClaimRewardsIntent'
        - $ref: '#/components/schemas/TrxDelegateResourceIntent'
        - $ref: '#/components/schemas/TrxFreezeIntent'
        - $ref: '#/components/schemas/TrxUndelegateResourceIntent'
        - $ref: '#/components/schemas/TrxUnfreezeIntent'
        - $ref: '#/components/schemas/TrxVoteIntent'
        - $ref: '#/components/schemas/TrxWithdrawExpireUnfreezeIntent'
        - $ref: '#/components/schemas/VetStakingIntent'
        - $ref: '#/components/schemas/VetDelegateIntent'
        - $ref: '#/components/schemas/VetExitDelegationIntent'
        - $ref: '#/components/schemas/VetBurnNFTIntent'
        - $ref: '#/components/schemas/VetStakeClaimRewardsIntent'
        - $ref: '#/components/schemas/VetValidatorRegistrationIntent'
        - $ref: '#/components/schemas/VetIncreaseStakeIntent'
        - $ref: '#/components/schemas/VetDecreaseStakeIntent'
        - $ref: '#/components/schemas/VetSignalExitIntent'
        - $ref: '#/components/schemas/VetWithdrawStakeIntent'
        - $ref: '#/components/schemas/WalletRecoveryIntent'
        - $ref: '#/components/schemas/BaseStakeIntentWithCalldata'
        - $ref: '#/components/schemas/StakeWithCallDataIntent'
        - $ref: '#/components/schemas/SwitchValidatorWithCallDataIntent'
        - $ref: '#/components/schemas/CoreDaoDelegateIntent'
        - $ref: '#/components/schemas/CoreDaoUndelegateIntent'
        - $ref: '#/components/schemas/CoreDaoClaimIntent'
        - $ref: '#/components/schemas/EthLikeStakeIntent'
        - $ref: '#/components/schemas/BeraDelegateIntent'
        - $ref: '#/components/schemas/WalrusStakingIntent'
        - $ref: '#/components/schemas/WalrusUndelegateIntent'
        - $ref: '#/components/schemas/WalrusWithdrawIntent'
        - $ref: '#/components/schemas/XdcUploadKycIntent'
        - $ref: '#/components/schemas/XdcProposeIntent'
        - $ref: '#/components/schemas/XdcResignIntent'
        - $ref: '#/components/schemas/XdcWithdrawIntent'
        - $ref: '#/components/schemas/BaseIntent'
    TransactionRequest:
      anyOf:
        - $ref: '#/components/schemas/TransactionRequestLite1'
        - $ref: '#/components/schemas/TransactionRequestFull1'
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
    TransactionRequest1:
      title: TransactionRequest
      oneOf:
        - $ref: '#/components/schemas/TransactionRequestLite'
        - $ref: '#/components/schemas/TransactionRequestFull'
    TransactionRequestApiVersion:
      title: TransactionRequestApiVersion
      type: string
      enum:
        - lite
        - full
    TransactionRequestBase:
      title: TransactionRequestBase
      type: object
      properties:
        apiVersion:
          type: string
          enum:
            - lite
            - full
          description: The API version of the transaction request
        txRequestId:
          allOf:
            - $ref: '#/components/schemas/TransactionRequestId'
          description: >-
            A unique ID for the TxRequest document across all wallets. The
            combination of the txRequestId and version will always be unique.
        idempotencyKey:
          type: string
          description: The idempotency key of the transaction request
        walletId:
          allOf:
            - $ref: '#/components/schemas/WalletIdString'
          description: The id of the Wallet the TxRequest is for.
        walletType:
          type: string
          enum:
            - backing
            - cold
            - custodial
            - custodialPaired
            - hot
            - advanced
            - trading
          description: >-
            The type describes who owns the keys to the wallet associated to the
            TxRequest.
        version:
          type: number
          description: The version of the transaction request
        enterpriseId:
          type: string
          description: >-
            If the wallet that owns the TxRequest is owned by an enterprise then
            this is the Id of said enterprise.
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        state:
          $ref: '#/components/schemas/TransactionRequestState'
        date:
          type: string
          description: >-
            The date and time this version of the TxRequest document was
            created.
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        createdDate:
          type: string
          description: The date and time the version 1 TxRequest document was created.
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        userId:
          type: string
          description: >-
            The Id of the User that produced this version of the TxRequest
            document. Could have created a new document or updated an existing
            document.
        initiatedBy:
          type: string
          description: >-
            The Id of the User that originally created the TxRequest document
            (initiated the TxRequest).
        updatedBy:
          type: string
          description: >-
            The Id of the User that last updated the TxRequest document. This is
            an alias for the userId field.
        intent:
          description: The intent of the transaction request
        intents:
          type: array
          items: {}
        pendingApprovalId:
          type: string
          description: >-
            The id of the Pending Approval that was created for the TxRequest if
            one was required.
        policiesChecked:
          type: boolean
        latest:
          type: boolean
          description: Indicates if this is the latest transaction request
        isCanceled:
          type: boolean
          description: True, if the transaction request is canceled.
      required:
        - txRequestId
        - walletId
        - version
        - state
        - date
        - createdDate
        - userId
        - initiatedBy
        - updatedBy
        - intents
        - latest
    TransactionRequestBase1:
      type: object
      properties:
        txRequestId:
          type: string
          description: >-
            A unique ID for the TxRequest document across all wallets. The
            combination of the txRequestId and version will always be unique.
        version:
          type: number
          description: >-
            The version of the document. Data changes are done only with inserts
            and incrementing the version.
        latest:
          type: boolean
          description: >-
            A boolean flag that indicates whether the document is the latest
            version of the TxRequest.
        walletId:
          type: string
          description: The id of the Wallet the TxRequest is for.
        walletType:
          allOf:
            - $ref: '#/components/schemas/WalletTypePublic'
          description: >-
            The type describes who owns the keys to the wallet associated to the
            TxRequest.
        enterpriseId:
          type: string
          description: >-
            If the wallet that owns the TxRequest is owned by an enterprise then
            this is the Id of said enterprise.
        state:
          $ref: '#/components/schemas/TransactionRequestState1'
        date:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: >-
            The date and time this version of the TxRequest document was
            created.
        createdDate:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: The date and time the version 1 TxRequest document was created.
        userId:
          type: string
          description: >-
            The Id of the User that produced this version of the TxRequest
            document. Could have created a new document or updated an existing
            document.
        initiatedBy:
          type: string
          description: >-
            The Id of the User that originally created the TxRequest document
            (initiated the TxRequest).
        updatedBy:
          type: string
          description: >-
            The Id of the User that last updated the TxRequest document. This is
            an alias for the userId field.
        intent:
          $ref: '#/components/schemas/TransactionRequestIntent'
        intents:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRequestIntent'
        pendingApprovalId:
          type: string
          description: >-
            The id of the Pending Approval that was created for the TxRequest if
            one was required.
        isCanceled:
          type: boolean
          description: True, if the transaction request is canceled.
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - createdDate
        - userId
        - initiatedBy
        - updatedBy
        - intents
    TransactionRequestFull:
      title: TransactionRequestFull
      allOf:
        - type: object
          properties:
            transactions:
              type: array
              items:
                type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TransactionState'
                  unsignedTx:
                    $ref: '#/components/schemas/UnsignedTransaction'
                  signatureShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            privateShareProof:
                              type: string
                              description: The private share proof
                            publicShare:
                              type: string
                              description: The public share
                            vssProof:
                              type: string
                              description: The VSS proof of the signature share
                        - $ref: '#/components/schemas/SignatureShareWithoutVssProof'
                  commitmentShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - commitment
                              description: The type of the commitment share
                          required:
                            - type
                        - $ref: '#/components/schemas/BaseShare'
                  txHash:
                    type: string
                  updatedDate:
                    type: string
                    format: date-time
                    title: ISO Date String
                  createdDate:
                    type: string
                    format: date-time
                    title: ISO Date String
                required:
                  - state
                  - unsignedTx
                description: The transactions associated with the transaction request
            messages:
              type: array
              items:
                type: object
                description: The messages associated with the transaction request
                properties:
                  state:
                    allOf:
                      - $ref: '#/components/schemas/TransactionState'
                    description: The current state of the message
                  signatureShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            privateShareProof:
                              type: string
                              description: The private share proof
                            publicShare:
                              type: string
                              description: The public share
                            vssProof:
                              type: string
                              description: The VSS proof of the signature share
                        - $ref: '#/components/schemas/SignatureShareWithoutVssProof'
                      description: Signature shares for the message
                  privateSignatureShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            privateShareProof:
                              type: string
                              description: The private share proof
                            publicShare:
                              type: string
                              description: The public share
                            vssProof:
                              type: string
                              description: The VSS proof of the signature share
                        - $ref: '#/components/schemas/SignatureShareWithoutVssProof'
                      description: Private signature shares for the message
                  commitmentShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - commitment
                              description: The type of the commitment share
                          required:
                            - type
                        - $ref: '#/components/schemas/BaseShare'
                      description: Commitment shares for the message (used for EdDSA)
                  encryptedShares:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            type:
                              $ref: '#/components/schemas/ShareType'
                          required:
                            - type
                        - $ref: '#/components/schemas/BaseShare'
                      description: Encrypted shares for the message
                  txHash:
                    type: string
                    description: Transaction hash
                  updatedDate:
                    type: string
                    description: Date when the message was last updated
                    format: date-time
                    title: ISO Date String
                  createdDate:
                    type: string
                    description: Date when the message was created
                    format: date-time
                    title: ISO Date String
                  messageRaw:
                    type: string
                    description: The raw message to be signed
                  messageEncoded:
                    type: string
                    description: The encoded message
                  messageBroadcastable:
                    type: string
                    description: The broadcastable message
                  messageStandardType:
                    type: string
                    description: The encoded message
                  derivationPath:
                    type: string
                    description: Derivation path for the message
                  combineSigShare:
                    type: string
                    description: Combined signature share
                  coin:
                    type: string
                    description: Coin type for the message
                  bitgoPaillierChallenge:
                    description: BitGo's Paillier challenge for ECDSA
                  encryptedChallenge:
                    type: string
                    description: BitGo's encrypted challenge for ECDSA with Range Proofs
                required:
                  - state
                  - messageRaw
        - $ref: '#/components/schemas/TransactionRequestBase'
    TransactionRequestFull1:
      title: Full
      allOf:
        - $ref: '#/components/schemas/TransactionRequestBase1'
        - type: object
          properties:
            transactions:
              description: Transaction information.
              type: array
              items:
                $ref: '#/components/schemas/Transaction'
            messages:
              description: Messages for the transaction request.
              type: array
              items:
                $ref: '#/components/schemas/Message1'
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
        - transactions
    TransactionRequestId:
      title: TransactionRequestId
      type: string
      example: 123e4567-e89b-12d3-a456-426614174000
      format: uuid
    TransactionRequestIdNonEmptyString:
      title: TransactionRequestIdNonEmptyString
      type: string
      example: 123e4567-e89b-12d3-a456-426614174000
      minLength: 1
      format: uuid
    TransactionRequestIntent:
      anyOf:
        - $ref: '#/components/schemas/AdaStakeIntent1'
        - $ref: '#/components/schemas/ConsolidateTokenIntent1'
        - $ref: '#/components/schemas/CosmosContractCallIntent1'
        - $ref: '#/components/schemas/DOTClaimIntent'
        - $ref: '#/components/schemas/DotPaymentIntent1'
        - $ref: '#/components/schemas/DotStakingIntent1'
        - $ref: '#/components/schemas/DotUnstakingIntent1'
        - $ref: '#/components/schemas/EthAccelerationIntent1'
        - $ref: '#/components/schemas/EthFillNonceIntent1'
        - $ref: '#/components/schemas/EthPaymentIntent1'
        - $ref: '#/components/schemas/ETHSignMessageIntent'
        - $ref: '#/components/schemas/EthStakingIntent1'
        - $ref: '#/components/schemas/NearStakeIntent1'
        - $ref: '#/components/schemas/NearUnstakeIntent1'
        - $ref: '#/components/schemas/NearWithdrawIntent1'
        - $ref: '#/components/schemas/SolClaimIntent1'
        - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent1'
        - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent1'
        - $ref: '#/components/schemas/SolStakeIntent1'
        - $ref: '#/components/schemas/SolUnstakeIntent1'
        - $ref: '#/components/schemas/TransferTokenIntent1'
        - $ref: '#/components/schemas/TrxDelegateResourceIntent1'
        - $ref: '#/components/schemas/TrxUndelegateResourceIntent1'
        - $ref: '#/components/schemas/UnstakeIntent2'
        - $ref: '#/components/schemas/WalletRecoveryIntent1'
        - $ref: '#/components/schemas/WithdrawIntent2'
    TransactionRequestLite:
      title: TransactionRequestLite
      allOf:
        - type: object
          properties:
            intent:
              allOf:
                - $ref: '#/components/schemas/TransactionIntent'
              description: The intent of the transaction request
            unsignedTxs:
              type: array
              items:
                type: object
                properties:
                  parsedTx:
                    $ref: '#/components/schemas/ParsedTx'
                  serializedTxHex:
                    type: string
                    description: The unsigned transaction as a hex string.
                  signableHex:
                    type: string
                    description: >-
                      The portion of a transaction used to generate a signature
                      (may or may not be the same as serializedTxHex) as a hex
                      string.
                  derivationPath:
                    type: string
                    description: A bip32 path.
                  coinSpecific:
                    allOf:
                      - type: object
                        properties:
                          nonceAddress:
                            type: string
                          stakingAddress:
                            type: string
                          signature:
                            type: string
                      - type: object
                        additionalProperties: {}
                    description: Coin specific information.
                  feeInfo:
                    type: object
                    properties:
                      fee:
                        oneOf:
                          - type: string
                          - type: number
                      feeString:
                        type: string
                    required:
                      - fee
                      - feeString
                required:
                  - parsedTx
                  - serializedTxHex
                  - signableHex
                description: >-
                  Holds all unsigned transactions that will be used to fulfill
                  the TxRequest for MPC wallets.
            signatureShares:
              type: array
              items:
                allOf:
                  - type: object
                    properties:
                      vssProof:
                        type: string
                        description: The VSS proof of the signature share
                      privateShareProof:
                        type: string
                        description: The private share proof
                      publicShare:
                        type: string
                        description: The public share
                  - $ref: '#/components/schemas/SignatureShareWithoutVssProof'
                description: >-
                  Only used for MPC coins. This is used to collect signature
                  shares from and exchange them with the user.
            commitmentShares:
              type: array
              items:
                allOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - commitment
                        description: The type of the commitment share
                    required:
                      - type
                  - $ref: '#/components/schemas/BaseShare'
                description: >-
                  Only used for MPC coins on EdDSA curve. This is used to
                  collect commitment shares from and exchange them with the
                  user.
            txHashes:
              type: array
              items:
                type: string
                description: >-
                  The hashes of all transactions from the TxRequest that have
                  been signed and are pending broadcast.
        - $ref: '#/components/schemas/TransactionRequestBase'
    TransactionRequestLite1:
      title: Lite
      allOf:
        - $ref: '#/components/schemas/TransactionRequestBase1'
        - type: object
          properties:
            unsignedTxs:
              type: array
              description: >-
                Holds all unsigned transactions that will be used to fulfill the
                TxRequest for MPC wallets.
              items:
                $ref: '#/components/schemas/TransactionRequestUnsignedTransaction'
            signatureShares:
              type: array
              description: >-
                Only used for MPC coins. This is used to collect signature
                shares from and exchange them with the user.
              items:
                $ref: '#/components/schemas/SignatureShare'
            commitmentShares:
              type: array
              description: >-
                Only used for MPC coins on EdDSA curve. This is used to collect
                commitment shares from and exchange them with the user.
              items:
                $ref: '#/components/schemas/CommitmentShare'
            txHashes:
              type: array
              items:
                type: string
                description: >-
                  The hashes of all transactions from the TxRequest that have
                  been signed and are pending broadcast.
      required:
        - txRequestId
        - version
        - latest
        - walletId
        - state
        - date
        - userId
        - intent
    TransactionRequestState:
      title: TransactionRequestState
      type: string
      enum:
        - pendingApproval
        - canceled
        - rejected
        - initialized
        - pendingDelivery
        - delivered
        - pendingUserSignature
        - pendingUserCommitment
        - pendingUserRShare
        - pendingUserGShare
        - readyToSend
        - signed
        - failed
    TransactionRequestState1:
      type: string
      enum:
        - initialized
        - pendingApproval
        - pendingUserCommitment
        - pendingUserRShare
        - pendingUserGShare
        - readyToSend
        - pendingUserSignature
        - pendingDelivery
        - signed
        - delivered
        - canceled
        - rejected
        - failed
    TransactionRequestUnsignedTransaction:
      type: object
      properties:
        serializedTxHex:
          type: string
          description: The unsigned transaction as a hex string.
        signableHex:
          type: string
          description: >-
            The portion of a transaction used to generate a signature (may or
            may not be the same as serializedTxHex) as a hex string.
        derivationPath:
          type: string
          description: A bip32 path.
        feeInfo:
          type: object
          properties:
            feeString:
              type: string
            fee:
              type: number
          required:
            - fee
            - feeString
        coinSpecific:
          description: Coin specific information.
          type: object
        parsedTx:
          description: The parsed transaction information.
          type: object
          properties:
            minerFee:
              type: string
            spendAmount:
              type: string
            spendAmounts:
              type: array
              items:
                type: object
                properties:
                  coinName:
                    type: string
                  amountString:
                    type: string
            payGoFee:
              type: string
            outputs:
              type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                  isPayGo:
                    type: boolean
                  value:
                    type: number
                  wallet:
                    type: string
                  walletV1:
                    type: string
                  baseAddress:
                    type: string
                  enterprise:
                    type: string
                  valueString:
                    type: string
                  data:
                    type: string
                  change:
                    type: boolean
                  coinName:
                    type: string
                required:
                  - address
                  - valueString
            inputs:
              type: array
              items:
                type: object
                properties:
                  derivationIndex:
                    type: number
                  value:
                    type: number
                  address:
                    type: string
                  valueString:
                    type: string
                  chain:
                    type: number
                  index:
                    type: number
                required:
                  - valueString
                  - value
            type:
              type: string
            memo:
              type: string
          required:
            - minerFee
            - outputs
            - inputs
      required:
        - serializedTxHex
        - signableHex
    TransactionResponse:
      type: object
      properties:
        transfer:
          $ref: '#/components/schemas/Transfer'
        txid:
          type: string
          description: The transaction's unique identifier
        tx:
          type: string
          description: >-
            The encoded transaction, either base64 for XLM or hex for other
            coins
        status:
          $ref: '#/components/schemas/TransferState'
    TransactionState:
      title: TransactionState
      type: string
      enum:
        - initialized
        - pendingSignature
        - eddsaPendingCommitment
        - eddsaPendingRShare
        - eddsaPendingGShare
        - ecdsaMPCv2Round1
        - ecdsaMPCv2Round2
        - ecdsaMPCv2Round3
        - eddsaMPCv2Round1
        - eddsaMPCv2Round2
        - eddsaMPCv2Round3
        - readyToCombineShares
        - signed
        - held
        - delivered
        - invalidSignature
        - rejected
      description: >-
        If supplied, only transaction request transaction state changes from the
        provided

        list will trigger notifications. If not provided, all transaction
        request

        transaction state changes will trigger notifications.
    TransactionState1:
      type: string
      enum:
        - initialized
        - pendingSignature
        - eddsaPendingCommitment
        - eddsaPendingRShare
        - eddsaPendingGShare
        - readyToCombineShares
        - signed
        - held
        - delivered
        - invalidSignature
        - rejected
        - ecdsaMPCv2Round1
        - ecdsaMPCv2Round2
        - ecdsaMPCv2Round3
    Transfer:
      type: object
      properties:
        coin:
          $ref: '#/components/schemas/Coin'
        id:
          $ref: '#/components/schemas/Id'
        wallet:
          $ref: '#/components/schemas/Id'
        enterprise:
          $ref: '#/components/schemas/Id'
        txid:
          $ref: '#/components/schemas/TxId'
        normalizedTxHash:
          type: string
          description: >
            A normalized form of `txid` used for deduplication. For most coins
            this is

            identical to `txid`. For account-model coins (e.g. ETH and its
            tokens) it may

            differ from `txid` when the transaction is regenerated. For
            lightning

            transfers, `normalizedTxHash` is identical to `txid` (no
            transformation is

            applied).


            **Go Account / OFC withdrawals:** Like `txid`, this field holds the
            internal

            front-transfer hash, not the on-chain hash. Use
            `metadata[].onChainTxId` for

            the on-chain transaction hash.
          example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
        txidType:
          type: string
          description: The type of the transaction id
          enum:
            - transactionHash
            - blockHash
        height:
          type: integer
          description: >-
            The height of the block this Transfer was confirmed in (999999999 if
            unconfirmed)
        heightId:
          type: string
          description: The unique height id of the block
        date:
          type: string
          format: date-time
          description: The date this Transfer was last updated
        confirmations:
          type: integer
          description: >-
            The number of blocks that have been confirmed since this Transfer's
            block was confirmed
        type:
          type: string
          description: >-
            Defines whether or not this Transfer was sent or received by the
            user
          enum:
            - send
            - receive
        value:
          type: integer
          description: >-
            The total value (in base units) sent by this Transfer (may be
            approximate for ETH and other coins where amounts in base units can
            exceed 2^53 - 1)
        valueString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            The total value (in base units) sent by this Transfer represented as
            a String
        intendedValueString:
          description: >-
            A string representation (in base units) of the initial value for the
            transfer. This is present because when a transaction fails on chain,
            its value is mutated to be zero. This string is immutable and will
            always be the intended value of the initial transfer regardless of
            the final state of the transaction.
          allOf:
            - $ref: '#/components/schemas/IntegerString'
        baseValue:
          type: integer
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees. BitGo is deprecating this field in the future. Instead, use
            baseValueWithoutFees.
        baseValueString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees represented as a string. BitGo is deprecating this field in the
            future. Instead, use baseValueWithoutFees.
        baseValueWithoutFees:
          type: integer
          description: >-
            The value (in base units) sent by this transfer excluding network
            fees.
        baseValueWithoutFeesString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees, represented as a string
        feeString:
          type: string
          description: The Transfer's fee (in base units) represented as a String
        payGoFee:
          type: integer
          description: The Transfer's BitGo fee (in base units)
        payGoFeeString:
          type: string
          description: The Transfer's BitGo fee (in base units) represented as a String
        usd:
          type: number
          description: The amount of USD of this Transfer (will be negative if it's a send)
        usdRate:
          type: number
          description: The USD price at the time this Transfer was created
        state:
          $ref: '#/components/schemas/TransferState'
        tags:
          type: array
          description: The tags to be used on this Transfer (used in Policies)
          items:
            $ref: '#/components/schemas/Id'
        history:
          type: array
          description: >-
            An audit log of events that have happened to the Transfer during its
            lifecycle
          items:
            type: object
            properties:
              date:
                type: string
                format: date-time
                description: The date of this history object
              user:
                $ref: '#/components/schemas/Id'
              action:
                type: string
                enum:
                  - created
                  - signed
                  - unconfirmed
                  - confirmed
                  - approved
                  - commented
                  - removed
                  - failed
                  - rejected
              comment:
                type: string
                description: >-
                  If this history object is of action `commented`, this is the
                  comment from the user
        comment:
          type: string
          description: A comment from the user
        vSize:
          type: integer
          description: The size of the transaction
        coinSpecific:
          type: object
          description: Transfer fields specific to each coin type
        sequenceId:
          type: string
          description: >
            A `sequenceId` is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a `sequenceId` you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            the system only confirms one send request per `sequenceId` (and
            fails all subsequent attempts), you can retry sending without the
            risk of double spending. The `sequenceId` is only visible to users
            on the wallet and is not shared publicly.
        consolidateId:
          $ref: '#/components/schemas/Id'
          description: Consolidation ID if this transfer is part of a consolidation
        txRequestId:
          type: string
          description: Associated transaction request ID
        goStakingRequestId:
          type: string
          description: Associated GO staking request ID
        subType:
          type: string
          description: Transfer subtype
          enum:
            - ofc_withdrawal
            - ofc_deposit
            - ofc_unstake
            - ofc_stake
            - ofc_book_transfer
        feeCoin:
          type: string
          description: The coin used to pay the fee (for cross-chain transactions)
        instant:
          type: boolean
          description: Whether this is an instant transaction
        instantId:
          type: string
          description: The instant transaction ID if applicable
        isFee:
          type: boolean
          description: Whether this transfer represents a fee
        isReward:
          type: boolean
          description: Whether this transfer represents a staking reward
        isUnlock:
          type: boolean
          description: Whether this transfer represents an unlock operation
        metadata:
          type: array
          description: >
            Key-value pairs carrying additional metadata about the transfer. The
            same key

            may appear more than once.


            Known keys (alphabetical). This list reflects all keys defined in

            the current server release; additional keys may be added in future

            releases without a breaking-change notice.


            - `backingTransferBroadcastTimestamp` — Timestamp (ISO 8601) at
            which
              the backing on-chain transaction was broadcast to the network.
            - `lightningPaymentHash` — **(OFC lightning transfers only)** The
              Lightning Network payment hash for the transfer. Present on both
              `ofc_withdrawal` and `ofc_deposit` lightning transfers; for
              `ofc_deposit` lightning transfers this key is used instead of
              `onChainTxId`.
            - `onChainTxId` — **(Go Account / OFC non-lightning transfers
            only)**
              The on-chain transaction hash of the backing transfer. For
              `ofc_withdrawal` transfers this key is absent while the transfer is
              in state `signed`; it is populated once the transfer reaches state
              `confirmed` (i.e. once the backing on-chain transaction is
              confirmed). Poll until `state === 'confirmed'` before reading this
              field. Use this value — not the top-level `txid` — when reconciling
              against a block explorer or external ledger. For standard
              `ofc_deposit` transfers (non-lightning) this value equals the
              top-level `txid`.
            - `replacedBy` — Transfer ID of the transfer that replaced this
            entry.

            - `replaces` — Transfer ID of the transfer this entry replaces.

            - `reversedBy` — Transfer ID of the transfer that reversed this
            entry.

            - `reverses` — Transfer ID of the transfer this entry reverses.

            - `rtId` — Internal routed-transaction ID linking a front transfer
            to its
              backing Go Account routed transaction.
            - `stablecoinTxType` — Transaction type for stablecoin transfers
            (e.g.
              `mint`, `reward`, `burn`).
            - `tokenizationUniquenessId` — **(Tokenization withdrawals only)**
              Internal identifier used to prevent double-spends on a tokenization
              withdrawal. Derived from the tokenization order ID; not guaranteed to
              equal the order ID in rare same-merchant/same-amount/same-instant
              collisions.
          items:
            type: object
            properties:
              key:
                type: string
                description: >-
                  The metadata key name. See the `metadata` array description
                  for documented values. Additional keys may be present.
                x-extensible-enum:
                  - backingTransferBroadcastTimestamp
                  - lightningPaymentHash
                  - onChainTxId
                  - replacedBy
                  - replaces
                  - reversedBy
                  - reverses
                  - rtId
                  - stablecoinTxType
                  - tokenizationUniquenessId
              value:
                type: string
        sendAccounting:
          type: array
          description: Accounting breakdown for send transactions
          items:
            type: object
            properties:
              type:
                type: string
              amountString:
                type: string
              nOuts:
                type: integer
              amount:
                type: integer
              id:
                type: string
        createdTime:
          type: string
          format: date-time
          description: The time this transfer was created
        approvedTime:
          type: string
          format: date-time
          description: The time this transfer was approved
        rejectedTime:
          type: string
          format: date-time
          description: The time this transfer was rejected
        signedTime:
          type: string
          format: date-time
          description: The time this transfer was signed
        unconfirmedTime:
          type: string
          format: date-time
          description: The time this transfer became unconfirmed
        confirmedTime:
          type: string
          format: date-time
          description: The time this transfer was confirmed
        removedTime:
          type: string
          format: date-time
          description: The time this transfer was removed
        commentedTime:
          type: string
          format: date-time
          description: The time this transfer was commented on
        failedTime:
          type: string
          format: date-time
          description: The time this transfer failed
        regeneratedTime:
          type: string
          format: date-time
          description: The time this transfer was regenerated
        replacedTime:
          type: string
          format: date-time
          description: The time this transfer was replaced
        replacingTime:
          type: string
          format: date-time
          description: The time this transfer started replacing another
        abandonedTime:
          type: string
          format: date-time
          description: The time this transfer was abandoned
        signedDate:
          type: string
          format: date-time
          description: The date this transfer was signed (legacy field)
        customerApprovedTime:
          type: string
          format: date-time
          description: >-
            The time this transfer was approved by the customer (trust
            transfers)
        idVerificationTime:
          type: string
          format: date-time
          description: The time identity verification was completed (trust transfers)
        trustSignedTime:
          type: string
          format: date-time
          description: The time this transfer was signed by trust (trust transfers)
        trustFinalApprovalTime:
          type: string
          format: date-time
          description: >-
            The time this transfer received final trust approval (trust
            transfers)
        walletLabel:
          type: string
          description: Label of the wallet associated with this transfer
        enterpriseName:
          type: string
          description: Name of the enterprise associated with this transfer
        elliptic:
          type: string
          description: Elliptic risk score information (trust transfers)
        senderInformationVerified:
          type: boolean
          description: Whether sender information has been verified (trust transfers)
        buildParams:
          type: object
          description: Parameters used to build the transaction
          additionalProperties: true
        entries:
          type: array
          description: >-
            An array of objects describing the change in address balances made
            as a result of this Transfer
          items:
            type: object
            properties:
              address:
                type: string
                description: An address affected by this Transfer
                example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ
              wallet:
                allOf:
                  - $ref: '#/components/schemas/Id'
                description: Only visible when the user has access to the wallet
              value:
                type: integer
                description: The change (in base units) in the address's balance
              valueString:
                allOf:
                  - $ref: '#/components/schemas/IntegerString'
                description: >-
                  The change (in base units) in the address's balance
                  represented as a String
              isChange:
                type: boolean
                description: >-
                  True if this address is a change address (only exists for UTXO
                  coins) and if this is a `sent` Transfer
              isPayGo:
                type: boolean
                description: True if this address is the BitGo PayGo wallet
              token:
                type: string
                description: If this is a token entry, the token's symbol
                example: omg
              label:
                type: string
                description: Names of addresses given by the user.
              failed:
                type: boolean
                description: true if this entry is failed.
              associatedNativeCoinAddress:
                type: string
                description: >-
                  The native coin receive address associated with the solana ATA
                  address. This is currently present only for BitGo addresses.
              memo:
                type: string
                description: >-
                  Memo associated with this entry. Only available for STX, EOS,
                  SOL, NEAR, and POLYX. For other coins (XLM, XRP, Cosmos-based,
                  TON, Tempo), memo is stored at the transaction level or
                  appended to the address.
              type:
                type: string
                description: The type of this entry (e.g., transfer, fee, contract_call).
              nftId:
                type: string
                description: >-
                  NFT ID associated with this entry. Only present for NFT
                  transfers.
              nftSymbol:
                type: string
                description: >-
                  NFT symbol associated with this entry. Only present for NFT
                  transfers.
          required:
            - address
            - valueString
        usersNotified:
          type: boolean
          description: >-
            Whether BitGo already sent notifications to the users of the
            transfer wallet
        label:
          type: string
          description: Address labels (if any) from entries concatenated.
        replaces:
          type: array
          description: Transaction IDs that this transfer replaces.
          items:
            type: string
        replacedBy:
          type: array
          description: Transaction IDs that replace this transfer.
          items:
            type: string
        riskIndicators:
          type: array
          description: >-
            Risk indicators detected on this transfer (e.g. SELFDESTRUCT
            opcode). Transfers with risk indicators will not trigger webhook or
            email notifications.
          items:
            type: string
            enum:
              - SELFDESTRUCT
      required:
        - id
        - coin
        - wallet
        - txid
        - height
        - date
        - confirmations
        - type
        - valueString
        - usd
        - usdRate
        - state
        - tags
        - history
        - comment
        - coinSpecific
    Transfer1:
      title: Transfer
      type: object
      properties:
        baseValue:
          type: number
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees. BitGo is deprecating this field in the future.
        baseValueString:
          type: string
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees represented as a string. BitGo is deprecating this field in the
            future.
          example: '2000000'
          pattern: ^-?\d+$
        coin:
          $ref: '#/components/schemas/CoinString'
        comment:
          nullable: true
          type: string
          description: A comment from the user
        date:
          type: string
          description: The date this Transfer was last updated
          format: date-time
          title: ISO Date String
        enterprise:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        organization:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        bitgoOrg:
          type: string
          enum:
            - BitGo Trust
            - BitGo New York
            - BitGo Germany
            - BitGo Switzerland
            - BitGo Europe ApS
            - Frankfurt DE Trust
            - BitGo Singapore
            - BitGo Korea
            - BitGo Custody MENA FZE
            - BitGo India
            - BitGo Sister Trust 1
            - BitGo Inc
        entries:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: An address affected by this Transfer
                example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ
              valueString:
                type: string
                description: >-
                  The change (in base units) in the address' balance represented
                  as a string
                example: '20000'
                pattern: '"^-?\d+$"'
              isChange:
                type: boolean
                description: >-
                  True if this address is a change address (only exists for UTXO
                  coins) and if this is a "send" transfer
              wallet:
                type: string
                description: Only visible when the user has access to the wallet
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              walletLabel:
                type: string
                description: >-
                  The label of the wallet referenced by `wallet`. Only visible
                  when the user has access to that

                  wallet. Useful for displaying a human-readable destination
                  name (e.g. for sibling enterprise

                  wallets) instead of a generic external-address fallback.
                example: My Cold Wallet
              value:
                type: number
                description: The change (in base units) in the address' balance
              nftSymbol:
                type: string
              type:
                type: string
                enum:
                  - flushForwarderTokens
                  - walletFunding
                  - walletInitialization
                  - addressInitialization
                  - importedOutput
                  - onchainidWalletLinked
                  - onchainidClaimAdded
                  - onchainidClaimRemoved
                  - AccountCreateContract
              isPayGo:
                type: boolean
                description: True if this address is the BitGo PayGo wallet
              token:
                type: string
                description: If this is a token entry, the token's symbol
                example: omg
              failed:
                type: boolean
                description: True if this entry is failed
              associatedNativeCoinAddress:
                type: string
                description: >-
                  The native coin receive address associated with the solana ATA
                  address.

                  This is currently present only for BitGo addresses.

                  This change was done so that there is a mapping between the
                  two addresses in the transfer entries.
              isFee:
                type: boolean
                description: Indicates if this entry is a fee
              isInternal:
                type: boolean
                description: Indicates if this entry is internal
              memo:
                type: string
                description: Memo associated with this entry
              rewardAddress:
                type: string
                description: Reward address associated with this entry
              subtype:
                type: string
                description: Subtype of this entry
              backingFeeString:
                type: string
                description: Backing fee represented as a string
              nftId:
                type: string
                description: NFT ID associated with this entry
              tokenContractHash:
                type: string
                description: Token contract hash associated with this entry
              isReward:
                type: boolean
                description: Indicates if this entry is a reward
            required:
              - address
            description: >-
              An array of objects describing the change in address balances made
              as a result of this Transfer
        history:
          type: array
          items:
            type: object
            properties:
              action:
                $ref: '#/components/schemas/TransferAction'
              comment:
                nullable: true
                type: string
                description: >-
                  If this history object is of action "commented", this is the
                  comment from the user
              date:
                type: string
                description: The date of this history object
                format: date-time
                title: ISO Date String
              transferId:
                type: string
                description: >-
                  The ID of the transfer that this history object is associated
                  with
              txid:
                type: string
                description: >-
                  The transaction ID of the transaction that this history object
                  is associated with
              user:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
            required:
              - action
              - date
            description: >-
              An audit log of events that have happened to the Transfer during
              its lifecycle
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        pendingApproval:
          type: string
        state:
          $ref: '#/components/schemas/TransferState1'
        stakingParams:
          type: object
          properties:
            actionType:
              type: string
            amount:
              type: string
            coreDao:
              type: object
              properties:
                amount:
                  type: string
                  format: number
                expiration:
                  type: string
                  format: date-time
                  title: ISO Date String
                fee:
                  type: number
                rewardAddress:
                  type: string
                validator:
                  type: string
                version:
                  type: number
              required:
                - amount
                - expiration
                - fee
                - rewardAddress
                - validator
                - version
            receiverAddress:
              type: string
            requestId:
              type: string
            resource:
              type: string
            source:
              type: string
              enum:
                - external
                - internal
            validator:
              type: string
          required:
            - actionType
            - requestId
        txid:
          type: string
          description: The on-chain transaction id
          example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
        type:
          allOf:
            - $ref: '#/components/schemas/TransferType2'
          description: >-
            Defines whether or not this Transfer was sent or received by the
            user
        usd:
          type: number
          description: The amount of USD of this Transfer (will be negative if it's a send)
        usdRate:
          type: number
          description: The USD rate at the time this Transfer was created
        medianUsdValue:
          type: number
          description: The median USD value of this Transfer
        medianUsdRate:
          type: number
          description: The median USD rate at the time this Transfer was created
        feeUsd:
          type: number
          description: The fee USD value for token transfers
        feeUsdRate:
          type: number
          description: The fee coin USD rate for token transfers
        value:
          type: number
          description: >-
            The total value (in base units) sent by this Transfer (may be
            approximate for ETH and other coins where amounts in base units can
            exceed 2^53 - 1)
        valueString:
          type: string
          description: >-
            The total value (in base units) sent by this Transfer represented as
            a String
          example: '2000000'
          pattern: ^-?\d+$
        wallet:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        walletType:
          type: string
          enum:
            - backing
            - cold
            - custodial
            - custodialPaired
            - hot
            - advanced
            - trading
          description: Wallet type
        replaces:
          type: array
          items:
            type: string
            description: Transaction IDs that this transfer replaces.
        replacedBy:
          type: array
          items:
            type: string
            description: Transaction IDs that replace this transfer.
        replacedByTransferId:
          type: array
          items:
            type: string
            description: Transfer IDs that replace this transfer.
        riskIndicators:
          type: array
          items:
            type: string
            enum:
              - SELFDESTRUCT
            description: Risk indicators for flagged transfers (e.g. SELFDESTRUCT opcode).
        baseValueWithoutFeesString:
          type: string
          description: >-
            The value (in base units) sent by this transfer, excluding network
            fees, represented as a string
        baseValueWithoutFees:
          type: number
          description: >-
            The value (in base units) sent by this transfer excluding network
            fees.
        coinSpecific:
          description: Transfer fields specific to each coin type
        confirmations:
          type: number
          description: >-
            The number of blocks that have been confirmed since this Transfer's
            block was confirmed
        consolidateId:
          type: string
          description: Consolidation ID if this transfer is part of a consolidation
        feeString:
          nullable: true
          type: string
          description: The Transfer's fee (in base units) represented as a String
        feeCoin:
          type: string
          description: The coin used to pay the fee (for cross-chain transactions)
        sequenceId:
          type: string
          description: Unique wallet identifier for preventing double-spends
        subType:
          type: string
          enum:
            - ofc_deposit
            - ofc_withdrawal
            - ofc_book_transfer
            - ofc_exchange
            - ofc_bn_settlement_transfer
            - ofc_bn_allocation
            - ofc_trading_order
            - ofc_trading_settlement
            - ofc_margin_collateral
            - ofc_margin_position
            - ofc_direct_trade
            - ofc_routed
            - ofc_fee
            - ofc_other
            - ofc_unstake
            - ofc_financing_liquidation
            - receive_from_gastank
            - reserved_amount
            - utxo_message_signing
            - pending_deposit
            - pending_deposit_activity
            - internal_transfer
            - pending_withdrawal_offer
            - pending_deposit_offer
            - offer_accepted
            - offer_rejected
            - confirmed_deposit
            - confirmed_withdrawal
            - deposit_offer_expired
            - withdrawal_offer_expired
            - withdrawal_offer_rejected
            - utxo_expired
            - offer_cancelled
            - cancel_withdrawal_offer
            - mint_request
            - mint_offer
            - mint_accept
            - mint_deposit
            - mint_reject
            - burn_request
            - burn_offer
            - burn_accept
            - burn_withdraw
            - burn_reject
            - pending_participant_onboarding_request
            - participant_onboarding_accepted
            - cash_dvp_settled
            - repo_dvp_open_leg_settled
            - repo_dvp_close_leg_settled
            - staking_eth_withdrawal
            - staking_eth_partial_withdrawal
            - staking_eth_full_withdrawal
            - staking_eth_mev_reward
            - staking_eth_block_reward
            - staking_bera_withdrawal
            - staking_bera_block_reward
          description: Transfer subtype
          x-enumsDeprecated:
            - staking_eth_partial_withdrawal
            - staking_eth_full_withdrawal
        txRequestId:
          type: string
          description: Associated transaction request ID
        goStakingRequestId:
          type: string
          description: Associated GO staking request ID
        height:
          type: number
          description: >-
            The height of the block this Transfer was confirmed in (999999999 if
            unconfirmed)
        heightId:
          type: string
          description: The unique height id of the block
        instant:
          type: boolean
          description: Whether this is an instant transaction
        instantId:
          type: string
          description: The instant transaction ID if applicable
        isFee:
          type: boolean
          description: Whether this transfer represents a fee
        isReward:
          type: boolean
          description: Whether this transfer represents a staking reward
        isUnlock:
          type: boolean
          description: Whether this transfer represents an unlock operation
        nSegwitInputs:
          type: number
          description: DEPRECATED. Number of segwit inputs on the transfer.
        outputs:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: The address of the UTXO
              blockHeight:
                type: number
                description: The block this Unspent was created in
              chain:
                type: number
                description: The chain of the UTXO
              coinbase:
                type: boolean
                description: True if this unspent came from the coinbase transaction
              id:
                type: string
                description: The ID of the UTXO
              index:
                type: number
                description: The index of the UTXO
              redeemScript:
                type: string
                description: The redeem script of the UTXO
              value:
                type: number
                description: The value of the UTXO
              witnessScript:
                type: string
                description: The witness script of the UTXO
        payGoFee:
          type: number
          description: The Transfer's BitGo fee (in base units)
        payGoFeeString:
          type: string
          description: The Transfer's BitGo fee (in base units) represented as a String
        inputs:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: The address of the UTXO
              blockHeight:
                type: number
                description: The block this Unspent was created in
              chain:
                type: number
                description: The chain of the UTXO
              coinbase:
                type: boolean
                description: True if this unspent came from the coinbase transaction
              id:
                type: string
                description: The ID of the UTXO
              index:
                type: number
                description: The index of the UTXO
              redeemScript:
                type: string
                description: The redeem script of the UTXO
              value:
                type: number
                description: The value of the UTXO
              witnessScript:
                type: string
                description: The witness script of the UTXO
        intendedValueString:
          type: string
          description: >-
            A string representation (in base units) of the initial value for the
            transfer. This is present because when a transaction fails on chain,
            its value is mutated to be zero. This string is immutable and will
            always be the intended value of the initial transfer regardless of
            the final state of the transaction.
        label:
          type: string
          description: Address labels (if any) from entries concatenated.
        metadata:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
            required:
              - key
              - value
            description: Additional metadata associated with the transfer
        sendAccounting:
          type: array
          items:
            type: object
            properties:
              amount:
                type: number
              amountString:
                type: string
              id:
                type: string
              nOuts:
                type: number
              type:
                type: string
            required:
              - amountString
              - nOuts
              - type
            description: Accounting breakdown for send transactions
        tags:
          type: array
          items:
            type: string
            description: The tags to be used on this Transfer (used in Policies)
        txidType:
          type: string
          description: The type of the transaction id
        usersNotified:
          type: boolean
          description: >-
            Whether BitGo already sent notifications to the users of the
            transfer wallet
        vSize:
          type: number
          description: The size of the transaction
        walletLabel:
          type: string
          description: Label of the wallet associated with this transfer
        enterpriseName:
          type: string
          description: Name of the enterprise associated with this transfer
        elliptic:
          type: string
          description: Elliptic risk score information (trust transfers)
        senderInformationVerified:
          type: boolean
          description: Whether sender information has been verified (trust transfers)
        buildParams:
          type: object
          additionalProperties: {}
          description: Parameters used to build the transaction
        createdTime:
          type: string
          description: The time this transfer was created
          format: date-time
          title: ISO Date String
        approvedTime:
          type: string
          description: The time this transfer was approved
          format: date-time
          title: ISO Date String
        rejectedTime:
          type: string
          description: The time this transfer was rejected
          format: date-time
          title: ISO Date String
        signedTime:
          type: string
          description: The time this transfer was signed
          format: date-time
          title: ISO Date String
        unconfirmedTime:
          type: string
          description: The time this transfer became unconfirmed
          format: date-time
          title: ISO Date String
        confirmedTime:
          type: string
          description: The time this transfer was confirmed
          format: date-time
          title: ISO Date String
        removedTime:
          type: string
          description: The time this transfer was removed
          format: date-time
          title: ISO Date String
        commentedTime:
          type: string
          description: The time this transfer was commented on
          format: date-time
          title: ISO Date String
        failedTime:
          type: string
          description: The time this transfer failed
          format: date-time
          title: ISO Date String
        regeneratedTime:
          type: string
          description: The time this transfer was regenerated
          format: date-time
          title: ISO Date String
        replacedTime:
          type: string
          description: The time this transfer was replaced
          format: date-time
          title: ISO Date String
        replacingTime:
          type: string
          description: The time this transfer started replacing another
          format: date-time
          title: ISO Date String
        abandonedTime:
          type: string
          description: The time this transfer was abandoned
          format: date-time
          title: ISO Date String
        signedDate:
          type: string
          description: The date this transfer was signed (legacy field)
          format: date-time
          title: ISO Date String
        customerApprovedTime:
          type: string
          description: >-
            The time this transfer was approved by the customer (trust
            transfers)
          format: date-time
          title: ISO Date String
        idVerificationTime:
          type: string
          description: The time identity verification was completed (trust transfers)
          format: date-time
          title: ISO Date String
        trustSignedTime:
          type: string
          description: The time this transfer was signed by trust (trust transfers)
          format: date-time
          title: ISO Date String
        trustFinalApprovalTime:
          type: string
          description: >-
            The time this transfer received final trust approval (trust
            transfers)
          format: date-time
          title: ISO Date String
      required:
        - coin
        - date
        - entries
        - history
        - id
        - state
        - type
        - valueString
        - wallet
    TransferAction:
      title: TransferAction
      type: string
      enum:
        - created
        - approved
        - rejected
        - signed
        - unconfirmed
        - confirmed
        - removed
        - commented
        - failed
        - regenerated
        - replaced
        - replacing
        - reversed
        - abandoned
    TransferAmountCondition:
      title: Amount
      type: object
      description: >-
        Enables policy rules to trigger based on withdrawal amount. The amount
        is by asset, such as BTC or USD.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - transfer.amount
          example: transfer.amount
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Spending limit
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: Allows creating a condition based on the Spending limit
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of Parameters to control how the condition behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/OperatorConditionParameter'
              - $ref: '#/components/schemas/AmountConditionParameter'
              - $ref: '#/components/schemas/CoinConditionParameter'
    TransferAmountConditionParameters:
      type: object
      description: Data required to evaluate the condition.
      required:
        - operator
        - amount
        - coin
      properties:
        operator:
          type: string
          enum:
            - '>'
            - '>='
            - <
            - <=
          description: >-
            The comparison operator to use when comparing the transfer amount
            with the given limit
          example: '>'
        amount:
          type: string
          description: The transfer amount is compared with this limit.
          example: '100000000'
        coin:
          type: string
          description: >-
            This condition only applies to transfers of this currency (USD
            applies to all transfers).
          example: btc
    TransferAmountConditionRequest:
      title: Amount
      type: object
      description: Transfer-amount condition.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - transfer.amount
          example: transfer.amount
        parameters:
          $ref: '#/components/schemas/TransferAmountConditionParameters'
        operator:
          $ref: '#/components/schemas/OperatorType'
    TransferDestinationTypeCondition:
      title: Destination
      type: object
      description: Enables policy rules to trigger based on destination.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - transfer.destination.type
          example: transfer.destination.type
        label:
          type: string
          description: A label for the condition that you can display to users.
          example: Destination
        description:
          type: string
          description: A description for the condition that you can display to an end user.
          example: >-
            Allows creating a condition based on the type of the funds
            destination
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of Parameters to control how the condition behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/DestinationTypeTypeConditionParameter'
              - $ref: '#/components/schemas/DestinationTypeCoinConditionParameter'
    TransferDestinationTypeConditionParameters:
      type: object
      description: Data required to evaluate the transfer destination condition.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - whitelistedAddress
            - nonWhitelistedAddress
            - outsideEnterprise
          description: The type of destination this condition will match.
          example: whitelistedAddress
        coin:
          type: string
          description: The asset this condition applies to.
          example: btc
    TransferDestinationTypeConditionRequest:
      title: Destination
      type: object
      description: Destination condition.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - transfer.destination.type
          example: transfer.destination.type
        parameters:
          $ref: '#/components/schemas/TransferDestinationTypeConditionParameters'
        operator:
          $ref: '#/components/schemas/OperatorType'
    TransferDirection:
      title: TransferDirection
      type: string
      enum:
        - send
        - receive
        - send-and-receive
    TransferInitiatorsCondition:
      title: Initiator
      type: object
      description: Enables you to create a condition based on transaction initiator.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - transfer.initiators
          example: transfer.initiators
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Transfer Initiators
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: >-
            Enables creating a condition based on if the transfer initiator is a
            listed user.
        status:
          type: string
          description: Identifies if the condition is currently active and usable.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of parameters that control how the condition behaves.
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/TransferInitiatorsUserIdsConditionParameter
    TransferInitiatorsConditionParameters:
      type: object
      description: Data required to evaluate the transfer initiator condition.
      required:
        - userIds
      properties:
        userIds:
          type: array
          items:
            type: string
          description: A list of user IDs to validate for the transfer initiator.
          example: '[659bdac013822ba1e8c60d8c497197c4, 63ebe51c12381c0007415e4f50bc95ce]'
    TransferInitiatorsConditionRequest:
      title: Initiator
      type: object
      description: Initiator condition.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - transfer.initiators
          example: transfer.initiators
        parameters:
          $ref: '#/components/schemas/TransferInitiatorsConditionParameters'
        operator:
          $ref: '#/components/schemas/OperatorType'
    TransferInitiatorsUserIdsConditionParameter:
      type: object
      description: >-
        The list of user ids the transfer initiator condition will checker
        against for triggering.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - userIds
          example: userIds
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: User Ids
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The list of user ids to check the transfer initiator against.
        type:
          type: string
          description: >-
            The type of acceptable values for this condition parameter, a valid
            HMAC BitGo ID.
          enum:
            - BITGO_USER_ID
          example: BITGO_USER_ID
        required:
          type: string
          description: ALWAYS if the parameter is required otherwise OPTIONAL.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'true'
    TransferNotInitiatedByConditionRequest:
      title: Transfer Not Initiated By
      type: object
      description: Condition that checks if transfer was not initiated by specific users.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Condition.
          enum:
            - transfer.notInitiatedBy
          example: transfer.notInitiatedBy
        parameters:
          type: object
          description: Required data needed to evaluate the Condition.
          required:
            - userIds
          properties:
            userIds:
              type: array
              items:
                type: string
              description: List of user IDs
              example:
                - 6941488084accb8c933550111d2661cb
        operator:
          $ref: '#/components/schemas/OperatorType'
    TransferState:
      type: string
      description: >
        The state of the transfer. Includes the following:

        - `confirmed`: The transfer is confirmed on chain.

        - `failed`: BitGo failed to confirm the transfer on chain. You must
        retry the transaction.

        - `initialized`: The initial state when creating a transfer.

        - `pendingApproval`: The transfer requires admin approval to proceed.

        - `rejected`: The transfer was rejected by an admin.

        - `removed`: A network re-org occurred, causing the confirmed transfer
        to be removed from the blockchain.

        - `replaced`: The transfer was stuck due to having a low fee and was
        replaced by a new transfer with a higher fee.

        - `signed`: The transfer was approved by an admin (if required) and then
        signed by BitGo.

        - `unconfirmed`: The signed transaction was sent to the network, and is
        pending on-chain validation.
      example: confirmed
      enum:
        - confirmed
        - failed
        - initialized
        - pendingApproval
        - rejected
        - removed
        - replaced
        - signed
        - unconfirmed
    TransferState1:
      title: TransferState
      type: string
      enum:
        - initialized
        - pendingApproval
        - rejected
        - signed
        - unconfirmed
        - confirmed
        - removed
        - failed
        - replaced
        - reversed
        - deleted
      description: >-
        The state of the transfer. Includes the following:

        - `confirmed`: The transfer is confirmed on chain.

        - `failed`: BitGo failed to confirm the transfer on chain. You must
        retry the transaction.

        - `initialized`: The initial state when creating a transfer.

        - `pendingApproval`: The transfer requires admin approval to proceed.

        - `rejected`: The transfer was rejected by an admin.

        - `removed`: A network re-org occurred, causing the confirmed transfer
        to be removed from the blockchain.

        - `replaced`: The transfer was stuck due to having a low fee and was
        replaced by a new transfer with a higher fee.

        - `reversed`: The transfer was reversed (e.g., when a withdrawal offer
        is rejected in multi-step transfers).

        - `signed`: The transfer was approved by an admin (if required) and then
        signed by BitGo.

        - `unconfirmed`: The signed transaction was sent to the network, and is
        pending on-chain validation.
    TransferStatus1:
      title: TransferStatus
      type: string
      enum:
        - initiated
        - processing
        - settled
        - reversed
        - failed
      description: >-
        The status of a transfer. `initiated` means newly created and not yet
        completed processing. `processing` means currently processing with bank
        providers with funds in flight. `settled` means funds successfully
        processed and no longer flagged as instantCreditLiability. `reversed`
        means a previously settled transfer was reversed by the processor.
        `failed` means an unrecoverable error occurred before settlement.
    TransferTokenIntent:
      title: TransferTokenIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferToken
              description: Must be "transferToken".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
        - $ref: '#/components/schemas/BaseIntentWithTokenRecipients'
    TransferTokenIntent1:
      title: Transfer Token
      allOf:
        - $ref: '#/components/schemas/BaseIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - transferToken
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/RecipientEntry1'
    TransferType2:
      title: TransferType
      type: string
      enum:
        - send
        - receive
    TransferVelocityLimitCondition:
      title: Velocity limit
      type: object
      description: >-
        Enables policy rules to trigger based on how much withdraws over a
        period of time from a specific wallet or from all wallets. The amount is
        by asset, such as BTC or USD.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - transfer.velocity.limit
          example: transfer.velocity.limit
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Spending Limit
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: >-
            Allows creating a condition based on the amount of coin or USD that
            can be spent over a period of time
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of Parameters to control how the condition behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/VelocityAmountConditionParameter'
              - $ref: '#/components/schemas/TimeWindowConditionParameter'
              - $ref: '#/components/schemas/VelocityCoinConditionParameter'
              - $ref: '#/components/schemas/ScopeConditionParameter'
    TransferVelocityLimitConditionParameters:
      type: object
      description: Data required to evaluate the transfer velocity limit condition.
      required:
        - scope
        - timeWindow
        - amount
        - coin
      properties:
        scope:
          type: string
          enum:
            - wallet
            - enterprise
          description: Entities to include in the velocity calculation.
          example: wallet
        timeWindow:
          type: string
          description: A window of time in which a set of amount can be spent.
          example: '60'
        amount:
          type: string
          description: The transfer amount is compared with this limit.
          example: '100000000'
        coin:
          type: string
          description: >-
            The unit that the amount is denoted in, in either crypto or a fiat
            currency.
          example: ETH
    TransferVelocityLimitConditionRequest:
      title: Velocity limit
      type: object
      description: Velocity-limit condition.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - transfer.velocity.limit
          example: transfer.velocity.limit
        parameters:
          $ref: '#/components/schemas/TransferVelocityLimitConditionParameters'
        operator:
          $ref: '#/components/schemas/OperatorType'
    TransferWebhookCoinConditionParameter:
      type: object
      description: >-
        The asset to check the transfer against to determine if a webhook
        payload should be sent.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - coin
          example: coin
        label:
          type: string
          description: >-
            A description for the condition parameter that you can display to an
            end user.
          example: Asset
        description:
          type: string
          description: The asset this condition applies to.
          example: The asset this condition applies to
        type:
          type: string
          description: >-
            The type of acceptable values for this condition parameter. Must be
            a valid coin ticker string.
          enum:
            - COIN
          example: COIN
        required:
          type: string
          description: ALWAYS if the parameter is required otherwise OPTIONAL.
          enum:
            - OPTIONAL
          example: OPTIONAL
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    TransferWebhookCondition:
      type: object
      description: >-
        Enables you to create a condition based on if the transfer should send a
        payload to a webhook URL and receive a status code.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - transfer.webhook
          example: transfer.webhook
        label:
          type: string
          description: A label for the condition that you can display to an end user.
          example: Transfer Webhook
        description:
          type: string
          description: A description for the Condition which can be shown to an end user.
          example: >-
            Enables creating a condition based on if the transfer should send a
            payload to a webhook URL and receive a status code.
        status:
          type: string
          description: Identifies if the condition is currently active and usable.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of parameters that control how the condition behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/TransferWebhookUrlConditionParameter'
              - $ref: '#/components/schemas/TransferWebhookCoinConditionParameter'
    TransferWebhookConditionParameters:
      type: object
      description: Data required to evaluate the transfer webhook condition.
      required:
        - webhookUrl
      properties:
        webhookUrl:
          type: string
          description: The webhook url to post transfer payload to.
          example: https://webhook.site/91561f7b-4141-4ee2-8336-e10650cd000f
        coin:
          type: string
          description: The asset this condition applies to.
          example: btc
    TransferWebhookConditionRequest:
      title: Webhook
      type: object
      description: Transfer webhook condition.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - transfer.webhook
          example: transfer.webhook
        parameters:
          $ref: '#/components/schemas/TransferWebhookConditionParameters'
    TransferWebhookUrlConditionParameter:
      type: object
      description: The webhook URL the transfer sends a payload to.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - webhookUrl
          example: webhookUrl
        label:
          type: string
          description: >-
            A description for the condition parameter that you can display to an
            end user.
          example: Webhook URL
        description:
          type: string
          description: The webhook URL to post the transfer payload to.
          example: The webhook URL to post the transfer payload to
        type:
          type: string
          description: >-
            The type of acceptable values for this condition parameter. Must be
            a valid webhook URL string.
          enum:
            - FREE_FORM
          example: FREE_FORM
        required:
          type: string
          description: ALWAYS if the parameter is required otherwise OPTIONAL.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    TransfersResponse:
      type: object
      properties:
        transfers:
          type: array
          items:
            $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs'
        coin:
          $ref: '#/components/schemas/Coin'
        nextBatchPrevId:
          $ref: '#/components/schemas/NextBatchPrevId'
      required:
        - transfers
        - coin
    TriggerPrice:
      type: string
      format: decimal
      description: >
        The trigger price for stop orders. When the market reaches this price,
        the stop order is activated.

        - For buy stop-limit orders, `triggerPrice` must be less than or equal
        to `limitPrice`.

        - For sell stop-limit orders, `triggerPrice` must be greater than or
        equal to `limitPrice`.

        - It always refers to the quote currency.
      example: '50000.00'
    TrimmedBalance:
      title: TrimmedBalance
      type: object
      properties:
        balanceString:
          type: string
          description: >-
            String representation of the balance. Guaranteed to not lose
            precision.
          example: '500000'
        confirmedBalanceString:
          type: string
          description: >-
            The total balance of confirmed transactions for the address (in the
            chain's base unit). Guaranteed to not lose precision.
          example: '400000'
        spendableBalanceString:
          type: string
          description: >-
            The total balance of the address (in the chain's base unit) which
            may be used as inputs for creating new transactions in string
            representation. Guaranteed to not lose precision.
          example: '40000'
        updated:
          oneOf:
            - type: string
              format: date-time
              title: ISO Date String
            - type: string
              format: date
              title: Date String
          description: The last time a transaction affected the balance of this address
        balance:
          type: number
          example: 50000
        lockedBalanceString:
          type: string
        reservedBalanceString:
          type: string
        totalReceived:
          type: number
          description: The total amount received on this address (in the chain's base unit)
        totalSent:
          type: number
          description: The total amount sent from this address (in the chain's base unit)
        transferCount:
          type: number
        tokens:
          type: object
          additionalProperties: {}
        nfts:
          type: object
          additionalProperties: {}
        unsupportedNfts:
          type: object
          additionalProperties: {}
        type: {}
        metadata: {}
      required:
        - balanceString
        - confirmedBalanceString
        - spendableBalanceString
    TronAddress:
      title: Tron Address
      type: object
      properties:
        rootPub:
          type: string
      required:
        - rootPub
    TronResourceDeficit:
      title: TronResourceDeficit
      type: object
      properties:
        bandwidthDeficit:
          type: number
        bandwidthSunRequired:
          type: string
        energyDeficit:
          type: number
        energySunRequired:
          type: string
      required:
        - bandwidthDeficit
        - bandwidthSunRequired
    TronSendQueue:
      title: Tron
      type: object
      properties:
        rootPub:
          type: string
        walletInitialization:
          type: boolean
    TronWallet:
      title: Tron Wallet
      type: object
      properties:
        rootAddress:
          type: string
        rootPub:
          type: string
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        minimumFunding:
          type: number
      required:
        - rootAddress
        - rootPub
        - pendingChainInitialization
        - creationFailure
        - minimumFunding
    TrustOrg:
      title: TrustOrg
      type: string
      enum:
        - BitGo Trust
        - BitGo New York
        - BitGo Germany
        - BitGo Switzerland
        - BitGo Europe ApS
        - Frankfurt DE Trust
        - BitGo Singapore
        - BitGo Korea
        - BitGo Custody MENA FZE
        - BitGo India
        - BitGo Sister Trust 1
    TrustOrg2:
      title: TrustOrg
      allOf:
        - $ref: '#/components/schemas/TrustOrgEnum'
    TrustOrgEnum:
      type: string
      enum:
        - BitGo Trust
        - BitGo New York
        - BitGo Germany
        - BitGo Switzerland
        - BitGo Europe ApS
        - Frankfurt DE Trust
        - BitGo Singapore
        - BitGo Korea
        - BitGo Custody MENA FZE
        - BitGo Sister Trust 1
    TrustedTokenState:
      title: TrustedTokenState
      type: string
      enum:
        - pending
        - active
    Trustline:
      type: object
      properties:
        token:
          type: string
          description: >-
            One of the supported coin types for Stellar tokens listed in
            [Coin-specific-implementation](#tag/Coin-specific-implementation)
          example: txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L
        action:
          enum:
            - add
            - remove
        limit:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: String representation of the amount to limit in base units (stroops)
    TrxClaimRewardsIntent:
      title: TRX Claim Rewards Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stakeClaimRewards
              description: Must be `"stakeClaimRewards"`.
            ownerAddress:
              type: string
              description: >-
                Tron address of the wallet owner; must match the wallet's root
                address.
          required:
            - intentType
            - ownerAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Claim accumulated Tron staking rewards (WithdrawBalance) to the owner's

        address. The reward balance must be non-zero; the handler does not
        verify

        the amount before submitting the transaction. Valid on TRX and TTRX.
    TrxClaimRewardsRequestEntityProperties:
      title: TRX claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
    TrxClaimRewardsTransactionProperties:
      title: TRX Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
    TrxDelegateResourceIntent:
      title: TRX Delegate Resource Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegateResource
              description: Must be `"delegateResource"`.
            ownerAddress:
              type: string
              description: >-
                Tron address of the resource owner delegating their staked
                resources.
            receiverAddress:
              type: string
              description: >-
                Tron address of the account receiving the delegated resources;
                must be an active Tron account.
            resource:
              type: string
              enum:
                - BANDWIDTH
                - ENERGY
              description: 'The resource type to delegate: `BANDWIDTH` or `ENERGY`.'
          required:
            - intentType
            - ownerAddress
            - receiverAddress
            - resource
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Delegate staked BANDWIDTH or ENERGY resources to another Tron address
        (DelegateResourceContract). The owner must have sufficient staked
        resources; the receiver address must be an active Tron account; and the
        amount must be at least 1 TRX (1,000,000 sun). Valid on TRX and TTRX.
    TrxDelegateResourceIntent1:
      title: TRX Delegate Resource Intent
      description: >
        Delegates TRON ENERGY or BANDWIDTH from the wallet root address to a
        receiver address.

        For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create
        transaction request](/reference/v2wallettxrequestcreate).

        Minimum delegation amount is 1 TRX (1,000,000 sun).
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - delegateResource
            stakingRequestId:
              type: string
            ownerAddress:
              type: string
              description: >-
                TRON address delegating resources (typically the wallet root
                address)
            receiverAddress:
              type: string
              description: TRON address receiving the delegated ENERGY or BANDWIDTH
            amount:
              $ref: '#/components/schemas/Amount1'
            resource:
              type: string
              enum:
                - ENERGY
                - BANDWIDTH
          required:
            - intentType
            - stakingRequestId
            - ownerAddress
            - receiverAddress
            - amount
            - resource
        - $ref: '#/components/schemas/BaseIntent1'
    TrxDelegationProperties:
      title: TRX Delegation Properties
      allOf:
        - $ref: '#/components/schemas/ByovDelegationProperties'
        - type: object
          properties:
            validatorAddress:
              type: string
            resource:
              type: string
              enum:
                - ENERGY
                - BANDWIDTH
    TrxFreezeIntent:
      title: TRX Freeze Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - stake
              description: Must be `"stake"`.
            validatorAddress:
              type: string
              description: >-
                Tron address of the Super Representative the user intends to
                vote for after freezing. Stored by the staking service to
                auto-construct the subsequent vote intent; not consumed by
                wallet-platform's freeze transaction builder.
            ownerAddress:
              type: string
              description: Tron address of the wallet owner staking the TRX.
            resource:
              type: string
              enum:
                - BANDWIDTH
                - ENERGY
              description: 'The resource type to obtain by staking: `BANDWIDTH` or `ENERGY`.'
          required:
            - intentType
            - validatorAddress
            - ownerAddress
            - resource
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Stake (freeze) TRX to obtain BANDWIDTH or ENERGY using the Tron Stake V2

        protocol (FreezeBalanceV2). The spendable balance must be greater than
        or

        equal to the freeze amount plus the transaction fee.

        Valid on TRX and TTRX.
    TrxStakingRequest:
      title: TRX
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/TrxStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: Subtype of TRX staking request.
          type: string
          enum:
            - STAKE
            - VOTE
          example: STAKE
        decimal:
          description: >-
            Optional custom conversion factor, when provided, use amount ÷
            decimal to get derived unit.
          type: string
        displayUnit:
          description: >-
            Optional custom unit (e.g., "TP" for TronPower). When provided, this
            unit is the derived unit of the amounts in the attributes.
          type: string
    TrxStakingRequestEntityProperties:
      title: TRX staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validator:
              type: string
              nullable: true
            stakingType:
              type: string
              enum:
                - STAKE
                - VOTE
            resourceType:
              type: string
              enum:
                - ENERGY
                - BANDWIDTH
    TrxStakingRequestPOSTBody:
      title: TRX stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: Subtype of TRX staking request.
          type: string
          enum:
            - STAKE
            - VOTE
          example: STAKE
        resourceType:
          description: Resource type for TRX staking (ENERGY or BANDWIDTH).
          type: string
          enum:
            - ENERGY
            - BANDWIDTH
          default: ENERGY
          example: ENERGY
      required:
        - subType
    TrxStakingTransaction:
      title: TRX Staking Transaction
      allOf:
        - $ref: '#/components/schemas/StakingTransaction'
      type: object
      properties:
        decimal:
          description: >-
            Optional custom conversion factor, when provided, use amount ÷
            decimal to get derived unit.
          type: string
        displayUnit:
          description: >-
            Optional custom unit (e.g., "TP" for TronPower). When provided, this
            unit is the derived unit of the amounts in the attributes.
          type: string
    TrxUnStakingRequestPOSTBody:
      title: TRX unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    TrxUndelegateResourceIntent:
      title: TRX Undelegate Resource Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegateResource
              description: Must be `"undelegateResource"`.
            ownerAddress:
              type: string
              description: >-
                Tron address of the resource owner reclaiming the delegated
                resources.
            receiverAddress:
              type: string
              description: >-
                Tron address of the account from which the resources are being
                reclaimed.
            resource:
              type: string
              enum:
                - BANDWIDTH
                - ENERGY
              description: 'The resource type to reclaim: `BANDWIDTH` or `ENERGY`.'
          required:
            - intentType
            - ownerAddress
            - receiverAddress
            - resource
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Reclaim previously delegated BANDWIDTH or ENERGY resources from a
        receiver address (UnDelegateResourceContract). The undelegatable balance
        must be sufficient to cover the requested amount.
        Valid on TRX and TTRX.
    TrxUndelegateResourceIntent1:
      title: TRX Undelegate Resource Intent
      description: >
        Undelegates previously delegated TRON ENERGY or BANDWIDTH from the
        wallet root address.

        For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create
        transaction request](/reference/v2wallettxrequestcreate).
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegateResource
            stakingRequestId:
              type: string
            ownerAddress:
              type: string
              description: >-
                TRON address that delegated the resources (typically the wallet
                root address)
            receiverAddress:
              type: string
              description: TRON address from which resources are being undelegated
            amount:
              $ref: '#/components/schemas/Amount1'
            resource:
              type: string
              enum:
                - ENERGY
                - BANDWIDTH
          required:
            - intentType
            - stakingRequestId
            - ownerAddress
            - receiverAddress
            - amount
            - resource
        - $ref: '#/components/schemas/BaseIntent1'
    TrxUnfreezeIntent:
      title: TRX Unfreeze Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
              description: Must be `"unstake"`.
            ownerAddress:
              type: string
              description: Tron address of the wallet owner unstaking the TRX.
            resource:
              type: string
              enum:
                - BANDWIDTH
                - ENERGY
              description: 'The resource type to unstake: `BANDWIDTH` or `ENERGY`.'
          required:
            - intentType
            - ownerAddress
            - resource
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Unstake (unfreeze) previously staked TRX using the Tron Stake V2
        protocol (UnfreezeBalanceV2). Initiates the unstaking waiting period;
        use the `claim` intent to withdraw the TRX after the waiting period
        has elapsed. Valid on TRX and TTRX.
    TrxVoteIntent:
      title: TRX Vote Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - voteDelegation
              description: Must be `"voteDelegation"`.
            validatorAddress:
              type: string
              description: >-
                Tron address of the Super Representative selected during the
                freeze step. Carried forward by the staking service so the user
                does not need to re-select a validator; not consumed by
                wallet-platform's vote transaction builder (which reads the
                `votes` array instead).
            ownerAddress:
              type: string
              description: Tron address of the wallet owner casting the votes.
            votes:
              type: array
              items:
                type: object
                properties:
                  vote_address:
                    type: string
                    description: >-
                      Tron address of the Super Representative (SR) receiving
                      the votes.
                  vote_count:
                    type: string
                    description: >-
                      Number of votes to allocate to this SR, as a decimal
                      string.
                required:
                  - vote_address
                  - vote_count
                description: >-
                  List of vote allocations. Each entry specifies a Super
                  Representative address and the number of votes to assign.
                  Total votes must not exceed available Tron Power.
          required:
            - intentType
            - validatorAddress
            - ownerAddress
            - votes
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Cast votes for Tron Super Representatives (SR) using accumulated Tron

        Power (VoteWitnessContract). The total vote count across all entries
        must

        not exceed the available Tron Power. Each staked TRX provides 1 unit of

        Tron Power. Valid on TRX and TTRX.
    TrxWithdrawExpireUnfreezeIntent:
      title: TRX Withdraw Expire Unfreeze Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
              description: Must be `"claim"`.
            ownerAddress:
              type: string
              description: Tron address of the wallet owner withdrawing the unstaked TRX.
          required:
            - intentType
            - ownerAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: |-
        Withdraw previously unstaked TRX after the Tron unstaking waiting period
        has elapsed (WithdrawExpireUnfreeze). The handler does not verify that
        the waiting period has passed before submitting the transaction. Use the
        `unstake` intent to begin the unstaking process. Valid on TRX and TTRX.
    TssConfig:
      title: TssConfig
      type: object
      properties:
        enterpriseId:
          type: string
          description: The enterprise ID
          example: 5d1a61a5c30ae10025f9b2b3
        ecdsa:
          $ref: '#/components/schemas/EcdsaConfig'
      required:
        - enterpriseId
        - ecdsa
    TssConfigPartyChallenge:
      title: TssConfigPartyChallenge
      allOf:
        - type: object
          properties:
            verifiers:
              $ref: '#/components/schemas/ChallengeVerifiers'
            paillierBlumProof:
              $ref: '#/components/schemas/PaillierBlumProof'
            ntildeProof:
              $ref: '#/components/schemas/NtildeProof'
          required:
            - verifiers
        - $ref: '#/components/schemas/Challenge'
    TssSettings:
      title: TssSettings
      type: object
      properties:
        coinSettings:
          type: object
          additionalProperties:
            type: object
            properties:
              walletCreationSettings:
                $ref: '#/components/schemas/TssWalletCreationSettings'
              canMigrateToMPCv2:
                type: boolean
            required:
              - walletCreationSettings
      required:
        - coinSettings
    TssWalletCreationSettings:
      title: TssWalletCreationSettings
      type: object
      properties:
        multiSigTypeVersion:
          $ref: '#/components/schemas/MultisigTypeVersion'
        custodialMultiSigTypeVersion:
          $ref: '#/components/schemas/MultisigTypeVersion'
        coldMultiSigTypeVersion:
          $ref: '#/components/schemas/MultisigTypeVersion'
        defaultWalletVersion:
          type: number
    TxAddress:
      type: object
      properties:
        address:
          type: string
        options:
          type: object
      required:
        - address
    TxDetails:
      title: TxDetails
      type: object
      properties:
        transfers:
          type: array
          items:
            type: object
            properties:
              baseValue:
                type: number
                description: >-
                  The value (in base units) sent by this transfer, excluding
                  network fees. BitGo is deprecating this field in the future.
              baseValueString:
                type: string
                description: >-
                  The value (in base units) sent by this transfer, excluding
                  network fees represented as a string. BitGo is deprecating
                  this field in the future.
                example: '2000000'
                pattern: ^-?\d+$
              coin:
                $ref: '#/components/schemas/CoinString'
              comment:
                nullable: true
                type: string
                description: A comment from the user
              date:
                type: string
                description: The date this Transfer was last updated
                format: date-time
                title: ISO Date String
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organization:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              bitgoOrg:
                type: string
                enum:
                  - BitGo Trust
                  - BitGo New York
                  - BitGo Germany
                  - BitGo Switzerland
                  - BitGo Europe ApS
                  - Frankfurt DE Trust
                  - BitGo Singapore
                  - BitGo Korea
                  - BitGo Custody MENA FZE
                  - BitGo India
                  - BitGo Sister Trust 1
                  - BitGo Inc
              entries:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      type: string
                      description: An address affected by this Transfer
                      example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ
                    valueString:
                      type: string
                      description: >-
                        The change (in base units) in the address' balance
                        represented as a string
                      example: '20000'
                      pattern: '"^-?\d+$"'
                    isChange:
                      type: boolean
                      description: >-
                        True if this address is a change address (only exists
                        for UTXO coins) and if this is a "send" transfer
                    wallet:
                      type: string
                      description: Only visible when the user has access to the wallet
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                    walletLabel:
                      type: string
                      description: >-
                        The label of the wallet referenced by `wallet`. Only
                        visible when the user has access to that

                        wallet. Useful for displaying a human-readable
                        destination name (e.g. for sibling enterprise

                        wallets) instead of a generic external-address fallback.
                      example: My Cold Wallet
                    value:
                      type: number
                      description: The change (in base units) in the address' balance
                    nftSymbol:
                      type: string
                    type:
                      type: string
                      enum:
                        - flushForwarderTokens
                        - walletFunding
                        - walletInitialization
                        - addressInitialization
                        - importedOutput
                        - onchainidWalletLinked
                        - onchainidClaimAdded
                        - onchainidClaimRemoved
                        - AccountCreateContract
                    isPayGo:
                      type: boolean
                      description: True if this address is the BitGo PayGo wallet
                    token:
                      type: string
                      description: If this is a token entry, the token's symbol
                      example: omg
                    failed:
                      type: boolean
                      description: True if this entry is failed
                    associatedNativeCoinAddress:
                      type: string
                      description: >-
                        The native coin receive address associated with the
                        solana ATA address.

                        This is currently present only for BitGo addresses.

                        This change was done so that there is a mapping between
                        the two addresses in the transfer entries.
                    isFee:
                      type: boolean
                      description: Indicates if this entry is a fee
                    isInternal:
                      type: boolean
                      description: Indicates if this entry is internal
                    memo:
                      type: string
                      description: Memo associated with this entry
                    rewardAddress:
                      type: string
                      description: Reward address associated with this entry
                    subtype:
                      type: string
                      description: Subtype of this entry
                    backingFeeString:
                      type: string
                      description: Backing fee represented as a string
                    nftId:
                      type: string
                      description: NFT ID associated with this entry
                    tokenContractHash:
                      type: string
                      description: Token contract hash associated with this entry
                    isReward:
                      type: boolean
                      description: Indicates if this entry is a reward
                  required:
                    - address
                  description: >-
                    An array of objects describing the change in address
                    balances made as a result of this Transfer
              history:
                type: array
                items:
                  type: object
                  properties:
                    action:
                      $ref: '#/components/schemas/TransferAction'
                    comment:
                      nullable: true
                      type: string
                      description: >-
                        If this history object is of action "commented", this is
                        the comment from the user
                    date:
                      type: string
                      description: The date of this history object
                      format: date-time
                      title: ISO Date String
                    transferId:
                      type: string
                      description: >-
                        The ID of the transfer that this history object is
                        associated with
                    txid:
                      type: string
                      description: >-
                        The transaction ID of the transaction that this history
                        object is associated with
                    user:
                      type: string
                      example: 59cd72485007a239fb00282ed480da1f
                      pattern: ^[0-9a-f]{32}$
                  required:
                    - action
                    - date
                  description: >-
                    An audit log of events that have happened to the Transfer
                    during its lifecycle
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              pendingApproval:
                type: string
              state:
                $ref: '#/components/schemas/TransferState1'
              stakingParams:
                type: object
                properties:
                  actionType:
                    type: string
                  amount:
                    type: string
                  coreDao:
                    type: object
                    properties:
                      amount:
                        type: string
                        format: number
                      expiration:
                        type: string
                        format: date-time
                        title: ISO Date String
                      fee:
                        type: number
                      rewardAddress:
                        type: string
                      validator:
                        type: string
                      version:
                        type: number
                    required:
                      - amount
                      - expiration
                      - fee
                      - rewardAddress
                      - validator
                      - version
                  receiverAddress:
                    type: string
                  requestId:
                    type: string
                  resource:
                    type: string
                  source:
                    type: string
                    enum:
                      - external
                      - internal
                  validator:
                    type: string
                required:
                  - actionType
                  - requestId
              txid:
                type: string
                description: The on-chain transaction id
                example: >-
                  b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
              type:
                allOf:
                  - $ref: '#/components/schemas/TransferType2'
                description: >-
                  Defines whether or not this Transfer was sent or received by
                  the user
              usd:
                type: number
                description: >-
                  The amount of USD of this Transfer (will be negative if it's a
                  send)
              usdRate:
                type: number
                description: The USD rate at the time this Transfer was created
              medianUsdValue:
                type: number
                description: The median USD value of this Transfer
              medianUsdRate:
                type: number
                description: The median USD rate at the time this Transfer was created
              feeUsd:
                type: number
                description: The fee USD value for token transfers
              feeUsdRate:
                type: number
                description: The fee coin USD rate for token transfers
              value:
                type: number
                description: >-
                  The total value (in base units) sent by this Transfer (may be
                  approximate for ETH and other coins where amounts in base
                  units can exceed 2^53 - 1)
              valueString:
                type: string
                description: >-
                  The total value (in base units) sent by this Transfer
                  represented as a String
                example: '2000000'
                pattern: ^-?\d+$
              wallet:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              walletType:
                type: string
                enum:
                  - backing
                  - cold
                  - custodial
                  - custodialPaired
                  - hot
                  - advanced
                  - trading
                description: Wallet type
              replaces:
                type: array
                items:
                  type: string
                  description: Transaction IDs that this transfer replaces.
              replacedBy:
                type: array
                items:
                  type: string
                  description: Transaction IDs that replace this transfer.
              replacedByTransferId:
                type: array
                items:
                  type: string
                  description: Transfer IDs that replace this transfer.
              riskIndicators:
                type: array
                items:
                  type: string
                  enum:
                    - SELFDESTRUCT
                  description: >-
                    Risk indicators for flagged transfers (e.g. SELFDESTRUCT
                    opcode).
              baseValueWithoutFeesString:
                type: string
                description: >-
                  The value (in base units) sent by this transfer, excluding
                  network fees, represented as a string
              baseValueWithoutFees:
                type: number
                description: >-
                  The value (in base units) sent by this transfer excluding
                  network fees.
              coinSpecific:
                description: Transfer fields specific to each coin type
              confirmations:
                type: number
                description: >-
                  The number of blocks that have been confirmed since this
                  Transfer's block was confirmed
              consolidateId:
                type: string
                description: Consolidation ID if this transfer is part of a consolidation
              feeString:
                nullable: true
                type: string
                description: The Transfer's fee (in base units) represented as a String
              feeCoin:
                type: string
                description: The coin used to pay the fee (for cross-chain transactions)
              sequenceId:
                type: string
                description: Unique wallet identifier for preventing double-spends
              subType:
                type: string
                enum:
                  - ofc_deposit
                  - ofc_withdrawal
                  - ofc_book_transfer
                  - ofc_exchange
                  - ofc_bn_settlement_transfer
                  - ofc_bn_allocation
                  - ofc_trading_order
                  - ofc_trading_settlement
                  - ofc_margin_collateral
                  - ofc_margin_position
                  - ofc_direct_trade
                  - ofc_routed
                  - ofc_fee
                  - ofc_other
                  - ofc_unstake
                  - ofc_financing_liquidation
                  - receive_from_gastank
                  - reserved_amount
                  - utxo_message_signing
                  - pending_deposit
                  - pending_deposit_activity
                  - internal_transfer
                  - pending_withdrawal_offer
                  - pending_deposit_offer
                  - offer_accepted
                  - offer_rejected
                  - confirmed_deposit
                  - confirmed_withdrawal
                  - deposit_offer_expired
                  - withdrawal_offer_expired
                  - withdrawal_offer_rejected
                  - utxo_expired
                  - offer_cancelled
                  - cancel_withdrawal_offer
                  - mint_request
                  - mint_offer
                  - mint_accept
                  - mint_deposit
                  - mint_reject
                  - burn_request
                  - burn_offer
                  - burn_accept
                  - burn_withdraw
                  - burn_reject
                  - pending_participant_onboarding_request
                  - participant_onboarding_accepted
                  - cash_dvp_settled
                  - repo_dvp_open_leg_settled
                  - repo_dvp_close_leg_settled
                  - staking_eth_withdrawal
                  - staking_eth_partial_withdrawal
                  - staking_eth_full_withdrawal
                  - staking_eth_mev_reward
                  - staking_eth_block_reward
                  - staking_bera_withdrawal
                  - staking_bera_block_reward
                description: Transfer subtype
                x-enumsDeprecated:
                  - staking_eth_partial_withdrawal
                  - staking_eth_full_withdrawal
              txRequestId:
                type: string
                description: Associated transaction request ID
              goStakingRequestId:
                type: string
                description: Associated GO staking request ID
              height:
                type: number
                description: >-
                  The height of the block this Transfer was confirmed in
                  (999999999 if unconfirmed)
              heightId:
                type: string
                description: The unique height id of the block
              instant:
                type: boolean
                description: Whether this is an instant transaction
              instantId:
                type: string
                description: The instant transaction ID if applicable
              isFee:
                type: boolean
                description: Whether this transfer represents a fee
              isReward:
                type: boolean
                description: Whether this transfer represents a staking reward
              isUnlock:
                type: boolean
                description: Whether this transfer represents an unlock operation
              nSegwitInputs:
                type: number
                description: DEPRECATED. Number of segwit inputs on the transfer.
              outputs:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      type: string
                      description: The address of the UTXO
                    blockHeight:
                      type: number
                      description: The block this Unspent was created in
                    chain:
                      type: number
                      description: The chain of the UTXO
                    coinbase:
                      type: boolean
                      description: True if this unspent came from the coinbase transaction
                    id:
                      type: string
                      description: The ID of the UTXO
                    index:
                      type: number
                      description: The index of the UTXO
                    redeemScript:
                      type: string
                      description: The redeem script of the UTXO
                    value:
                      type: number
                      description: The value of the UTXO
                    witnessScript:
                      type: string
                      description: The witness script of the UTXO
              payGoFee:
                type: number
                description: The Transfer's BitGo fee (in base units)
              payGoFeeString:
                type: string
                description: >-
                  The Transfer's BitGo fee (in base units) represented as a
                  String
              inputs:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      type: string
                      description: The address of the UTXO
                    blockHeight:
                      type: number
                      description: The block this Unspent was created in
                    chain:
                      type: number
                      description: The chain of the UTXO
                    coinbase:
                      type: boolean
                      description: True if this unspent came from the coinbase transaction
                    id:
                      type: string
                      description: The ID of the UTXO
                    index:
                      type: number
                      description: The index of the UTXO
                    redeemScript:
                      type: string
                      description: The redeem script of the UTXO
                    value:
                      type: number
                      description: The value of the UTXO
                    witnessScript:
                      type: string
                      description: The witness script of the UTXO
              intendedValueString:
                type: string
                description: >-
                  A string representation (in base units) of the initial value
                  for the transfer. This is present because when a transaction
                  fails on chain, its value is mutated to be zero. This string
                  is immutable and will always be the intended value of the
                  initial transfer regardless of the final state of the
                  transaction.
              label:
                type: string
                description: Address labels (if any) from entries concatenated.
              metadata:
                type: array
                items:
                  type: object
                  properties:
                    key:
                      type: string
                    value:
                      type: string
                  required:
                    - key
                    - value
                  description: Additional metadata associated with the transfer
              sendAccounting:
                type: array
                items:
                  type: object
                  properties:
                    amount:
                      type: number
                    amountString:
                      type: string
                    id:
                      type: string
                    nOuts:
                      type: number
                    type:
                      type: string
                  required:
                    - amountString
                    - nOuts
                    - type
                  description: Accounting breakdown for send transactions
              tags:
                type: array
                items:
                  type: string
                  description: The tags to be used on this Transfer (used in Policies)
              txidType:
                type: string
                description: The type of the transaction id
              usersNotified:
                type: boolean
                description: >-
                  Whether BitGo already sent notifications to the users of the
                  transfer wallet
              vSize:
                type: number
                description: The size of the transaction
              walletLabel:
                type: string
                description: Label of the wallet associated with this transfer
              enterpriseName:
                type: string
                description: Name of the enterprise associated with this transfer
              elliptic:
                type: string
                description: Elliptic risk score information (trust transfers)
              senderInformationVerified:
                type: boolean
                description: Whether sender information has been verified (trust transfers)
              buildParams:
                type: object
                additionalProperties: {}
                description: Parameters used to build the transaction
              createdTime:
                type: string
                description: The time this transfer was created
                format: date-time
                title: ISO Date String
              approvedTime:
                type: string
                description: The time this transfer was approved
                format: date-time
                title: ISO Date String
              rejectedTime:
                type: string
                description: The time this transfer was rejected
                format: date-time
                title: ISO Date String
              signedTime:
                type: string
                description: The time this transfer was signed
                format: date-time
                title: ISO Date String
              unconfirmedTime:
                type: string
                description: The time this transfer became unconfirmed
                format: date-time
                title: ISO Date String
              confirmedTime:
                type: string
                description: The time this transfer was confirmed
                format: date-time
                title: ISO Date String
              removedTime:
                type: string
                description: The time this transfer was removed
                format: date-time
                title: ISO Date String
              commentedTime:
                type: string
                description: The time this transfer was commented on
                format: date-time
                title: ISO Date String
              failedTime:
                type: string
                description: The time this transfer failed
                format: date-time
                title: ISO Date String
              regeneratedTime:
                type: string
                description: The time this transfer was regenerated
                format: date-time
                title: ISO Date String
              replacedTime:
                type: string
                description: The time this transfer was replaced
                format: date-time
                title: ISO Date String
              replacingTime:
                type: string
                description: The time this transfer started replacing another
                format: date-time
                title: ISO Date String
              abandonedTime:
                type: string
                description: The time this transfer was abandoned
                format: date-time
                title: ISO Date String
              signedDate:
                type: string
                description: The date this transfer was signed (legacy field)
                format: date-time
                title: ISO Date String
              customerApprovedTime:
                type: string
                description: >-
                  The time this transfer was approved by the customer (trust
                  transfers)
                format: date-time
                title: ISO Date String
              idVerificationTime:
                type: string
                description: The time identity verification was completed (trust transfers)
                format: date-time
                title: ISO Date String
              trustSignedTime:
                type: string
                description: The time this transfer was signed by trust (trust transfers)
                format: date-time
                title: ISO Date String
              trustFinalApprovalTime:
                type: string
                description: >-
                  The time this transfer received final trust approval (trust
                  transfers)
                format: date-time
                title: ISO Date String
            required:
              - coin
              - date
              - entries
              - history
              - id
              - state
              - type
              - valueString
              - wallet
        sendQueue:
          type: array
          items:
            type: object
            properties:
              debugTa2Ta: {}
              coin:
                $ref: '#/components/schemas/CoinString'
              token:
                type: string
              state:
                type: string
                enum:
                  - pending
                  - attempted
                  - failed
                  - done
                  - reverted
                  - held
                  - replaced
                  - abandoned
                description: The status of this SendQueue item
                example: done
              user:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              wallet:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              address:
                type: string
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              pendingApprovalId:
                type: string
              createTime:
                type: number
                description: Number of milliseconds since January 1, 1970
                example: 1537289808000
              modifyTime:
                type: number
                description: Number of milliseconds since January 1, 1970
                example: 1537289808000
              expireTime:
                type: number
              submitHeight:
                type: number
              confirmHeight:
                type: number
              comment:
                type: string
              txType:
                type: string
              txid:
                type: string
                description: The on-chain transaction ID
                example: >-
                  b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
              tx:
                type: string
                description: Raw transaction (hex)
              value:
                type: number
                description: The total value (in base units) sent by this sendq transaction
              valueString:
                type: string
                description: >-
                  The total value (in base units) sent by this sendq transaction
                  represented as a String
                example: '200000'
                pattern: ^-?\d+$
              payGoFee:
                type: number
                description: The Transfer's BitGo fee (in base units)
              payGoFeeString:
                type: string
                description: >-
                  The Transfer's BitGo fee (in base units) represented as a
                  String
              attempts:
                type: number
                description: Number of transmission attempts
              targetAttempts:
                type: number
                description: Max number of times to try transmitting
              nextAttempt:
                example: '2018-05-05T19:46:22.019Z'
              instantId:
                type: string
              instant:
                type: boolean
                description: Use instant sending (coin-specific) method if available
              agent:
                description: User agent used to submit the request
              error:
                type: string
                description: Error regarding the transaction
              held:
                type: boolean
                description: Indicates that the transaction was held at some point
              uniqueDoubleSpendPreventionIds:
                type: array
                example:
                  - 59cd72485007a239fb00282ed480da1f
                items:
                  type: string
              coinSpecific:
                allOf:
                  - $ref: '#/components/schemas/SendQueueCoinSpecific'
                description: Transaction fields specific to each coin type
              deployment:
                type: boolean
              lowPriority:
                type: boolean
              feesUsed:
                description: Fees (depending on the coin) used for the tx
              firstValidBlock:
                type: number
              lastValidBlock:
                type: number
              customNode:
                type: object
                properties:
                  accessToken:
                    type: string
                  nodeId:
                    type: string
                  url:
                    type: string
              txRequestId:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
                format: uuid
            required:
              - coin
              - state
              - user
              - createTime
              - modifyTime
              - txid
              - tx
              - valueString
              - payGoFee
              - payGoFeeString
              - attempts
              - targetAttempts
              - nextAttempt
              - agent
              - held
              - uniqueDoubleSpendPreventionIds
              - coinSpecific
              - deployment
              - feesUsed
        sendQueueUnconfirmedInputs:
          type: array
          items:
            type: object
            properties:
              debugTa2Ta: {}
              coin:
                $ref: '#/components/schemas/CoinString'
              token:
                type: string
              state:
                type: string
                enum:
                  - pending
                  - attempted
                  - failed
                  - done
                  - reverted
                  - held
                  - replaced
                  - abandoned
                description: The status of this SendQueue item
                example: done
              user:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              wallet:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              address:
                type: string
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              pendingApprovalId:
                type: string
              createTime:
                type: number
                description: Number of milliseconds since January 1, 1970
                example: 1537289808000
              modifyTime:
                type: number
                description: Number of milliseconds since January 1, 1970
                example: 1537289808000
              expireTime:
                type: number
              submitHeight:
                type: number
              confirmHeight:
                type: number
              comment:
                type: string
              txType:
                type: string
              txid:
                type: string
                description: The on-chain transaction ID
                example: >-
                  b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
              tx:
                type: string
                description: Raw transaction (hex)
              value:
                type: number
                description: The total value (in base units) sent by this sendq transaction
              valueString:
                type: string
                description: >-
                  The total value (in base units) sent by this sendq transaction
                  represented as a String
                example: '200000'
                pattern: ^-?\d+$
              payGoFee:
                type: number
                description: The Transfer's BitGo fee (in base units)
              payGoFeeString:
                type: string
                description: >-
                  The Transfer's BitGo fee (in base units) represented as a
                  String
              attempts:
                type: number
                description: Number of transmission attempts
              targetAttempts:
                type: number
                description: Max number of times to try transmitting
              nextAttempt:
                example: '2018-05-05T19:46:22.019Z'
              instantId:
                type: string
              instant:
                type: boolean
                description: Use instant sending (coin-specific) method if available
              agent:
                description: User agent used to submit the request
              error:
                type: string
                description: Error regarding the transaction
              held:
                type: boolean
                description: Indicates that the transaction was held at some point
              uniqueDoubleSpendPreventionIds:
                type: array
                example:
                  - 59cd72485007a239fb00282ed480da1f
                items:
                  type: string
              coinSpecific:
                allOf:
                  - $ref: '#/components/schemas/SendQueueCoinSpecific'
                description: Transaction fields specific to each coin type
              deployment:
                type: boolean
              lowPriority:
                type: boolean
              feesUsed:
                description: Fees (depending on the coin) used for the tx
              firstValidBlock:
                type: number
              lastValidBlock:
                type: number
              customNode:
                type: object
                properties:
                  accessToken:
                    type: string
                  nodeId:
                    type: string
                  url:
                    type: string
              txRequestId:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
                format: uuid
            required:
              - coin
              - state
              - user
              - createTime
              - modifyTime
              - txid
              - tx
              - valueString
              - payGoFee
              - payGoFeeString
              - attempts
              - targetAttempts
              - nextAttempt
              - agent
              - held
              - uniqueDoubleSpendPreventionIds
              - coinSpecific
              - deployment
              - feesUsed
        txRequests:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/TransactionRequestLite'
              - $ref: '#/components/schemas/TransactionRequestFull'
        pendingApprovals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              coin:
                type: string
                description: A cryptocurrency or token ticker symbol.
                example: btc
              wallet:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              walletType:
                type: string
              walletSubType:
                type: string
                description: The subtype of the wallet (e.g., custodialHot)
              wallets:
                type: array
                items:
                  type: string
                  example: 59cd72485007a239fb00282ed480da1f
                  pattern: ^[0-9a-f]{32}$
                  description: The wallets of the pending approval
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organization:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organizationName:
                type: string
                description: The organization name
              bitgoOrg:
                type: string
                description: The BitGo organization
              creator:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              createDate:
                type: string
                description: The creation date of the pending approval
                format: date-time
                title: ISO Date String
              approvedDate:
                type: string
                description: The date when the approval was granted
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: >-
                  The date when the approval was last updated (any update, not
                  just processing)
                format: date-time
                title: ISO Date String
              keyCurve:
                type: string
                enum:
                  - secp256k1
                  - ed25519
                  - bls12_381
                description: The key curve of the coin attached to this pending approval
              info:
                allOf:
                  - $ref: '#/components/schemas/PendingApprovalInfo'
                description: Information about the pending approval
              state:
                allOf:
                  - $ref: '#/components/schemas/PendingApprovalState'
                description: The state of the pending approval
              scope:
                type: string
                enum:
                  - enterprise
                  - wallet
                  - organization
                  - global
                description: What kind of entity the Pending Approval is tied to
              userIds:
                type: array
                items:
                  type: string
                  description: All the Users who should see this Pending Approval
              approvalsRequired:
                type: number
                example: 1
                minimum: 1
              walletLabel:
                type: string
                description: Label for the wallet
              addressLabels:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      $ref: '#/components/schemas/AddressString'
                    label:
                      type: string
                      description: The label
                    walletLabel:
                      type: string
                      description: The wallet label
                  required:
                    - address
                    - label
                  description: Address labels of recipients in this Pending Approval
              resolvers:
                type: array
                items:
                  type: object
                  description: Resolvers for the pending approval
                  properties:
                    autoApproved:
                      type: boolean
                      description: Whether the resolution was auto approved
                    date:
                      type: string
                      description: The date of resolution
                      format: date-time
                      title: ISO Date String
                    resolutionAction:
                      type: string
                      enum:
                        - approve
                        - reject
                        - skip
                        - fail
                      description: Action taken during resolution
                    resolutionMemo:
                      type: string
                      description: Memo regarding the resolution
                    resolutionType:
                      allOf:
                        - $ref: '#/components/schemas/PendingApprovalStatePending'
                      description: The type of resolution
                    user:
                      type: string
                      description: The user who resolved the approval
                    videoApprover:
                      type: string
                      description: The approver of the video resolution
                    videoException:
                      type: string
                      description: Exception details for the video
                    videoLink:
                      type: string
                      description: Link to the resolution video
                  required:
                    - resolutionType
              approvers:
                type: array
                items:
                  type: string
                  description: List of approvers
              singleRunResults:
                type: array
                items:
                  type: object
                  properties:
                    ruleId:
                      type: string
                      description: The rule ID
                    triggered:
                      type: boolean
                      description: Whether the rule was triggered
                  description: Results from single run checks
              txRequestId:
                type: string
                description: Transaction request ID
                example: 123e4567-e89b-12d3-a456-426614174000
                format: uuid
              videoId:
                type: object
                description: ID for the video related to the approval
                properties:
                  date:
                    type: string
                    description: The date of the video ID
                    format: date-time
                    title: ISO Date String
                  user:
                    type: string
                    description: The user associated with the video ID
                  videoApprover:
                    type: string
                    description: The approver of the video
                  videoException:
                    type: string
                    description: The exception related to the video
                  videoLink:
                    type: string
                    description: The link to the video
              version:
                type: number
                description: Version of the pending approval
              policyEvaluationId:
                type: string
                description: ID for the policy evaluation
              actions:
                type: array
                items:
                  type: object
                  properties:
                    approvers:
                      type: array
                      items:
                        type: string
                        description: The approvers of the action
                    excludedApprovers:
                      type: array
                      items:
                        type: string
                        description: >-
                          Users that are eligible approvers but cannot approve
                          (e.g. already approved or the initiator)
                    id:
                      type: string
                      description: The ID of the action
                    name:
                      type: string
                      description: The name of the action
                    operator:
                      type: string
                      enum:
                        - AND
                        - OR
                      description: The operator of the action
                    parameters:
                      allOf:
                        - $ref: '#/components/schemas/PolicyActionParameters'
                      description: The parameters of the action
                    resolvers:
                      type: array
                      items:
                        type: object
                        description: The resolvers of the action
                        properties:
                          autoApproved:
                            type: boolean
                            description: Whether the resolution was auto approved
                          date:
                            type: string
                            description: The date of resolution
                            format: date-time
                            title: ISO Date String
                          resolutionAction:
                            type: string
                            enum:
                              - approve
                              - reject
                              - skip
                              - fail
                            description: Action taken during resolution
                          resolutionMemo:
                            type: string
                            description: Memo regarding the resolution
                          resolutionType:
                            allOf:
                              - $ref: >-
                                  #/components/schemas/PendingApprovalStatePending
                            description: The type of resolution
                          user:
                            type: string
                            description: The user who resolved the approval
                          videoApprover:
                            type: string
                            description: The approver of the video resolution
                          videoException:
                            type: string
                            description: Exception details for the video
                          videoLink:
                            type: string
                            description: Link to the resolution video
                        required:
                          - resolutionType
                    status:
                      allOf:
                        - $ref: '#/components/schemas/EvaluatedPolicyActionStatus'
                      description: The status of the action
                  required:
                    - id
                    - name
                    - parameters
                    - status
                  description: List of actions taken
              resolutionOrder:
                type: array
                items:
                  type: object
                  properties:
                    actions:
                      type: array
                      items:
                        type: string
                        minLength: 1
                  required:
                    - actions
                  description: Order of resolution
              useLegacyPolicyEngine:
                type: boolean
                description: Flag to use legacy policy engine
              videoCallId:
                type: string
                description: ID for the video call
              lastUpdated:
                type: string
                description: The last date the approval was processing
                format: date-time
                title: ISO Date String
              freeze:
                type: object
                description: The freeze state
                properties:
                  actions:
                    type: array
                    items:
                      type: object
                      properties:
                        reason:
                          type: string
                        state:
                          type: string
                          enum:
                            - frozen
                            - unFrozen
                        time:
                          type: string
                          format: date-time
                          title: ISO Date String
                        userId:
                          type: string
                        username:
                          type: string
                  state:
                    type: string
                    enum:
                      - frozen
                      - unFrozen
              memo:
                type: array
                items:
                  type: object
                  properties:
                    text:
                      type: string
                      description: The text of the memo
                    time:
                      type: string
                      description: The time the memo was created
                      format: date-time
                      title: ISO Date String
                    userId:
                      type: string
                      description: The user ID of the admin who created the memo
                    username:
                      type: string
                      description: The username of the admin who created the memo
                  required:
                    - text
                    - time
                    - userId
                    - username
                  description: Admin memos attached to this pending approval
              associatedInquiries:
                type: array
                items:
                  type: object
                  properties:
                    inquiryId:
                      type: string
                    inquiryStatus:
                      $ref: '#/components/schemas/InquiryStatus'
                    inquirySubType:
                      $ref: '#/components/schemas/InquirySubType'
                    inquiryType:
                      $ref: '#/components/schemas/InquiryType'
                  required:
                    - inquiryId
                    - inquiryStatus
                    - inquirySubType
                    - inquiryType
                  description: Associated inquiries
            required:
              - id
              - creator
              - createDate
              - info
              - state
              - scope
      required:
        - transfers
        - sendQueue
        - sendQueueUnconfirmedInputs
        - txRequests
        - pendingApprovals
    TxHex:
      type: string
      description: Serialized transaction hex
      example: >-
        01000000000101d58f82d996dd872012675adadf4606734906b25a413f6e2ee535c0c10aef96020000000000ffffffff028de888000000000017a914c91aa24f65827eecec775037d886f2952b73cbe48740420f000000000017a9149304d18497b9bfe9532778a0f06d9fff3b3befaf870500473044022023d7210ba6d8bbd7a28b8af226f40f7235caab79156f93f9c9969fc459ea7f73022050fbdca788fba3de686b66b3501853695ff9d6f375867470207d233b099576e001000069522103d4788cda52f91c1f6c82eb91491ca76108c9c5f0839bc4f02eccc55fedb3311c210391bcef9dcc89570a79ba3c7514e65cd48e766a8868eca2769fa9242fdcc796662102ef3c5ebac4b54df70dea1bb2655126368be10ca0462382fcb730e55cddd2dd6a53aec8b11400
    TxId:
      type: string
      description: >
        The on-chain transaction id.


        **Go Account / OFC wallets:** For `ofc_withdrawal` transfers the
        top-level `txid`

        (and `normalizedTxHash`) is the internal front-transfer hash, not the
        on-chain

        transaction hash. The on-chain hash is available in
        `metadata[].onChainTxId` once

        the transfer reaches state `confirmed`. For standard `ofc_deposit`
        transfers

        (non-lightning) all three values are identical. For OFC lightning
        deposits the

        payment hash is in `metadata[].lightningPaymentHash`; `onChainTxId` is
        absent.
      example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
    TxUsdThresholdRuleCondition:
      title: TxUsdThresholdRuleCondition
      type: object
      properties:
        lowerBound:
          type: string
        upperBound:
          type: string
      required:
        - lowerBound
    U2FDetails:
      title: U2FDetails
      type: object
      properties:
        certificate:
          type: string
        keyHandle:
          type: string
        publicKey:
          type: string
    UnStakingRequestPOSTBody:
      type: object
      properties:
        clientId:
          description: Optional user-generated identifier to detect duplicated requests.
          type: string
          nullable: true
        delegationId:
          description: The ID of the delegation to unstake from.
          type: string
          nullable: true
        type:
          description: Staking request type. Always 'UNSTAKE' for this endpoint.
          type: string
          example: UNSTAKE
      required:
        - type
    UnStakingRequestPOSTBodyWithAmount:
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
        - type: object
          properties:
            amount:
              description: Amount to unstake in base units.
              type: string
          required:
            - amount
    UnStakingRequestPOSTBodyWithGasPrice:
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
        - type: object
          properties:
            gasPrice:
              type: string
              description: >-
                User overridden gas price to apply for the generated
                transactions for this request. GasPrice is in base units.
    UnStakingSpendableAttributes:
      type: object
      properties:
        fee:
          type: string
          nullable: true
        max:
          type: string
          nullable: true
        min:
          type: string
          nullable: true
        multipleDelegations:
          type: boolean
        requiresAmount:
          type: boolean
        requiresDelegationId:
          type: boolean
        requiresDelegationIds:
          type: boolean
    UnStakingSpendableAttributes1:
      allOf:
        - $ref: '#/components/schemas/BaseSpendableAttributes'
      type: object
      description: Spendable amounts and rules specific to unstaking operations.
      properties:
        multipleDelegations:
          description: True if more than one active staking delegation exists for a wallet.
          type: boolean
        breakdown:
          $ref: '#/components/schemas/UnstakingSpendableBreakdown'
        requiresAmount:
          description: Whether specifying an amount is required for the unstaking request.
          type: boolean
          default: true
        requiresDelegationId:
          description: >-
            Whether a single delegation ID is required for the unstaking
            request.
          type: boolean
          default: false
        requiresDelegationIds:
          description: >-
            Whether multiple delegation IDs must be specified for the unstaking
            request.
          type: boolean
          default: false
        fields:
          description: >-
            Dynamic form fields for the unstaking request (e.g., resource type
            selection).
          type: array
          items:
            $ref: '#/components/schemas/StakingField'
        unstakingSubTypes:
          type: array
          description: Supported unstaking sub-types with their own spendable attributes.
          items:
            $ref: '#/components/schemas/UnstakingSubTypeSpendableAttributes'
    UnauthorizedErrorResponse:
      required:
        - error
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Error code
          enum:
            - Unauthorized
        error:
          type: string
          description: Human-readable error message
        status:
          type: integer
          description: HTTP status code
          format: int32
          enum:
            - 401
      description: Unauthorized error response
    UnblockWebhookUrlResponse:
      required:
        - webhookId
      type: object
      properties:
        webhookId:
          type: string
    UndelegateIntent:
      title: UndelegateIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
              description: Must be "undelegate".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: >-
        Remove delegation of staked assets from a validator on EVM-compatible
        chains.

        Initiates the unbonding period. Requires a staking request ID from the
        BitGo

        staking service.
    UnknownDelegationProperties:
      title: Unknown Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          additionalProperties: true
    UnknownStakingRequestEntityProperties:
      title: Unknown staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          additionalProperties: true
          description: Used when the objectType is unknown. Accepts arbitrary fields.
    UnknownStakingTransactionProperties:
      title: Unknown Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          additionalProperties: true
    Unlock:
      title: Unlock
      type: object
      properties:
        expires:
          type: string
          format: date-time
          title: ISO Date String
        time:
          type: string
          format: date-time
          title: ISO Date String
        txCount:
          type: number
        txValue:
          type: number
        txValueLimit:
          type: number
    Unlock1:
      type: object
      properties:
        time:
          type: string
          format: date-time
        expires:
          type: string
          format: date-time
        txCount:
          type: integer
        txValue:
          type: integer
        txValueLimit:
          type: number
        spendingLimits:
          $ref: '#/components/schemas/SpendingLimits'
    UnlockRequest:
      type: object
      properties:
        duration:
          type: integer
          minimum: 1
          maximum: 3600
          default: 600
          description: Number of seconds that the session will stay unlocked
        otp:
          $ref: '#/components/schemas/Otp'
    UnmappedCounterpartyPartySettlementAmountsRecord:
      title: UnmappedCounterpartyPartySettlementAmountsRecord
      type: object
      additionalProperties:
        type: object
        additionalProperties:
          type: object
          additionalProperties:
            type: string
            description: >-
              For unmapped settlement amounts where the amount can be either
              BigNumberFromString or BigIntFromString.

              This provides flexibility in how monetary values are represented
              in settlement requests.
    UnmappedPartySettlementAmountsRecord:
      title: UnmappedPartySettlementAmountsRecord
      type: object
      additionalProperties:
        type: object
        additionalProperties:
          type: string
          description: >-
            For unmapped settlement amounts where the amount can be either
            BigNumberFromString or BigIntFromString.

            This provides flexibility in how monetary values are represented in
            settlement requests.
    UnmappedSettlementAmountsRecord:
      title: UnmappedSettlementAmountsRecord
      oneOf:
        - $ref: '#/components/schemas/UnmappedPartySettlementAmountsRecord'
        - $ref: >-
            #/components/schemas/UnmappedCounterpartyPartySettlementAmountsRecord
    UnsignedTransaction:
      title: UnsignedTransaction
      type: object
      properties:
        parsedTx:
          $ref: '#/components/schemas/ParsedTx'
        serializedTxHex:
          type: string
          description: The unsigned transaction as a hex string.
        signableHex:
          type: string
          description: >-
            The portion of a transaction used to generate a signature (may or
            may not be the same as serializedTxHex) as a hex string.
        derivationPath:
          type: string
          description: A bip32 path.
        coinSpecific:
          allOf:
            - type: object
              properties:
                nonceAddress:
                  type: string
                stakingAddress:
                  type: string
                signature:
                  type: string
            - type: object
              additionalProperties: {}
          description: Coin specific information.
        feeInfo:
          type: object
          properties:
            fee:
              oneOf:
                - type: string
                - type: number
            feeString:
              type: string
          required:
            - fee
            - feeString
      required:
        - parsedTx
        - serializedTxHex
        - signableHex
    Unspent:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/UnspentId'
        address:
          type: string
          description: The address of this unspent
          example: 2MsKxhhkDo5WaLaYRGA9Cr3iSQPyXsu6Fi2
        value:
          type: integer
        valueString:
          $ref: '#/components/schemas/IntegerString'
        blockHeight:
          type: integer
          description: The block this Unspent was created in
        date:
          type: string
          format: date-time
          description: The date this unspent was created
          example: '2017-03-25T23:01:40.248Z'
        coinbase:
          type: boolean
          description: True if this unspent came from the coinbase transaction
        wallet:
          $ref: '#/components/schemas/Id'
        fromWallet:
          $ref: '#/components/schemas/Id'
        chain:
          type: integer
          description: The type of this unspent's address (P2SH, P2WSH, etc...)
          example: 0
        index:
          type: integer
          description: A monotonic counter used when creating new addresses
        redeemScript:
          type: string
          description: >-
            The Script program used to cryptographically verify spending this
            unspent
          example: >-
            522102f1e990044d2a8be43d5b500bbdcb36277b97a4b07e01c5101ae8ec1568bfd6532103dab7dc82f2fc8c28200c1bdeca9c4cf181e0ca257395829cbd599395048afb57210205422e711827d8356f2fb75334d863941dd7eb45bd5788fa231dc5fa755135b653ae
        witnessScript:
          type: string
          description: >-
            The segwit Script program used to cryptographically verify spending
            this unspent
          example: >-
            52210351311cd81144e6cbdba561d24dfc22644cb02d053339d4beace03231b3be4f372103a8d0c1a375b9ee1a2411f9f8e18373be7f228b18260f63bbfca48809170ed08b2103c3bd8bd074657bbe9ee6714b31a4a54b6fd5b5cda0e1030122f9bf46b5034f6b53ae
        isSegwit:
          type: boolean
    UnspentId:
      type: string
      description: The id of the unspent in the form <txid>:<tx_index>
      example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2
    UnstakeGoStakingRequest:
      type: object
      required:
        - amount
      properties:
        clientId:
          type: string
          maxLength: 256
          nullable: true
        amount:
          type: string
          format: big-integer
          description: Amount to unstake, must be a positive value
        type:
          type: string
          enum:
            - UNSTAKE
          description: Must always be UNSTAKE
    UnstakeIntent:
      title: UnstakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
              description: Must be "unstake".
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    UnstakeIntent1:
      title: UnstakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent1'
    UnstakeIntent2:
      title: Generic Unstake
      allOf:
        - $ref: '#/components/schemas/BaseStakeIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
          required:
            - intentType
    UnstakingDisclaimer:
      type: object
      properties:
        info:
          type: array
          items:
            type: string
        unStakeCooldownPeriodDesc:
          type: string
          nullable: true
    UnstakingDisclaimerAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseDisclaimer'
      type: object
      description: Disclaimer information specific to unstaking.
      properties:
        unStakeCooldownPeriodDesc:
          description: Optional description of the cooldown period before unstaking.
          type: string
          nullable: true
        period:
          $ref: '#/components/schemas/EstimationPeriodAttributes'
        unstakingSubTypes:
          description: Optional list of unstaking sub-types with their own disclaimers.
          type: array
          items:
            $ref: '#/components/schemas/UnstakingSubTypeDisclaimerAttributes'
          nullable: true
    UnstakingParams:
      type: object
      properties:
        babylon:
          type: object
          properties:
            withdrawType:
              type: string
            undelegation:
              type: object
              properties:
                txHex:
                  type: string
                covenantSignatures:
                  type: array
                  items:
                    type: object
                    description: Covenant unbonding signature object from Babylon
    UnstakingPermissionAttributes:
      type: object
      properties:
        enabled:
          type: boolean
        disabledReason:
          type: string
          nullable: true
    UnstakingPermissionAttributes1:
      allOf:
        - $ref: '#/components/schemas/BasePermissionAttributes'
      type: object
      description: Permission attributes specific to unstaking.
    UnstakingSpendableBreakdown:
      type: object
      description: Detailed breakdown of spendable amounts and fees for unstaking.
      properties:
        balance:
          type: string
          format: bigInteger
          description: Current balance available for unstaking.
        unstakingFee:
          type: string
          format: bigInteger
          description: Fee required to perform an unstaking transaction.
        maxSpendable:
          type: string
          format: bigInteger
          description: Maximum amount that can be unstaked in a single transaction.
        unstakeable:
          $ref: '#/components/schemas/UnstakingUnstakeableBreakdown'
    UnstakingSubTypeDisclaimerAttributes:
      allOf:
        - $ref: '#/components/schemas/BaseDisclaimer'
      type: object
      description: Disclaimer information for a specific unstaking sub-type.
      properties:
        name:
          description: Sub-type display name.
          type: string
        type:
          description: Sub-type identifier.
          type: string
        maxUnstake:
          description: Optional maximum unstakeable amount for this sub-type.
          type: string
          nullable: true
        unStakeCooldownPeriodDesc:
          description: >-
            Optional human-readable description of the cooldown period for this
            sub-type.
          type: string
          nullable: true
        period:
          $ref: '#/components/schemas/EstimationPeriodAttributes'
        url:
          description: Optional URL for more information about this unstaking sub-type.
          type: string
          nullable: true
        iconName:
          description: Optional icon name for UI representation.
          type: string
          nullable: true
    UnstakingSubTypeSpendableAttributes:
      type: object
      description: >-
        Attributes describing unstaking behavior for a specific sub-type of
        unstaking operation.
      properties:
        name:
          type: string
          description: Human-readable name of the unstaking sub-type.
        type:
          type: string
          description: Internal identifier for the unstaking sub-type.
        fee:
          type: string
          format: bigInteger
          description: Fee required to perform an unstaking transaction for this sub-type.
        max:
          type: string
          format: bigInteger
          description: Maximum amount that can be unstaked for this sub-type.
        min:
          type: string
          format: bigInteger
          description: Minimum amount that must be unstaked for this sub-type.
        netMax:
          type: string
          format: bigInteger
          description: Maximum unstakeable amount minus applicable fees.
        netMin:
          type: string
          format: bigInteger
          description: Minimum unstakeable amount including fees.
        requiresAmount:
          type: boolean
          description: True if the unstaking request requires specifying an amount.
        requiresDelegationId:
          type: boolean
          description: True if a single delegation ID must be specified for unstaking.
        requiresDelegationIds:
          type: boolean
          description: True if multiple delegation IDs must be specified for unstaking.
        allowPartialUnstake:
          type: boolean
          description: True if partial unstaking (less than full delegation) is allowed.
        multipleDelegations:
          type: boolean
          description: >-
            True if this sub-type supports wallets with multiple active
            delegations.
    UnstakingUnstakeableBreakdown:
      type: object
      description: Breakdown of the wallet’s staked funds that can be unstaked.
      properties:
        stakedBalance:
          type: string
          format: bigInteger
          description: Total amount currently staked.
        pendingUnstake:
          type: string
          format: bigInteger
          description: Amount already requested for unstaking but not yet completed.
        maxUnstakeable:
          type: string
          format: bigInteger
          description: Maximum amount of staked funds that can be unstaked at this time.
    UnsubscribeFormBody:
      required:
        - List-Unsubscribe
      type: object
      properties:
        List-Unsubscribe:
          type: string
          description: RFC 8058 one-click unsubscribe form value. Must be 'One-Click'.
          example: One-Click
    UnsupportedTokenRecipientEntryItem:
      title: UnsupportedTokenRecipientEntryItem
      type: object
      properties:
        tokenContractAddress:
          $ref: '#/components/schemas/optionalString'
        decimals:
          $ref: '#/components/schemas/optionalNumber'
    UpdateBitgoChallenge:
      title: UpdateBitgoChallenge
      type: object
      properties:
        verifiers:
          type: object
          properties:
            adminSignature:
              type: string
              description: >-
                The admin signature is a hex string. Users should verify that
                the admin signature matches for the range proof challenge.
              minLength: 1
          required:
            - adminSignature
      required:
        - verifiers
    UpdateCommentRequest:
      type: object
      properties:
        comment:
          type: string
          description: The new comment for the transfer.
    UpdateEnterprise:
      type: object
      properties:
        legalIdentifiers:
          $ref: '#/components/schemas/PlatformLegalIdentifiers'
        approvalsRequired:
          type: integer
          minimum: 1
          description: How many Enterprise Admins are required for action to fire
        distributedCustody:
          $ref: '#/components/schemas/DistributedCustodyUpdateEnterprise'
        usersViewAllWallets:
          type: boolean
          description: Allow users to view all wallets
        preferredUi:
          allOf:
            - $ref: '#/components/schemas/EnterpriseAvailableUI'
          description: The UI that this enterprise prefers to use
    UpdateEnterpriseChallenge:
      title: UpdateEnterpriseChallenge
      type: object
      properties:
        ntilde:
          type: string
          description: Range proof challenge value.
          minLength: 1
        h1:
          type: string
          description: Range proof challenge value.
          minLength: 1
        h2:
          type: string
          description: Range proof challenge value.
          minLength: 1
        verifiers:
          type: object
          properties:
            adminSignature:
              type: string
              description: >-
                The admin signature is a hex string. Users should verify that
                the admin signature matches for the range proof challenge.
              minLength: 1
          required:
            - adminSignature
        paillierBlumProof:
          allOf:
            - $ref: '#/components/schemas/PaillierBlumProof'
          description: >-
            The paillierBlumProof value is only required when creating the
            initial config.
        ntildeProof:
          allOf:
            - $ref: '#/components/schemas/NtildeProof'
          description: >-
            The ntildeProof value is only required when creating the initial
            config.
      required:
        - ntilde
        - h1
        - h2
        - verifiers
    UpdateFileStatusBadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: UpdateFileStatusBadRequestError
      description: Generic error response
    UpdateFileStatusForbiddenError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: UpdateFileStatusForbiddenError
      description: Generic error response
    UpdateFileStatusInternalError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: UpdateFileStatusInternalError
      description: Generic error response
    UpdateFileStatusNotFoundError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: UpdateFileStatusNotFoundError
      description: Generic error response
    UpdateFileStatusRequest:
      type: object
      properties:
        status:
          type: string
          enum:
            - uploaded
            - requiresManualReview
          description: >-
            File upload status. Use `requiresManualReview` when the user chooses
            to submit a previously-rejected file.
        triggerLiveScreeningAsync:
          type: boolean
          description: >-
            When true, triggers async AI live screening on this upload. Defaults
            to false.
      required:
        - status
      title: UpdateFileStatusRequest
      description: Request body for updating file status
    UpdateFileStatusResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the file
        view:
          $ref: '#/components/schemas/FileView'
        uploadUrl:
          type: string
          format: uri
          description: Presigned URL for file upload (legacy; may be stale post-upload)
        status:
          $ref: '#/components/schemas/FileStatus'
        fileName:
          type: string
          description: Original filename of the uploaded file
        rejectionReason:
          type: string
          description: >-
            Human-readable reason populated when status is rejected (e.g.
            illegible scan, wrong document type)
      required:
        - id
        - uploadUrl
        - status
      title: UpdateFileStatusResponse
      description: Response after updating file status
    UpdateFileStatusUnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: UpdateFileStatusUnauthorizedError
      description: Generic error response
    UpdateIdentityBody:
      type: object
      properties:
        finalizeSubmission:
          type: boolean
          description: >-
            Whether identity is ready for final submission and requirements
            validation
        requestedProducts:
          type: array
          items:
            type: object
            properties:
              name:
                $ref: '#/components/schemas/CaaSBitGoProduct'
              bitgoOrg:
                $ref: '#/components/schemas/WPBitgoOrg'
              country:
                description: Country (formatted as ISO 3166-1 alpha-3)
              subdivision:
                type: string
                minLength: 1
                maxLength: 3
                description: >-
                  State, province, or region (formatted as subdivision section
                  of ISO 3166-2, excludes country code)
            required:
              - name
              - bitgoOrg
          description: List of products to update
        individual:
          $ref: '#/components/schemas/Individual'
        business:
          $ref: '#/components/schemas/Business'
        associatedPeople:
          type: array
          items:
            $ref: '#/components/schemas/AssociatedPersonInput'
          description: List of associated people to update
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: List of documents to update
      title: UpdateIdentityBody
    UpdateMuteSettingsRequest:
      required:
        - enterpriseIds
        - walletIds
      type: object
      properties:
        enterpriseIds:
          maxItems: 500
          minItems: 0
          type: array
          items:
            maxLength: 100
            minLength: 0
            type: string
        walletIds:
          maxItems: 5000
          minItems: 0
          type: array
          items:
            maxLength: 100
            minLength: 0
            type: string
    UpdateMutedEnterprisesRequest:
      type: object
      properties:
        enterpriseIds:
          maxItems: 500
          minItems: 0
          type: array
          items:
            maxLength: 100
            minLength: 0
            type: string
    UpdateMutedWalletsRequest:
      type: object
      properties:
        walletIds:
          maxItems: 5000
          minItems: 0
          type: array
          items:
            maxLength: 100
            minLength: 0
            type: string
    UpdateNotificationThresholdsRequest:
      type: object
      properties:
        depositThresholdUsd:
          minimum: 0
          exclusiveMinimum: false
          type: number
        withdrawalThresholdUsd:
          minimum: 0
          exclusiveMinimum: false
          type: number
    UpdatePinnedWalletsResponse:
      title: UpdatePinnedWalletsResponse
      type: object
      properties:
        pinnedWallets:
          $ref: '#/components/schemas/PinnedWallets'
      required:
        - pinnedWallets
    UpdateRemovePolicyRule:
      type: object
      properties:
        coin:
          allOf:
            - $ref: '#/components/schemas/Coin'
          description: >
            Policy rules of types `allTx`, `coinAddressWhitelist`,
            `coinAddressBlacklist` and `webhook` are recommended to

            be used without setting a coin so that they will apply to all coins
            and tokens that could be in a wallet. If

            your policy rule is of one of these types and has a coin set on it,
            you also need to set the coin in the body.

            This is necessary because the id alone may not be sufficient for
            finding the correct rule to update or delete.
        id:
          type: string
          description: >-
            The id of the rule. The combination of id and coin must be unique
            among rules in the policy.
        type:
          $ref: '#/components/schemas/PolicyRuleTriggers'
        condition:
          $ref: '#/components/schemas/PolicyRuleUpdateConditions'
        action:
          $ref: '#/components/schemas/PolicyRuleActions'
        lockDate:
          type: string
          description: The time at which this rule becomes immutable
          format: date-time
      required:
        - id
        - type
        - action
    UpdateSendLabel:
      type: object
      properties:
        label:
          type: string
          maxLength: 250
          description: A human-readable mapping to an address
      required:
        - label
    UpdateWallet:
      type: object
      properties:
        approvalsRequired:
          $ref: '#/components/schemas/ApprovalsRequired'
        buildDefaults:
          $ref: '#/components/schemas/WalletBuildDefaults'
        disableTransactionNotifications:
          type: boolean
        label:
          $ref: '#/components/schemas/WalletLabel'
        customChangeKeySignatures:
          $ref: '#/components/schemas/CustomChangeKeySignatures'
        coinSpecific:
          $ref: '#/components/schemas/WalletUpdateCoinSpecific'
    UpdateWalletShareResponse:
      title: UpdateWalletShareResponse
      type: object
      properties:
        state:
          allOf:
            - $ref: '#/components/schemas/WalletShareState'
          description: New state of the wallet share after update
        changed:
          type: boolean
          description: Whether the wallet share was changed
      required:
        - state
        - changed
    UpfrontPaymentStatus:
      title: UpfrontPaymentStatus
      type: string
      enum:
        - received
        - waived
        - pending
        - overdue
        - delinquent
    UpsertWebhookOAuthConfigRequest:
      required:
        - clientId
        - clientSecret
        - scope
        - tokenUrl
      type: object
      properties:
        tokenUrl:
          minLength: 1
          type: string
        clientId:
          minLength: 1
          type: string
        clientSecret:
          minLength: 1
          type: string
        scope:
          minLength: 1
          type: string
    User:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        isActive:
          type: boolean
        isFrozen:
          type: boolean
        freezeReason:
          type: string
          example: Frozen due to suspicious activity
        name:
          $ref: '#/components/schemas/Name'
        username:
          $ref: '#/components/schemas/Email'
        email:
          type: object
          properties:
            email:
              $ref: '#/components/schemas/Email'
            verified:
              type: boolean
              example: true
        phone:
          type: object
          properties:
            phone:
              type: string
              example: 408-718-6885
            verified:
              type: boolean
              example: true
        country:
          type: string
          example: USA
        state:
          type: string
          example: New York
        kycStatus:
          type: string
          example: approved
          description: user's overall KYC status
          enum:
            - approved
            - pending
            - rejected
            - unverified
    User1:
      title: User
      allOf:
        - type: object
          properties:
            agreements:
              allOf:
                - $ref: '#/components/schemas/Agreements'
              description: The agreements the user has accepted
            allowedCoins:
              type: array
              items:
                type: string
                description: The coins the user is allowed to use
            bitgoEmployee:
              type: boolean
              description: Whether the user is a BitGo employee
            currency:
              allOf:
                - $ref: '#/components/schemas/Currency1'
              description: The user's preferred currency
            disableReset2FA:
              type: boolean
              description: Whether the user has disabled 2FA reset
            organizations:
              type: array
              items:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      type: string
                      enum:
                        - admin
                  role:
                    $ref: '#/components/schemas/OrganizationRole'
                  id:
                    type: string
                  name:
                    type: string
                required:
                  - permissions
                  - role
                description: The organizations the user is a member of
            featureFlags:
              type: array
              items:
                type: string
                description: Any feature flags the user has enabled
            forceResetPassword:
              type: boolean
              description: Whether the user has forced a password reset
            identity:
              allOf:
                - $ref: '#/components/schemas/Identity'
              description: The user's identity information
            otpDevices:
              type: array
              items:
                type: object
                properties:
                  createDate:
                    type: string
                    format: date-time
                    title: ISO Date String
                  id:
                    type: string
                  backupPhone:
                    type: string
                  label:
                    type: string
                  lastValidatedDate:
                    type: string
                    format: date-time
                    title: ISO Date String
                  phone:
                    type: string
                  registeredKey:
                    $ref: '#/components/schemas/U2FDetails'
                  type:
                    $ref: '#/components/schemas/OtpType'
                  verified:
                    type: boolean
                  scopes:
                    type: array
                    items:
                      type: string
                      enum:
                        - wallet_hot
                  extensions:
                    type: object
                    additionalProperties:
                      type: boolean
                  prfSalt:
                    type: string
                  isPasskey:
                    type: boolean
                  credentialId:
                    type: string
                required:
                  - createDate
                  - id
                description: The user's devices that can be used for OTP authentication
            phone:
              allOf:
                - $ref: '#/components/schemas/Phone'
              description: The user's phone number
            timezone:
              type: string
              description: The user's timezone
            apps:
              description: The apps the user has access to
            country:
              type: string
              description: The country of the user
              example: USA
            ecdhKeychain:
              nullable: true
              type: string
              description: The user's ECDH keychain
            isActive:
              type: boolean
              description: Whether the user is active
            isFrozen:
              type: boolean
              description: Whether the user is frozen
            freezeReason:
              type: string
              description: The reason the user is frozen if they are frozen
              example: Frozen due to suspicious activity
            freeze:
              type: object
              description: >-
                Freeze object that will hold the start time and expiration time
                of a user's freeze.

                By default the freeze is infinite, and this field will
                eventually override the isFrozen boolean field
              properties:
                time:
                  type: string
                  format: date-time
                  title: ISO Date String
                expires:
                  type: string
                  format: date-time
                  title: ISO Date String
            lastLogin:
              type: string
              description: The last login time of the user
              format: date-time
              title: ISO Date String
            locale:
              type: string
              description: The user's locale
            pgpKey:
              type: string
              description: The user's PGP key
            rateLimits:
              description: The rate limits applied to the user
            referrer:
              allOf:
                - $ref: '#/components/schemas/Referrer'
              description: The referrer of the user
            signupDomain:
              type: string
              description: The signup domain of the user
            state:
              type: string
              description: The state of the user
              example: New York
            sourceVerificationRequired:
              type: boolean
              description: Whether source verification is required for the user
            sourceVerificationRequiredForReadOnlyAccess:
              type: boolean
              description: Whether source verification is required for read-only access
            recoveryCodeSet:
              type: object
              description: The recovery code set for the user
              properties:
                id:
                  type: string
                  description: The ID of the recovery code set
                allCodesUsed:
                  type: boolean
                  description: Whether all recovery codes have been used
              required:
                - id
                - allCodesUsed
            createTime:
              type: string
            passwordUpdatedAt:
              type: string
              format: date-time
              title: ISO Date String
          required:
            - agreements
            - allowedCoins
            - bitgoEmployee
            - currency
            - disableReset2FA
            - organizations
            - featureFlags
            - forceResetPassword
            - identity
            - otpDevices
            - phone
            - timezone
        - $ref: '#/components/schemas/UserRequiredFields'
    UserAccessReportContents:
      title: UserAccessReportContents
      type: string
      enum:
        - members
        - roles
    UserCategoriesResponse:
      required:
        - categories
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/UserCategoryStatusDTO'
    UserCategoryStatusDTO:
      required:
        - categoryName
        - isMandatory
        - isSubscribed
      type: object
      properties:
        categoryName:
          type: string
          enum:
            - access
            - access_tokens
            - approval_completed
            - approval_required
            - bank_accounts_and_fiat_operations
            - bank_and_trust
            - financing
            - go_network
            - identity
            - oes
            - reports
            - trade
            - ums
            - wallet_notifications
            - transaction_monitoring
            - staking_rewards
            - treasury_management
            - stuck_transaction_notification
        isSubscribed:
          type: boolean
        isMandatory:
          type: boolean
    UserKycState:
      type: string
      enum:
        - approved
        - flagged
        - flagged_retry_allowed
        - inreview
        - pending
        - rejected
        - unverified
    UserKycState1:
      title: UserKycState
      type: string
      enum:
        - unverified
        - pending
        - approved
        - rejected
        - qrscanned
        - inreview
        - flagged
        - flagged_retry_allowed
    UserNotificationSubscriptionDTO:
      required:
        - categoryName
        - channel
        - createdAt
        - isMandatory
        - isSubscribed
        - notificationName
        - updatedAt
      type: object
      properties:
        id:
          type: string
          format: uuid
        userId:
          type: string
          format: uuid
        notificationName:
          type: string
        categoryName:
          type: string
        channel:
          type: string
        isSubscribed:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        isMandatory:
          type: boolean
    UserRequiredFields:
      title: UserRequiredFields
      type: object
      description: >-
        Fields that will always be populated in accordance with the defined
        codec

        If you find other fields that will provably always be populated on

        a given user (even for legacy users created long ago), that field can be
        moved

        to UserRequiredFields
      properties:
        id:
          type: string
          description: The unique identifier for the user
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        username:
          type: string
          description: The username of the user
          example: user@email.com
          format: email
        name:
          allOf:
            - $ref: '#/components/schemas/Name1'
          description: The name of the user
        enterprises:
          type: array
          items:
            type: object
            properties:
              permissions:
                type: array
                items:
                  type: string
                  enum:
                    - admin
                    - auditor
                  description: >-
                    This type represents the permissions that can be assigned to
                    a user when adding them to an enterprise


                    1. 'admin': Add/remove users, Create wallets, Manage
                    enterprise policies, Add Bank Accounts, Receive invitations
                    to wallets

                    2. 'auditor': View audit logs across the enterprise, Receive
                    invitations to wallets
              id:
                type: string
              beneficialOwner:
                type: boolean
              primaryContact:
                type: string
              kycState:
                $ref: '#/components/schemas/KycState'
              bitgoOrg:
                type: string
              name:
                type: string
              videoIdState:
                type: string
              videoIdLink:
                type: string
            required:
              - permissions
            description: The enterprise(s) the user is a member of
        email:
          allOf:
            - $ref: '#/components/schemas/Email1'
          description: The email address of the user
      required:
        - id
        - username
        - name
        - enterprises
        - email
    UserSharingKey:
      type: object
      required:
        - email
      properties:
        email:
          $ref: '#/components/schemas/Email'
    UserSubscriptionsResponse:
      required:
        - notificationSubscriptions
      type: object
      properties:
        notificationSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/UserNotificationSubscriptionDTO'
    UtxoAddress:
      title: Utxo Address
      type: object
      properties:
        redeemScript:
          type: string
        witnessScript:
          type: string
    UtxoFeeInfo:
      title: UTXO
      type: object
      description: feeInfo (UTXO)
      properties:
        size:
          type: integer
          description: Estimated size of the transaction in bytes
          example: 776
        fee:
          type: integer
          description: Estimated fee in base unit for the transaction
          example: 38800
        feeRate:
          allOf:
            - $ref: '#/components/schemas/IntegerOrString'
            - example: 10000
          description: >
            Custom minimum fee rate in a coin's base unit per kilobyte (or
            virtual kilobyte)--for example, satoshis per kvByte or microAlgos
            per kByte. If the applied `feeRate` does not meet a coin's required
            minimum transaction fee amount, the minimum is still applied (for
            example, 1000 sat/kvByte or a flat 1000 microAlgos).
        payGoFee:
          type: integer
          description: BitGo fee of the transaction (in base units)
          example: 0
        payGoFeeString:
          type: integer
          description: BitGo fee of the transaction (in base units) represented as a String
          example: '0'
    UtxoSendQueue:
      title: Utxo
      allOf:
        - $ref: '#/components/schemas/BitcoinSendQueueLighting'
        - $ref: '#/components/schemas/UtxoSendQueueOnchain'
    UtxoSendQueueOnchain:
      title: Utxo
      allOf:
        - type: object
          properties:
            changeAddressType:
              oneOf:
                - type: string
                - type: array
                  items:
                    type: string
        - type: object
          additionalProperties: {}
    UtxoTransactionFormat:
      type: string
      description: >-
        [UTXO only] Format of the returned transaction hex serialization.

        `legacy` for serialized transaction in custom bitcoinjs-lib format.
        `psbt` for BIP174 serialized transaction
      enum:
        - legacy
        - psbt
        - psbt-lite
      default: legacy
      example: psbt
    UtxoTxInfo:
      title: UTXO
      type: object
      description: txInfo (UTXO)
      properties:
        changeAddresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressString3'
        nOutputs:
          type: integer
          description: Number of outputs
          example: 2
        nP2SHInputs:
          type: integer
          example: 0
        nSegwitInputs:
          type: integer
          example: 1
        unspents:
          type: array
          items:
            $ref: '#/components/schemas/Unspent'
        walletAddressDetails:
          $ref: '#/components/schemas/Address2'
    UtxoWallet:
      title: Utxo Wallet
      type: object
      properties:
        customChangeWalletId:
          type: string
        customChangeAddressType:
          type: string
        sendQueueInferredScriptTypes:
          type: array
          items:
            type: string
        allowQuantumUnsafeAddresses:
          type: boolean
        freezeDepositsFromShielded:
          type: boolean
    V1AllocationGetOutput:
      title: V1AllocationGetOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the allocation/deallocation.
            This is a UUID that uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositiveAllocationAmount'
          description: >-
            The amount of the allocation/deallocation.

            Contains both the currency identifier and the quantity in base
            units.
        connectionId:
          type: string
          description: |-
            The unique identifier of the connection this allocation is for.
            This identifies a connection between a client and partner.
          title: uuid
        clientExternalId:
          type: string
          description: >-
            External identifier provided by the client when creating the
            allocation/deallocation.

            Used for idempotence and correlation with client systems.
          minLength: 1
        partnerExternalId:
          type: string
          description: >-
            External identifier of the allocation/deallocation in the partner
            system.

            May be populated when partners provide their own identifier for the
            allocation.
          minLength: 1
        initiatedBy:
          type: string
          description: >-
            The identifier of the user that initiated the
            allocation/deallocation.

            Represents the user ID from the BitGo platform.
          minLength: 1
        notes:
          type: string
          description: >-
            Optional notes provided by the client when creating the
            allocation/deallocation.

            Can contain additional context or information about the purpose of
            the allocation.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        retriable:
          type: boolean
          description: >-
            Indicates whether or not the allocation/deallocation is retriable.

            When true, clients may retry the operation if it did not complete
            successfully.

            Retry can be performed by re-sending the same allocation request
            that was originally sent.
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            allocation/deallocation.

            Present when policy evaluation was performed as part of the
            allocation flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this
            allocation/deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this
            allocation/deallocation.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        reason:
          nullable: true
          type: string
          minLength: 1
          description: >-
            The reason that the allocation/deallocation is not cleared.

            Provides a descriptive explanation for why the allocation is in the
            reserved state.

            Will not be defined if the allocation is cleared.
        status:
          allOf:
            - $ref: '#/components/schemas/AllocationStatus'
          description: >-
            Status of the allocation/deallocation.


            Possible values:

            - reserved: The amount for allocation/deallocation is reserved but
            operation has not completed.
              This is a temporary state awaiting final resolution.
            - cleared: Terminal state; the amount for allocation/deallocation is
            cleared and funds
              have been successfully allocated. This indicates a successful operation.
            - released: Terminal state; the amount for allocation/deallocation
            is released and
              funds have been returned. This indicates the operation failed,
              either because balance was insufficient for allocation/deallocation, or that the
              partner rejected the request to allocate/deallocate.
        type:
          allOf:
            - $ref: '#/components/schemas/AllocationType'
          description: >-
            The type of the entity.


            Possible values:

            - allocation: Represents an allocation of funds to a connection.
            This moves funds
              from a client's BitGo account to make them available for the specified connection.
            - deallocation: Represents a deallocation of funds from a
            connection. This moves funds
              from a connection back to the client's BitGo account.
      required:
        - id
        - amount
        - connectionId
        - clientExternalId
        - initiatedBy
        - createdAt
        - updatedAt
        - retriable
        - reason
        - status
        - type
    V1AllocationGetPayload:
      title: V1AllocationGetPayload
      type: object
      properties:
        allocation:
          $ref: '#/components/schemas/V1AllocationGetOutput'
      required:
        - allocation
    V1AllocationsClearedPostPayload:
      title: V1AllocationsClearedPostPayload
      type: object
      properties:
        allocation:
          allOf:
            - $ref: '#/components/schemas/V1ClearedAllocation'
          description: |-
            The allocation record in its cleared state.
            This contains all allocation details with a status of 'cleared',
            indicating the allocation was successfully completed.
      required:
        - allocation
    V1AllocationsGetPayload:
      title: V1AllocationsGetPayload
      type: object
      properties:
        allocations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: |-
                  The unique identifier of the allocation/deallocation.
                  This is a UUID that uniquely identifies the allocation record.
                title: uuid
              amount:
                allOf:
                  - $ref: '#/components/schemas/PositiveAllocationAmount'
                description: >-
                  The amount of the allocation/deallocation.

                  Contains both the currency identifier and the quantity in base
                  units.
              connectionId:
                type: string
                description: >-
                  The unique identifier of the connection this allocation is
                  for.

                  This identifies a connection between a client and partner.
                title: uuid
              clientExternalId:
                type: string
                description: >-
                  External identifier provided by the client when creating the
                  allocation/deallocation.

                  Used for idempotence and correlation with client systems.
                minLength: 1
              partnerExternalId:
                type: string
                description: >-
                  External identifier of the allocation/deallocation in the
                  partner system.

                  May be populated when partners provide their own identifier
                  for the allocation.
                minLength: 1
              initiatedBy:
                type: string
                description: >-
                  The identifier of the user that initiated the
                  allocation/deallocation.

                  Represents the user ID from the BitGo platform.
                minLength: 1
              notes:
                type: string
                description: >-
                  Optional notes provided by the client when creating the
                  allocation/deallocation.

                  Can contain additional context or information about the
                  purpose of the allocation.
                minLength: 1
              createdAt:
                type: string
                description: >-
                  The date and time when the allocation/deallocation was
                  created.

                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: >-
                  The date and time when the allocation/deallocation was last
                  updated.

                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              retriable:
                type: boolean
                description: >-
                  Indicates whether or not the allocation/deallocation is
                  retriable.

                  When true, clients may retry the operation if it did not
                  complete successfully.

                  Retry can be performed by re-sending the same allocation
                  request that was originally sent.
              evaluationId:
                type: string
                description: >-
                  The unique identifier of the policy evaluation for this
                  allocation/deallocation.

                  Present when policy evaluation was performed as part of the
                  allocation flow.
                minLength: 1
              pendingApprovalId:
                type: string
                description: >-
                  The unique identifier of the pending approval for this
                  allocation/deallocation.

                  Present when policy evaluation resulted in a PENDING status
                  requiring manual approval.
                minLength: 1
              policyResult:
                type: string
                enum:
                  - approved
                  - rejected
                description: >-
                  The result of the policy evaluation for this
                  allocation/deallocation.

                  - 'approved': Policy evaluation passed and the operation was
                  allowed

                  - 'rejected': Policy evaluation failed and the operation was
                  denied

                  Not present if no policy evaluation was performed or if
                  evaluation is still pending.
              reason:
                nullable: true
                type: string
                minLength: 1
                description: >-
                  The reason that the allocation/deallocation is not cleared.

                  Provides a descriptive explanation for why the allocation is
                  in the reserved state.

                  Will not be defined if the allocation is cleared.
              status:
                allOf:
                  - $ref: '#/components/schemas/AllocationStatus'
                description: >-
                  Status of the allocation/deallocation.


                  Possible values:

                  - reserved: The amount for allocation/deallocation is reserved
                  but operation has not completed.
                    This is a temporary state awaiting final resolution.
                  - cleared: Terminal state; the amount for
                  allocation/deallocation is cleared and funds
                    have been successfully allocated. This indicates a successful operation.
                  - released: Terminal state; the amount for
                  allocation/deallocation is released and
                    funds have been returned. This indicates the operation failed,
                    either because balance was insufficient for allocation/deallocation, or that the
                    partner rejected the request to allocate/deallocate.
              type:
                allOf:
                  - $ref: '#/components/schemas/AllocationType'
                description: >-
                  The type of the entity.


                  Possible values:

                  - allocation: Represents an allocation of funds to a
                  connection. This moves funds
                    from a client's BitGo account to make them available for the specified connection.
                  - deallocation: Represents a deallocation of funds from a
                  connection. This moves funds
                    from a connection back to the client's BitGo account.
            required:
              - id
              - amount
              - connectionId
              - clientExternalId
              - initiatedBy
              - createdAt
              - updatedAt
              - retriable
              - reason
              - status
              - type
            description: |-
              Array of allocation records matching the query criteria.

              The array may be empty if no allocations match the query criteria.
      required:
        - allocations
    V1AllocationsReleasedPayload:
      title: V1AllocationsReleasedPayload
      type: object
      properties:
        allocation:
          allOf:
            - $ref: '#/components/schemas/V1ReleasedAllocation'
          description: |-
            The allocation record in its released state.
            This contains all allocation details with a status of 'released',
            indicating the allocation was not completed and funds were returned.
            The reason field will explain why the allocation was released.
      required:
        - allocation
    V1AllocationsReleasedWithErrorPostPayload:
      title: V1AllocationsReleasedWithErrorPostPayload
      allOf:
        - $ref: '#/components/schemas/V1AllocationsReleasedPayload'
        - $ref: '#/components/schemas/V1ErrorPayload'
    V1AssignedDisputesWithClosureOutput:
      title: V1AssignedDisputesWithClosureOutput
      type: array
      items:
        allOf:
          - type: object
            properties:
              settledInSettlementId:
                type: string
                title: uuid
            required:
              - settledInSettlementId
          - $ref: '#/components/schemas/V1ClosedDisputeWithClosureOutput'
    V1BankRoutingResponse:
      title: V1BankRoutingResponse
      type: object
      properties:
        address:
          $ref: '#/components/schemas/V1RoutingAddress'
        bankType:
          type: string
          enum:
            - aba
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        name:
          type: string
        routingNumber:
          type: string
          description: The banks routing number
        swiftCode:
          type: string
          description: SWIFT/BIC code for the account
        transferTypes:
          type: array
          description: The transfer types supported by the bank
          items:
            type: string
            enum:
              - ach-us
              - wire-domestic
              - wire-swift
    V1BlockListResponse:
      title: V1BlockListResponse
      type: object
      description: codec for global listing http response
      properties:
        id:
          type: string
          title: uuid
        ownerListingId:
          type: string
          title: uuid
        blockedListingId:
          type: string
          title: uuid
        blockedGlobalListingId:
          type: string
          title: uuid
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - id
        - ownerListingId
        - blockedListingId
        - blockedGlobalListingId
        - createdAt
    V1BlockListWithListingArrayResponse:
      title: V1BlockListWithListingArrayResponse
      type: object
      properties:
        blockList:
          $ref: '#/components/schemas/V1BlockListsWithListingResponse'
      required:
        - blockList
    V1BlockListsWithListingResponse:
      title: V1BlockListsWithListingResponse
      type: array
      items:
        allOf:
          - type: object
            properties:
              blockedListing:
                $ref: '#/components/schemas/V1ListingResponse'
            required:
              - blockedListing
          - $ref: '#/components/schemas/V1BlockListResponse'
    V1BulkConnectionsResponse:
      title: V1BulkConnectionsResponse
      type: object
      properties:
        requestedConnections:
          type: array
          items:
            type: string
            minLength: 1
        rejectedConnections:
          type: array
          items:
            type: string
            minLength: 1
        successfulConnections:
          type: array
          items:
            type: string
            minLength: 1
      required:
        - requestedConnections
        - rejectedConnections
        - successfulConnections
    V1ClearedAllocation:
      title: V1ClearedAllocation
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the allocation/deallocation.
            This is a UUID that uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositiveAllocationAmount'
          description: >-
            The amount of the allocation/deallocation.

            Contains both the currency identifier and the quantity in base
            units.
        connectionId:
          type: string
          description: |-
            The unique identifier of the connection this allocation is for.
            This identifies a connection between a client and partner.
          title: uuid
        clientExternalId:
          type: string
          description: >-
            External identifier provided by the client when creating the
            allocation/deallocation.

            Used for idempotence and correlation with client systems.
          minLength: 1
        partnerExternalId:
          type: string
          description: >-
            External identifier of the allocation/deallocation in the partner
            system.

            May be populated when partners provide their own identifier for the
            allocation.
          minLength: 1
        initiatedBy:
          type: string
          description: >-
            The identifier of the user that initiated the
            allocation/deallocation.

            Represents the user ID from the BitGo platform.
          minLength: 1
        notes:
          type: string
          description: >-
            Optional notes provided by the client when creating the
            allocation/deallocation.

            Can contain additional context or information about the purpose of
            the allocation.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        retriable:
          type: boolean
          enum:
            - false
          description: >-
            Indicates whether or not the allocation/deallocation is retriable.

            When true, clients may retry the operation if it did not complete
            successfully.

            Retry can be performed by re-sending the same allocation request
            that was originally sent.
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            allocation/deallocation.

            Present when policy evaluation was performed as part of the
            allocation flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this
            allocation/deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this
            allocation/deallocation.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        status:
          type: string
          enum:
            - cleared
          description: >-
            Status of the allocation/deallocation.


            Possible values:

            - reserved: The amount for allocation/deallocation is reserved but
            operation has not completed.
              This is a temporary state awaiting final resolution.
            - cleared: Terminal state; the amount for allocation/deallocation is
            cleared and funds
              have been successfully allocated. This indicates a successful operation.
            - released: Terminal state; the amount for allocation/deallocation
            is released and
              funds have been returned. This indicates the operation failed,
              either because balance was insufficient for allocation/deallocation, or that the
              partner rejected the request to allocate/deallocate.
      required:
        - id
        - amount
        - connectionId
        - clientExternalId
        - initiatedBy
        - createdAt
        - updatedAt
        - retriable
        - status
    V1ClientAllocationsSigningGetPayload:
      title: V1ClientAllocationsSigningGetPayload
      type: object
      properties:
        payload:
          type: string
          description: >-
            Payload string to sign based on the provided request parameters.


            This string:

            - Contains a JSON representation of the allocation request
            parameters.

            - Should be signed using the client's private key.

            - The resulting signature should be included in the subsequent
            allocation creation request.

            - Helps ensure that allocation requests are authenticated and
            tamper-proof.
      required:
        - payload
    V1ClientBalancesGetPayload:
      title: V1ClientBalancesGetPayload
      type: object
      properties:
        clientId:
          type: string
          description: |-
            Unique identifier of the client whose balances are being returned.
            This UUID corresponds to your organization within the BitGo system.
          title: uuid
        balances:
          allOf:
            - $ref: '#/components/schemas/AccountBalanceRecord'
          description: >-
            A record of account balances indexed by currency code.


            Each key in this record is a currency identifier (e.g., "ofcbtc",
            "ofceth", "ofcusdc"),

            and the corresponding value is an AccountBalance object containing
            the available

            and held amounts for that currency in base units.
        networkBalances:
          allOf:
            - $ref: '#/components/schemas/NetworkAccountBalanceRecordForClient'
          description: >-
            Detailed information about balances across all your partner
            connections.


            This record contains:

            - Keys: Connection IDs that uniquely identify each connection

            - Values: Detailed information about the connection and its balances
      required:
        - clientId
        - balances
        - networkBalances
    V1ClientConnectionsSigningGetPayload:
      title: V1ClientConnectionsSigningGetPayload
      type: object
      properties:
        payload:
          type: string
      required:
        - payload
    V1ClientDeallocationsSigningGetPayload:
      title: V1ClientDeallocationsSigningGetPayload
      type: object
      properties:
        payload:
          type: string
          description: >-
            The payload string that should be signed.

            This string should be cryptographically signed by the client and
            included

            in the subsequent deallocation request along with the signature.
      required:
        - payload
    V1ClientDisputeClosurePayload:
      title: V1ClientDisputeClosurePayload
      type: object
      properties:
        disputeClosure:
          $ref: '#/components/schemas/DisputeClosure'
      required:
        - disputeClosure
    V1ClientGetSettlementOkPayload:
      title: V1ClientGetSettlementOkPayload
      type: object
      properties:
        settlement:
          allOf:
            - $ref: '#/components/schemas/V1SettlementOutput'
          description: The complete settlement object.
        settlementTransfers:
          allOf:
            - $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput'
          description: The settlement transfers associated with the settlement.
        settlingDisputes:
          allOf:
            - $ref: '#/components/schemas/V1AssignedDisputesWithClosureOutput'
          description: The disputes that are being settled as part of this settlement.
        settlementDisputes:
          allOf:
            - $ref: '#/components/schemas/V1DisputesWithClosureOutput'
          description: The disputes that were raised on this settlement.
      required:
        - settlement
        - settlementTransfers
        - settlingDisputes
        - settlementDisputes
    V1ClientGetSettlementTransfersOkPayload:
      title: V1ClientGetSettlementTransfersOkPayload
      type: object
      properties:
        settlementTransfers:
          $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput'
      required:
        - settlementTransfers
    V1ClientListSettlementsOkPayload:
      title: V1ClientListSettlementsOkPayload
      type: object
      properties:
        settlements:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  transferDirection:
                    allOf:
                      - $ref: '#/components/schemas/TransferDirection'
                    description: >-
                      Whether the settlement is a send, receive, or both, from
                      the client's perspective
                required:
                  - transferDirection
              - $ref: '#/components/schemas/V1SettlementOutput'
      required:
        - settlements
    V1ClientsOutput:
      title: V1ClientsOutput
      type: object
      description: >-
        Output representation of a OES client.

        Contains all client properties with ISO-formatted date strings for
        timestamps.
      properties:
        id:
          type: string
          description: The id of the client.
          title: uuid
        enterpriseId:
          type: string
          description: The enterprise ID that this client is associated with.
          minLength: 1
        trustOrg:
          allOf:
            - $ref: '#/components/schemas/TrustOrg'
          description: The trust organization that this client is associated with.
        walletId:
          type: string
          description: The Go Account ID that the client is associated with
          minLength: 1
        createdAt:
          type: string
          description: The timestamp when the client was created. (ISO 8601 format)
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: The timestamp when the client was last updated. (ISO 8601 format)
          format: date-time
          title: ISO Date String
        balanceAlertLastSent:
          type: string
          description: Last time a balance alert was sent. Typically will be undefined.
      required:
        - id
        - enterpriseId
        - trustOrg
        - walletId
        - createdAt
        - updatedAt
    V1ClientsPostOkPayload:
      title: V1ClientsPostOkPayload
      type: object
      properties:
        client:
          allOf:
            - $ref: '#/components/schemas/V1ClientsOutput'
          description: The complete client object that was successfully created.
      required:
        - client
    V1ClosedDisputeWithClosureOutput:
      title: V1ClosedDisputeWithClosureOutput
      allOf:
        - type: object
          properties:
            disputeClosureId:
              type: string
              title: uuid
            disputeClosure:
              $ref: '#/components/schemas/DisputeClosureOutput'
          required:
            - disputeClosureId
            - disputeClosure
        - $ref: '#/components/schemas/V1DisputeOutput'
    V1CompleteSettlementOutput:
      title: V1CompleteSettlementOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the settlement.
            This is a UUID that uniquely identifies the settlement record.
          title: uuid
        partnerId:
          type: string
          description: >-
            The unique identifier of the partner the settlement is associated
            with.

            This is a UUID that uniquely identifies the partner.
          title: uuid
        externalId:
          type: string
          description: >-
            External identifier provided by the partner when creating the
            settlement.
          minLength: 1
        status:
          type: string
          enum:
            - completed
        settlementType:
          allOf:
            - $ref: '#/components/schemas/SettlementTypes'
          description: |-
            The type of settlement.
            Possible values are:
            - onchain: The settlement is on-chain.
            - offchain: The settlement is off-chain.
        reconciled:
          type: boolean
          description: |-
            Whether or not the settlement is reconciled against trade data.
            Currently there are no reconciled settlements.
            This field is always false.
        initiatedBy:
          type: string
          description: Id of the user which initiated the settlement.
          minLength: 1
        notes:
          type: string
          description: >-
            The notes associated with the settlement.

            This is a free-form text field that can contain any additional
            information about the settlement.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the settlement was created.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the settlement was last updated.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        finalizedAt:
          type: string
          format: date-time
          title: ISO Date String
        rtId:
          type: string
          description: >-
            Routed transaction id associated with the settlement.

            This is a UUID that uniquely identifies the routed transaction.

            This field is only populated for on-chain settlements for partners
            with automation enabled.
        lossSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if loss settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        gainSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if gain settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        cutoffAt:
          type: string
          description: >-
            The date and time of the newest trade being settled in the partner
            system.

            This is a timestamp in ISO 8601 format.

            This field is only populated for dispute enabled partners.
          format: date-time
          title: ISO Date String
        disputed:
          type: boolean
          description: Whether or not a dispute was raised on this settlement.
      required:
        - id
        - partnerId
        - externalId
        - status
        - settlementType
        - reconciled
        - initiatedBy
        - createdAt
        - updatedAt
        - finalizedAt
        - lossSLAAlertSent
        - gainSLAAlertSent
    V1ConnectionListResponse:
      title: V1ConnectionListResponse
      type: object
      description: codec for connection list http response
      properties:
        connections:
          type: array
          items:
            type: object
            description: codec for connection http response
            properties:
              id:
                type: string
                title: uuid
              type:
                $ref: '#/components/schemas/ConnectionType'
              status:
                $ref: '#/components/schemas/ConnectionStatus'
              label:
                type: string
                minLength: 1
              description:
                type: string
                minLength: 1
              createdBy:
                type: string
                minLength: 1
              updatedBy:
                type: string
                minLength: 1
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
              linkedConnectionId:
                type: string
                title: uuid
              hidden:
                type: boolean
              requestRemindersSent:
                type: number
              requestReminderLastSent:
                type: string
                format: date-time
                title: ISO Date String
              evaluationId:
                type: string
                minLength: 1
            required:
              - id
              - type
              - status
              - label
              - createdBy
              - updatedBy
              - createdAt
              - updatedAt
              - hidden
      required:
        - connections
    V1ConnectionOutput:
      title: V1ConnectionOutput
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier of the connection.

            This UUID uniquely identifies the connection between a client and
            partner.
          title: uuid
        name:
          type: string
          description: >-
            A user-friendly name for the connection.

            This is a descriptive label provided by the client for this
            particular connection.
          minLength: 1
        clientId:
          type: string
          description: >-
            The unique identifier of the client associated with this connection.

            This UUID uniquely identifies the client organization within the
            BitGo system.
          title: uuid
        partnerId:
          type: string
          description: >-
            The unique identifier of the partner associated with this
            connection.

            This UUID uniquely identifies the partner organization within the
            BitGo system.
          title: uuid
        networkAccountId:
          type: string
          description: >-
            The unique identifier of the network account associated with this
            connection.

            This references the account where allocated funds are held for this
            connection.
          title: uuid
        createdAt:
          type: string
          description: |-
            The date and time when the connection was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the connection was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        active:
          type: boolean
          description: >-
            Indicates whether the connection is active.

            When false, the connection is deactivated and no operations (like
            allocations) can be performed on it.

            When true, the connection is active and operations can be performed
            on it.
        proof:
          type: string
          description: >-
            The cryptographic proof associated with the connection.

            This is used for verifying the authenticity of the connection.

            Derived from the payload and signature submitted when the connection
            was created.
          minLength: 1
        nonce:
          type: string
          description: |-
            A nonce value used in the connection cryptographic operations.
            This provides additional security for connection operations.
          minLength: 1
        evaluationId:
          type: string
          description: The unique identifier of the policy evaluation for this connection.
          minLength: 1
        pendingApprovalId:
          type: string
          description: The unique identifier of the pending approval for this connection.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this connection.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        partnersConnectionId:
          nullable: true
          type: string
          minLength: 1
          description: >-
            The partner's identifier for this connection.

            This is the identifier used by the partner in their system to refer
            to this connection.

            Will be null if the connection hasn't been initialized by the
            partner.
        partnersClientId:
          nullable: true
          type: string
          minLength: 1
          description: >-
            The partner's identifier for the client.

            This is the identifier used by the partner in their system to refer
            to the client.

            Will be null if the connection hasn't been initialized by the
            partner.
        initialized:
          type: boolean
          description: >-
            Indicates whether the connection has been initialized by the
            partner.

            When true, the partner has established this connection on their
            side.

            When false, the connection is pending initialization by the partner.
      required:
        - id
        - name
        - clientId
        - partnerId
        - networkAccountId
        - createdAt
        - updatedAt
        - active
        - proof
        - nonce
        - partnersConnectionId
        - partnersClientId
        - initialized
    V1ConnectionPayload:
      title: V1ConnectionPayload
      type: object
      description: |-
        API response payload containing a single connection.
        This structure wraps the connection data for API responses.
      properties:
        connection:
          allOf:
            - $ref: '#/components/schemas/V1ConnectionOutput'
          description: |-
            The connection details.
            Contains all information about a specific client-partner connection.
      required:
        - connection
    V1ConnectionResponse:
      title: V1ConnectionResponse
      type: object
      description: codec for connection http response
      properties:
        id:
          type: string
          title: uuid
        type:
          $ref: '#/components/schemas/ConnectionType'
        status:
          $ref: '#/components/schemas/ConnectionStatus'
        label:
          type: string
          minLength: 1
        description:
          type: string
          minLength: 1
        createdBy:
          type: string
          minLength: 1
        updatedBy:
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        linkedConnectionId:
          type: string
          title: uuid
        hidden:
          type: boolean
        requestRemindersSent:
          type: number
        requestReminderLastSent:
          type: string
          format: date-time
          title: ISO Date String
        evaluationId:
          type: string
          minLength: 1
      required:
        - id
        - type
        - status
        - label
        - createdBy
        - updatedBy
        - createdAt
        - updatedAt
        - hidden
    V1ConnectionWithOwnerAndTargetListResponse:
      title: V1ConnectionWithOwnerAndTargetListResponse
      type: object
      properties:
        connections:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  ownerListingEntry:
                    $ref: '#/components/schemas/V1ListingEntryWithListingResponse'
                  targetListingEntry:
                    $ref: '#/components/schemas/V1ListingEntryWithListingResponse'
                required:
                  - ownerListingEntry
                  - targetListingEntry
              - $ref: '#/components/schemas/V1ConnectionResponse'
        totalCount:
          type: number
      required:
        - connections
    V1ConnectionWithOwnerListResponse:
      title: V1ConnectionWithOwnerListResponse
      type: object
      properties:
        connections:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  ownerListingEntry:
                    $ref: '#/components/schemas/V1ListingEntryWithListingResponse'
                required:
                  - ownerListingEntry
              - $ref: '#/components/schemas/V1ConnectionResponse'
      required:
        - connections
    V1ConnectionsGetOkPayload:
      title: V1ConnectionsGetOkPayload
      type: object
      properties:
        connections:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The unique identifier of the connection.

                  This UUID uniquely identifies the connection between a client
                  and partner.
                title: uuid
              name:
                type: string
                description: >-
                  A user-friendly name for the connection.

                  This is a descriptive label provided by the client for this
                  particular connection.
                minLength: 1
              clientId:
                type: string
                description: >-
                  The unique identifier of the client associated with this
                  connection.

                  This UUID uniquely identifies the client organization within
                  the BitGo system.
                title: uuid
              partnerId:
                type: string
                description: >-
                  The unique identifier of the partner associated with this
                  connection.

                  This UUID uniquely identifies the partner organization within
                  the BitGo system.
                title: uuid
              networkAccountId:
                type: string
                description: >-
                  The unique identifier of the network account associated with
                  this connection.

                  This references the account where allocated funds are held for
                  this connection.
                title: uuid
              createdAt:
                type: string
                description: |-
                  The date and time when the connection was created.
                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: |-
                  The date and time when the connection was last updated.
                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              active:
                type: boolean
                description: >-
                  Indicates whether the connection is active.

                  When false, the connection is deactivated and no operations
                  (like allocations) can be performed on it.

                  When true, the connection is active and operations can be
                  performed on it.
              proof:
                type: string
                description: >-
                  The cryptographic proof associated with the connection.

                  This is used for verifying the authenticity of the connection.

                  Derived from the payload and signature submitted when the
                  connection was created.
                minLength: 1
              nonce:
                type: string
                description: |-
                  A nonce value used in the connection cryptographic operations.
                  This provides additional security for connection operations.
                minLength: 1
              evaluationId:
                type: string
                description: >-
                  The unique identifier of the policy evaluation for this
                  connection.
                minLength: 1
              pendingApprovalId:
                type: string
                description: >-
                  The unique identifier of the pending approval for this
                  connection.
                minLength: 1
              policyResult:
                type: string
                enum:
                  - approved
                  - rejected
                description: >-
                  The result of the policy evaluation for this connection.

                  - 'approved': Policy evaluation passed and the operation was
                  allowed

                  - 'rejected': Policy evaluation failed and the operation was
                  denied

                  Not present if no policy evaluation was performed or if
                  evaluation is still pending.
              partnersConnectionId:
                nullable: true
                type: string
                minLength: 1
                description: >-
                  The partner's identifier for this connection.

                  This is the identifier used by the partner in their system to
                  refer to this connection.

                  Will be null if the connection hasn't been initialized by the
                  partner.
              partnersClientId:
                nullable: true
                type: string
                minLength: 1
                description: >-
                  The partner's identifier for the client.

                  This is the identifier used by the partner in their system to
                  refer to the client.

                  Will be null if the connection hasn't been initialized by the
                  partner.
              initialized:
                type: boolean
                description: >-
                  Indicates whether the connection has been initialized by the
                  partner.

                  When true, the partner has established this connection on
                  their side.

                  When false, the connection is pending initialization by the
                  partner.
            required:
              - id
              - name
              - clientId
              - partnerId
              - networkAccountId
              - createdAt
              - updatedAt
              - active
              - proof
              - nonce
              - partnersConnectionId
              - partnersClientId
              - initialized
      required:
        - connections
    V1CreateBankAccountResponse:
      title: V1CreateBankAccountResponse
      allOf:
        - $ref: '#/components/schemas/SingleBankAccountResponse'
      description: codec for create bank account http response
    V1DeallocationClearedPostPayload:
      title: V1DeallocationClearedPostPayload
      type: object
      properties:
        deallocation:
          allOf:
            - $ref: '#/components/schemas/V1ClearedAllocation'
          description: |-
            The deallocation record in its cleared state.
            This contains all deallocation details with a status of 'cleared',
            indicating the allocation was successfully completed.
      required:
        - deallocation
    V1DeallocationReleasedPayload:
      title: V1DeallocationReleasedPayload
      type: object
      properties:
        deallocation:
          allOf:
            - $ref: '#/components/schemas/V1ReleasedAllocation'
          description: |-
            The deallocation record in its released state.
            This contains all deallocation details with a status of 'released',
            indicating the allocation was not completed and funds were returned.
            The reason field will explain why the deallocation was released.
      required:
        - deallocation
    V1DeallocationReleasedWithErrorPostPayload:
      title: V1DeallocationReleasedWithErrorPostPayload
      allOf:
        - $ref: '#/components/schemas/V1DeallocationReleasedPayload'
        - $ref: '#/components/schemas/V1ErrorPayload'
    V1DeleteBankAccountResponse:
      title: V1DeleteBankAccountResponse
      allOf:
        - $ref: '#/components/schemas/SingleBankAccountResponse'
      description: codec for delete bank account http response
    V1DirectoryListingEntryWithConnectionsListResponse:
      title: V1DirectoryListingEntryWithConnectionsListResponse
      type: object
      properties:
        listingEntries:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/V1ListingEntryWithListingResponse'
              - $ref: >-
                  #/components/schemas/V1ConnectionWithOwnerAndTargetListResponse
      required:
        - listingEntries
    V1DisputeOutput:
      title: V1DisputeOutput
      type: object
      properties:
        id:
          type: string
          title: uuid
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        connectionId:
          type: string
          title: uuid
        disputedSettlementId:
          type: string
          title: uuid
        userId:
          type: string
          minLength: 1
        expectedTransfers:
          $ref: '#/components/schemas/ExpectedTransfersOutput'
        retracted:
          type: boolean
        settledInSettlementId:
          type: string
          title: uuid
        reason:
          type: string
          minLength: 1
        retractedBy:
          type: string
          minLength: 1
        retractedAt:
          type: string
          format: date-time
          title: ISO Date String
        disputeClosureId:
          type: string
          title: uuid
        retractedReason:
          type: string
          minLength: 1
      required:
        - id
        - createdAt
        - updatedAt
        - connectionId
        - disputedSettlementId
        - userId
        - expectedTransfers
        - retracted
    V1DisputePayload:
      title: V1DisputePayload
      type: object
      properties:
        dispute:
          $ref: '#/components/schemas/V1DisputeOutput'
      required:
        - dispute
    V1DisputesWithClosureOutput:
      title: V1DisputesWithClosureOutput
      type: array
      items:
        allOf:
          - type: object
            properties:
              disputeClosure:
                $ref: '#/components/schemas/DisputeClosureOutput'
          - $ref: '#/components/schemas/V1DisputeOutput'
    V1DisputesWithClosureWithTransfersOutput:
      title: V1DisputesWithClosureWithTransfersOutput
      type: object
      properties:
        disputes:
          $ref: '#/components/schemas/V1DisputesWithClosureOutput'
      required:
        - disputes
    V1EnterpriseSupportedCurrenciesResponse:
      title: V1EnterpriseSupportedCurrenciesResponse
      type: object
      properties:
        supportedCurrencies:
          allOf:
            - $ref: '#/components/schemas/V1SupportedCurrencies'
          description: >-
            Record where the keys represent either partner IDs.

            The values are arrays of currency metadata objects that describe the
            currencies supported

            by that organization.
        domain:
          type: string
          description: |-
            The domain name of the API server that processed the request.
            Will always be 'bitgo-network'.
          minLength: 1
      required:
        - supportedCurrencies
        - domain
    V1ErrorPayload:
      title: V1ErrorPayload
      type: object
      properties:
        error:
          type: string
      required:
        - error
    V1ErrorPayload1:
      title: V1ErrorPayload
      type: object
      properties:
        error:
          type: string
        errorName:
          type: string
      required:
        - error
        - errorName
    V1ErrorResponse:
      title: V1ErrorResponse
      type: object
      properties:
        errorName:
          type: string
        error:
          type: string
      required:
        - errorName
        - error
    V1ExtDepositsPayload:
      title: V1ExtDepositsPayload
      type: object
      properties:
        deposits:
          allOf:
            - $ref: '#/components/schemas/ExtDepositsResp'
          description: Array of deposit records that were created or retrieved.
      required:
        - deposits
    V1FailedSettlementOutput:
      title: V1FailedSettlementOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the settlement.
            This is a UUID that uniquely identifies the settlement record.
          title: uuid
        partnerId:
          type: string
          description: >-
            The unique identifier of the partner the settlement is associated
            with.

            This is a UUID that uniquely identifies the partner.
          title: uuid
        externalId:
          type: string
          description: >-
            External identifier provided by the partner when creating the
            settlement.
          minLength: 1
        reason:
          type: string
          minLength: 1
        status:
          type: string
          enum:
            - failed
        settlementType:
          allOf:
            - $ref: '#/components/schemas/SettlementTypes'
          description: |-
            The type of settlement.
            Possible values are:
            - onchain: The settlement is on-chain.
            - offchain: The settlement is off-chain.
        reconciled:
          type: boolean
          description: |-
            Whether or not the settlement is reconciled against trade data.
            Currently there are no reconciled settlements.
            This field is always false.
        initiatedBy:
          type: string
          description: Id of the user which initiated the settlement.
          minLength: 1
        notes:
          type: string
          description: >-
            The notes associated with the settlement.

            This is a free-form text field that can contain any additional
            information about the settlement.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the settlement was created.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the settlement was last updated.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        rtId:
          type: string
          description: >-
            Routed transaction id associated with the settlement.

            This is a UUID that uniquely identifies the routed transaction.

            This field is only populated for on-chain settlements for partners
            with automation enabled.
        lossSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if loss settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        gainSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if gain settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        cutoffAt:
          type: string
          description: >-
            The date and time of the newest trade being settled in the partner
            system.

            This is a timestamp in ISO 8601 format.

            This field is only populated for dispute enabled partners.
          format: date-time
          title: ISO Date String
        disputed:
          type: boolean
          description: Whether or not a dispute was raised on this settlement.
      required:
        - id
        - partnerId
        - externalId
        - reason
        - status
        - settlementType
        - reconciled
        - initiatedBy
        - createdAt
        - updatedAt
        - lossSLAAlertSent
        - gainSLAAlertSent
    V1GetBankAccountResponse:
      title: V1GetBankAccountResponse
      allOf:
        - $ref: '#/components/schemas/SingleBankAccountResponse'
      description: codec for get bank account http response
    V1GetBankAccountsResponse:
      title: V1GetBankAccountsResponse
      type: object
      description: codec for get bank accounts http response
      properties:
        bankAccounts:
          $ref: '#/components/schemas/BankAccountsArrayResponse'
      required:
        - bankAccounts
    V1GetDepositBankAccountsResponse:
      title: V1GetDepositBankAccountsResponse
      type: object
      description: codec for get deposit bank accounts http response
      properties:
        memoId:
          type: string
          minLength: 1
        bankAccounts:
          $ref: '#/components/schemas/BankAccountsArrayResponse'
      required:
        - memoId
        - bankAccounts
    V1GetSettlementOkPayload:
      title: V1GetSettlementOkPayload
      type: object
      properties:
        settlement:
          allOf:
            - $ref: '#/components/schemas/V1SettlementOutput'
          description: The complete settlement object.
        settlementTransfers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The unique identifier of the settlement transfer.

                  This is a UUID that uniquely identifies the settlement
                  transfer record.
                title: uuid
              createdAt:
                type: string
                description: |-
                  The date and time when the settlement transfer was created.
                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                description: >-
                  The date and time when the settlement transfer was last
                  updated.

                  Represented as an ISO 8601 formatted date string.
                format: date-time
                title: ISO Date String
              currency:
                type: string
                description: The currency involved in the settlement movement.
                minLength: 1
              settlementId:
                type: string
                description: >-
                  The unique identifier of the settlement the settlement
                  transfer is associated with.

                  This is a UUID that uniquely identifies the settlement.
                title: uuid
              disputeClosureId:
                type: string
                description: >-
                  The unique identifier of the dispute closure the settlement
                  transfer was created from.

                  This is a UUID that uniquely identifies dispute closure if the
                  transfer was created as a result of closing a 

                  dispute.
                title: uuid
              quantity:
                allOf:
                  - $ref: '#/components/schemas/NonZeroBigAmount'
                description: >-
                  The amount of currency being transferred in the settlement
                  transfer.

                  This is a non-zero value represented as a string.

                  If the value is positive, that means funds were moved from the
                  source account to the destination account.

                  If the value is negative, that means funds were moved from the
                  destination account to the source account.
              txIds:
                type: array
                items:
                  type: string
                  minLength: 1
                  description: >-
                    The transaction IDs associated with the settlement transfer.
                    Only populated once the transfer is completed.
              status:
                allOf:
                  - $ref: '#/components/schemas/SettlementTransferStatus'
                description: >-
                  The status of the settlement transfer.

                  Possible values and implications are:

                  - pending: The transfer is pending and has not yet been
                  processed.

                  - pending_onchain: The transfer is pending on-chain movement
                  (only relevant to on-chain settlements).

                  - onchain_initiated: The transfer has been initiated on-chain
                  (only relevant to on-chain settlements).

                  - onchain_failed: The on-chain transfer has failed (only
                  relevant to on-chain settlements).

                  - completed: The transfer has been completed successfully.

                  - failed: The transfer has failed.

                  - rejected: The transfer has been rejected.

                  - disputed: The transfer is disputed.
              sourceTradingAccountId:
                type: string
                description: The go account id of the source party.
                minLength: 1
              sourceNetworkAccountId:
                type: string
                description: The network account id of the source party.
                title: uuid
              destinationTradingAccountId:
                type: string
                description: The go account id of the destination party.
                minLength: 1
              destinationNetworkAccountId:
                type: string
                description: The network account id of the destination party.
                title: uuid
            required:
              - id
              - createdAt
              - updatedAt
              - currency
              - settlementId
              - quantity
              - txIds
              - status
              - sourceTradingAccountId
              - destinationTradingAccountId
              - destinationNetworkAccountId
            description: The settlement transfers associated with the settlement.
        settlingDisputes:
          allOf:
            - $ref: '#/components/schemas/V1AssignedDisputesWithClosureOutput'
          description: The disputes that are being settled as part of this settlement.
        settlementDisputes:
          allOf:
            - $ref: '#/components/schemas/V1DisputesWithClosureOutput'
          description: The disputes that were raised on this settlement.
      required:
        - settlement
        - settlementTransfers
        - settlingDisputes
        - settlementDisputes
    V1GlobalListingResponse:
      title: V1GlobalListingResponse
      type: object
      description: codec for global listing http response
      properties:
        id:
          type: string
          title: uuid
        enterpriseId:
          type: string
          minLength: 1
        description:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
        owner:
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - id
        - enterpriseId
        - name
        - owner
        - createdAt
        - updatedAt
    V1GlobalListingWithListingEntries:
      title: V1GlobalListingWithListingEntries
      allOf:
        - $ref: '#/components/schemas/V1GlobalListingResponse'
        - $ref: '#/components/schemas/V1ListingEntryListResponse'
    V1ListSettlementsOkPayload:
      title: V1ListSettlementsOkPayload
      type: object
      properties:
        settlements:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/V1PendingSettlementOutput'
              - $ref: '#/components/schemas/V1FailedSettlementOutput'
              - $ref: '#/components/schemas/V1CompleteSettlementOutput'
              - $ref: '#/components/schemas/V1RejectedSettlementOutput'
      required:
        - settlements
    V1ListingEntryListResponse:
      title: V1ListingEntryListResponse
      type: object
      description: codec for listing entry list http response
      properties:
        listingEntries:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                title: uuid
              walletId:
                type: string
                minLength: 1
              coin:
                type: string
                minLength: 1
              type:
                $ref: '#/components/schemas/EntryType'
              description:
                type: string
                minLength: 1
              discoverable:
                type: boolean
              featured:
                type: boolean
              createdAt:
                type: string
                format: date-time
                title: ISO Date String
              updatedAt:
                type: string
                format: date-time
                title: ISO Date String
            required:
              - id
              - walletId
              - coin
              - type
              - discoverable
              - featured
              - createdAt
              - updatedAt
      required:
        - listingEntries
    V1ListingEntryResponse:
      title: V1ListingEntryResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        walletId:
          type: string
          minLength: 1
        coin:
          type: string
          minLength: 1
        type:
          $ref: '#/components/schemas/EntryType'
        description:
          type: string
          minLength: 1
        discoverable:
          type: boolean
        featured:
          type: boolean
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
      required:
        - id
        - walletId
        - coin
        - type
        - discoverable
        - featured
        - createdAt
        - updatedAt
    V1ListingEntryWithConnectionsListResponse:
      title: V1ListingEntryWithConnectionsListResponse
      type: object
      properties:
        listingEntries:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/V1ListingEntryWithListingResponse'
              - $ref: '#/components/schemas/V1ConnectionWithOwnerListResponse'
      required:
        - listingEntries
    V1ListingEntryWithListingResponse:
      title: V1ListingEntryWithListingResponse
      allOf:
        - type: object
          properties:
            listing:
              $ref: '#/components/schemas/V1ListingResponse'
          required:
            - listing
        - $ref: '#/components/schemas/V1ListingEntryResponse'
    V1ListingResponse:
      title: V1ListingResponse
      type: object
      description: codec for listing http response
      properties:
        id:
          type: string
          title: uuid
        name:
          type: string
          minLength: 1
        description:
          type: string
          minLength: 1
        editable:
          type: boolean
          description: True, if the name is editable.
      required:
        - id
        - name
        - editable
    V1ListingUpdateResponse:
      title: V1ListingUpdateResponse
      type: object
      properties:
        id:
          type: string
          title: uuid
        enterpriseId:
          type: string
          minLength: 1
        description:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
        owner:
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
        globalListing:
          type: object
          description: codec for global listing http response
          properties:
            createdAt:
              type: string
              format: date-time
              title: ISO Date String
            description:
              type: string
              minLength: 1
            enterpriseId:
              type: string
              minLength: 1
            id:
              type: string
              title: uuid
            name:
              type: string
              minLength: 1
            owner:
              type: string
              minLength: 1
            updatedAt:
              type: string
              format: date-time
              title: ISO Date String
          required:
            - createdAt
            - enterpriseId
            - id
            - name
            - owner
            - updatedAt
      required:
        - id
        - name
        - owner
        - createdAt
        - updatedAt
    V1PartnerAccountBalanceRecordOutput:
      title: V1PartnerAccountBalanceRecordOutput
      type: object
      additionalProperties:
        type: object
        properties:
          held:
            allOf:
              - $ref: '#/components/schemas/NonNegativeBigAmount'
            description: >-
              Amount of the specified currency held (encumbered) in the account.

              The amount is represented as a non-negative integer or decimal
              string depending on partner configuration.
          available:
            allOf:
              - $ref: '#/components/schemas/NonNegativeBigAmount'
            description: >-
              Amount of the specified currency available in the account.

              The amount is represented as a non-negative integer or decimal
              string depending on partner configuration.
        required:
          - held
          - available
      description: >-
        A record of account balances for a partner, indexed by the partner's
        currency codes.


        Each key in this record is a currency identifier in the partner's naming
        convention,

        and the corresponding value contains the available and held amounts for
        that currency.


        Note that currency codes here may differ from BitGo's internal currency
        codes, as they

        are mapped to match the partner's expected currency identifiers.
    V1PartnerBalancesGetPayload:
      title: V1PartnerBalancesGetPayload
      type: object
      properties:
        networkBalances:
          allOf:
            - $ref: '#/components/schemas/V1PartnerNetworkAccountBalanceRecordOutput'
          description: >-
            Detailed information about balances across all client connections to
            this partner.


            This record contains:

            - Keys: Connection IDs that uniquely identify each connection.

            - Values: Detailed information about the connection and its
            balances.


            This provides a comprehensive view of client funds allocated to each
            connection

            and their current availability.
        balances:
          allOf:
            - $ref: '#/components/schemas/V1PartnerAccountBalanceRecordOutput'
          description: >-
            Information on the balances for the partner's own BitGo account.


            This object, when present, contains:

            - Keys: Currency identifiers (e.g., "BTC", "ETH", "USDC") in the
            partner's currency naming convention

            - Values: Balance information in base units including available and
            held amounts for each currency


            This allows partners to see their own BitGo account balances
            alongside client connection balances,

            providing a complete view of their financial position within the
            BitGo system.


            Note: This field may be omitted if the partner doesn't have
            permission to view their own 

            BitGo account balances.
      required:
        - networkBalances
    V1PartnerExtDepositsSigningPayload:
      title: V1PartnerExtDepositsSigningPayload
      type: object
      properties:
        payload:
          type: string
          description: >-
            String payload that should be signed with the partner's private key.

            This signed payload should be included when submitting deposit
            information.
      required:
        - payload
    V1PartnerIncompleteSettlementOrErrorPayload:
      title: V1PartnerIncompleteSettlementOrErrorPayload
      oneOf:
        - $ref: '#/components/schemas/V1PartnerSettlementIncompletePayload'
        - $ref: '#/components/schemas/V1ErrorPayload'
    V1PartnerNetworkAccountBalanceRecordOutput:
      title: V1PartnerNetworkAccountBalanceRecordOutput
      type: object
      additionalProperties:
        type: object
        properties:
          clientId:
            type: string
            description: >-
              Unique identifier of the client associated with this connection.

              This UUID uniquely identifies the client organization within the
              BitGo system

              that has allocated funds to this connection.
            title: uuid
          partnerId:
            type: string
            description: >-
              Unique identifier of the partner associated with this connection.

              This UUID uniquely identifies your partner organization within the
              BitGo system.
            title: uuid
          partnersConnectionId:
            type: string
            description: >-
              External identifier of the connection as known by your partner
              system.

              This is your own identifier for this connection, which you can use

              to correlate with your internal systems.
            minLength: 1
          balances:
            allOf:
              - $ref: '#/components/schemas/V1PartnerAccountBalanceRecordOutput'
            description: >-
              The balances for this connection, indexed by currency code.


              This object contains:

              - Keys: Currency identifiers in the partner's naming convention.

              - Values: Balance information in base units, including available
              and held amounts.


              These balances represent funds that have been allocated by the
              client

              to this specific connection and are available for operations by
              the partner.
        required:
          - clientId
          - partnerId
          - partnersConnectionId
          - balances
      description: >-
        A record of network account balances for a partner, indexed by
        connection ID.


        Each key in this record is a connection ID, and the corresponding value
        contains

        details about the connection and its balances across different
        currencies.
    V1PartnerSettlementIncompletePayload:
      title: V1PartnerSettlementIncompletePayload
      type: object
      properties:
        settlement:
          oneOf:
            - $ref: '#/components/schemas/V1PendingSettlementOutput'
            - $ref: '#/components/schemas/V1FailedSettlementOutput'
            - $ref: '#/components/schemas/V1RejectedSettlementOutput'
      required:
        - settlement
    V1PartnerSettlementOkPayload:
      title: V1PartnerSettlementOkPayload
      type: object
      properties:
        settlement:
          $ref: '#/components/schemas/V1CompleteSettlementOutput'
      required:
        - settlement
    V1PartnerSettlementsSigningGetPayload:
      title: V1PartnerSettlementsSigningGetPayload
      type: object
      properties:
        payload:
          type: string
      required:
        - payload
    V1PartnerTradeSigningGetPayload:
      title: V1PartnerTradeSigningGetPayload
      type: object
      properties:
        payload:
          type: string
      required:
        - payload
    V1PartnerUpdateAllocationResponse:
      title: V1PartnerUpdateAllocationResponse
      type: object
      properties:
        allocationId:
          type: string
          description: |-
            The unique identifier of the allocation to update.
            This UUID uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositivePartnerCurrencyAmount'
          description: >-
            The currency/quantity the allocation was made in.

            This is a base unit amount.

            The exact base units depend on the currency (e.g., satoshis for BTC,
            wei for ETH).
        clientId:
          type: string
          description: |-
            The unique identifier of the client associated with the allocation.
            This UUID uniquely identifies the client within the BitGo system.
          title: uuid
        connectionId:
          type: string
          description: >-
            The unique identifier of the connection associated with the
            allocation.

            This UUID uniquely identifies the connection between a client and a
            partner.
          title: uuid
        partnersClientId:
          type: string
          description: >-
            The unique identifier of the client in the partner system.

            This value uniquely identifies the client within the partner's
            system.
          minLength: 1
        partnersConnectionId:
          type: string
          description: >-
            The unique identifier of the connection in the partner system.

            This value uniquely identifies the connection between a client and a
            partner in the partner's system.
          minLength: 1
        partnersAllocationId:
          type: string
          description: >-
            The unique identifier of the allocation in the partner system.

            This value uniquely identifies the allocation record within the
            partner's system.
          minLength: 1
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            deallocation.

            Present when policy evaluation was performed as part of the
            deallocation update flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this deallocation.

            - APPROVED: Policy evaluation passed and the operation was allowed

            - REJECTED: Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
      required:
        - allocationId
        - amount
        - clientId
        - connectionId
        - partnersClientId
        - partnersConnectionId
        - partnersAllocationId
    V1PartnerUpdateDeallocationResponse:
      title: V1PartnerUpdateDeallocationResponse
      type: object
      properties:
        deallocationId:
          type: string
          description: |-
            The unique identifier of the deallocation to update.
            This UUID uniquely identifies the deallocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositivePartnerCurrencyAmount'
          description: >-
            The currency/quantity that was submitted for deallocation.

            This is a base unit amount.

            The exact base units depend on the currency (e.g., satoshis for BTC,
            wei for ETH).
        clientId:
          type: string
          description: >-
            The unique identifier of the client which initiated the
            deallocation.

            This UUID uniquely identifies the client within the BitGo system.
          title: uuid
        connectionId:
          type: string
          description: >-
            The unique identifier of the connection to deallocate from.

            This UUID uniquely identifies the connection between a client and a
            partner.
          title: uuid
        partnersClientId:
          type: string
          description: >-
            The unique identifier of the client in the partner system.

            This value uniquely identifies the client within the partner's
            system.
          minLength: 1
        partnersConnectionId:
          type: string
          description: >-
            The unique identifier of the connection in the partner system.

            This value uniquely identifies the connection between a client and a
            partner in the partner's system.
          minLength: 1
        partnersDeallocationId:
          type: string
          description: >-
            The unique identifier of the deallocation in the partner system.

            This value uniquely identifies the deallocation record within the
            partner's system.
          minLength: 1
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            deallocation.

            Present when policy evaluation was performed as part of the
            deallocation update flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this deallocation.

            - APPROVED: Policy evaluation passed and the operation was allowed

            - REJECTED: Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
      required:
        - deallocationId
        - amount
        - clientId
        - connectionId
        - partnersClientId
        - partnersConnectionId
        - partnersDeallocationId
    V1PartnersGetOkPayload:
      title: V1PartnersGetOkPayload
      type: object
      properties:
        partners:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier for the partner.
                title: uuid
              name:
                type: string
                description: Display name of the partner.
                minLength: 1
              institutionId:
                type: string
                description: >-
                  Optional identifier linking the partner to an institution in
                  external systems.
              institutionIdentifier:
                type: string
                description: Optional string identifier for the institution.
                minLength: 1
              connectionKeySchema:
                allOf:
                  - $ref: '#/components/schemas/PartnerConnectionKeySchema'
                description: >-
                  Schema defining which connection request schema is required
                  for this partner.

                  Can be 'token', 'tokenAndSignature', 'apiKeyAndSecret', or
                  'clearloop'.
              active:
                type: boolean
                description: >-
                  Boolean flag indicating whether the partner is currently
                  active in the system.
              settlementTransactionRouteId:
                type: string
                description: >-
                  Optional identifier for the settlement transaction route
                  associated with this partner.
              publicKey:
                type: string
                description: >-
                  Optional RSA public key used for secure communication with the
                  partner.
              enterpriseId:
                type: string
                description: Enterprise ID associated with this partner, if any.
              clientDisputeWindowMinutes:
                type: number
                description: >-
                  Time window in minutes during which clients can dispute
                  transactions.
              topUpWindowMinutes:
                type: number
                description: >-
                  Time window in minutes after which dispute window ends for
                  processing top-up operations.
              trustOrg:
                allOf:
                  - $ref: '#/components/schemas/TrustOrg'
                description: |-
                  Identifier for the trust organization this partner belongs to.
                  Used for filtering and categorization of partners.
              stablePartner:
                type: boolean
                description: >-
                  Flag indicating whether the partner has demonstrated
                  operational stability.

                  Used when partner is initially launched to demonstrate that
                  the partner is still 

                  in beta and not yet stable.
            required:
              - id
              - name
              - institutionIdentifier
              - connectionKeySchema
              - active
              - trustOrg
              - stablePartner
            description: >-
              Array of partner objects with limited properties and stability
              indicators.
      required:
        - partners
    V1PartnersOutput:
      title: V1PartnersOutput
      type: object
      properties:
        id:
          type: string
          title: uuid
        enterpriseId:
          type: string
          minLength: 1
        trustOrg:
          $ref: '#/components/schemas/TrustOrg'
        institutionId:
          type: string
        institutionIdentifier:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
        connectionKeySchema:
          $ref: '#/components/schemas/PartnerConnectionKeySchema'
        createdAt:
          type: string
          description: Timestamp when the partner was created in the system.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: Timestamp of the most recent update to the partner record.
          format: date-time
          title: ISO Date String
        clientId:
          type: string
          title: uuid
        broker:
          type: boolean
        active:
          type: boolean
        settlementTransactionRouteId:
          type: string
        clientDisputeWindowMinutes:
          type: number
        topUpWindowMinutes:
          type: number
        allocationPoliciesEnabled:
          type: boolean
        publicKey:
          type: string
          description: >-
            Optional RSA public key associated with the partner.

            This key is used for secure communication and encrypting connection
            keys.

            If not supplied, encryption is not required for the partner.
      required:
        - id
        - enterpriseId
        - trustOrg
        - institutionIdentifier
        - name
        - connectionKeySchema
        - createdAt
        - updatedAt
        - clientId
        - broker
        - active
        - allocationPoliciesEnabled
    V1PartnersPostOkPayload:
      title: V1PartnersPostOkPayload
      type: object
      properties:
        partner:
          allOf:
            - $ref: '#/components/schemas/V1PartnersOutput'
          description: The complete partner object that was successfully created.
      required:
        - partner
    V1PendingApproval:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        enterprise:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The Id of the associated enterprise
        walletId:
          type: string
          example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9
          description: The base address of the associated wallet
        creator:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: The Id of the User that created the Pending Approval
        createDate:
          type: string
          format: date-time
        info:
          type: object
          properties:
            type:
              type: string
              enum:
                - bitcoinAddressWhitelistRequest
                - userChangeRequest
                - policyRuleRequest
                - dailyLimitPolicyRequest
                - transactionRequest
                - tagUpdateRequest
                - updateEnterpriseRequest
                - updateApprovalsRequiredRequest
            updateEnterpriseRequest:
              type: object
              properties:
                action:
                  type: string
                  enum:
                    - add
                    - remove
                permissions:
                  type: array
                  items:
                    $ref: '#/components/schemas/EnterprisePermission'
                userId:
                  allOf:
                    - $ref: '#/components/schemas/Id'
                  description: >-
                    The Id of the User to be added to or removed from the
                    Enterprise
                email:
                  allOf:
                    - $ref: '#/components/schemas/Email'
                  description: E-Mail address of newly added users
            updateApprovalsRequiredRequest:
              type: object
              properties:
                requestedApprovalsRequired:
                  type: number
                  minimum: 1
                  description: the number of approvalsRequired that should be changed to
        state:
          type: string
          enum:
            - pending
            - approved
            - rejected
        walletUserIds:
          type: array
          items:
            $ref: '#/components/schemas/Id'
          description: >-
            an array of all the Users on the Wallet who need to see this Pending
            Approval
        approvalsRequired:
          type: number
          minimum: 1
        resolvers:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
              date:
                type: string
              resolutionType:
                type: string
                enum:
                  - pending
                  - approved
                  - rejected
              signatures:
                type: array
                items:
                  type: string
              videoApprover:
                type: string
              videoLink:
                type: string
              videoException:
                type: string
    V1PendingSettlementOutput:
      title: V1PendingSettlementOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the settlement.
            This is a UUID that uniquely identifies the settlement record.
          title: uuid
        partnerId:
          type: string
          description: >-
            The unique identifier of the partner the settlement is associated
            with.

            This is a UUID that uniquely identifies the partner.
          title: uuid
        externalId:
          type: string
          description: >-
            External identifier provided by the partner when creating the
            settlement.
          minLength: 1
        status:
          type: string
          enum:
            - pending
        settlementType:
          allOf:
            - $ref: '#/components/schemas/SettlementTypes'
          description: |-
            The type of settlement.
            Possible values are:
            - onchain: The settlement is on-chain.
            - offchain: The settlement is off-chain.
        reconciled:
          type: boolean
          description: |-
            Whether or not the settlement is reconciled against trade data.
            Currently there are no reconciled settlements.
            This field is always false.
        initiatedBy:
          type: string
          description: Id of the user which initiated the settlement.
          minLength: 1
        notes:
          type: string
          description: >-
            The notes associated with the settlement.

            This is a free-form text field that can contain any additional
            information about the settlement.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the settlement was created.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the settlement was last updated.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        rtId:
          type: string
          description: >-
            Routed transaction id associated with the settlement.

            This is a UUID that uniquely identifies the routed transaction.

            This field is only populated for on-chain settlements for partners
            with automation enabled.
        lossSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if loss settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        gainSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if gain settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        cutoffAt:
          type: string
          description: >-
            The date and time of the newest trade being settled in the partner
            system.

            This is a timestamp in ISO 8601 format.

            This field is only populated for dispute enabled partners.
          format: date-time
          title: ISO Date String
        disputed:
          type: boolean
          description: Whether or not a dispute was raised on this settlement.
      required:
        - id
        - partnerId
        - externalId
        - status
        - settlementType
        - reconciled
        - initiatedBy
        - createdAt
        - updatedAt
        - lossSLAAlertSent
        - gainSLAAlertSent
    V1PendingSettlementPayload:
      title: V1PendingSettlementPayload
      type: object
      properties:
        settlement:
          $ref: '#/components/schemas/V1PendingSettlementOutput'
      required:
        - settlement
    V1RejectedSettlementOutput:
      title: V1RejectedSettlementOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the settlement.
            This is a UUID that uniquely identifies the settlement record.
          title: uuid
        partnerId:
          type: string
          description: >-
            The unique identifier of the partner the settlement is associated
            with.

            This is a UUID that uniquely identifies the partner.
          title: uuid
        externalId:
          type: string
          description: >-
            External identifier provided by the partner when creating the
            settlement.
          minLength: 1
        reason:
          type: string
          minLength: 1
        status:
          type: string
          enum:
            - rejected
        settlementType:
          allOf:
            - $ref: '#/components/schemas/SettlementTypes'
          description: |-
            The type of settlement.
            Possible values are:
            - onchain: The settlement is on-chain.
            - offchain: The settlement is off-chain.
        reconciled:
          type: boolean
          description: |-
            Whether or not the settlement is reconciled against trade data.
            Currently there are no reconciled settlements.
            This field is always false.
        initiatedBy:
          type: string
          description: Id of the user which initiated the settlement.
          minLength: 1
        notes:
          type: string
          description: >-
            The notes associated with the settlement.

            This is a free-form text field that can contain any additional
            information about the settlement.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the settlement was created.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the settlement was last updated.
            This is a timestamp in ISO 8601 format.
          format: date-time
          title: ISO Date String
        finalizedAt:
          type: string
          format: date-time
          title: ISO Date String
        rtId:
          type: string
          description: >-
            Routed transaction id associated with the settlement.

            This is a UUID that uniquely identifies the routed transaction.

            This field is only populated for on-chain settlements for partners
            with automation enabled.
        lossSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if loss settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        gainSLAAlertSent:
          type: boolean
          description: >-
            Whether or not an alert has been sent if gain settlement SLA is
            close to being breached.

            Only relevant for on-chain settlements.
        cutoffAt:
          type: string
          description: >-
            The date and time of the newest trade being settled in the partner
            system.

            This is a timestamp in ISO 8601 format.

            This field is only populated for dispute enabled partners.
          format: date-time
          title: ISO Date String
        disputed:
          type: boolean
          description: Whether or not a dispute was raised on this settlement.
      required:
        - id
        - partnerId
        - externalId
        - reason
        - status
        - settlementType
        - reconciled
        - initiatedBy
        - createdAt
        - updatedAt
        - finalizedAt
        - lossSLAAlertSent
        - gainSLAAlertSent
    V1ReleasedAllocation:
      title: V1ReleasedAllocation
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the allocation/deallocation.
            This is a UUID that uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositiveAllocationAmount'
          description: >-
            The amount of the allocation/deallocation.

            Contains both the currency identifier and the quantity in base
            units.
        connectionId:
          type: string
          description: |-
            The unique identifier of the connection this allocation is for.
            This identifies a connection between a client and partner.
          title: uuid
        clientExternalId:
          type: string
          description: >-
            External identifier provided by the client when creating the
            allocation/deallocation.

            Used for idempotence and correlation with client systems.
          minLength: 1
        partnerExternalId:
          type: string
          description: >-
            External identifier of the allocation/deallocation in the partner
            system.

            May be populated when partners provide their own identifier for the
            allocation.
          minLength: 1
        initiatedBy:
          type: string
          description: >-
            The identifier of the user that initiated the
            allocation/deallocation.

            Represents the user ID from the BitGo platform.
          minLength: 1
        notes:
          type: string
          description: >-
            Optional notes provided by the client when creating the
            allocation/deallocation.

            Can contain additional context or information about the purpose of
            the allocation.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        retriable:
          type: boolean
          enum:
            - false
          description: >-
            Indicates whether or not the allocation/deallocation is retriable.

            When true, clients may retry the operation if it did not complete
            successfully.

            Retry can be performed by re-sending the same allocation request
            that was originally sent.
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            allocation/deallocation.

            Present when policy evaluation was performed as part of the
            allocation flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this
            allocation/deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this
            allocation/deallocation.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        status:
          type: string
          enum:
            - released
          description: >-
            Status of the allocation/deallocation.


            Possible values:

            - reserved: The amount for allocation/deallocation is reserved but
            operation has not completed.
              This is a temporary state awaiting final resolution.
            - cleared: Terminal state; the amount for allocation/deallocation is
            cleared and funds
              have been successfully allocated. This indicates a successful operation.
            - released: Terminal state; the amount for allocation/deallocation
            is released and
              funds have been returned. This indicates the operation failed,
              either because balance was insufficient for allocation/deallocation, or that the
              partner rejected the request to allocate/deallocate.
        reason:
          type: string
          description: >-
            The reason that the allocation/deallocation is not cleared.

            Provides a descriptive explanation for why the allocation is in the
            reserved state.

            Will not be defined if the allocation is cleared.
          minLength: 1
      required:
        - id
        - amount
        - connectionId
        - clientExternalId
        - initiatedBy
        - createdAt
        - updatedAt
        - retriable
        - status
        - reason
    V1ReservedAllocationOrErrorPayload:
      title: V1ReservedAllocationOrErrorPayload
      oneOf:
        - $ref: '#/components/schemas/V1ErrorPayload'
        - $ref: '#/components/schemas/V1ReservedRetriableAllocationsPostPayload'
    V1ReservedAllocationOutput:
      title: V1ReservedAllocationOutput
      oneOf:
        - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput'
        - $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput'
    V1ReservedDeallocationOrErrorPayload:
      title: V1ReservedDeallocationOrErrorPayload
      oneOf:
        - $ref: '#/components/schemas/V1ErrorPayload'
        - $ref: '#/components/schemas/V1ReservedRetriableDeallocationOutput'
    V1ReservedDeallocationsPostPayload:
      title: V1ReservedDeallocationsPostPayload
      type: object
      description: >-
        Response payload for a deallocation in the reserved state.

        Returned when a deallocation request has been accepted but is still
        being processed.
      properties:
        deallocation:
          allOf:
            - $ref: '#/components/schemas/V1ReservedAllocationOutput'
          description: >-
            The deallocation record in its reserved state.

            This contains all deallocation details with a status of 'reserved',

            which could be either retriable or non-retriable based on the
            retriable field.
      required:
        - deallocation
    V1ReservedNonRetriableAllocationOutput:
      title: V1ReservedNonRetriableAllocationOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the allocation/deallocation.
            This is a UUID that uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositiveAllocationAmount'
          description: >-
            The amount of the allocation/deallocation.

            Contains both the currency identifier and the quantity in base
            units.
        connectionId:
          type: string
          description: |-
            The unique identifier of the connection this allocation is for.
            This identifies a connection between a client and partner.
          title: uuid
        clientExternalId:
          type: string
          description: >-
            External identifier provided by the client when creating the
            allocation/deallocation.

            Used for idempotence and correlation with client systems.
          minLength: 1
        partnerExternalId:
          type: string
          description: >-
            External identifier of the allocation/deallocation in the partner
            system.

            May be populated when partners provide their own identifier for the
            allocation.
          minLength: 1
        initiatedBy:
          type: string
          description: >-
            The identifier of the user that initiated the
            allocation/deallocation.

            Represents the user ID from the BitGo platform.
          minLength: 1
        notes:
          type: string
          description: >-
            Optional notes provided by the client when creating the
            allocation/deallocation.

            Can contain additional context or information about the purpose of
            the allocation.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        retriable:
          type: boolean
          enum:
            - false
          description: >-
            Indicates whether or not the allocation/deallocation is retriable.

            When true, clients may retry the operation if it did not complete
            successfully.

            Retry can be performed by re-sending the same allocation request
            that was originally sent.
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            allocation/deallocation.

            Present when policy evaluation was performed as part of the
            allocation flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this
            allocation/deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this
            allocation/deallocation.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        reason:
          type: string
          description: >-
            The reason that the allocation/deallocation is not cleared.

            Provides a descriptive explanation for why the allocation is in the
            reserved state.

            Will not be defined if the allocation is cleared.
          minLength: 1
        status:
          type: string
          enum:
            - reserved
          description: >-
            Status of the allocation/deallocation.


            Possible values:

            - reserved: The amount for allocation/deallocation is reserved but
            operation has not completed.
              This is a temporary state awaiting final resolution.
            - cleared: Terminal state; the amount for allocation/deallocation is
            cleared and funds
              have been successfully allocated. This indicates a successful operation.
            - released: Terminal state; the amount for allocation/deallocation
            is released and
              funds have been returned. This indicates the operation failed,
              either because balance was insufficient for allocation/deallocation, or that the
              partner rejected the request to allocate/deallocate.
      required:
        - id
        - amount
        - connectionId
        - clientExternalId
        - initiatedBy
        - createdAt
        - updatedAt
        - retriable
        - reason
        - status
    V1ReservedNonRetriableAllocationsPostPayload:
      title: V1ReservedNonRetriableAllocationsPostPayload
      type: object
      description: >-
        Response payload for an allocation that is in a reserved state but is
        not retriable.

        This represents a pending allocation that is being processed
        asynchronously.
      properties:
        allocation:
          allOf:
            - $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput'
          description: >-
            The allocation record in its reserved, non-retriable state.

            This contains all allocation details with a status of 'reserved' and
            retriable=false,

            indicating the allocation is being processed asynchronously and does
            not require a retry to progress.
      required:
        - allocation
    V1ReservedRetriableAllocationOutput:
      title: V1ReservedRetriableAllocationOutput
      type: object
      properties:
        id:
          type: string
          description: |-
            The unique identifier of the allocation/deallocation.
            This is a UUID that uniquely identifies the allocation record.
          title: uuid
        amount:
          allOf:
            - $ref: '#/components/schemas/PositiveAllocationAmount'
          description: >-
            The amount of the allocation/deallocation.

            Contains both the currency identifier and the quantity in base
            units.
        connectionId:
          type: string
          description: |-
            The unique identifier of the connection this allocation is for.
            This identifies a connection between a client and partner.
          title: uuid
        clientExternalId:
          type: string
          description: >-
            External identifier provided by the client when creating the
            allocation/deallocation.

            Used for idempotence and correlation with client systems.
          minLength: 1
        partnerExternalId:
          type: string
          description: >-
            External identifier of the allocation/deallocation in the partner
            system.

            May be populated when partners provide their own identifier for the
            allocation.
          minLength: 1
        initiatedBy:
          type: string
          description: >-
            The identifier of the user that initiated the
            allocation/deallocation.

            Represents the user ID from the BitGo platform.
          minLength: 1
        notes:
          type: string
          description: >-
            Optional notes provided by the client when creating the
            allocation/deallocation.

            Can contain additional context or information about the purpose of
            the allocation.
          minLength: 1
        createdAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was created.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        updatedAt:
          type: string
          description: |-
            The date and time when the allocation/deallocation was last updated.
            Represented as an ISO 8601 formatted date string.
          format: date-time
          title: ISO Date String
        retriable:
          type: boolean
          enum:
            - true
          description: >-
            Indicates whether or not the allocation/deallocation is retriable.

            When true, clients may retry the operation if it did not complete
            successfully.

            Retry can be performed by re-sending the same allocation request
            that was originally sent.
        evaluationId:
          type: string
          description: >-
            The unique identifier of the policy evaluation for this
            allocation/deallocation.

            Present when policy evaluation was performed as part of the
            allocation flow.
          minLength: 1
        pendingApprovalId:
          type: string
          description: >-
            The unique identifier of the pending approval for this
            allocation/deallocation.

            Present when policy evaluation resulted in a PENDING status
            requiring manual approval.
          minLength: 1
        policyResult:
          type: string
          enum:
            - approved
            - rejected
          description: >-
            The result of the policy evaluation for this
            allocation/deallocation.

            - 'approved': Policy evaluation passed and the operation was allowed

            - 'rejected': Policy evaluation failed and the operation was denied

            Not present if no policy evaluation was performed or if evaluation
            is still pending.
        reason:
          type: string
          description: >-
            The reason that the allocation/deallocation is not cleared.

            Provides a descriptive explanation for why the allocation is in the
            reserved state.

            Will not be defined if the allocation is cleared.
          minLength: 1
        status:
          type: string
          enum:
            - reserved
          description: >-
            Status of the allocation/deallocation.


            Possible values:

            - reserved: The amount for allocation/deallocation is reserved but
            operation has not completed.
              This is a temporary state awaiting final resolution.
            - cleared: Terminal state; the amount for allocation/deallocation is
            cleared and funds
              have been successfully allocated. This indicates a successful operation.
            - released: Terminal state; the amount for allocation/deallocation
            is released and
              funds have been returned. This indicates the operation failed,
              either because balance was insufficient for allocation/deallocation, or that the
              partner rejected the request to allocate/deallocate.
      required:
        - id
        - amount
        - connectionId
        - clientExternalId
        - initiatedBy
        - createdAt
        - updatedAt
        - retriable
        - reason
        - status
    V1ReservedRetriableAllocationsPostPayload:
      title: V1ReservedRetriableAllocationsPostPayload
      type: object
      properties:
        allocation:
          allOf:
            - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput'
          description: >-
            The allocation record in its reserved, retriable state.

            This contains all allocation details with a status of 'reserved' and
            retriable=true,

            indicating a temporary issue that clients should retry.
      required:
        - allocation
    V1ReservedRetriableDeallocationOutput:
      title: V1ReservedRetriableDeallocationOutput
      type: object
      properties:
        deallocation:
          allOf:
            - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput'
          description: >-
            The retriable reserved deallocation details.

            Contains information about the deallocation that is in the reserved
            state (pending)

            and can be retried if needed.
      required:
        - deallocation
    V1RoutingAddress:
      type: object
      properties:
        city:
          type: string
        countryCode:
          type: string
        createdAt:
          type: string
          format: date-time
          title: ISO Date String
        locality:
          type: string
        postalCode:
          type: string
        region:
          type: string
        street:
          type: string
        subregion:
          type: string
        unit:
          type: string
        updatedAt:
          type: string
          format: date-time
          title: ISO Date String
    V1SettlementOutput:
      title: V1SettlementOutput
      oneOf:
        - $ref: '#/components/schemas/V1PendingSettlementOutput'
        - $ref: '#/components/schemas/V1FailedSettlementOutput'
        - $ref: '#/components/schemas/V1CompleteSettlementOutput'
        - $ref: '#/components/schemas/V1RejectedSettlementOutput'
    V1SettlementPayload:
      title: V1SettlementPayload
      type: object
      properties:
        settlement:
          $ref: '#/components/schemas/V1SettlementOutput'
      required:
        - settlement
    V1SupportedCurrencies:
      title: V1SupportedCurrencies
      type: object
      additionalProperties:
        type: array
        items:
          $ref: '#/components/schemas/BNMetadata'
    V1UpdateBankAccountResponse:
      title: V1UpdateBankAccountResponse
      allOf:
        - $ref: '#/components/schemas/SingleBankAccountResponse'
      description: codec for update bank account http response
    V2PartnerSettlementOkPayload:
      title: V2PartnerSettlementOkPayload
      type: object
      properties:
        settlement:
          allOf:
            - $ref: '#/components/schemas/V2PendingSettlement'
          description: The initiated settlement object in it's pending state.
      required:
        - settlement
    V2PendingSettlement:
      title: V2PendingSettlement
      allOf:
        - type: object
          properties:
            cutoffAt:
              type: string
              description: >-
                The datetime provided by the partner representing the timestamp
                of the most 

                recent trade being settled.
              format: date-time
              title: ISO Date String
            settlingDisputes:
              allOf:
                - $ref: '#/components/schemas/V1AssignedDisputesWithClosureOutput'
              description: >-
                Array of disputes that were closed and not yet assigned at the
                time the request was 

                first received. These disputes are assigned to the settlement
                and their associated 

                adjustedSettlementTransfers will be executed with this
                settlement regardless of whether 

                or not the associated client(s) dispute.
          required:
            - cutoffAt
            - settlingDisputes
        - $ref: '#/components/schemas/V1PendingSettlementOutput'
    ValidValues:
      type: array
      description: A list of valid values, only values from this list will be accepted.
      items:
        anyOf:
          - $ref: '#/components/schemas/GreaterThanValue'
          - $ref: '#/components/schemas/GreaterThanOrEqualToValue'
          - $ref: '#/components/schemas/LessThanValue'
          - $ref: '#/components/schemas/LessThanOrEqualToValue'
    ValidationError:
      allOf:
        - $ref: '#/components/schemas/GeneralError'
        - type: object
          properties:
            failedValidations:
              type: object
    ValidationError1:
      required:
        - error
        - errorName
      type: object
      properties:
        error:
          type: object
          properties:
            currencySymbol:
              type: string
              description: The currency symbol for the validation error
            message:
              type: string
              description: Human-readable error message
            minQuantity:
              type: string
              description: Minimum quantity required
            maxQuantity:
              type: string
              description: Maximum quantity allowed
            field:
              type: string
              description: Request field name that caused the error
        errorName:
          type: string
      example:
        errorName: backend:trade:invalidQuantity
        error:
          currencySymbol: USD
          message: Amount must be at least 10 USD.
          minQuantity: '10'
    ValidatorRegistrationIntent:
      title: ValidatorRegistrationIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - validatorRegistration
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    VariableFee:
      title: VariableFee
      type: object
      properties:
        type:
          type: string
          enum:
            - variable
        percent:
          type: string
          minLength: 1
        minimum:
          type: string
          minLength: 1
      required:
        - type
        - percent
        - minimum
    VelocityAmountConditionParameter:
      title: Amount
      type: object
      description: The withdrawable amount within the time window.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - amount
          example: amount
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Amount
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The amount that can be spent within the time window
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - NON_NEGATIVE_NUMBER
          example: NON_NEGATIVE_NUMBER
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    VelocityCoinConditionParameter:
      title: Unit
      type: object
      description: >-
        The unit of currency the amount is denoted in, can be a cryptocurrency
        or a fiat currency.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - coin
          example: coin
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Unit
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The unit the amount is denoted in, can be a coin or a fiat currency
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - COIN_OR_USD
          example: COIN_OR_USD
        required:
          type: string
          description: A value must always be provided, i.e. the parameter is required.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'false'
    VerificationState:
      title: VerificationState
      type: string
      enum:
        - approved
        - rejected
        - pending
        - removed
        - revise
    VerifiedKycState:
      type: string
      enum:
        - approved
        - pending
        - rejected
    VerifiedKycState1:
      title: VerifiedKycState
      type: string
      enum:
        - approved
        - rejected
        - pending
    VerifyDocumentBadRequestError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: VerifyDocumentBadRequestError
      description: Generic error response
    VerifyDocumentFile:
      type: object
      properties:
        fileId:
          type: string
          description: Unique identifier for the file
        fileView:
          $ref: '#/components/schemas/FileView'
        required:
          type: boolean
          description: Whether this file is required for the document
        status:
          $ref: '#/components/schemas/FileStatus'
        downloadUrl:
          type: string
          format: uri
          description: Presigned URL for file download
      required:
        - fileId
        - fileView
        - required
        - status
      title: VerifyDocumentFile
      description: File information after verification
    VerifyDocumentForbiddenError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: VerifyDocumentForbiddenError
      description: Generic error response
    VerifyDocumentInternalError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: VerifyDocumentInternalError
      description: Generic error response
    VerifyDocumentNotFoundError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: VerifyDocumentNotFoundError
      description: Generic error response
    VerifyDocumentRequest:
      type: object
      properties: {}
      title: VerifyDocumentRequest
      description: Request body for document verification
    VerifyDocumentResponse:
      type: object
      properties:
        documentId:
          type: string
          description: Unique identifier for the document
        documentType:
          $ref: '#/components/schemas/DocumentType'
        documentTypeLabel:
          type: string
          description: Human-readable label for the document type
        subType:
          $ref: '#/components/schemas/DocumentSubType'
        status:
          $ref: '#/components/schemas/DocumentStatus'
        files:
          type: array
          items:
            $ref: '#/components/schemas/VerifyDocumentFile'
          description: List of files with verification status
      required:
        - documentId
        - documentType
        - documentTypeLabel
        - status
        - files
      title: VerifyDocumentResponse
      description: Response after verifying document upload status
    VerifyDocumentUnauthorizedError:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Error message
        details:
          type: object
          additionalProperties:
            nullable: true
          description: Additional error details
      required:
        - code
        - message
      title: VerifyDocumentUnauthorizedError
      description: Generic error response
    VerifyWebhookNotificationResponse:
      title: VerifyWebhookNotificationResponse
      type: object
      properties:
        webhookId:
          type: string
        isValid:
          type: boolean
      required:
        - webhookId
        - isValid
    VetBurnNFTIntent:
      title: VetBurnNFTIntent
      allOf:
        - $ref: '#/components/schemas/UnstakeIntent'
        - $ref: '#/components/schemas/VetUnstakeCommonFields'
      description: >-
        Burn a VeChain staking NFT to complete the unstaking withdrawal and
        reclaim

        staked VET. This is the second (final) step in the basic unstaking flow
        —

        must be preceded by `undelegate`. No VET is spent by the sender; gas is
        paid

        by the enterprise gas tank (VTHO).
    VetDecreaseStakeIntent:
      title: VetDecreaseStakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - decreaseStake
              description: Must be "decreaseStake".
            validatorAddress:
              type: string
              description: Address of the validator whose staked position is being reduced.
              minLength: 1
            stakingContractAddress:
              type: string
              description: Address of the VeChain staking contract holding the position.
              minLength: 1
          required:
            - intentType
            - validatorAddress
            - stakingContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Withdraw a portion of VET staked with a VeChain validator, reducing the

        position size. The specified amount is returned to the sender's wallet.
        No

        VET is spent — gas is paid by the enterprise gas tank (VTHO).
    VetDelegateIntent:
      title: VetDelegateIntent
      allOf:
        - type: object
          properties:
            tokenId:
              type: string
              description: ID of the staking NFT to delegate to the validator.
              minLength: 1
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking (Stargate) contract that holds
                the NFT.
              minLength: 1
            validatorAddress:
              type: string
              description: Address of the validator to delegate the staking NFT to.
              minLength: 1
          required:
            - tokenId
            - stakingContractAddress
            - validatorAddress
        - $ref: '#/components/schemas/DelegateIntent'
      description: >-
        Delegate a VeChain staking NFT to a validator, granting the validator
        voting

        and reward rights for that position. No VET is spent — this is an NFT

        assignment operation, not a financial transfer. Gas is paid by the
        enterprise

        gas tank (VTHO).
    VetDelegationProperties:
      title: VET Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            nftTokenId:
              type: string
              nullable: true
            stakedAmount:
              type: string
              format: bigInteger
            rewardEarned:
              type: string
              format: bigInteger
            maturityTimestamp:
              type: string
              format: date-time
              nullable: true
            isMatured:
              type: boolean
            lastRewardClaimed:
              type: string
              format: date-time
              nullable: true
            nftMintTransactionHash:
              type: string
              nullable: true
            currentSupplyMinted:
              type: integer
              format: int32
              nullable: true
            uiLabel:
              type: string
              nullable: true
              description: >-
                Frontend display label for the staking type (e.g., "Delegate"
                for VET_STAKE, "Stake" for VET_VALIDATOR_REGISTRATION, "Increase
                Stake" for VET_INCREASE_STAKE).
    VetExitDelegationIntent:
      title: VetExitDelegationIntent
      allOf:
        - $ref: '#/components/schemas/UndelegateIntent'
        - $ref: '#/components/schemas/VetUnstakeCommonFields'
      description: >-
        Remove validator delegation for a VeChain staking NFT, returning it to
        an

        undelegated state. This is the first step in the full unstaking flow —
        must

        precede `unstake` (burn NFT). No VET is spent; gas is paid by the
        enterprise

        gas tank (VTHO).
    VetIncreaseStakeIntent:
      title: VetIncreaseStakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - increaseStake
              description: Must be "increaseStake".
            validatorAddress:
              type: string
              description: >-
                Address of the validator whose staked position is being
                increased.
              minLength: 1
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking contract holding the existing
                position.
              minLength: 1
          required:
            - intentType
            - validatorAddress
            - stakingContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Increase the VET staked with an existing VeChain validator by depositing

        additional VET into the staking contract. The sender must have
        sufficient VET

        balance. Gas is paid by the enterprise gas tank (VTHO).
    VetSignalExitIntent:
      title: VetSignalExitIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - signalExit
              description: Must be "signalExit".
            validatorAddress:
              type: string
              description: Address of the validator node whose position is being exited.
              minLength: 1
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking contract where the validator
                position is held.
              minLength: 1
          required:
            - intentType
            - validatorAddress
            - stakingContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: >-
        Signal the intent to exit a VeChain validator staking position,
        initiating

        the cooldown period. This is the first step in the validator unstake
        flow —

        must be followed by `withdrawStake` after the cooldown expires. No VET
        is

        spent; gas is paid by the enterprise gas tank (VTHO).
    VetStakeClaimRewardsIntent:
      title: VetStakeClaimRewardsIntent
      allOf:
        - type: object
          properties:
            tokenId:
              type: string
              description: >-
                ID of the staking NFT whose accumulated VTHO rewards will be
                claimed.
              minLength: 1
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking (Stargate) contract that holds
                the NFT.
              minLength: 1
          required:
            - tokenId
            - stakingContractAddress
        - $ref: '#/components/schemas/StakeClaimRewardsIntent'
      description: >-
        Claim VTHO rewards accumulated by a VeChain staking NFT position.
        Rewards

        accrue in VTHO (VeChain's energy token) for each NFT held in the
        Stargate

        contract. Supply the NFT's token ID and the staking contract address.
        Gas is

        paid by the enterprise gas tank (VTHO).
    VetStakingIntent:
      title: VetStakingIntent
      allOf:
        - type: object
          properties:
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking contract that will hold the
                staked VET.
              minLength: 1
            levelId:
              type: string
              description: >-
                Staking tier level in the VeChain contract. Determines reward
                rate and lock parameters.
              minLength: 1
          required:
            - stakingContractAddress
            - levelId
        - $ref: '#/components/schemas/StakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Activate a new VeChain staking position by depositing VET into the
        staking

        contract. Use `levelId` to select the staking tier. To add to an
        existing

        position, use `increaseStake` instead. All VeChain gas fees are paid by
        the

        enterprise gas tank (VTHO); the sender pays no gas.
    VetStakingRequestEntityProperties:
      title: VET staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            nftTier:
              type: string
              nullable: true
              description: >-
                The NFT tier selected for staking (e.g., DAWN, LIGHTNING,
                FLASH). Present for regular staking, null for validator
                registration.
            validatorAddress:
              type: string
              nullable: true
              description: >-
                The validator address to delegate to or the validator address
                being registered.
            stakingType:
              type: string
              description: >-
                The staking type - VET_STAKE for regular staking,
                VET_VALIDATOR_REGISTRATION for validator registration.
              enum:
                - VET_STAKE
                - VET_VALIDATOR_REGISTRATION
            beneficiaryAddress:
              type: string
              nullable: true
              description: >-
                The beneficiary address that receives validator rewards. Present
                only for validator registration.
            uiLabel:
              type: string
              nullable: true
              description: >-
                Frontend display label for the staking type (e.g., "Delegate"
                for VET_STAKE, "Stake" for VET_VALIDATOR_REGISTRATION, "Increase
                Stake" for VET_INCREASE_STAKE).
          required:
            - nftTier
    VetStakingRequestPOSTBody:
      title: VET stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            nftTier:
              description: >-
                The NFT tier to stake for VET PoS. Amount will be auto-populated
                based on the selected tier. Options are dynamically populated
                from the wallet attributes endpoint based on user balance.
                Required for subType=STAKE.
              type: string
              example: DAWN
            validator:
              description: >-
                The validator address. For regular staking (subType=STAKE), this
                is the validator to delegate the NFT to. For validator
                registration (subType=VET_VALIDATOR_REGISTRATION), this is the
                validator address being registered.
              type: string
              example: '0xae99cb89767a09d53e589a40cb4016974aba4b94'
            beneficiaryAddress:
              description: >-
                The beneficiary address that will receive validator rewards.
                Required for subType=VET_VALIDATOR_REGISTRATION.
              type: string
              example: '0x1234567890123456789012345678901234567890'
            subType:
              description: >-
                The staking sub-type. STAKE for regular NFT-based staking,
                VET_VALIDATOR_REGISTRATION for registering as a validator.
              type: string
              enum:
                - STAKE
                - VET_VALIDATOR_REGISTRATION
              example: STAKE
      type: object
    VetStakingTransactionProperties:
      title: VET Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            nftTokenId:
              type: string
            gasLimit:
              type: string
            gasPrice:
              type: string
            nonce:
              type: string
    VetUnStakingRequestPOSTBody:
      title: VET unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    VetUnstakeCommonFields:
      title: VetUnstakeCommonFields
      type: object
      properties:
        tokenId:
          type: string
          description: ID of the staking NFT to operate on.
          minLength: 1
        stakingContractAddress:
          type: string
          description: >-
            Address of the VeChain staking (Stargate) contract that holds the
            NFT.
          minLength: 1
      required:
        - tokenId
        - stakingContractAddress
    VetValidatorRegistrationIntent:
      title: VetValidatorRegistrationIntent
      allOf:
        - type: object
          properties:
            validatorAddress:
              type: string
              description: >-
                Address of the validator node being registered. Must be a valid
                VeChain address.
              minLength: 1
            stakingPeriod:
              type: number
              enum:
                - 60480
                - 129600
                - 259200
              description: >-
                Duration of the staking lock period in blocks. Valid values:
                60480 (~7 days), 129600 (~15 days), 259200 (~30 days).
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking contract to register the
                validator with.
              minLength: 1
          required:
            - validatorAddress
            - stakingPeriod
            - stakingContractAddress
        - $ref: '#/components/schemas/ValidatorRegistrationIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
      description: >-
        Register a new validator node in VeChain's staking contract by
        depositing a

        VET bond. The staking period determines the lock duration (60480,
        129600, or

        259200 blocks). Gas is paid by the enterprise gas tank (VTHO).
    VetWalletStakingStateAttributes:
      type: object
      properties:
        spendableAttributes:
          $ref: '#/components/schemas/WalletStakingSpendableAttributes'
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        disclaimerAttributes:
          $ref: '#/components/schemas/WalletStakingDisclaimerAttributes'
    VetWithdrawStakeIntent:
      title: VetWithdrawStakeIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - withdrawStake
              description: Must be "withdrawStake".
            validatorAddress:
              type: string
              description: >-
                Address of the validator node whose staked VET is being
                withdrawn.
              minLength: 1
            stakingContractAddress:
              type: string
              description: >-
                Address of the VeChain staking contract holding the exited
                position.
              minLength: 1
          required:
            - intentType
            - validatorAddress
            - stakingContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
      description: >-
        Withdraw a VeChain validator's staked VET after the cooldown period from
        a

        `signalExit` has completed. This is the second (final) step in the
        validator

        unstake flow. No VET is spent — staked VET is returned to the sender;
        gas is

        paid by the enterprise gas tank (VTHO).
    VideoApprovalActionRequest:
      title: BitGo Video Approval
      type: object
      description: Require BitGo video approval.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.bitgo.videoApproval
          example: approvals.bitgo.videoApproval
        parameters:
          type: object
          description: Required data needed to configure the Action.
        operator:
          $ref: '#/components/schemas/OperatorType'
    VideoApprovers:
      type: array
      items:
        $ref: '#/components/schemas/Id'
      description: >
        A list of public ids of users that should do the video id verification
        for the transaction that is being sent or initiated.
      minItems: 1
    VideoIdUserState:
      title: VideoIdUserState
      type: string
      enum:
        - awaitingApproval
        - awaitingAcceptance
        - pendingSchedule
        - pendingInitialId
        - underReview
        - approved
        - rejected
        - archived
    VideoIdWaived:
      example: true
      description: >-
        Whether the customer has waived the need for Video ID on low risk
        withdrawals.
      type: boolean
    ViewAllWallets:
      example: true
      description: >-
        All users on the enterprise can view all enterprise wallets, even if
        they are not viewers on the wallet itself
      type: boolean
    Vote:
      type: object
      properties:
        voteAddress:
          type: string
        voteCount:
          type: string
    VoteDelegationIntent:
      title: Vote Delegation Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - voteDelegation
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    WPBitGoProduct:
      type: string
      enum:
        - Instant Fee Wallets
        - Go Account
        - ACH Debits
        - Settlement
        - Tax
        - Trade API
        - Margin Trading
        - Elliptic
        - CryptoCompare
        - MetaMask
        - Custody
        - Borrowing
        - Lending
        - DeFi
        - Cold Self-Custody
        - Go Network
        - Staking
        - Trade
        - Hot Self-Custody
        - Escrow
        - Escrow - Triparty
        - Distributed Custody
      title: WPBitGoProduct
      description: BitGo product types
    WPBitgoOrg:
      type: string
      enum:
        - BitGo Trust
        - BitGo New York
        - BitGo Germany
        - BitGo Switzerland
        - BitGo Europe ApS
        - Frankfurt DE Trust
        - BitGo Singapore
        - BitGo Korea
        - BitGo Mena Fze
        - BitGo Custody MENA FZE
        - BitGo India
        - BitGo Sister Trust 1
        - BitGo Inc
      title: WPBitgoOrg
      description: BitGo organization types
    Wallet:
      title: Wallet
      type: object
      properties:
        allowBackupKeySigning:
          type: boolean
        approvalsRequired:
          type: number
          example: 1
          minimum: 1
        coin:
          $ref: '#/components/schemas/CoinString'
        coinSpecific:
          $ref: '#/components/schemas/WalletSubdocument'
        deleted:
          type: boolean
        disableTransactionNotifications:
          type: boolean
        hasLargeNumberOfAddresses:
          nullable: true
          type: boolean
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        isCold:
          type: boolean
        label:
          type: string
          example: My Wallet
        startDate:
          type: string
          description: Wallet creation time
          format: date-time
          title: ISO Date String
        admin:
          type: object
          properties:
            policy:
              $ref: '#/components/schemas/Policy'
        billingEnterprise:
          type: string
        buildDefaults:
          type: object
          properties:
            minFeeRate:
              type: number
              description: >-
                (UTXO only) Wallet-level minimum fee rate that must be greater
                than or equal to the default of 1000 satoshis/kvByte. Per
                transaction, you can override "minFeeRate" with the "feeRate"
                parameter.
              example: 12000
              minimum: 1000
            maxFeeRate:
              type: number
            feeMultiplier:
              nullable: true
              type: number
            changeAddressType:
              nullable: true
              type: string
            autoReserveUnspentsOnBuildMins:
              nullable: true
              type: number
        clientFlags:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                type: boolean
        config:
          type: object
          properties:
            nodeId: {}
        custodialWalletId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        customChangeKeySignatures:
          type: object
          properties:
            user:
              type: string
            backup:
              type: string
            bitgo:
              type: string
        customerWalletId:
          type: string
        enterprise:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        evmKeyRingReferenceWalletId:
          type: string
          description: Reference wallet ID for EVM keyring wallets (child wallets only)
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        isParent:
          type: boolean
          description: Indicates if this wallet is a parent wallet in an EVM keyring setup
          example: true
        enabledChildChains:
          type: array
          example:
            - tbsc
            - tpolygon
          items:
            type: string
            description: Array of enabled child chain names for parent EVM keyring wallets
        archivedChildChains:
          type: array
          example:
            - tbsc
            - tpolygon
          items:
            type: string
            description: >-
              Array of archived child chain names for parent EVM keyring wallets
              (per-user)
        organization:
          type: string
        bitgoOrg:
          type: string
        freeze:
          type: object
          properties:
            time:
              type: string
              format: date-time
              title: ISO Date String
            expires:
              type: string
              format: date-time
              title: ISO Date String
            reason:
              allOf:
                - $ref: '#/components/schemas/FreezeReason'
              description: Why a wallet was frozen
            referenceId:
              type: string
              description: An optional reference ID for tracking purposes
            adminOrUserId:
              type: string
              description: >-
                The user who froze the wallet (could be a regular user or an
                admin)
        instantProvider:
          type: string
        keys:
          type: array
          example:
            - 585951a5df8380e0e304a553
            - 585951a5df8380e0e30d645c
            - 585951a5df8380e0e30b6147
          items:
            type: string
        keySignatures:
          type: object
          properties:
            backupPub:
              type: string
            bitgoPub:
              type: string
        m:
          type: number
          description: >-
            Number of signatures required. This value must be 2 for hot wallets,
            1 for **ofc** wallets, and not specified for custodial wallets.
          example: 2
        migratedFrom:
          type: string
        multisigType:
          $ref: '#/components/schemas/MultiSigType'
        multisigTypeVersion:
          $ref: '#/components/schemas/MultisigTypeVersion'
        'n':
          type: number
          description: >-
            Number of keys provided. This value must be 3 for hot wallets, 1 for
            **ofc** wallets, and not specified for custodial wallets.
          example: 3
        recoverable:
          type: boolean
        tags:
          type: array
          items:
            type: string
        type:
          allOf:
            - $ref: '#/components/schemas/WalletType'
          description: >-
            The type describes who owns the keys to the wallet and how they are
            stored. "cold" wallets are wallets where the private key of the user
            key is stored exclusively outside of BitGo's system. "custodial"
            means that this wallet is a cold wallet where BitGo owns the keys.
            Only customers of the BitGo Trust can create this kind of wallet.
            "custodialPaired" means that this is a hot wallet that is owned by
            the customer but it will be linked to a cold (custodial) wallet
            where BitGo owns the keys. This option is only available to
            customers of BitGo Inc. BitGo stores an encrypted private key for
            the user key of "hot" wallets. "trading" wallets are trading
            accounts where the coin is "ofc". "distributedCustody" means You
            manage one key and another key agent manages the second key. BitGo
            manages the third key
        subType:
          $ref: '#/components/schemas/WalletSubType'
        balanceString:
          type: string
          description: >-
            The cleared balance of the address in base units (e.g. Satoshis).

            Guaranteed to not lose precision.

            The is only returned if the `expandBalance` query parameter is set
            to `true`.
        balance:
          type: number
          description: >-
            The cleared balance of the address in base units (e.g. Satoshis).

            The is only returned if the `expandBalance` query parameter is set
            to `true`.
        confirmedBalanceString:
          type: string
          description: >-
            The total balance of confirmed transactions in base units (e.g.
            Satoshis).

            The is only returned if the `expandBalance` query parameter is set
            to `true`.

            Guaranteed to not lose precision.
        confirmedBalance:
          type: number
          description: >-
            The total balance of confirmed transactions in base units (e.g.
            Satoshis).

            The is only returned if the `expandBalance` query parameter is set
            to `true`.
        spendableBalanceString:
          type: string
          description: >-
            The total balance in base units (e.g. Satoshis) which may

            be used as inputs for creating new transactions in string
            representation.

            Guaranteed to not lose precision.

            The is only returned if the `expandBalance` query parameter is set
            to `true`.
        spendableBalance:
          type: number
          description: >-
            The total balance in base units (e.g. Satoshis) which may

            be used as inputs for creating new transactions in string
            representation.

            The is only returned if the `expandBalance` query parameter is set
            to `true`.
        stakingBalanceString:
          type: string
          description: >-
            The staked balance in base units.

            Guaranteed to not lose precision.

            The is only returned if the `includeStakingBalances` query parameter
            is set to `true`.
        rewardBalanceString:
          type: string
          description: >-
            The staking reward balance in base units.

            Guaranteed to not lose precision.

            The is only returned if the `includeStakingBalances` query parameter
            is set to `true`.
        withdrawHoldAmountUsdString:
          type: string
          description: >-
            Total USD value (in cents) of active ACH-deposit related withdraw
            holds on this wallet.

            Only present for OFC wallets when `allTokens=true` is passed.
        offchain:
          allOf:
            - $ref: '#/components/schemas/OffChainWalletBalance'
          description: Lightning Balances
        users:
          type: array
          items:
            type: object
            properties:
              needsRecovery:
                type: boolean
              permissions:
                type: array
                items:
                  type: string
                  enum:
                    - admin
                    - spend
                    - view
                    - freeze
                    - trade
                    - dapp
                  description: >-
                    This type represents the permissions that can be assigned to
                    a user when adding them to a wallet


                    1. 'admin': add/remove wallet policies, add/remove wallet
                    users, approve/reject wallet pending approvals, withdraw
                    assets from wallet, generate new receive addresses, view all
                    balances and transactions

                    2. 'spend': withdraw assets from wallet, generate new
                    receive addresses, view all balances and transactions

                    3. 'view': generate new receive addresses, view all balances
                    and transactions

                    4. 'freeze':

                    5. 'trade': trade on a wallet - applicable only for trading
                    wallets

                    6. 'dapp': connect to third-party dApps and provide them
                    access to wallet operations
              recoverable:
                type: boolean
              user:
                type: string
            required:
              - permissions
        walletFlags:
          type: array
          items:
            type: object
            properties:
              name:
                $ref: '#/components/schemas/WalletFlag'
              value:
                type: string
            required:
              - name
              - value
        receiveAddress:
          $ref: '#/components/schemas/WalletAddress'
      required:
        - allowBackupKeySigning
        - approvalsRequired
        - coin
        - coinSpecific
        - deleted
        - disableTransactionNotifications
        - hasLargeNumberOfAddresses
        - id
        - isCold
        - label
        - startDate
    Wallet1:
      type: object
      properties:
        admin:
          type: object
          properties:
            policy:
              $ref: '#/components/schemas/Policy1'
        allowBackupKeySigning:
          type: boolean
        approvalsRequired:
          $ref: '#/components/schemas/ApprovalsRequired'
        balanceString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: Total balance in base units (e.g. Satoshis)
        buildDefaults:
          $ref: '#/components/schemas/WalletBuildDefaults'
        coin:
          $ref: '#/components/schemas/Coin'
        coinSpecific:
          $ref: '#/components/schemas/WalletCoinSpecific'
        custodialWallet:
          type: object
          description: The associated custodial wallet object
        custodialWalletId:
          $ref: '#/components/schemas/Id'
        deleted:
          type: boolean
        disableTransactionNotifications:
          type: boolean
        enterprise:
          $ref: '#/components/schemas/Id'
        freeze:
          type: object
          properties:
            time:
              type: string
              format: dateTime
            expires:
              type: string
              format: dateTime
            reason:
              type: string
              description: Reason why the wallet was frozen
              enum:
                - TxIntentMismatch
                - TxIntentMismatchRecipient
                - TxIntentMismatchContract
                - TxIntentMismatchApproval
                - UserRequest
                - AdminRequest
            referenceId:
              type: string
              description: Optional reference ID for tracking purposes
            adminOrUserId:
              type: string
              description: The user who froze the wallet
        id:
          $ref: '#/components/schemas/Id'
        isCold:
          type: boolean
        keys:
          $ref: '#/components/schemas/Keys'
        label:
          $ref: '#/components/schemas/WalletLabel'
        m:
          $ref: '#/components/schemas/NumSignatures'
        'n':
          $ref: '#/components/schemas/NumKeychains'
        nodeId:
          $ref: '#/components/schemas/Id'
        receiveAddress:
          $ref: '#/components/schemas/Address2'
        recoverable:
          type: boolean
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        spendableBalanceString:
          allOf:
            - $ref: '#/components/schemas/IntegerString'
          description: Spendable balance in base units (e.g. Satoshis)
        unspentCount:
          type: number
          example: 100
          description: Number of unspent outputs present in the wallet
        startDate:
          allOf:
            - $ref: '#/components/schemas/DateTime'
          description: Wallet creation time
        type:
          $ref: '#/components/schemas/WalletTypePublic'
        users:
          type: array
          items:
            $ref: '#/components/schemas/WalletUser'
        customChangeKeySignatures:
          $ref: '#/components/schemas/CustomChangeKeySignatures'
        multisigType:
          $ref: '#/components/schemas/WalletMultisigType'
        multisigTypeVersion:
          $ref: '#/components/schemas/MultisigTypeVersion1'
      required:
        - approvalsRequired
        - coin
        - deleted
        - disableTransactionNotifications
        - id
        - label
    WalletAccrual:
      type: object
      properties:
        walletId:
          description: The wallet ID.
          type: string
        spendable:
          description: The total spendable (withdrawable) amount in the wallet.
          type: string
    WalletAddress:
      title: WalletAddress
      allOf:
        - type: object
          properties:
            coin:
              $ref: '#/components/schemas/CoinString'
            wallet:
              type: string
            chain:
              $ref: '#/components/schemas/AddressChain'
            index:
              type: number
          required:
            - coin
            - wallet
            - chain
            - index
        - $ref: '#/components/schemas/BaseWalletAddress'
    WalletAddressUnion:
      title: WalletAddressUnion
      oneOf:
        - $ref: '#/components/schemas/WalletAddress'
        - $ref: '#/components/schemas/LightningWalletAddress'
    WalletAdminAction:
      title: Require wallet-admin approval
      type: object
      description: Requires approval from one or more wallet admin.
      required:
        - name
        - label
        - description
        - status
        - adminOnly
        - parameters
      properties:
        name:
          type: string
          description: The name of the action.
          enum:
            - approvals.customer.walletAdmin
          example: approvals.customer.walletAdmin
        label:
          type: string
          description: A label for the action which can be shown to an end user.
          example: Wallet Admin
        description:
          type: string
          description: A description for the action which can be shown to an end user.
          example: Require approval from wallet admins
        status:
          type: string
          description: >
            Status of the action. Indicates if the Actions is usable `ACTIVE` or
            not `INACTIVE`.


            * `ACTIVE` - The action is available for use.

            * `INACTIVE` - The action is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        adminOnly:
          type: boolean
          description: true, if this is an internal action, false otherwise.
          example: false
        parameters:
          type: array
          description: A list of Parameters to control how the action behaves.
          items:
            anyOf:
              - $ref: '#/components/schemas/MinRequireActionParameter'
    WalletAdminActionRequest:
      title: Require Require approval from wallet admins
      type: object
      description: Require Require approval from wallet admins.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the associated Action.
          enum:
            - approvals.customer.walletAdmin
          example: approvals.customer.walletAdmin
        parameters:
          type: object
          description: Required data needed to configure the Action.
          required:
            - minRequired
          properties:
            minRequired:
              type: string
              description: Number of required approvals
              example: '1'
        operator:
          $ref: '#/components/schemas/OperatorType'
    WalletAllCondition:
      title: Wallet all
      type: object
      description: Wallet-all condition for the all-wallets scope.
      required:
        - name
        - label
        - description
        - status
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - wallet.all
          example: wallet.all
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Wallet All
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: For all Wallets
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
    WalletAllFilteringCondition:
      title: All wallets
      type: object
      description: Filter by all wallets.
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - wallet.all
          example: wallet.all
    WalletBridgableBalance:
      title: WalletBridgableBalance
      type: object
      additionalProperties:
        type: object
        properties:
          balance:
            type: string
            description: String representation of the balance
            example: '500000'
        required:
          - balance
      description: Balance of wallet that can be bridged to the l1 chain
    WalletBuildDefaults:
      type: object
      properties:
        minFeeRate:
          type: integer
          minimum: 1000
          nullable: true
          example: 12000
          description: >
            (BTC only) The minimum fee rate (in base units) per kilobyte (or
            virtual kilobyte). For example, satoshis per kvByte. Must be greater
            than or equal to the default of 1000 satoshis/kvByte.


            Note: The you can override `minFeeRate` on a per transaction basis
            with the `feeRate` parameter.
        maxFeeRate:
          type: integer
          minimum: 1000
          nullable: true
          example: 18000
          description: >
            (BTC only) The maximum fee rate (in base units) per kilobyte (or
            virtual kilobyte). For example, satoshis per kvByte. The
            `maxFeeRate` limits the fee rate generated by both `feeMultiplier`
            and `numBlocks`.


            Note: The you can override `maxFeeRate` on a per transaction basis
            with the `feeRate` parameter.
        feeMultiplier:
          type: number
          minimum: 1
          nullable: true
          example: 1.2
          description: >
            (UTXO only) Custom multiplier to the `feeRate`. The resulting fee
            rate is limited by the `maxFeeRate`. For replace-by-fee (RBF)
            transactions (that include `rbfTxIds`), the `feeMultiplier` must be
            greater than 1, since it's an absolute fee multiplier to the
            transaction being replaced.


            Note: The `maxFeeRate` limits the fee rate generated by
            `feeMultiplier`.
        changeAddressType:
          $ref: '#/components/schemas/DefaultChangeAddressType'
        txFormat:
          type: string
          example: psbt
          enum:
            - legacy
            - psbt
            - psbt-lite
          description: >
            (UTXO only) The default transaction format to use for this wallet.
            Per transaction, you can override the default with the `txFormat`
            parameter.
        autoReserveUnspentsOnBuildMins:
          type: number
          minimum: 1
          nullable: true
          example: 60
          description: >
            (UTXO only) Automatically reserve unspents when building a
            transaction.
    WalletCoinSpecific:
      oneOf:
        - title: Wallet
          type: object
          properties:
            creationFailure:
              type: array
              items:
                $ref: '#/components/schemas/TxId'
              description: Includes list of fail initialization txids
            pendingChainInitialization:
              type: boolean
              description: Whether the wallet needs to be initialized on the chain
        - $ref: '#/components/schemas/WalletCoinSpecificBtc'
        - $ref: '#/components/schemas/WalletCoinSpecificCosmos'
        - $ref: '#/components/schemas/WalletCoinSpecificOfc'
        - $ref: '#/components/schemas/WalletCoinSpecificXlm'
    WalletCoinSpecificBtc:
      title: BTC
      type: object
      properties:
        allowQuantumUnsafeAddresses:
          type: boolean
          description: >-
            If true, the wallet allows creation of addresses which are
            vulnerable to quantum attacks. Defaults to false.
    WalletCoinSpecificCosmos:
      title: ATOM
      type: object
      properties:
        rootAddress:
          type: string
          description: Wallet address to send or receive assets.
          example: cosmos1uvrgkp82dmeks368d7g2ejzm3axhapzveh5uek
        lastChainIndex:
          type: number
          description: Index of last address that was derived.
          example: 1
        lastMemoId:
          type: string
          description: A running counter of the last known memo id. The first one is 0.
          example: '0'
        pendingEcdsaTssInitialization:
          type: boolean
          description: >-
            If true, this wallet cannot sign transactions or messages as the
            enterprise has not finished MPC setup.
          example: false
      required:
        - rootAddress
        - lastMemoId
    WalletCoinSpecificOfc:
      title: OFC
      type: object
      description: Coin-specific data for OFC (Go Account) wallets.
      properties:
        needsKeyReshareAfterPasswordReset:
          type: boolean
          description: >
            True if all users need to recover the user key. Set to true after a
            successful

            password reset with support.
        pendingSystemInitialization:
          type: boolean
          description: >
            True if the wallet is still pending initialization. While true,
            users cannot

            create addresses or initiate withdrawals.
        userKeySigningRequired:
          type: boolean
          description: >
            True if the wallet requires user signatures for all transactions and
            refuses BitGo

            KMS signing. Defaults to true when not explicitly set. Only
            applicable for OFC wallets.
    WalletCoinSpecificXlm:
      title: XLM
      type: object
      properties:
        rootAddress:
          type: string
          description: Root address of the wallet
          example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM
        stellarUsername:
          type: string
          description: Username for the user's Stellar address
          example: foo_bar@baz.com
        homeDomain:
          type: string
          description: Home domain of a Stellar account
          example: bitgo.com
        stellarAddress:
          type: string
          description: Email-like address associated to a Stellar account
          example: foo_bar@baz.com*bitgo.com
    WalletConsolidateUnspentsResponse:
      type: object
      properties:
        txHex:
          oneOf:
            - $ref: '#/components/schemas/TxHex'
            - $ref: '#/components/schemas/PsbtHex'
        txInfo:
          $ref: '#/components/schemas/UtxoTxInfo'
        feeInfo:
          $ref: '#/components/schemas/UtxoFeeInfo'
    WalletCountResponse:
      title: WalletCountResponse
      type: object
      properties:
        count:
          type: number
          description: The number of wallets that match the query.
          minimum: 0
      required:
        - count
    WalletCreateCoinSpecific:
      type: object
      properties:
        xlm:
          $ref: '#/components/schemas/WalletCreateCoinSpecificXlm'
        txlm:
          $ref: '#/components/schemas/WalletCreateCoinSpecificXlm'
        lnbtc:
          $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc'
        tlnbtc:
          $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc'
    WalletCreateCoinSpecificLnbtc:
      type: object
      properties:
        keys:
          allOf:
            - $ref: '#/components/schemas/Keys'
          example:
            - 585951a5df8380e0e304a553
            - 585951a5df8380e0e30d645c
          description: >-
            Lightning wallet only. Array of two key IDs for 'userAuthKey' and
            'nodeAuthKey'.
    WalletCreateCoinSpecificXlm:
      type: object
      properties:
        stellarUsername:
          type: string
          description: >-
            Username for the user's Stellar address. It's case insensitive, and
            it can't be changed after it's set.
          pattern: ^[a-zA-Z0-9-_.+@]+$
          example: foo_bar@baz.com
    WalletCrossChainUnspentResponse:
      title: WalletCrossChainUnspentResponse
      type: array
      items:
        type: object
        properties:
          unspent:
            type: object
            properties:
              outputID:
                type: number
                description: Type ID for this output.
                example: 7
              amount:
                type: string
                description: Amount as a BigNumber string.
                example: '2000000'
              txid:
                type: string
                description: Transaction ID of this unspent.
                example: 2WW4Z9R9jdUSR1uheJ1rGuLUNXjipXESGknGWrkqx7KUU1YKV5
              threshold:
                type: number
                description: Number of signatures required to unlock UTXO.
                example: 1
              addresses:
                type: array
                example:
                  - C-fuji167u3leuup654jdea3euggkhh82ta53jer3ttf4
                  - C-fuji19vy09dn76mvt55r0x2d3ch2jrr8z6lgp80vzlj
                  - C-fuji1idynny22nx91z7mujpwadmjy930yjqa040zdjh0w
                items:
                  type: string
                  description: Addresses tied to the UTXO for the signatures.
              outputidx:
                type: string
                description: Index of the output in the transaction.
                example: '1'
              locktime:
                type: string
                description: Time that the UTXO is unlocked.
                example: '0'
            required:
              - outputID
              - amount
              - txid
              - threshold
              - addresses
              - outputidx
              - locktime
          sourceChain:
            type: string
            description: The source chain
          destinationChain:
            type: string
            description: The destination chain
          fromWallet:
            type: string
            description: >-
              Public ID of the wallet (in the source chain) that created the
              cross-chain output.
            example: 6386565affdf48cb812ca1f0ed49a621
          toWallet:
            type: string
            description: >-
              Public ID of the wallet (in the destination chain) that's the
              target recipient of the cross-chain transfer.
            example: 6386565affdf48cb812ca1f0ed49a621
          toAddress:
            type: string
            description: >-
              Addresses (in the destination chain) that are target recipients of
              the cross-chain transfer.
            example: '0x125c4451c870f753265b0b1af3cf6ab88ffe4657'
        required:
          - unspent
          - sourceChain
          - destinationChain
          - fromWallet
          - toWallet
          - toAddress
    WalletCustomAddress:
      type: string
      example: ivxzn3bdn4uo
      description: >-
        A custom address can be provided for EOS wallets. It must be exactly 12
        alphanumeric characters.
    WalletFeeAddressBalances:
      title: WalletFeeAddressBalances
      type: object
      additionalProperties:
        type: object
        properties:
          balance:
            type: string
            description: String representation of the balance
            example: '500000'
        required:
          - balance
      description: Balances of different coins for a given wallet fee address
    WalletFlag:
      title: WalletFlag
      type: string
      enum:
        - isStaking
        - lightning
        - ambossLightning
        - musigKp
        - trackingInscriptions
        - rbf
        - coldWalletStaking
        - tokenizationToken
        - oneClickStaking
        - solOfcStaking
        - suiOfcStaking
        - enableWalletConnect
        - enableSolCustomTx
        - enableAptCustomTx
    WalletFreezeResponse:
      title: WalletFreezeResponse
      type: object
      properties:
        time:
          type: string
          format: date
          title: Date String
        expires:
          type: string
          format: date
          title: Date String
        reason:
          allOf:
            - $ref: '#/components/schemas/FreezeReason'
          description: Why a wallet was frozen
        referenceId:
          type: string
          description: An optional reference ID for tracking purposes
        adminOrUserId:
          type: string
          description: The user who froze the wallet (could be a regular user or an admin)
      required:
        - time
        - expires
    WalletId:
      type: string
      example: 59cd72485007a239fb00282ed480da1f
    WalletIdNonEmptyString:
      title: WalletIdNonEmptyString
      type: string
      example: 59cd72485007a239fb00282ed480da1f
      minLength: 1
      pattern: ^[0-9a-f]{32}$
    WalletIdParameter:
      type: object
      description: >-
        The Wallet Id parameter determines on which Wallets this condition will
        trigger.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - walletId
          example: walletId
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Wallet Id
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: he Wallet Ids
        type:
          type: string
          description: The type of acceptable values for this condition parameter.
          enum:
            - BITGO_WALLET_ID
          example: BITGO_WALLET_ID
        required:
          type: string
          description: This Conditions parameter must always be provided.
          enum:
            - ALWAYS
          example: ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'true'
    WalletIdString:
      title: WalletIdString
      type: string
      example: 59cd72485007a239fb00282ed480da1f
      pattern: ^[0-9a-f]{32}$
    WalletIdsCondition:
      title: Wallet ID
      type: object
      description: Wallet ID condition for the all-wallets scope.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - wallet.ids
          example: wallet.ids
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Wallet Id
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: The Wallet Ids
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of Parameters to control how the condition behaves.
          items:
            allOf:
              - $ref: '#/components/schemas/WalletIdParameter'
    WalletIdsFilteringCondition:
      title: Wallet ID
      type: object
      description: Filter by wallet ID.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - wallet.ids
          example: wallet.ids
        parameters:
          type: object
          description: Required data needed to evaluate the Filtering Condition.
          required:
            - walletId
          properties:
            walletId:
              type: array
              items:
                type: string
                description: The Wallet Ids this Filtering Condition will match.
    WalletLabel:
      type: string
      example: My Wallet
    WalletLimit:
      type: object
      properties:
        coin:
          $ref: '#/components/schemas/Coin'
        limit:
          type: integer
        count:
          type: integer
          minimum: 0
        isCustodial:
          type: boolean
          enum:
            - true
      required:
        - coin
        - count
    WalletLimitsResponse:
      type: array
      items:
        $ref: '#/components/schemas/WalletLimit'
    WalletListResponse:
      title: WalletListResponse
      type: object
      properties:
        coin:
          oneOf:
            - type: array
              items:
                type: string
            - type: string
        wallets:
          type: array
          items:
            type: object
            properties:
              allowBackupKeySigning:
                type: boolean
              approvalsRequired:
                type: number
                example: 1
                minimum: 1
              coin:
                $ref: '#/components/schemas/CoinString'
              coinSpecific:
                $ref: '#/components/schemas/WalletSubdocument'
              deleted:
                type: boolean
              disableTransactionNotifications:
                type: boolean
              hasLargeNumberOfAddresses:
                nullable: true
                type: boolean
              id:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              isCold:
                type: boolean
              label:
                type: string
                example: My Wallet
              startDate:
                type: string
                description: Wallet creation time
                format: date-time
                title: ISO Date String
              admin:
                type: object
                properties:
                  policy:
                    $ref: '#/components/schemas/Policy'
              billingEnterprise:
                type: string
              buildDefaults:
                type: object
                properties:
                  minFeeRate:
                    type: number
                    description: >-
                      (UTXO only) Wallet-level minimum fee rate that must be
                      greater than or equal to the default of 1000
                      satoshis/kvByte. Per transaction, you can override
                      "minFeeRate" with the "feeRate" parameter.
                    example: 12000
                    minimum: 1000
                  maxFeeRate:
                    type: number
                  feeMultiplier:
                    nullable: true
                    type: number
                  changeAddressType:
                    nullable: true
                    type: string
                  autoReserveUnspentsOnBuildMins:
                    nullable: true
                    type: number
              clientFlags:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    value:
                      type: boolean
              config:
                type: object
                properties:
                  nodeId: {}
              custodialWalletId:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              customChangeKeySignatures:
                type: object
                properties:
                  user:
                    type: string
                  backup:
                    type: string
                  bitgo:
                    type: string
              customerWalletId:
                type: string
              enterprise:
                type: string
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              evmKeyRingReferenceWalletId:
                type: string
                description: >-
                  Reference wallet ID for EVM keyring wallets (child wallets
                  only)
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              isParent:
                type: boolean
                description: >-
                  Indicates if this wallet is a parent wallet in an EVM keyring
                  setup
                example: true
              enabledChildChains:
                type: array
                example:
                  - tbsc
                  - tpolygon
                items:
                  type: string
                  description: >-
                    Array of enabled child chain names for parent EVM keyring
                    wallets
              archivedChildChains:
                type: array
                example:
                  - tbsc
                  - tpolygon
                items:
                  type: string
                  description: >-
                    Array of archived child chain names for parent EVM keyring
                    wallets (per-user)
              organization:
                type: string
              bitgoOrg:
                type: string
              freeze:
                type: object
                properties:
                  time:
                    type: string
                    format: date-time
                    title: ISO Date String
                  expires:
                    type: string
                    format: date-time
                    title: ISO Date String
                  reason:
                    allOf:
                      - $ref: '#/components/schemas/FreezeReason'
                    description: Why a wallet was frozen
                  referenceId:
                    type: string
                    description: An optional reference ID for tracking purposes
                  adminOrUserId:
                    type: string
                    description: >-
                      The user who froze the wallet (could be a regular user or
                      an admin)
              instantProvider:
                type: string
              keys:
                type: array
                example:
                  - 585951a5df8380e0e304a553
                  - 585951a5df8380e0e30d645c
                  - 585951a5df8380e0e30b6147
                items:
                  type: string
              keySignatures:
                type: object
                properties:
                  backupPub:
                    type: string
                  bitgoPub:
                    type: string
              m:
                type: number
                description: >-
                  Number of signatures required. This value must be 2 for hot
                  wallets, 1 for **ofc** wallets, and not specified for
                  custodial wallets.
                example: 2
              migratedFrom:
                type: string
              multisigType:
                $ref: '#/components/schemas/MultiSigType'
              multisigTypeVersion:
                $ref: '#/components/schemas/MultisigTypeVersion'
              'n':
                type: number
                description: >-
                  Number of keys provided. This value must be 3 for hot wallets,
                  1 for **ofc** wallets, and not specified for custodial
                  wallets.
                example: 3
              recoverable:
                type: boolean
              tags:
                type: array
                items:
                  type: string
              type:
                allOf:
                  - $ref: '#/components/schemas/WalletType'
                description: >-
                  The type describes who owns the keys to the wallet and how
                  they are stored. "cold" wallets are wallets where the private
                  key of the user key is stored exclusively outside of BitGo's
                  system. "custodial" means that this wallet is a cold wallet
                  where BitGo owns the keys. Only customers of the BitGo Trust
                  can create this kind of wallet. "custodialPaired" means that
                  this is a hot wallet that is owned by the customer but it will
                  be linked to a cold (custodial) wallet where BitGo owns the
                  keys. This option is only available to customers of BitGo Inc.
                  BitGo stores an encrypted private key for the user key of
                  "hot" wallets. "trading" wallets are trading accounts where
                  the coin is "ofc". "distributedCustody" means You manage one
                  key and another key agent manages the second key. BitGo
                  manages the third key
              subType:
                $ref: '#/components/schemas/WalletSubType'
              balanceString:
                type: string
                description: >-
                  The cleared balance of the address in base units (e.g.
                  Satoshis).

                  Guaranteed to not lose precision.

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.
              balance:
                type: number
                description: >-
                  The cleared balance of the address in base units (e.g.
                  Satoshis).

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.
              confirmedBalanceString:
                type: string
                description: >-
                  The total balance of confirmed transactions in base units
                  (e.g. Satoshis).

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.

                  Guaranteed to not lose precision.
              confirmedBalance:
                type: number
                description: >-
                  The total balance of confirmed transactions in base units
                  (e.g. Satoshis).

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.
              spendableBalanceString:
                type: string
                description: >-
                  The total balance in base units (e.g. Satoshis) which may

                  be used as inputs for creating new transactions in string
                  representation.

                  Guaranteed to not lose precision.

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.
              spendableBalance:
                type: number
                description: >-
                  The total balance in base units (e.g. Satoshis) which may

                  be used as inputs for creating new transactions in string
                  representation.

                  The is only returned if the `expandBalance` query parameter is
                  set to `true`.
              stakingBalanceString:
                type: string
                description: >-
                  The staked balance in base units.

                  Guaranteed to not lose precision.

                  The is only returned if the `includeStakingBalances` query
                  parameter is set to `true`.
              rewardBalanceString:
                type: string
                description: >-
                  The staking reward balance in base units.

                  Guaranteed to not lose precision.

                  The is only returned if the `includeStakingBalances` query
                  parameter is set to `true`.
              withdrawHoldAmountUsdString:
                type: string
                description: >-
                  Total USD value (in cents) of active ACH-deposit related
                  withdraw holds on this wallet.

                  Only present for OFC wallets when `allTokens=true` is passed.
              offchain:
                allOf:
                  - $ref: '#/components/schemas/OffChainWalletBalance'
                description: Lightning Balances
              users:
                type: array
                items:
                  type: object
                  properties:
                    needsRecovery:
                      type: boolean
                    permissions:
                      type: array
                      items:
                        type: string
                        enum:
                          - admin
                          - spend
                          - view
                          - freeze
                          - trade
                          - dapp
                        description: >-
                          This type represents the permissions that can be
                          assigned to a user when adding them to a wallet


                          1. 'admin': add/remove wallet policies, add/remove
                          wallet users, approve/reject wallet pending approvals,
                          withdraw assets from wallet, generate new receive
                          addresses, view all balances and transactions

                          2. 'spend': withdraw assets from wallet, generate new
                          receive addresses, view all balances and transactions

                          3. 'view': generate new receive addresses, view all
                          balances and transactions

                          4. 'freeze':

                          5. 'trade': trade on a wallet - applicable only for
                          trading wallets

                          6. 'dapp': connect to third-party dApps and provide
                          them access to wallet operations
                    recoverable:
                      type: boolean
                    user:
                      type: string
                  required:
                    - permissions
              walletFlags:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      $ref: '#/components/schemas/WalletFlag'
                    value:
                      type: string
                  required:
                    - name
                    - value
              receiveAddress:
                $ref: '#/components/schemas/WalletAddress'
            required:
              - allowBackupKeySigning
              - approvalsRequired
              - coin
              - coinSpecific
              - deleted
              - disableTransactionNotifications
              - hasLargeNumberOfAddresses
              - id
              - isCold
              - label
              - startDate
        nextBatchPrevId:
          type: string
          description: >-
            When a result set is truncated, this field returns the id of the
            last object in the

            previous batch. To get the next batch of results, pass this value
            via the "prevId"

            query parameter.
          example: 585951a5df8380e0e3063e9f
          format: uuid
        totalCount:
          type: number
      required:
        - wallets
    WalletMPCv2MigrationStatus:
      title: WalletMPCv2MigrationStatus
      type: object
      properties:
        canMigrateToMPCv2:
          type: boolean
        disabledReason:
          type: string
      required:
        - canMigrateToMPCv2
    WalletMaximumSpendable:
      type: object
      properties:
        coin:
          $ref: '#/components/schemas/Coin'
        maximumSpendable:
          type: string
          example: '19948310'
    WalletMultipleIdsFilteringCondition:
      title: Wallet Multiple IDs
      type: object
      description: Filter by multiple wallet IDs.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - wallet.multiple.ids
          example: wallet.multiple.ids
        parameters:
          type: object
          description: Required data needed to evaluate the Filtering Condition.
          required:
            - walletId
          properties:
            walletId:
              type: array
              items:
                type: string
                description: The Wallet Ids this Filtering Condition will match.
    WalletMultisigType:
      type: string
      enum:
        - onchain
        - tss
    WalletPermission:
      type: string
      description: |
        Comma-separated list of privileges for a wallet. Includes:

              - `admin` - Can manage wallet policies and users and approve or reject pending approvals.
              - `freeze` - Can freeze a wallet, disabling all withdrawals.
              - `spend` - Can initiate withdrawals and generate new receive addresses.
              - `trade` - Can initiate trades from a Go Account (`trading` wallet type).
              - `view` - Can view balances and transactions.

        Permissions don't overlap. Required parameter if 'reshare' is false.
      enum:
        - admin
        - spend
        - trade
        - view
      example: spend,view
    WalletPermissionAttributes:
      type: object
      properties:
        useValidatorList:
          type: boolean
        allowPartialUnstake:
          type: boolean
        validatorNotNeededForStake:
          type: boolean
    WalletPermissionAttributes1:
      type: object
      description: Permission attributes specific to the wallet.
      properties:
        hasEnoughAdmins:
          description: True, if the wallet has enough admins to create a staking request.
          type: boolean
        numberOfRequiredAdmins:
          description: The number of admins required to create a hot staking request.
          type: integer
        useValidatorList:
          description: >-
            Boolean flag to control whether to show dropdown list of validators
            or not.
          type: boolean
        skipAddressValidation:
          description: >-
            Boolean flag to control whether to perform validator address
            validation or not.
          type: boolean
        showValidatorAddress:
          description: >-
            Boolean flag to control whether to display the validator address in
            the UI even when skipAddressValidation is true.
          type: boolean
        allowPartialUnstake:
          description: True if the wallet allows partial unstaking.
          type: boolean
        validatorNotNeededForStake:
          description: True if a validator is not required when staking.
          type: boolean
        validatorCoin:
          description: Optional coin used for validator-specific staking.
          type: string
          nullable: true
    WalletRecoveryIntent:
      title: Wallet Recovery Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - walletRecovery
          required:
            - intentType
        - $ref: '#/components/schemas/BaseIntent'
    WalletRecoveryIntent1:
      title: Wallet Recovery
      type: object
      properties:
        intentType:
          type: string
        sequenceId:
          type: string
          description: >
            A `sequenceId` is a unique and arbitrary wallet identifier applied
            to transfers and transactions at creation. It is optional but highly
            recommended. With a `sequenceId` you can easily reference transfers
            and transactions&mdash;for example, to safely retry sending. Because
            BitGo only confirms one send request per `sequenceId` (and fails all
            subsequent attempts), you can retry sending without the risk of
            double spending. The `sequenceId` is only visible to users on the
            wallet and is not shared publicly. It is the responsibility of the
            caller to keep track of this ID.
          example: abc123
        comment:
          type: string
          description: >-
            The `comment` is only visible to users on the wallet and is not
            shared publicly.
      required:
        - intentType
    WalletShare:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        coin:
          $ref: '#/components/schemas/Coin'
        wallet:
          $ref: '#/components/schemas/Id'
        walletLabel:
          $ref: '#/components/schemas/WalletLabel'
        fromUser:
          $ref: '#/components/schemas/Id'
        toUser:
          $ref: '#/components/schemas/Coin'
        permission:
          type: string
          description: |
            Comma-separated list of privileges for a wallet. Includes:

              - `admin` - Can manage wallet policies and users and approve or reject pending approvals.
              - `freeze` - Can freeze a wallet, disabling all withdrawals.
              - `spend` - Can initiate withdrawals and generate new receive addresses.
              - `trade` - Can initiate trades from a Go Account (`trading` wallet type).
              - `view` - Can view balances and transactions.

            Permissions don't overlap. Required parameter if 'reshare' is false.
          enum:
            - admin
            - spend
            - trade
            - view
          example: spend,view
        message:
          type: string
          description: User readable message to display to the share recipient
        state:
          $ref: '#/components/schemas/PlatformWalletShareState'
        enterprise:
          $ref: '#/components/schemas/Id'
        pendingApprovalId:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Only set if this wallet share is currently pending approval
        keychain:
          description: Only set if this wallet share has an associated keychain
          type: object
          properties:
            pub:
              description: Sharing user's root public key
              type: string
            encryptedPrv:
              description: >-
                Sharing user's private key encrypted under their wallet
                passphrase
              type: string
            fromPubKey:
              description: >-
                Sharing user's derived public key which will be used to
                calculate the wallet sharing secret.
              type: string
            toPubKey:
              description: >-
                Shared-to user's derived public key which will be used to
                calculate the wallet sharing secret.
              type: string
            path:
              description: >-
                BIP32 HD path of the derived public keys (fromPubKey and
                toPubKey)
              example: m/1234/1/1
              type: string
      required:
        - id
        - coin
        - wallet
        - walletLabel
        - fromUser
        - toUser
        - permissions
        - message
        - state
        - enterprise
    WalletShare1:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        coin:
          $ref: '#/components/schemas/Coin'
        wallet:
          $ref: '#/components/schemas/Id'
        walletLabel:
          $ref: '#/components/schemas/WalletLabel'
        fromUser:
          $ref: '#/components/schemas/Id'
        toUser:
          $ref: '#/components/schemas/Coin'
        permission:
          type: string
          description: |
            Comma-separated list of privileges for a wallet. Includes:

              - `admin` - Can manage wallet policies and users and approve or reject pending approvals.
              - `freeze` - Can freeze a wallet, disabling all withdrawals.
              - `spend` - Can initiate withdrawals and generate new receive addresses.
              - `trade` - Can initiate trades from a Go Account (`trading` wallet type).
              - `view` - Can view balances and transactions.

            Permissions don't overlap. Required parameter if 'reshare' is false.
          enum:
            - admin
            - spend
            - trade
            - view
          example: spend,view
        message:
          type: string
          description: User readable message to display to the share recipient
        state:
          $ref: '#/components/schemas/WalletShareState1'
        enterprise:
          $ref: '#/components/schemas/Id'
        pendingApprovalId:
          allOf:
            - $ref: '#/components/schemas/Id'
          description: Only set if this wallet share is currently pending approval
        keychain:
          description: Only set if this wallet share has an associated keychain
          type: object
          properties:
            pub:
              description: Sharing user's root public key
              type: string
            encryptedPrv:
              description: >-
                Sharing user's private key encrypted under their wallet
                passphrase
              type: string
            fromPubKey:
              description: >-
                Sharing user's derived public key which will be used to
                calculate the wallet sharing secret.
              type: string
            toPubKey:
              description: >-
                Shared-to user's derived public key which will be used to
                calculate the wallet sharing secret.
              type: string
            path:
              description: >-
                BIP32 HD path of the derived public keys (fromPubKey and
                toPubKey)
              example: m/1234/1/1
              type: string
      required:
        - id
        - coin
        - wallet
        - walletLabel
        - fromUser
        - toUser
        - permissions
        - message
        - state
        - enterprise
    WalletShareKeychain:
      type: object
      description: >-
        Key passed to the receiving user, included if the wallet was shared with
        spend permission
      properties:
        pub:
          description: One of wallet pub (onchain) or commonKeychain (MPC)
          type: string
        encryptedPrv:
          description: >-
            Private key of the user sharing the wallet encrypted under their
            wallet passphrase
          type: string
        fromPubKey:
          description: Derived public key of the user sharing the wallet
          type: string
        toPubKey:
          description: Derived public key of the user receiving the share
          type: string
        path:
          description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey)
          example: m/1234/1/1
          type: string
    WalletShareState:
      title: WalletShareState
      type: string
      enum:
        - pendingapproval
        - active
        - accepted
        - canceled
        - rejected
      description: The state of wallet share object
      example: active
    WalletShareState1:
      type: string
      example: active
      enum:
        - pendingapproval
        - active
        - accepted
        - canceled
        - rejected
    WalletSharesCountSchema:
      title: WalletSharesCountSchema
      type: object
      additionalProperties:
        type: object
        properties:
          walletSharesCount:
            type: number
        required:
          - walletSharesCount
    WalletStakingDisclaimerAttributes:
      type: object
      description: Spendable disclaimer attributes for a staking wallet.
      properties:
        staking:
          $ref: '#/components/schemas/StakingDisclaimerAttributes'
        unstaking:
          $ref: '#/components/schemas/UnstakingDisclaimerAttributes'
        claimRewards:
          $ref: '#/components/schemas/ClaimRewardsDisclaimerAttributes'
        nextRewards:
          $ref: '#/components/schemas/NextRewardsDisclaimerAttributes'
        switchValidator:
          $ref: '#/components/schemas/SwitchValidatorDisclaimerAttributes'
    WalletStakingPermissionAttributes:
      description: Permission attributes for the staking wallet.
      type: object
      properties:
        staking:
          $ref: '#/components/schemas/StakingPermissionAttributes1'
        unstaking:
          $ref: '#/components/schemas/UnstakingPermissionAttributes1'
        claimRewards:
          $ref: '#/components/schemas/ClaimRewardsPermissionAttributes'
        switchValidator:
          $ref: '#/components/schemas/SwitchValidatorPermissionAttributes'
        wallet:
          $ref: '#/components/schemas/WalletPermissionAttributes1'
    WalletStakingSpendableAttributes:
      title: SpendableAttributes
      description: Spendable attributes available for a wallet’s staking operations.
      type: object
      properties:
        staking:
          $ref: '#/components/schemas/StakingSpendableAttributes1'
        unstaking:
          $ref: '#/components/schemas/UnStakingSpendableAttributes1'
        claimRewards:
          $ref: '#/components/schemas/ClaimRewardsSpendableAttributes'
        switchValidator:
          $ref: '#/components/schemas/SwitchValidatorSpendableAttributes'
    WalletStakingStateAttributes:
      type: object
      properties:
        spendableAttributes:
          $ref: '#/components/schemas/WalletStakingSpendableAttributes'
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        disclaimerAttributes:
          $ref: '#/components/schemas/WalletStakingDisclaimerAttributes'
    WalletSubType:
      title: WalletSubType
      type: string
      enum:
        - distributedCustody
        - pairedCustodial
        - custodialHot
        - custodialCold
        - lightningCustody
        - lightningSelfCustody
        - onPrem
    WalletSubdocument:
      title: WalletSubdocument
      oneOf:
        - $ref: '#/components/schemas/AdaWallet'
        - $ref: '#/components/schemas/AlgorandWallet'
        - $ref: '#/components/schemas/AtomWallet'
        - $ref: '#/components/schemas/AvaxPWallet'
        - $ref: '#/components/schemas/UtxoWallet'
        - $ref: '#/components/schemas/CasperWallet'
        - $ref: '#/components/schemas/DotWallet'
        - $ref: '#/components/schemas/EosWallet'
        - $ref: '#/components/schemas/EthereumWallet'
        - $ref: '#/components/schemas/Ethereum2Wallet'
        - $ref: '#/components/schemas/FiatWallet'
        - $ref: '#/components/schemas/HederaWallet'
        - $ref: '#/components/schemas/NearWallet'
        - $ref: '#/components/schemas/Offchain'
        - $ref: '#/components/schemas/StacksWallet'
        - $ref: '#/components/schemas/TestcoinWallet'
        - $ref: '#/components/schemas/TonWallet'
        - $ref: '#/components/schemas/TronWallet'
        - $ref: '#/components/schemas/StellarWallet'
        - $ref: '#/components/schemas/XRPWallet'
        - $ref: '#/components/schemas/TezosWallet'
        - $ref: '#/components/schemas/SolWallet'
        - $ref: '#/components/schemas/LightningCoinWallet'
    WalletType:
      title: WalletType
      type: string
      enum:
        - backing
        - cold
        - custodial
        - custodialPaired
        - hot
        - advanced
        - trading
    WalletTypeCondition:
      title: Wallet type
      type: object
      description: Wallet-type condition for the all-wallets scope.
      required:
        - name
        - label
        - description
        - status
        - parameters
      properties:
        name:
          type: string
          description: The name of the condition.
          enum:
            - wallet.type
          example: wallet.type
        label:
          type: string
          description: A label for the condition which can be shown to an end user.
          example: Wallet Type
        description:
          type: string
          description: A description for the condition which can be shown to an end user.
          example: Allows creating a condition based on the Wallet Type
        status:
          type: string
          description: >
            Status of the condition. Indicates if the condition is usable
            `ACTIVE` or not `INACTIVE`.


            * `ACTIVE` - The condition is available for use.

            * `INACTIVE` - The condition is NOT available for use.
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        parameters:
          type: array
          description: A list of Parameters to control how the condition behaves.
          items:
            allOf:
              - $ref: '#/components/schemas/WalletTypeParameter'
    WalletTypeFilteringCondition:
      title: Wallet type
      type: object
      description: Filter by wallet type.
      required:
        - name
        - parameters
      properties:
        name:
          type: string
          description: Name of the condition.
          enum:
            - wallet.type
          example: wallet.type
        parameters:
          type: object
          description: Required data needed to evaluate the Filtering Condition.
          required:
            - walletType
          properties:
            walletType:
              type: array
              items:
                type: string
                enum:
                  - hot
                  - custodial
                  - trading
    WalletTypeParameter:
      type: object
      description: >-
        The Wallet Type parameter determines on what type of Wallet this
        condition will trigger.
      required:
        - name
        - label
        - description
        - type
        - required
        - allowMultiple
        - values
      properties:
        name:
          type: string
          description: The name of the condition parameter.
          enum:
            - walletType
          example: walletType
        label:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: Type
        description:
          type: string
          description: >-
            A description for the condition parameter which can be shown to an
            end user.
          example: The Wallet Type
        type:
          type: string
          description: This Conditions parameter has a set of defined values.
          enum:
            - ENUMERATED
        required:
          type: string
          description: This Conditions parameter must always be provided.
          enum:
            - ALWAYS
        allowMultiple:
          type: boolean
          description: >-
            true, if multiple values can be provided, i.e. as a list of values.
            When false only one value can be provided, i.e. a list with more
            than one element will be rejected.
          example: 'true'
        values:
          type: array
          description: A list of valid values, only values from this list will be accepted.
          items:
            anyOf:
              - $ref: '#/components/schemas/CustodialValue'
              - $ref: '#/components/schemas/HotValue'
              - $ref: '#/components/schemas/ColdValue'
              - $ref: '#/components/schemas/TradingValue'
              - $ref: '#/components/schemas/CustodialPairedValue'
              - $ref: '#/components/schemas/BackingValue'
    WalletTypePublic:
      type: string
      description: >-
        The type describes who owns the keys to the wallet and how they are
        stored. `cold` wallets are wallets where the private key of the user key
        is stored exclusively outside of BitGo's system. `custodial` means that
        this wallet is a cold wallet where BitGo owns the keys. Only customers
        of the BitGo Trust can create this kind of wallet. `custodialPaired`
        means that this is a hot wallet that is owned by the customer but it
        will be linked to a cold (custodial) wallet where BitGo owns the keys.
        This option is only available to customers of BitGo Inc. BitGo stores an
        encrypted private key for the user key of `hot` wallets. `trading`
        wallets are trading accounts where the coin is `ofc`.
        `distributedCustody` means You manage one key and another key agent
        manages the second key. BitGo manages the third key
      enum:
        - cold
        - custodial
        - custodialPaired
        - hot
        - trading
        - distributedCustody
        - advanced
    WalletUnspentsResponse:
      title: WalletUnspentsResponse
      type: object
      properties:
        unspents:
          type: array
          items:
            type: object
            properties:
              chain:
                type: number
                description: The chain of the UTXO
              index:
                type: number
                description: The index of the UTXO
              redeemScript:
                type: string
                description: The redeem script of the UTXO
              witnessScript:
                type: string
                description: The witness script of the UTXO
              id:
                type: string
                description: The ID of the UTXO
              address:
                type: string
                description: The address of the UTXO
              value:
                type: number
                description: The value of the UTXO
              blockHeight:
                type: number
                description: The block this Unspent was created in
              coinbase:
                type: boolean
                description: True if this unspent came from the coinbase transaction
        nextBatchPrevId:
          type: string
          description: The ID from where the results can continue
        coin:
          $ref: '#/components/schemas/CoinString'
        bumpFee:
          type: string
          description: fee bump
          format: number
      required:
        - unspents
    WalletUpdateCoinSpecific:
      type: object
      properties:
        btc:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificBtc'
        tbtc:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificBtc'
        tbtc4:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificBtc'
        eth:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificEth'
        teth:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificEth'
        zec:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificZec'
        tzec:
          $ref: '#/components/schemas/WalletUpdateCoinSpecificZec'
    WalletUpdateCoinSpecificBtc:
      type: object
      properties:
        allowQuantumUnsafeAddresses:
          type: boolean
          description: >-
            If true, the wallet will allow creation of taproot addresses which
            are vulnerable to quantum computing attacks.
    WalletUpdateCoinSpecificEth:
      type: object
      properties:
        deployForwardersManually:
          type: boolean
        flushForwardersManually:
          type: boolean
    WalletUpdateCoinSpecificZec:
      type: object
      properties:
        freezeDepositsFromShielded:
          type: boolean
          description: >-
            If true, deposits from orchard or sapling shielded pools will be
            automatically frozen.
    WalletUser:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/Id'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/WalletPermission'
      example:
        user: 55e8a1a5df8380e0e30e20c6
        permissions:
          - admin
          - view
          - spend
    WalletUser1:
      type: object
      properties:
        user:
          type: string
          description: The ID of the user.
        permissions:
          type: array
          description: The list of permissions assigned to the user.
          items:
            type: string
      required:
        - user
    WalletValue:
      title: Wallet
      type: object
      description: Applies to a specific wallet.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - wallet
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Wallet
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: Only spending from the transferring wallet will be included
    WalletWebhookResponse:
      title: WalletWebhookResponse
      type: object
      description: Webhook response scoped to wallet webhook types — `coin` is required.
      properties:
        id:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        created:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        coin:
          type: string
          description: A cryptocurrency or token ticker symbol.
          example: btc
        url:
          type: string
          example: https://your.server.com/webhook
          format: uri
        version:
          type: number
          description: 2 for coins running on API v2.
          example: 2
        scope:
          $ref: '#/components/schemas/WebhookScope'
        state:
          $ref: '#/components/schemas/WebhookState'
        successiveFailedAttempts:
          type: number
          example: 0
        listenToFailureStates:
          type: boolean
          description: Whether or not to listen to failed transactions on chain.
        label:
          type: string
          description: Label of the new webhook.
        walletId:
          type: string
        enterpriseId:
          type: string
        organizationId:
          type: string
          example: 59cd72485007a239fb00282ed480da1f
          pattern: ^[0-9a-f]{32}$
        userId:
          type: string
        type:
          allOf:
            - $ref: '#/components/schemas/WalletWebhookType'
          description: Event type to listen to.
        numConfirmations:
          type: number
          example: 6
        lastAttempt:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        failingSince:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          format: date-time
          title: ISO Date String
        allToken:
          type: boolean
        txRequestStates:
          type: array
          items:
            type: string
            enum:
              - pendingApproval
              - canceled
              - rejected
              - initialized
              - pendingDelivery
              - delivered
              - pendingUserSignature
              - pendingUserCommitment
              - pendingUserRShare
              - pendingUserGShare
              - readyToSend
              - signed
              - failed
            description: >-
              If present, only transaction request state changes from the list
              will trigger notifications.

              If not present, all transaction request state changes will trigger
              notifications.
        txRequestTransactionStates:
          type: array
          items:
            type: string
            enum:
              - initialized
              - pendingSignature
              - eddsaPendingCommitment
              - eddsaPendingRShare
              - eddsaPendingGShare
              - ecdsaMPCv2Round1
              - ecdsaMPCv2Round2
              - ecdsaMPCv2Round3
              - eddsaMPCv2Round1
              - eddsaMPCv2Round2
              - eddsaMPCv2Round3
              - readyToCombineShares
              - signed
              - held
              - delivered
              - invalidSignature
              - rejected
            description: >-
              If present, only transaction request transaction state changes
              from the list will trigger

              notifications. If not present, all transaction request transaction
              state changes will

              trigger notifications.
      required:
        - id
        - created
        - coin
        - url
        - version
        - scope
        - state
        - successiveFailedAttempts
        - listenToFailureStates
    WalletWebhookType:
      title: WalletWebhookType
      type: string
      enum:
        - txRequest
        - txRequestTransaction
        - transfer
        - transaction
        - transactionRemoved
        - transactionExpire
        - pendingapproval
        - block
        - admin
        - address_confirmation
        - lowFee
        - circuitBreaker
        - lowFeeAddressBalance
        - transaction_finality_on_l1
        - stuckTx
        - unspentExpiry
        - twoStepTransfer
        - twoStepDeposit
        - twoStepWithdrawal
    WalletsResponse:
      type: object
      properties:
        wallets:
          type: array
          items:
            $ref: '#/components/schemas/Wallet1'
        nextBatchPrevId:
          $ref: '#/components/schemas/NextBatchPrevId'
        totalCount:
          type: integer
      required:
        - wallets
    WalletsWithCoinResponse:
      allOf:
        - $ref: '#/components/schemas/WalletsResponse'
        - type: object
          properties:
            coin:
              $ref: '#/components/schemas/Coin'
          required:
            - coin
    WalrusStakingIntent:
      title: Walrus Stake Intent
      allOf:
        - type: object
          properties:
            sharedStakingObjectId:
              type: string
          required:
            - sharedStakingObjectId
        - $ref: '#/components/schemas/SuiStakingIntent'
    WalrusUndelegateIntent:
      title: Walrus Undelegate Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            stakedSuiObjectId:
              type: string
            sharedStakingObjectId:
              type: string
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - intentType
            - stakedSuiObjectId
            - sharedStakingObjectId
        - $ref: '#/components/schemas/BaseStakeIntent'
    WalrusWithdrawIntent:
      title: Walrus Withdraw Intent
      allOf:
        - type: object
          properties:
            sharedStakingObjectId:
              type: string
          required:
            - sharedStakingObjectId
        - $ref: '#/components/schemas/SuiUnstakingIntent'
    WctClaimRewardsRequestEntityProperties:
      title: WCT claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
    WctClaimRewardsTransactionProperties:
      title: WCT Claim Rewards Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            onChainWalletAddress:
              type: string
    WctDelegationProperties:
      title: WCT Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            unlockTime:
              type: string
              format: bigInteger
              nullable: true
            activeRewards:
              type: string
              format: bigInteger
    WctStakingDelegation:
      title: WCT Staking Delegation
      allOf:
        - $ref: '#/components/schemas/StakingDelegation'
      type: object
      properties:
        properties:
          $ref: '#/components/schemas/WctDelegationProperties'
        claimable:
          type: boolean
        pendingClaimRewards:
          type: string
          format: bigInteger
        claimableRewards:
          type: string
          format: bigInteger
        switchable:
          type: boolean
        maxSwitch:
          type: string
          format: bigInteger
        minSwitch:
          type: string
          format: bigInteger
        permissionAttributes:
          $ref: '#/components/schemas/WalletStakingPermissionAttributes'
        rewardPairs:
          type: array
          items:
            $ref: '#/components/schemas/RewardPairs'
        rewardCoin:
          $ref: '#/components/schemas/Coin2'
        endTime:
          type: string
          format: bigInteger
    WctStakingRequest:
      title: WCT
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/WctStakingDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: The staking type.
          type: string
          enum:
            - WCT_STAKE
    WctStakingRequestEntityProperties:
      title: WCT staking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
      properties:
        duration:
          type: string
          nullable: true
        durationSeconds:
          type: string
        stakingType:
          type: string
          enum:
            - WCT_STAKE
            - INCREASE_UNLOCK
      required:
        - durationSeconds
        - stakingType
    WctStakingRequestPOSTBody:
      title: WCT stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        subType:
          description: The staking type.
          type: string
          enum:
            - WCT_STAKE
          default: WCT_STAKE
    WctStakingTransactionProperties:
      title: WCT Staking Transaction Properties
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
            isNewStake:
              type: boolean
            unlockTime:
              type: string
    WctStakingWalletEntityProperties:
      title: WCT Staking Wallet Properties
      type: object
      properties:
        type:
          type: string
          enum:
            - WCT
        currentStakingDuration:
          type: string
          format: bigInteger
          nullable: true
        walletMultisigType:
          type: string
          enum:
            - TSS
      required:
        - type
        - walletMultisigType
    WctUnStakingRequestPOSTBody:
      title: WCT unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    WctUnstakingRequestEntityProperties:
      title: WCT unstaking request entity properties
      allOf:
        - $ref: '#/components/schemas/EthCommonStakingRequestEntityProperties'
    Webhook1:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        label:
          type: string
          example: Test Webhook
        created:
          $ref: '#/components/schemas/DateTime'
        coin:
          $ref: '#/components/schemas/Coin'
        type:
          $ref: '#/components/schemas/WebhookTypeWallet'
        url:
          type: string
          format: uri
          example: https://your.server.com/webhook
        version:
          type: integer
          example: 2
          description: 2 for coins running on API v2.
        numConfirmations:
          type: integer
          example: 6
        state:
          type: string
          description: >-
            If `active`, indicates the webhook can trigger and send to the URL.
            If `suspended`, indicates the webhook can't trigger.
          enum:
            - active
            - suspended
          example: active
        lastAttempt:
          $ref: '#/components/schemas/DateTime'
        failingSince:
          $ref: '#/components/schemas/DateTime'
        successiveFailedAttempts:
          type: integer
          example: 0
        walletId:
          type: string
        allowBlockedHosts:
          type: boolean
        allToken:
          type: boolean
        txRequestStates:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRequestState1'
          description: >-
            If present, only transaction request state changes from the list
            will trigger notifications. If not present, all transaction request
            state changes will trigger notifications.
        txRequestTransactionStates:
          type: array
          items:
            $ref: '#/components/schemas/TransactionState1'
          description: >-
            If present, only transaction request transaction state changes from
            the list will trigger notifications. If not present, all transaction
            request transaction state changes will trigger notifications.
        identityStatus:
          type: array
          items:
            $ref: '#/components/schemas/IdentityStatus'
          description: >-
            If present, only identity status changes from the list will trigger
            notifications. If not present, all identity status changes will
            trigger notifications.
        userKycState:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedKycState'
          description: >-
            If present, only user kyc state changes from the list will trigger
            notifications. If not present, all kyc state changes will trigger
            notifications.
        enterpriseKycState:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedKycState'
          description: >-
            If present, only enterprise kyc state changes from the list will
            trigger notifications. If not present, all kyc state changes will
            trigger notifications.      
      required:
        - url
    WebhookKeyInfo:
      type: object
      description: Metadata about a registered webhook signing key.
      required:
        - id
        - keyId
        - keyName
        - status
        - createdDate
        - createdBy
      properties:
        id:
          type: string
          format: uuid
          description: Internal UUID of the key.
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
        keyId:
          type: string
          description: Customer-provided key identifier.
          example: customer-prod-key-2026
        keyName:
          type: string
          description: Human-readable name for the key.
          example: Production Webhook Key
        algorithm:
          type: string
          nullable: true
          description: >-
            The signing algorithm (EdDSA or ECDSA). Null for JWKS URI
            registrations.
          enum:
            - EdDSA
            - ECDSA
          example: EdDSA
        status:
          type: string
          description: Current status of the key.
          enum:
            - ACTIVE
            - REVOKED
          example: ACTIVE
        createdDate:
          type: string
          format: date-time
          description: When the key was registered.
          example: '2026-01-12T10:30:00.000Z'
        createdBy:
          type: string
          description: User who registered the key.
          example: user@example.com
    WebhookNotification:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        type:
          $ref: '#/components/schemas/WebhookTypeWallet'
        wallet:
          $ref: '#/components/schemas/Id'
        enterprise:
          $ref: '#/components/schemas/Id'
        organization:
          $ref: '#/components/schemas/Id'
        bankAccount:
          $ref: '#/components/schemas/Id'
        url:
          type: string
          format: uri
          example: https://your.server.com/webhook
        hash:
          type: string
          example: 1311768467294899700
          description: >-
            A transaction hash for transactions, or a block hash for block
            notifications.
        coin:
          $ref: '#/components/schemas/Coin'
        transfer:
          $ref: '#/components/schemas/Id'
        state:
          type: string
          description: >-
            If `failed`, webhook notification failed to connect with the target
            URL. If `new`, webhook notification was newly generated, in response
            to an event. If `pending`, webhook notification is awaiting
            processing by the webhook worker. If `processed`, webhook
            notification successfully sent to target URL. If `unconfirmed`,
            webhook notification is awaiting confirmation on the blockchain.
          enum:
            - failed
            - new
            - pending
            - processed
            - unconfirmed
          example: new
        simulation:
          type: boolean
          example: false
        retries:
          type: integer
          example: 0
          description: >-
            The number of retries that have been attempted for this webhook
            notification.
        webhook:
          $ref: '#/components/schemas/Id'
        updateAt:
          $ref: '#/components/schemas/DateTime'
        nextAttempt:
          $ref: '#/components/schemas/DateTime'
        version:
          type: integer
          example: 2
        idempotencyKey:
          type: string
          description: A unique id that can be used to de-duplicate notifications.
    WebhookNotificationDTO:
      required:
        - createdAt
        - id
        - notificationRequestId
        - payload
        - retries
        - status
        - type
        - updatedAt
        - url
      type: object
      properties:
        id:
          type: string
          format: uuid
        notificationRequestId:
          type: string
        url:
          type: string
        payload:
          type: string
        type:
          type: string
        status:
          type: string
        retries:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        response:
          type: object
          additionalProperties:
            type: object
        coin:
          type: string
        walletId:
          type: string
        enterpriseId:
          type: string
        organizationId:
          type: string
        transferId:
          type: string
        hash:
          type: string
    WebhookNotificationState:
      title: WebhookNotificationState
      type: string
      enum:
        - unconfirmed
        - new
        - pending
        - processed
        - failed
    WebhookRuleCondition:
      title: WebhookRuleCondition
      type: object
      properties:
        url:
          type: string
          description: The url to query for the webhook
      required:
        - url
    WebhookScope:
      title: WebhookScope
      type: string
      enum:
        - wallet
        - enterprise
        - organization
    WebhookState:
      title: WebhookState
      type: string
      enum:
        - active
        - suspended
      description: |-
        If 'active', indicates the webhook can trigger and send to the URL.
        If 'suspended', indicates the webhook can't trigger.
      example: active
    WebhookType:
      title: WebhookType
      type: string
      enum:
        - txRequest
        - txRequestTransaction
        - transfer
        - transaction
        - transactionRemoved
        - transactionExpire
        - pendingapproval
        - block
        - admin
        - address_confirmation
        - lowFee
        - circuitBreaker
        - lowFeeAddressBalance
        - wallet_confirmation
        - bankAccount
        - userKycState
        - enterpriseKycState
        - identityStatus
        - idvStatus
        - accessToken
        - accountCreated
        - contractSigned
        - kycResult
        - policyBalanceChange
        - reversal
        - transaction_finality_on_l1
        - stuckTx
        - tradeOrder
        - unspentExpiry
        - twoStepTransfer
        - twoStepDeposit
        - twoStepWithdrawal
    WebhookTypeBlock:
      type: string
      enum:
        - block
        - wallet_confirmation
      example: block
    WebhookTypeWallet:
      type: string
      enum:
        - txRequest
        - txRequestTransaction
        - transfer
        - transaction
        - transactionRemoved
        - transactionExpire
        - unspentExpiry
        - pendingapproval
        - address_confirmation
        - lowFee
        - block
        - admin
        - circuitBreaker
        - transaction_finality_on_l1
        - lowFeeAddressBalance
        - stuckTx
      example: transfer
      description: Event type to listen to.
    WethStakingRequest:
      title: WETH
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. GasPrice is in base units.
        delegations:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units (i.e. Wei for WETH)
          type: string
    WethStakingRequestPOSTBody:
      title: WETH stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestWithGasPOSTBody'
      type: object
    WethUnStakingRequestPOSTBody:
      title: WETH unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithGasPrice'
      type: object
    WflrClaimRewardsRequestEntityProperties:
      title: WFLR claim rewards request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
    WflrClaimRewardsRequestPOSTBody:
      title: Wrapped FLR (WFLR) Claim Rewards Request
      type: object
      description: >-
        Request to claim rewards from FTSO provider delegations for Wrapped FLR
        (WFLR) tokens.The gas fee for claiming rewards will be paid in native
        FLR tokens.
      required:
        - type
        - delegationId
      properties:
        clientId:
          type: string
          description: Optional client defined identifier.
        type:
          type: string
          enum:
            - CLAIM_REWARDS
          description: Type of request.
        delegationId:
          type: string
          description: Identifier of the delegation.
        gasPrice:
          type: string
          description: Optional gas price override.
    WflrDelegationProperties:
      title: WFLR Delegation Properties
      allOf:
        - $ref: '#/components/schemas/DelegationProperties'
        - type: object
          properties:
            validator:
              type: string
            basisPoints:
              type: string
              format: bigInteger
            activeRewards:
              type: string
              format: bigInteger
    WflrStakingRequest:
      title: WFLR
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/StakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
        subType:
          description: The staking type.
          type: string
          enum:
            - WFLR_STAKE
    WflrStakingRequestEntityProperties:
      title: WFLR staking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
        - type: object
          properties:
            validator:
              type: string
              description: Validator address.
            basisPoints:
              type: string
              description: Basis points for delegation.
          required:
            - validator
            - basisPoints
    WflrStakingRequestPOSTBody:
      title: WFLR stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
      properties:
        amount:
          description: >-
            Amount to stake in base units. WFLR is a wrapped token of FLR with a
            1:1 ratio.
          type: string
          example: '1000000000000000000'
        validator:
          description: The FTSO provider address for delegation.
          type: string
        subType:
          description: The staking type for Wrapped FLR tokens.
          type: string
          enum:
            - WFLR_STAKE
          default: WFLR_STAKE
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. While WFLR tokens are delegated, gas fees are paid
            in native FLR tokens.
      required:
        - amount
    WflrUnStakingRequestPOSTBody:
      title: WFLR unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBody'
      type: object
      properties:
        amount:
          description: >-
            Amount to unstake in base units. WFLR is a wrapped token of FLR with
            a 1:1 ratio.
          type: string
          example: '1000000000000000000'
        gasPrice:
          type: string
          description: >-
            User overridden gas price to apply for the generated transactions
            for this request. While unstaking WFLR tokens, gas fees are paid in
            native FLR tokens.
    WflrUnstakingRequestEntityProperties:
      title: WFLR unstaking request entity properties
      allOf:
        - $ref: '#/components/schemas/StakingRequestEntityProperties'
    WhitelistedAddressValue:
      title: Whitelisted
      type: object
      description: The destination is whitelisted.
      required:
        - value
        - label
        - description
      properties:
        value:
          type: string
          enum:
            - whitelistedAddress
          description: The actual value.
        label:
          type: string
          description: >-
            A label for the condition parameter Value which can be shown to an
            end user.
          example: Whitelisted address
        description:
          type: string
          description: >-
            A description for the condition parameter Value which can be shown
            to an end user.
          example: The destination is whitelisted
    WireWithdrawalCoinSpecific:
      title: WireWithdrawalCoinSpecific
      type: object
      properties:
        transactionType:
          type: string
          description: Type of transaction
          example: WITHDRAWAL
        settlementFeeString:
          type: string
          description: Settlement fee amount
          example: '0'
        referenceType:
          type: string
          description: Reference type for the transaction
          example: withdraw
        referenceValue:
          type: string
          description: Reference value for the transaction
          example: '146697'
        originalDestination:
          type: string
          description: Original destination identifier
          example: ab4efe649c63aa30
        fees:
          type: array
          items:
            type: object
            properties:
              amount:
                type: string
                description: Amount of the fee
                example: '-100'
              category:
                type: string
                description: Category of the fee
                example: bank
            description: Array of associated fees
    WireWithdrawalConfirmationAction:
      title: WireWithdrawalConfirmationAction
      type: string
      enum:
        - approve
        - reject
    WireWithdrawalsPaginatedResponse:
      title: WireWithdrawalsPaginatedResponse
      type: object
      properties:
        transfers:
          type: array
          items:
            type: object
            properties:
              entries:
                type: array
                items:
                  type: object
                  properties:
                    address:
                      type: string
                      description: The address associated with this transfer entry
                      example: 6680ad9d5650cdf891898f13b8016ef2
                    wallet:
                      type: string
                      description: The wallet identifier associated with this entry
                      example: 6680ad9d5650cdf891898f13b8016ef2
                    valueString:
                      type: string
                      description: The transfer amount represented
                      example: '-1000'
                    isPayGo:
                      type: boolean
                      description: Indicates if this is a PayGo transaction
                      example: false
                    backingFeeString:
                      type: string
                      description: The backing fee amount
                      example: '-100'
                    token:
                      type: string
                      description: The token identifier used in the transfer
                      example: ofcusd
                  required:
                    - address
                  description: List of transfer entries containing transaction details
              id:
                type: string
                description: Unique identifier for the transfer
                example: 67abcb899639d543ee979ed327dd5f5d
              coin:
                allOf:
                  - $ref: '#/components/schemas/CoinString'
                description: Coin type for the transfer
                example: ofcusd
              wallet:
                type: string
                description: Wallet identifier
                example: 6680ad9d5650cdf891898f13b8016ef2
              walletType:
                type: string
                enum:
                  - backing
                  - cold
                  - custodial
                  - custodialPaired
                  - hot
                  - advanced
                  - trading
                description: Type of wallet
                example: trading
              enterprise:
                type: string
                description: Enterprise identifier
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              organization:
                type: string
                description: Organization identifier
                example: 59cd72485007a239fb00282ed480da1f
                pattern: ^[0-9a-f]{32}$
              txid:
                type: string
                description: Transaction ID
                example: >-
                  266b937f2e92e5bbb6973f1317b286a7240157ffbc2743f220ab16336391d1ad
              txidType:
                type: string
                description: Type of transaction ID
                example: transactionHash
              height:
                type: number
                description: Block height
                example: 0
              heightId:
                type: string
                description: Combined height and transfer ID
                example: 000000000-67abcb899639d543ee979ed327dd5f5d
              date:
                type: string
                description: Timestamp of the transfer
                example: '2025-02-13T21:18:07.220Z'
                format: date-time
                title: ISO Date String
              type:
                allOf:
                  - $ref: '#/components/schemas/TransferType2'
                description: Type of transfer
                example: send
              subType:
                type: string
                description: Subtype of transfer
                example: ofc_withdrawal
              value:
                type: number
                description: Numeric value of the transfer
                example: -1000
              valueString:
                type: string
                description: String representation of the transfer value
                example: '-1000'
              intendedValueString:
                type: string
                description: Intended value of the transfer
                example: '-1100'
              baseValue:
                type: number
                description: Base value of the transfer
                example: -1000
              baseValueString:
                type: string
                description: String representation of the base value
                example: '-1000'
              baseValueWithoutFees:
                type: number
                description: Base value without fees
                example: -1000
              baseValueWithoutFeesString:
                type: string
                description: String representation of base value without fees
                example: '-1000'
              feeString:
                nullable: true
                type: string
                description: Fee amount
                example: 'null'
              payGoFee:
                type: number
                description: PayGo fee amount
                example: 0
              payGoFeeString:
                type: string
                description: PayGo fee amount as string
                example: '0'
              usd:
                type: number
                description: USD value of the transfer
                example: -10
              usdRate:
                type: number
                description: USD exchange rate
                example: 1
              state:
                allOf:
                  - $ref: '#/components/schemas/TransferState1'
                description: Current state of the transfer
                example: confirmed
              instant:
                type: boolean
                description: Whether the transfer is instant
                example: false
              isReward:
                type: boolean
                description: Whether the transfer is a reward
                example: false
              isUnlock:
                type: boolean
                description: Whether the transfer is an unlock
                example: false
              isFee:
                type: boolean
                description: Whether the transfer is a fee
                example: false
              senderInformationVerified:
                type: boolean
                description: Whether sender information is verified
                example: false
              tags:
                type: array
                items:
                  type: string
                  description: List of associated tags
              history:
                type: array
                items:
                  type: object
                  properties:
                    date:
                      type: string
                      description: Timestamp of the historical event
                      example: '2025-02-13T21:18:07.220Z'
                      format: date-time
                      title: ISO Date String
                    action:
                      allOf:
                        - $ref: '#/components/schemas/TransferAction'
                      description: Type of action
                      example: confirmed
                    comment:
                      nullable: true
                      type: string
                      description: comment associated with the action
                      example: 'null'
                    user:
                      type: string
                      description: User who performed the action
                      example: 60524c9aee8800002a3c3b3b7d6afe5f
                  required:
                    - date
                    - action
                  description: List of historical events
              signedDate:
                type: string
                description: Timestamp when the transfer was signed
                example: '2025-02-11T22:13:30.024Z'
                format: date-time
                title: ISO Date String
              coinSpecific:
                allOf:
                  - $ref: '#/components/schemas/WireWithdrawalCoinSpecific'
                description: Coin-specific details
              usersNotified:
                type: boolean
                description: Whether users have been notified
                example: true
              metadata:
                type: array
                items:
                  type: object
                  properties:
                    key:
                      type: string
                      description: Key identifying the metadata type
                      example: onChainTxId
                    value:
                      type: string
                      description: Value associated with the metadata
                      example: >-
                        3d59f68ebbb3675b36b300b9c46efbdd2a7a9e0be24481677d38ca17c18047a8
                  required:
                    - key
                    - value
                  description: Additional metadata
              confirmedTime:
                type: string
                description: Timestamp when the transfer was confirmed
                example: '2025-02-13T21:18:07.220Z'
                format: date-time
                title: ISO Date String
              unconfirmedTime:
                type: string
                description: Timestamp when the transfer became unconfirmed
                example: '2025-02-11T22:13:26.827Z'
                format: date-time
                title: ISO Date String
              signedTime:
                type: string
                description: Timestamp when the transfer was signed
                example: '2025-02-11T22:13:30.024Z'
                format: date-time
                title: ISO Date String
              createdTime:
                type: string
                description: Timestamp when the transfer was created
                example: '2025-02-11T22:13:29.032Z'
                format: date-time
                title: ISO Date String
            required:
              - entries
              - id
              - coin
              - wallet
              - date
              - type
              - valueString
              - state
              - history
            description: List of wire withdrawal transfers
        nextBatchPrevId:
          type: string
          description: ID for fetching the next batch of results
          example: 000000000-67abcb899639d543ee979ed327dd5f5d
      required:
        - transfers
    WithdrawIntent:
      title: WithdrawIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
              description: Must be "claim".
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent'
    WithdrawIntent1:
      title: WithdrawIntent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
            amount:
              type: object
              properties:
                symbol:
                  type: string
                value:
                  type: string
              required:
                - symbol
                - value
          required:
            - intentType
        - $ref: '#/components/schemas/BaseStakeIntent1'
    WithdrawIntent2:
      title: Generic claim unstake
      allOf:
        - $ref: '#/components/schemas/BaseStakeIntent2'
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - claim
          required:
            - intentType
    Withdrawal:
      type: object
      properties:
        staker:
          type: string
        delegatedTo:
          type: string
        withdrawer:
          type: string
        nonce:
          type: string
        startBlock:
          type: string
        strategies:
          type: string
        shares:
          type: string
    WsError:
      type: object
      required:
        - error
        - errorName
        - reqId
      properties:
        error:
          type: string
        errorName:
          type: string
        reqId:
          type: string
    XRPAddress:
      title: XRP Address
      type: object
      properties:
        nonceTracker:
          type: object
          properties:
            detectedMissingNonces:
              type: array
              items:
                type: object
                properties:
                  nonce:
                    type: number
                  isNonceLocked:
                    type: boolean
                  nonceLockExpireTime:
                    type: string
                    format: date
                    title: Date String
                required:
                  - nonce
                  - isNonceLocked
            detectedMissingNoncesData:
              type: array
              items:
                type: object
                properties:
                  nonce:
                    type: number
                  isNonceLocked:
                    type: boolean
                  nonceLockExpireTime:
                    type: string
                    format: date
                    title: Date String
                required:
                  - nonce
                  - isNonceLocked
          required:
            - detectedMissingNonces
            - detectedMissingNoncesData
      required:
        - nonceTracker
    XRPSendQueue:
      title: XRP
      type: object
      properties:
        sequenceId:
          type: number
        account:
          type: string
        walletInitialization:
          type: boolean
        trustlines:
          type: array
          items:
            type: object
            properties:
              limit:
                type: string
              token:
                type: string
      required:
        - sequenceId
    XRPWallet:
      title: XRP Wallet
      type: object
      properties:
        rootAddress:
          type: string
        pendingChainInitialization:
          type: boolean
        creationFailure:
          type: array
          items:
            type: string
        trustedTokens:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  state:
                    $ref: '#/components/schemas/TrustedTokenState'
              - $ref: '#/components/schemas/Token'
      required:
        - rootAddress
        - pendingChainInitialization
        - creationFailure
    XdcKycUploadResponse:
      title: XDC KYC Upload Response
      description: Response containing the IPFS CIDv0 hash of the uploaded KYC document.
      type: object
      required:
        - hash
      properties:
        hash:
          type: string
          description: |
            IPFS CIDv0 hash of the uploaded KYC document.
            Must be included as `kycHash` in the subsequent XDC stake request.
          pattern: ^Qm[1-9A-HJ-NP-Za-km-z]{44}$
          example: QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX
    XdcProposeIntent:
      title: XDC Propose Intent
      allOf:
        - type: object
          properties:
            candidateAddress:
              type: string
              minLength: 1
            validatorContractAddress:
              type: string
              minLength: 1
          required:
            - candidateAddress
            - validatorContractAddress
        - $ref: '#/components/schemas/ValidatorRegistrationIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    XdcResignIntent:
      title: XDC Resign Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - undelegate
            candidateAddress:
              type: string
              minLength: 1
            validatorContractAddress:
              type: string
              minLength: 1
          required:
            - intentType
            - candidateAddress
            - validatorContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
    XdcStakingRequestPOSTBody:
      title: XDC stake
      description: >
        Create an XDC staking request to register a masternode.


        XDC masternode registration uses two sequential transactions:

        1. AUTHORIZE (uploadKYC) - uploads the KYC hash to the validator
        contract

        2. DELEGATE (propose) - registers the masternode with the required 10M
        XDC stake


        Requirements:

        - Minimum stake: 10,000,000 XDC (10M XDC)

        - KYC hash: IPFS hash of the KYC document required for masternode
        registration

        - Validator: The masternode candidate contract address


        Transaction Details:

        - First tx: uploadKYC(string) - uploads KYC hash to validator contract

        - Second tx: propose(address) payable - registers masternode with 10M
        XDC stake

        - No configurable commission: XDC masternodes receive protocol-level
        rewards
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
        - type: object
          properties:
            validator:
              type: string
              description: |
                XDC masternode candidate contract address in EVM format (0x...).
                This is the address of the masternode you are registering.
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x1234567890abcdef1234567890abcdef12345678'
            kycHash:
              type: string
              description: >
                IPFS hash of the KYC document required for masternode
                registration.

                This hash is uploaded to the validator contract in the AUTHORIZE

                transaction before the DELEGATE transaction.
              example: QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX
          required:
            - validator
            - kycHash
      type: object
    XdcStakingTransactionProperties:
      title: XDC Staking Transaction Properties
      description: |
        Transaction properties for XDC masternode staking operations.
        XDC uses a two-transaction flow: AUTHORIZE (uploadKYC) followed by
        DELEGATE (propose). The kycHash field is present in the AUTHORIZE
        transaction.
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
              format: bigInteger
              description: >-
                Amount of XDC tokens (in base units) for the staking
                transaction.
              example: '10000000000000000000000000'
            kycHash:
              type: string
              description: >
                IPFS hash of the KYC document. Present in the AUTHORIZE
                transaction,

                null for the DELEGATE transaction.
              example: QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX
    XdcUnStakingRequestPOSTBody:
      title: XDC unstake
      description: >
        Create an XDC unstaking request to resign a masternode.


        XDC masternode unstaking uses two sequential transactions:

        1. UNDELEGATE (resign) - removes the masternode from the active
        validator set

        2. WITHDRAW_UNDELEGATED (withdraw) - reclaims 10M XDC after cooldown
        (~30 days)


        Requirements:

        - Amount must equal the full delegated balance (10M XDC, no partial
        unstaking)

        - Delegation ID of the active masternode delegation


        Transaction Details:

        - First tx: resign(address) - removes masternode from active set
        (0-value TX)

        - Second tx: withdraw(uint256, uint256) - reclaims 10M XDC after
        cooldown

        - Cooldown: ~1,296,000 blocks (~30 days at 2s block time)
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    XdcUndelegateTransactionProperties:
      title: XDC Undelegate (Resign) Transaction Properties
      description: >
        Transaction properties for the XDC resign operation.

        Resign removes a masternode from the active validator set and starts the
        cooldown period.

        Function: resign(address _candidate), selector 0xae6e43f5.

        This is always a 0-value transaction.
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
              format: bigInteger
              description: Always zero for resign transactions.
              example: '0'
            candidateAddress:
              type: string
              description: The masternode candidate address being resigned.
              pattern: ^0x[a-fA-F0-9]{40}$
              example: '0x1234567890abcdef1234567890abcdef12345678'
            withdrawalBlockHeight:
              type: integer
              format: int64
              nullable: true
              description: >-
                Block number from the Resigned event. Populated after resign
                confirms.
            withdrawalIndex:
              type: integer
              nullable: true
              description: >-
                Withdrawal index from the Resigned event. Populated after resign
                confirms.
    XdcUploadKycIntent:
      title: XDC Upload KYC Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - contractCall
            ipfsHash:
              type: string
              minLength: 1
            validatorContractAddress:
              type: string
              minLength: 1
          required:
            - intentType
            - ipfsHash
            - validatorContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
    XdcWithdrawIntent:
      title: XDC Withdraw Intent
      allOf:
        - type: object
          properties:
            intentType:
              type: string
              enum:
                - unstake
            blockNumber:
              type: string
              minLength: 1
            index:
              type: string
              minLength: 1
            validatorContractAddress:
              type: string
              minLength: 1
          required:
            - intentType
            - blockNumber
            - index
            - validatorContractAddress
        - $ref: '#/components/schemas/BaseStakeIntent'
        - $ref: '#/components/schemas/BaseIntentWithAmount'
    XdcWithdrawTransactionProperties:
      title: XDC Withdraw Transaction Properties
      description: >
        Transaction properties for the XDC withdraw operation.

        Withdraw reclaims the 10M XDC stake after the cooldown period
        (~1,296,000 blocks / ~30 days).

        Function: withdraw(uint256 _blockNumber, uint256 _index), selector
        0x441a3e70.

        This is a 0-value transaction (the contract sends 10M XDC back to the
        owner).
      allOf:
        - $ref: '#/components/schemas/StakingTransactionProperties'
        - type: object
          properties:
            amount:
              type: string
              format: bigInteger
              description: Amount of XDC to be withdrawn (10M XDC in base units).
              example: '10000000000000000000000000'
            blockNumber:
              type: integer
              format: int64
              description: Block number from the resign transaction's Resigned event.
            index:
              type: integer
              description: Withdrawal index from the resign transaction's Resigned event.
    ZetaStakingRequest:
      title: ZETA
      allOf:
        - $ref: '#/components/schemas/StakingRequest1'
      type: object
      properties:
        delegations:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/BaseDelegation'
        transactions:
          type: array
          minItems: 1
          maxItems: 500
          items:
            $ref: '#/components/schemas/BaseStakingTransaction'
        amount:
          description: Amount to stake in base units.
          type: string
    ZetaStakingRequestPOSTBody:
      title: ZETA stake
      allOf:
        - $ref: '#/components/schemas/StakingRequestPOSTBody'
      type: object
    ZetaUnStakingRequestPOSTBody:
      title: ZETA unstake
      allOf:
        - $ref: '#/components/schemas/UnStakingRequestPOSTBodyWithAmount'
      type: object
    baseBalanceStrings:
      title: baseBalanceStrings
      type: object
      properties:
        balanceString:
          type: string
          description: >-
            String representation of the total balance of all wallets containing
            the given coin type. Guaranteed to not lose precision.
        confirmedBalanceString:
          type: string
          description: >-
            String representation of the total balance of confirmed transactions
            for all wallets containing the given coin type. Guaranteed to not
            lose precision.
        spendableBalanceString:
          type: string
          description: >-
            String representation of the total balance of all wallets containing
            the given coin which may be used as inputs for creating new
            transactions. Guaranteed to not lose precision.
        stakingBalanceString:
          type: string
          description: >-
            The staked balance in base units. Guaranteed to not lose precision.

            The is only returned if the `includeStakingBalances` query parameter
            is set to `true`.
        rewardBalanceString:
          type: string
          description: >-
            The staking reward balance in base units. Guaranteed to not lose
            precision.

            The is only returned if the `includeStakingBalances` query parameter
            is set to `true`.
        withdrawHoldAmountUsdString:
          type: string
          description: >-
            Total USD value (in cents) of active ACH-deposit related withdraw
            holds on this wallet.

            Only present for OFC wallets when `allTokens=true` is passed.
      required:
        - balanceString
        - confirmedBalanceString
        - spendableBalanceString
    forwardersBalanceResponse:
      title: forwardersBalanceResponse
      type: object
      properties:
        forwarders:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: The forwarder address.
              balance:
                type: string
                description: Current balance of the forwarder address.
            required:
              - address
              - balance
      required:
        - forwarders
    optionalBoolean:
      title: optionalBoolean
      type: boolean
    optionalNumber:
      title: optionalNumber
      type: number
    optionalString:
      title: optionalString
      type: string
    optionalStringArray:
      title: optionalStringArray
      type: array
      items:
        type: string
    optionalUnknownObject:
      title: optionalUnknownObject
      type: object
      additionalProperties: {}
    scopes:
      type: object
      description: Wrapper object for a list of scopes. Not paginated.
      properties:
        scopes:
          description: A list of scopes available on your Enterprise.
          type: array
          items:
            $ref: '#/components/schemas/AllWalletsScope'
    solCloseAssociatedTokenAccountRecipients:
      title: solCloseAssociatedTokenAccountRecipients
      type: array
      items:
        type: object
        description: >-
          Internal io-ts brand for one close-ATA recipient row (not exported).


          Uses {@link t.brand} instead of `t.refinement` so OpenAPI generation
          does not

          emit an unresolvable `#/components/schemas/refinement`. The brand
          predicate must be

          an inline function expression (not a bare identifier) so
          `@api-ts/openapi-generator`

          does not try to resolve it as a codec. The predicate is cast via
          `unknown` to

          satisfy `t.brand`'s `Branded<…>` predicate type because runtime checks
          match the

          brand, while `SolCloseAssociatedTokenAccountRecipient` is a plain
          structural alias.

          For the

          narrowed row shape after validation, use {@link
          SolCloseAssociatedTokenAccountRecipient}

          (see {@link SolCloseAssociatedTokenAccountIntent}’s exported type,
          which overrides

          `recipients` accordingly).
        properties:
          address:
            $ref: '#/components/schemas/Address'
          amount:
            $ref: '#/components/schemas/Amount'
          data:
            $ref: '#/components/schemas/optionalString'
        required:
          - address
          - amount
    tokenBalances:
      title: tokenBalances
      type: object
      additionalProperties:
        allOf:
          - type: object
            properties:
              transferCount:
                type: number
                description: Number of transfers for the token.
              heldBalanceString:
                type: string
                description: >-
                  The difference between the balanceString and the
                  spendableBalanceString.
            required:
              - transferCount
          - $ref: '#/components/schemas/baseBalanceStrings'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: BitGo access token
x-tagGroups:
  - name: API reference
    tags:
      - Accounts
      - Address
      - Audit log
      - BitGo Products
      - Counterparties
      - Client Activation
      - Client Allocations & Deallocations
      - Client Balances
      - Client Settlements & Transfers
      - Enterprise
      - Enterprise Webhooks
      - Federation
      - Fiat
      - Key
      - Know Your Business (KYB)
      - Know Your Customer (KYC)
      - Lightning
      - Margin
      - Market Data
      - Onboarding
      - Order Book
      - Orders
      - Enterprise Management
      - Organization Management
      - Organization Webhooks
      - Partner Activation
      - Partner Allocations & Deallocations
      - Partner Balances
      - Partner Settlements & Transfers
      - Partner Trades
      - Pending approval
      - Policy Builder
      - Products
      - User Management
      - Reports
      - Send label
      - Stablecoin
      - Staking Request
      - Staking State Information
      - Staking History
      - Settlement Disputes
      - Settlement Onboarding
      - Settlement Signing
      - Settlements
      - Transaction request
      - Transfer
      - User
      - User Management Notification
      - Wallet
      - Wallet Policy
      - Wallet share
      - Webhook
