fireblocks Off Exchange API

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

Operations 5

POST /off_exchange/add Add Collateral #
POST /off_exchange/remove Remove Collateral #
POST /off_exchange/settlements/trader Create Settlement for a Trader #
GET /off_exchange/settlements/transactions Get Settlements Transactions #
GET /off_exchange/collateral_accounts/{mainExchangeAccountId} Find a specific collateral exchange account #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fireblocks-off-exchange-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fireblocks-off-exchange-api-openapi.yml Raw ↑
openapi: 3.2.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:
    TravelRuleCreateTransactionRequest:
      type: object
      properties:
        originatorVASPdid:
          type: string
          description: The Decentralized Identifier (DID) of the exchange (VASP) that is sending the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is  created in the Notabene network.
          example: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
        beneficiaryVASPdid:
          type: string
          description: The Decentralized Identifier (DID) of the exchange (VASP) that is receiving the virtual assets. This identifier is unique to the exchange and is generated when the exchange's account is  created in the Notabene network.
          example: did:ethr:0x17fe2dd11a2daa7f6c1fdf22532a4763f963aea6
        originatorVASPname:
          type: string
          description: The name of the VASP acting as the transaction originator.
          example: Originator VASP Ltd.
        beneficiaryVASPname:
          type: string
          description: The name of the VASP acting as the transaction beneficiary.
          example: Beneficiary VASP Inc.
        beneficiaryVASPwebsite:
          type: string
          description: The website of the VASP acting as the transaction beneficiary.
          example: https://www.beneficiaryvasp.com
        transactionBlockchainInfo:
          description: Information about the blockchain transaction.
          allOf:
          - $ref: '#/components/schemas/TravelRuleTransactionBlockchainInfo'
        originator:
          description: Information about the originator of the transaction.
          allOf:
          - $ref: '#/components/schemas/TravelRulePiiIVMS'
        beneficiary:
          description: Information about the beneficiary of the transaction.
          allOf:
          - $ref: '#/components/schemas/TravelRulePiiIVMS'
        encrypted:
          type: string
          description: Encrypted data related to the transaction.
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
        protocol:
          type: string
          description: The protocol used to perform the travel rule.
          example: IVMS101
        skipBeneficiaryDataValidation:
          type: boolean
          description: Whether to skip validation of beneficiary data.
          example: false
        travelRuleBehavior:
          type: boolean
          description: Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction.
          example: true
        originatorRef:
          type: string
          description: A reference ID related to the originator of the transaction.
          example: ORG123456
        beneficiaryRef:
          type: string
          description: A reference ID related to the beneficiary of the transaction.
          example: BEN654321
        travelRuleBehaviorRef:
          type: string
          description: A reference ID related to the travel rule behavior.
          example: TRB987654
        originatorProof:
          description: Ownership proof related to the originator of the transaction.
          allOf:
          - $ref: '#/components/schemas/TravelRuleOwnershipProof'
        beneficiaryProof:
          description: Ownership proof related to the beneficiary of the transaction.
          allOf:
          - $ref: '#/components/schemas/TravelRuleOwnershipProof'
        beneficiaryDid:
          type: string
          description: "The Decentralized Identifier (DID) of the person at the receiving exchange (VASP).  This identifier is generated when the customer is registered in the Notabene network,  or automatically created based on the `beneficiaryRef`.  - If neither `beneficiaryRef` nor `beneficiaryDid` is provided in the `txCreate` payload, \n  a new random DID is generated for every transaction."
          example: did:key:z6Mkf67890Zghijkl67890
        originatorDid:
          type: string
          description: "The Decentralized Identifier (DID) of the person at the exchange (VASP) who is requesting the withdrawal. This identifier is generated when the customer is registered in the Notabene network or automatically created based on the `originatorRef`.  - If neither `originatorRef` nor `originatorDid` is provided in the `txCreate` payload, \n  a new random DID is generated for every transaction."
          example: did:key:z6Mkf12345Zabcdef12345
        isNonCustodial:
          type: boolean
          description: Indicates if the transaction involves a non-custodial wallet.
          example: true
      required:
      - originator
      - beneficiary
    TransactionOperation:
      type: string
      default: TRANSFER
      enum:
      - TRANSFER
      - BURN
      - CONTRACT_CALL
      - MINT
      - RAW
      - TYPED_MESSAGE
      - PROGRAM_CALL
      description: "* `TRANSFER` - The default value for an operation. Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address.\n* `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains.\n* `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains.\n* `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions.\n* `PROGRAM_CALL` - Calls a smart contract for web3 operations on the Solana blockchain.\n  Read more in the [Solana Programs Interactions guide](https://developers.fireblocks.com/reference/interact-with-solana-programs).\n\n* `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing-1).\n* `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-signing)\n"
    TravelRulePersons:
      type: object
      allOf:
      - $ref: '#/components/schemas/TravelRulePerson'
    ExchangeType:
      description: Exchange account's type
      type: string
      enum:
      - INDEPENDENT_RESERVE
      - ENCLAVE_MARKETS
      - BIT
      - COINFLEX
      - KUCOIN
      - PXS
      - LIQUID
      - BITHUMB
      - BITFINEX
      - BITSO
      - BITSTAMP
      - KRAKEN
      - KRAKENINTL
      - BINANCE
      - BINANCEUS
      - CRYPTOCOM
      - BYBIT_V2
      - COINBASEPRO
      - COINBASEPRIME
      - COINBASEINTERNATIONAL
      - WHITEBIT
      - COINBASEEXCHANGE
      - KORBIT
      - HITBTC
      - GEMINI
      - CIRCLE
      - BITMEX
      - HUOBI
      - DERIBIT
      - OKCOIN_V5
      - OKEX
      - COINMETRO
      - GATEIO
      - SCRYPT
      - COINHAKO
      - LIGHTBIT
      - BULLISH
      - CANVAS_CONNECT
      - BITGET
      - LUNO
      - BIT_GENERA
      - TRANSFERO
    RemoveCollateralRequestBody:
      type: object
      properties:
        transactionRequest:
          $ref: '#/components/schemas/TransactionRequest'
        isDstCollateral:
          type: boolean
          description: optional
    TravelRulePiiIVMS:
      type: object
      properties:
        originatorPersons:
          type: array
          description: Information about the originator of the transaction
          items:
            $ref: '#/components/schemas/TravelRulePersons'
        beneficiaryPersons:
          type: array
          description: Information about the beneficiary of the transaction
          items:
            $ref: '#/components/schemas/TravelRulePersons'
        accountNumber:
          type: array
          description: Beneficiary account number. The value must be encrypted.
          items:
            type: string
            example: QmNkEt9VdnhjefQMXo3ZaZAs765ugoWiazaqcY9skHMjCt
    ExchangeTradingAccount:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        assets:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeAsset'
    SystemMessageInfo:
      type: object
      properties:
        type:
          type: string
          enum:
          - WARN
          - BLOCK
        message:
          type: string
          description: A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses.
          example: Slow transaction processing. Outgoing transactions might be stuck.
    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
    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
    AddCollateralRequestBody:
      type: object
      properties:
        transactionRequest:
          $ref: '#/components/schemas/TransactionRequest'
        isSrcCollateral:
          type: boolean
          description: optional
    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:
          type: string
          description: Building room number. The value must be encrypted.
          example: QmRYXnT9KyhbXaEMZpMyxMkZ9zpYNYTJ4ME5kCGE7fhMJ
        townLocationName:
          type: string
          description: Specific location name within the town. The value must be encrypted.
          example: QmNpZTyXJXnT9K6EYZpQxYNYMkC5p4kGEfhnkMJzpYT9Jm
        districtName:
          type: string
          description: Identifies a subdivision within a country subdivision. The value must be encrypted.
          example: QmT9p6ERKyNYXnTyhbpMYJ4zpYT9kMJZT9QmEMGZ5kMhCy
        countrySubDivision:
          type: string
          description: Identifies a subdivision of a country, such as a state, region, or province. The value must be encrypted.
          example: QmK9yTbXaZpMYJYTYp6NT9QmEMGZT9p9kMJfhyGE4Z7k5C
        addressLine:
          type: array
          items:
            type: string
          description: Information that locates and identifies a specific address, presented in free-format text. Each item must be encrypted.
          example:
          - QmNp9kMjfhGZ5kMJzpNYXZTy6NQmZYEMGZ4kZT9Y6pNYT
    TransferPeerPathType:
      type: string
      enum:
      - VAULT_ACCOUNT
      - EXCHANGE_ACCOUNT
      - INTERNAL_WALLET
      - EXTERNAL_WALLET
      - UNMANAGED_WALLET
      - CONTRACT
      - NETWORK_CONNECTION
      - FIAT_ACCOUNT
      - COMPOUND
      - GAS_STATION
      - ONE_TIME_ADDRESS
      - UNKNOWN
      - END_USER_WALLET
      - PROGRAM_CALL
      - MULTI_DESTINATION
      - OEC_PARTNER
    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'
    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 depreca

# --- 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