fireblocks Off Exchange API

The Off Exchange API from fireblocks — 5 operation(s) for off exchange.

OpenAPI Specification

fireblocks-off-exchange-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Blockchains and Assets Approval Requests Off Exchange API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.


    - Visit our website for more information: [Fireblocks Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)

    '
  version: 1.8.0
  contact:
    email: developers@fireblocks.com
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
security: []
tags:
- name: Off Exchange
paths:
  /off_exchange/add:
    post:
      summary: Add Collateral
      description: 'Add collateral and create deposit request.

        Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Off Exchange
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCollateralRequestBody'
      responses:
        '200':
          description: A transaction object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: addOffExchange
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<CreateTransactionResponse>> = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<CreateTransactionResponse>> response = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<CreateTransactionResponse>> = fireblocks.offExchanges.addOffExchange(offExchangesApiAddOffExchangeRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<CreateTransactionResponse>> response = fireblocks.offExchanges().addOffExchange(addCollateralRequestBody, idempotencyKey);
      - lang: Python
        source: response = fireblocks.off_exchanges.add_off_exchange(add_collateral_request_body, idempotency_key);
  /off_exchange/remove:
    post:
      summary: Remove Collateral
      description: 'Remove collateral and create withdraw request.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Off Exchange
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveCollateralRequestBody'
      responses:
        '200':
          description: A transaction object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: removeOffExchange
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<CreateTransactionResponse>> = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<CreateTransactionResponse>> response = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<CreateTransactionResponse>> = fireblocks.offExchanges.removeOffExchange(offExchangesApiRemoveOffExchangeRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<CreateTransactionResponse>> response = fireblocks.offExchanges().removeOffExchange(removeCollateralRequestBody, idempotencyKey);
      - lang: Python
        source: response = fireblocks.off_exchanges.remove_off_exchange(remove_collateral_request_body, idempotency_key);
  /off_exchange/settlements/trader:
    post:
      summary: Create Settlement for a Trader
      description: 'Create settlement for a trader.

        Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Off Exchange
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettlementRequestBody'
      responses:
        '201':
          description: A settlement object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: settleOffExchangeTrades
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SettlementResponse>> = fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SettlementResponse>> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SettlementResponse>> = fireblocks.offExchanges.settleOffExchangeTrades(offExchangesApiSettleOffExchangeTradesRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SettlementResponse>> response = fireblocks.offExchanges().settleOffExchangeTrades(settlementRequestBody, idempotencyKey);
      - lang: Python
        source: response = fireblocks.off_exchanges.settle_off_exchange_trades(settlement_request_body, idempotency_key);
  /off_exchange/settlements/transactions:
    get:
      summary: Get Settlements Transactions
      description: 'Get settlements transactions from exchange.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Off Exchange
      parameters:
      - in: query
        name: mainExchangeAccountId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A settlement transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeSettlementTransactionsResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: getOffExchangeSettlementTransactions
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetSettlementResponse>> = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GetSettlementResponse>> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetSettlementResponse>> = fireblocks.offExchanges.getOffExchangeSettlementTransactions(offExchangesApiGetOffExchangeSettlementTransactionsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GetSettlementResponse>> response = fireblocks.offExchanges().getOffExchangeSettlementTransactions(mainExchangeAccountId);
      - lang: Python
        source: response = fireblocks.off_exchanges.get_off_exchange_settlement_transactions(main_exchange_account_id);
  /off_exchange/collateral_accounts/{mainExchangeAccountId}:
    get:
      summary: Find a specific collateral exchange account
      description: 'Returns a collateral account by mainExchangeAccountId.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Off Exchange
      parameters:
      - in: path
        name: mainExchangeAccountId
        required: true
        description: The id of the main exchange account for which the requested collateral account is associated with
        schema:
          type: string
          example: c2896695-4263-40af-a15c-4348b294b5c4
      responses:
        '200':
          description: An ExchangeAccount object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeAccount'
        default:
          $ref: '#/components/responses/Error'
      operationId: getOffExchangeCollateralAccounts
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ExchangeAccount>> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ExchangeAccount>> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ExchangeAccount>> = fireblocks.offExchanges.getOffExchangeCollateralAccounts(offExchangesApiGetOffExchangeCollateralAccountsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ExchangeAccount>> response = fireblocks.offExchanges().getOffExchangeCollateralAccounts(mainExchangeAccountId);
      - lang: Python
        source: response = fireblocks.off_exchanges.get_off_exchange_collateral_accounts(main_exchange_account_id);
components:
  schemas:
    TransactionRequest:
      type: object
      properties:
        operation:
          $ref: '#/components/schemas/TransactionOperation'
        note:
          type: string
          description: Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace.
          example: Ticket 123
        externalTxId:
          type: string
          description: 'Allows you to add a unique ID to help prevent duplicate transactions. No specific format is required for this parameter. After you submit a transaction with an external ID, Fireblocks will automatically reject all future transactions with the same ID.

            - Using an external ID primarily helps in situations where, even though a submitted transaction responds with an error due to an internet outage, the transaction was still sent to and processed on the blockchain.

            - Use [Get a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/gettransactionbyexternalid) to validate whether these transactions have been processed.

            '
          example: some_unique_external_tx_id
        assetId:
          type: string
          description: The ID of the asset to transfer; used for `TRANSFER`, `MINT`, or `BURN` operations. See [the list of supported assets and their IDs](https://developers.fireblocks.com/reference/listassets).
          x-fb-entity: asset
          example: ETH
        source:
          $ref: '#/components/schemas/SourceTransferPeerPath'
        destination:
          $ref: '#/components/schemas/DestinationTransferPeerPath'
        destinations:
          type: array
          description: For UTXO based blockchains, you can send a single transaction to multiple destinations.
          items:
            $ref: '#/components/schemas/TransactionRequestDestination'
        amount:
          description: For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
          oneOf:
          - type: string
            description: Numeric string (recommended)
            example: '0.02'
          - type: number
            description: Number (deprecated)
            example: 0.02
        treatAsGrossAmount:
          type: boolean
          description: '"When set to `true`, the fee will be deducted from the requested amount."


            **Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.'
          example: false
        forceSweep:
          type: boolean
          description: "For Polkadot, TON, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet.\n\n   **Note:** If set to true when the source account is exactly 1 DOT, the transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot blockchain limitation."
          example: false
        feeLevel:
          type: string
          description: For UTXO or EVM-based blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below.
          enum:
          - LOW
          - MEDIUM
          - HIGH
          example: MEDIUM
        fee:
          description: '- **For UTXO-based blockchains**, the fee per bytes in the asset''s smallest unit (Satoshi, Latoshi, etc.).

            - **For Ripple**, the fee for the transaction.


            Note:

            - Fireblocks recommends using a numeric string for more precision. Although a number input exists, it is deprecated.

            '
          oneOf:
          - type: string
            description: Numeric string (recommended)
          - type: number
            description: Number (deprecated)
        priorityFee:
          description: '**For Ethereum-based blockchains only.** The fee (in Gwei) for EIP-1559 transaction pricing mechanism.


            Note:

            - Fireblocks recommends using a numeric string for more precision. Although a number input exists, it is deprecated.

            '
          oneOf:
          - type: string
            description: Numeric string (recommended)
            example: '2'
          - type: number
            description: Number (deprecated)
            example: 2
        failOnLowFee:
          type: boolean
          description: When set to `true`, in case the current `MEDIUM` fee level is higher than the one specified in the transaction, the transaction will fail to avoid getting stuck with no confirmations.
        maxFee:
          description: The maximum fee (gas price or fee per byte) that should be paid for the transaction. In case the current value of the requested `feeLevel` is higher than this requested maximum fee. Represented by a numeric string for more precision.
          type: string
          example: '120'
        gasLimit:
          description: '**For EVM-based blockchains only.**  Units of gas required to process the transaction.


            Notes:

            - Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice`, and/or `networkFee`.

            - Fireblocks recommends using a numeric string for more precision. Although a number input exists, it is deprecated.

            '
          oneOf:
          - type: string
            description: Numeric string (recommended)
            example: '21000'
          - type: number
            description: Number (deprecated)
            example: 21000
        gasPrice:
          description: '**For non-EIP-1559, EVM-based transactions.** Price per gas unit. In Ethereum, this is specified in Gwei.


            Notes:

            - Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice`, and/or `networkFee`.

            - Fireblocks recommends using a numeric string for more precision. Although a number input exists, it is deprecated.

            '
          oneOf:
          - type: string
            description: Numeric string (recommended)
          - type: number
            description: Number (deprecated)
        networkFee:
          description: 'The total transaction fee in the blockchain''s largest unit.


            Notes:

            - Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice`, and/or `networkFee`.

            - Fireblocks recommends using a numeric string for more precision. Although a number input exists, it is deprecated.

            '
          oneOf:
          - type: string
            description: Numeric string (recommended)
          - type: number
            description: Number (deprecated)
        replaceTxByHash:
          type: string
          description: '**For EVM-based blockchains only.**


            Notes:

            - To replace a transaction, create another transaction using the stuck transaction''s hash and specify a higher fee.

            - To drop a transaction, create another transaction using the stuck transaction''s hash and change the `amount` field to 0.

            '
          example: 00000000-0000-0000-0000-000000000000
        extraParameters:
          $ref: '#/components/schemas/ExtraParameters'
        customerRefId:
          type: string
          description: The ID for AML providers to associate the owner of funds with transactions.
          example: abcdef
        travelRuleMessage:
          $ref: '#/components/schemas/TravelRuleCreateTransactionRequest'
        autoStaking:
          type: boolean
          description: This feature is no longer supported.
          deprecated: true
        networkStaking:
          deprecated: true
          description: This feature is no longer supported.
          oneOf:
          - type: string
            description: Numeric string (recommended)
          - type: number
            description: Number (deprecated)
        cpuStaking:
          deprecated: true
          description: This feature is no longer supported.
          oneOf:
          - type: string
            description: Numeric string (recommended)
          - type: number
            description: Number (deprecated)
        useGasless:
          type: boolean
          description: '- Override the default gasless configuration by sending true\false'
    ExchangeAccount:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/ExchangeType'
        name:
          type: string
          description: Display name of the exchange account
        status:
          type: string
        assets:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeAsset'
        success:
          type: boolean
          description: Did succeed in retrieve balance data
        tradingAccounts:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeTradingAccount'
        isSubaccount:
          description: True if the account is a subaccount in an exchange
          type: boolean
        mainAccountId:
          description: if the account is a sub-account, the ID of the main account
          type: string
    CreateTransactionResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique Fireblocks identifier of the transaction
        status:
          type: string
          description: The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses)
        systemMessages:
          $ref: '#/components/schemas/SystemMessageInfo'
    ExchangeSettlementTransactionsResponse:
      type: object
      properties:
        toExchange:
          type: array
          items:
            $ref: '#/components/schemas/ToExchangeTransaction'
        toCollateral:
          type: array
          items:
            $ref: '#/components/schemas/ToCollateralTransaction'
    ExchangeTradingAccount:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        assets:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeAsset'
    TravelRuleNationalIdentification:
      type: object
      description: Represents a national identifier for a person or entity
      properties:
        countryOfIssue:
          type: string
          description: Country that issued the national identifier (ISO-3166 Alpha-2 country code). The value must be encrypted.
          example: QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm
        nationalIdentifier:
          type: string
          description: National identifier (max 35 characters). The value must be encrypted.
          example: QmdR6qLnZ7Kwf5cBaXG8QFQenEvRg9JNZeoPranVuGd63z
        nationalIdentifierType:
          type: string
          description: 'Type of national identifier. Acceptable values include: - ''PASSPORT'': Passport number - ''NATIONAL_ID'': National identification number - ''TAX_ID'': Tax identification number - ''SOCIAL_SECURITY'': Social security number The value must be encrypted.'
          example: QmUKTg3aFJFhMz1o9gPqA3MgTRwd2LvDLwWTPHYUoMEYVi
        registrationAuthority:
          type: string
          description: Registration authority (format -> RA followed by 6 digits). The value must be encrypted.
          example: QmV9KJMyT9RJzpYfhME5xNCZ4G67fEkzTpRMyJzp9kTNYk
    UnspentInput:
      description: 'A representation of an Unspent Transaction Output (UTXO).

        '
      type: object
      properties:
        txHash:
          description: Transaction Hash
          type: string
          example: 6b21446af4a5e3ec588960d2338ab52428a3eb729038146ea09905199723061f
        index:
          description: The UTXO index (vOut)
          type: number
          example: 0
    PreHash:
      type: object
      description: "The prehash object for ECDSA RAW signing requests. \nThe prehash object contains the content to sign (the actual message in hex representation) and the hashing algorithm to use before signing.\n"
      properties:
        content:
          type: string
          description: The prehashed content to sign on in hex representation.
          example: 48656c6c6f2046697265626c6f636b73210a
        hashAlgorithm:
          type: string
          description: The hashing algorithm to use in order to hash the content before the signature process
          enum:
          - SHA256
          - KECCAK256
          - SHA3
          - BLAKE2
          - DOUBLE_SHA256
      required:
      - content
      - hashAlgorithm
    ExchangeAsset:
      type: object
      properties:
        id:
          type: string
        balance:
          type: string
        lockedAmount:
          type: string
        total:
          type: string
        available:
          type: string
        credit:
          type: string
    SettlementRequestBody:
      type: object
      properties:
        mainExchangeAccountId:
          type: string
    OneTimeAddress:
      type: object
      properties:
        address:
          type: string
        tag:
          type: string
      required:
      - address
    TravelRulePerson:
      type: object
      properties:
        naturalPerson:
          type: object
          allOf:
          - $ref: '#/components/schemas/TravelRuleNaturalPerson'
        legalPerson:
          type: object
          allOf:
          - $ref: '#/components/schemas/TravelRuleLegalPerson'
    ToExchangeTransaction:
      type: object
      properties:
        assetId:
          type: string
        amount:
          type: string
        dstAddress:
          type: string
        dstTag:
          type: string
          description: optional
    TravelRuleNaturalPerson:
      type: object
      properties:
        name:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleNaturalPersonNameIdentifier'
          description: An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.
        geographicAddress:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleGeographicAddress'
          description: An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.
        nationalIdentification:
          allOf:
          - $ref: '#/components/schemas/TravelRuleNationalIdentification'
          description: The national identification of the natural person, referencing the TravelRuleNationalIdentification schema.
        dateAndPlaceOfBirth:
          allOf:
          - $ref: '#/components/schemas/TravelRuleDateAndPlaceOfBirth'
          description: The date and place of birth of the natural person, referencing the TravelRuleDateAndPlaceOfBirth schema.
        customerIdentification:
          type: string
          description: A unique identifier for the customer within the organization's context. The value must be encrypted.
          example: QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj
        countryOfResidence:
          type: string
          description: The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.
          example: QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj
        customerNumber:
          type: string
          description: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
          example: QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj
    UnsignedMessage:
      type: object
      properties:
        preHash:
          $ref: '#/components/schemas/PreHash'
        content:
          description: 'Content to sign on.

            - EIP-191: Requires a 32 byte-long string for ECDSA (hash of the actual message to sign) or any length for EdDSA, as prehashing is not required.

            - EIP-712: Requires an object specifying the structured data format, including `types`, `domain`, `primaryType`, and `message`.

            '
          type: string
          example: ababababababababababababababababababbababababababbababababababab
        bip44addressIndex:
          description: BIP44 address index
          type: integer
          example: 0
        bip44change:
          description: BIP44 change index
          type: number
          example: 0
        derivationPath:
          type: array
          description: BIP44 full derivation path
          items:
            type: number
            example:
            - 44
            - 60
            - 0
            - 0
            - 0
        type:
          type: string
          description: 'Typed Message Signing - message type.


            - EIP191 & EIP712: for ETH and all EVM based assets typed message signing

            - TIP191: For Tron (TRX) typed message signing

            - BTC_MESSAGE: For Bitcoin (BTC) typed message signing

            '
          enum:
          - EIP191
          - EIP712
          - TIP191
          - BTC_MESSAGE
      required:
      - content
    AddCollateralRequestBody:
      type: object
      properties:
        transactionRequest:
          $ref: '#/components/schemas/TransactionRequest'
        isSrcCollateral:
          type: boolean
          description: optional
    TravelRuleTransactionBlockchainInfo:
      type: object
      properties:
        txHash:
          type: string
          description: The hash of the transaction
          example: 66857308435587568925907217391782424136140297125402684115258137778343590111402
        origin:
          type: string
          description: The origin address of the transaction
          example: 841132469470587054656177892491842814721854784787
        destination:
          type: string
          description: The destination address of the transaction
          example: 841132469470587054656177892491842814721854784787
    TravelRuleGeographicAddress:
      type: object
      properties:
        streetName:
          type: string
          description: Name of a street or thoroughfare. The value must be encrypted.
          example: QmZGXXsKPk5iPS97LLjXB5e8Qs555ocdzcpbPMXvt84Ji9
        townName:
          type: string
          description: Name of a built-up area, with defined boundaries, and a local government. The value must be encrypted.
          example: QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt
        country:
          type: string
          description: Nation with its own government (ISO-3166 Alpha-2 country code). The value must be encrypted.
          example: QmRGHdoxQfSi6tevyvaYGzs8BVStfqJqEyrMYqUfzXxkmm
        buildingNumber:
          type: string
          description: Number that identifies the position of a building on a street. The value must be encrypted.
          example: QmUFpNkxdsVtebDSUz5eP51kzoysXmqj2gBgeH11PD7SVP
        postCode:
          type: string
          description: Identifier consisting of a group of letters and/or numbers added to a postal address to assist the sorting of mail. The value must be encrypted.
          example: QmTJsK3sc3fPEVwvAp97UUiVoFhjzQhYX3sCda1JxuCnXj
        addressType:
          type: string
          description: 'Specifies the type of address. Acceptable values are: - ''HOME'': Residential, the home address - ''BIZZ'': Business, the business address - ''GEOG'': Geographic, an unspecified physical (geographical) address The value must be encrypted.'
          example: Qmdr9LcChZsoivS6uAhe7Qk7cGLDAx73wBZTVvq4WoU71H
        department:
          type: string
          description: Identification of a division of a large organisation or building. The value must be encrypted.
          example: QmN7fb65x5MyA7RKyhbXaUKvJ7U4Y9eqpEZTmJYpNyEG8
        subDepartment:
          type: string
          description: Identification of a sub-division of a large organisation or building. The value must be encrypted.
          example: QmTkfyGh54tXNqFxyEGK9NyTJZYpQ6RZ9zpNykxykME8s
        buildingName:
          type: string
          description: Name of the building or house. The value must be encrypted.
          example: QmXJfGk85t6RKyhbXaEK9Nz4MEeMKypq6EY9zpJyC9nM9
        floor:
          type: string
          description: Floor or storey within a building. The value must be encrypted.
          example: QmZP5G7fhZpMyQxXnT9KyR6ybXaEM9zpJy4ME9MkTJGE1
        postBox:
          type: string
          description: Numbered box in a post office. The value must be encrypted.
          example: QmTkfYRGK54xFqXyJYNZyE9kY9zpMKytJnXy5z9EME9sJ
        room:
          

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-off-exchange-api-openapi.yml