---
title: "Add Collateral"
method: POST
path: "/off_exchange/add"
tags: ["Off exchanges"]
---

# Add Collateral

`POST /off_exchange/add`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/off_exchange/add`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/off_exchange/add/post.ts> (a function with typed inputs; its response is checked against the schema)

Add collateral and create deposit request.
Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange).
Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.

## Headers

- `Idempotency-Key` string

## Request body

- AddCollateralRequestBody
  - `transactionRequest` TransactionRequest
    - `operation` 'TRANSFER' | 'BURN' | 'CONTRACT_CALL' | 'PROGRAM_CALL' | 'SOROBAN_CALL' | 'MINT' | 'RAW' | 'TYPED_MESSAGE' | 'APPROVE' | 'ENABLE_ASSET' | 'CANTON_CALL': * `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. * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains. * `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. * `PROGRAM_CALL` - Execute multiple instructions on Solana blockchain. The @solana/web3.js library is recommended for building program call transactions. * `SOROBAN_CALL` - Invokes a Soroban smart contract on the Stellar blockchain. The call is submitted as a base64-encoded, unsigned Stellar `TransactionEnvelope` in `extraParameters.sorobanCallData.envelopeXdr`, which is the same artifact a Soroban dApp hands a wallet. Fireblocks decodes the envelope, determines the footprint, resource fee, sequence number and authorization entries itself, and signs a transaction it rebuilt - the submitted envelope must therefore carry no signatures and no authorization entries. `assetId` is the fee asset (`XLM` or `XLM_TEST`), not the token being moved, and `destination` is the contract wallet or, when enabled for your workspace, a `ONE_TIME_ADDRESS` holding a Stellar contract address (`C...`). `amount` must be omitted or `0`. Fee estimation is not supported for this operation. * `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). * `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-message-signing) * `APPROVE` - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. [Learn more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions). * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account. * `CANTON_CALL` - A customer-initiated Canton operation, such as withdrawing an allocation or responding to an onboarding offer. Note that not every Canton transaction carries this operation — an incoming Canton transfer offer is a `TRANSFER` — so use the top-level `cantonDetails` rather than `operation` to identify a Canton transaction.
    - `note` string: Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace.
    - `externalTxId` string: This parameter allows you to add a unique ID of your own 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 the [Get a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/gettransactionbyexternalid) endpoint to validate whether these transactions have been processed.
    - `feeCurrency` string: For Tempo-based transactions only, the asset used to pay the transaction's network fee, as an asset ID ([see supported assets](https://developers.fireblocks.com/api-reference/blockchains-&-assets/list-assets)). For any other blockchain, this value is ignored. This feature is currently in beta and might be subject to changes.
    - `assetId` string: The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/gettrlinksupportedasset#/)
    - `source` SourceTransferPeerPath: The source of the transaction.
      - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
      - `subType` 'BINANCE' | 'BINANCEUS' | 'BITFINEX' | 'BITHUMB' | 'BITMEX' | 'BITSO' | 'BITSTAMP' | 'BITTREX' | 'BLINC' | 'BYBIT' | 'CIRCLE' | 'COINBASEEXCHANGE' | 'COINBASEPRO' | 'COINMETRO' | 'COINSPRO' | 'CRYPTOCOM' | 'DERIBIT' | 'GEMINI' | 'HITBTC' | 'HUOBI' | 'INDEPENDENTRESERVE' | 'KORBIT' | 'KRAKEN' | 'KRAKENINTL' | 'KUCOIN' | 'LIQUID' | 'OKCOIN' | 'OKEX' | 'PAXOS' | 'POLONIEX' | 'External' | 'Internal' | 'VIRTUAL_ACCOUNT'
      - `id` string
      - `name` string
      - `walletId` string, uuid
      - `isCollateral` boolean: indicate if the source is collateral account
    - `destination` DestinationTransferPeerPath: The destination of the transaction.
      - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
      - `subType` 'BINANCE' | 'BINANCEUS' | 'BITFINEX' | 'BITHUMB' | 'BITMEX' | 'BITSO' | 'BITSTAMP' | 'BITTREX' | 'BLINC' | 'BYBIT' | 'CIRCLE' | 'COINBASEEXCHANGE' | 'COINBASEPRO' | 'COINMETRO' | 'COINSPRO' | 'CRYPTOCOM' | 'DERIBIT' | 'GEMINI' | 'HITBTC' | 'HUOBI' | 'INDEPENDENTRESERVE' | 'KORBIT' | 'KRAKEN' | 'KRAKENINTL' | 'KUCOIN' | 'LIQUID' | 'OKCOIN' | 'OKEX' | 'PAXOS' | 'POLONIEX' | 'External' | 'Internal' | 'VIRTUAL_ACCOUNT'
      - `id` string
      - `name` string
      - `walletId` string, uuid
      - `oneTimeAddress` OneTimeAddress
        - `address` string, required
        - `tag` string
      - `isCollateral` boolean: indicate if the destination is collateral account
    - `destinations` TransactionRequestDestination[]: For UTXO based blockchains, you can send a single transaction to multiple destinations.
      - `amount` string
      - `destination` DestinationTransferPeerPath: The destination of the transaction.
        - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'INTERNAL_WALLET' | 'EXTERNAL_WALLET' | 'CONTRACT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT' | 'COMPOUND' | 'GAS_STATION' | 'ONE_TIME_ADDRESS' | 'UNKNOWN' | 'END_USER_WALLET' | 'PROGRAM_CALL' | 'MULTI_DESTINATION' | 'OEC_PARTNER' | 'WALLET_POOL' | 'SOROBAN_CONTRACT', required
        - `subType` 'BINANCE' | 'BINANCEUS' | 'BITFINEX' | 'BITHUMB' | 'BITMEX' | 'BITSO' | 'BITSTAMP' | 'BITTREX' | 'BLINC' | 'BYBIT' | 'CIRCLE' | 'COINBASEEXCHANGE' | 'COINBASEPRO' | 'COINMETRO' | 'COINSPRO' | 'CRYPTOCOM' | 'DERIBIT' | 'GEMINI' | 'HITBTC' | 'HUOBI' | 'INDEPENDENTRESERVE' | 'KORBIT' | 'KRAKEN' | 'KRAKENINTL' | 'KUCOIN' | 'LIQUID' | 'OKCOIN' | 'OKEX' | 'PAXOS' | 'POLONIEX' | 'External' | 'Internal' | 'VIRTUAL_ACCOUNT'
        - `id` string
        - `name` string
        - `walletId` string, uuid
        - `oneTimeAddress` OneTimeAddress
          - `address` string, required
          - `tag` string
        - `isCollateral` boolean: indicate if the destination is collateral account
      - `travelRuleMessageId` string: The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.
      - `customerRefId` string: The ID for AML providers to associate the owner of funds with transactions.
    - `amount` union: 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.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `treatAsGrossAmount` boolean: "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.
    - `forceSweep` boolean: For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet. **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. **Note:** `forceSweep` and `treatAsGrossAmount` can also be used to empty a TON/GRAM wallet.
    - `feeLevel` 'LOW' | 'MEDIUM' | 'HIGH': For UTXO, EVM-based, or Solana blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below.
    - `fee` union: For UTXO-based blockchains, the fee per bytes in the asset’s smallest unit (Satoshi, Latoshi, etc.). For Ripple, the fee for the transaction. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `priorityFee` union: For Ethereum-based blockchains only, the fee for EIP-1559 transaction pricing mechanism. Value is in Gwei. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `failOnLowFee` boolean: 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` string: The maximum fee (gas price or fee per byte) that should be payed 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 accurate precision.
    - `maxTotalFee` string: For BTC-based blockchains only. The maximum fee (in the units of the fee-paying asset) that should be paid for the transaction.
    - `gasLimit` union: For EVM-based blockchains only. Units of gas required to process the transaction. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `gasPrice` union: For non-EIP-1559, EVM-based transactions. Price per gas unit (in Ethereum this is specified in Gwei). Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `networkFee` union: For EVM-based blockchains only. The total transaction fee in the blockchain’s largest unit. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated. - The transaction blockchain fee. - For Ethereum, you can't pass gasPrice, gasLimit and networkFee all together. - A numeric value representation is required.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `replaceTxByHash` string: For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain.
    - `extraParameters` ExtraParameters: Additional protocol / operation specific key-value parameters: For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/getunspentinputs) For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata) For `SOROBAN_CALL` operations, add the key `sorobanCallData` with the value set to an object containing `envelopeXdr` - a base64 encoded, unsigned Stellar `TransactionEnvelope` holding the contract invocation. For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. For **exchange compliance (e.g., Binance) and Travel Rule purposes**, include the key `piiData` containing a **custom JSON structure** with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully **encrypted by the sender** before being submitted to the Fireblocks API. The recommended encryption method is **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [development libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks) **Note:** `rawMessageData`, `contractCallData`, `sorobanCallData`, and `inputsSelection` cannot be used together in the same call.
      - `nodeControls` union: Configure special node requirements. For routing transactions to a custom node: Set `type` to `NODE_ROUTER` and `tag` to the pre-configured tag value. **For MEV protection:** Set only the `type` property to `MEV` (tag is not required at this stage). **Note:** This is a premium feature that should be enabled in your workspace. Please contact your Customer Success Manager/Fireblocks Support for more info.
        - object
        - unknown
      - `rawMessageData` union: Object containing messages for raw signing and the algorithm to be used. The value should be set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)
        - object
        - unknown
      - `contractCallData` union: Hex encoded contract call data as a string. For `CONTRACT_CALL` operations, the value should be set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions.
        - string
        - unknown
      - `programCallData` union: BASE64 encoded Solana unsigned serialized transaction object.
        - string
        - unknown
      - `sorobanCallData` union: For `SOROBAN_CALL` operations, the Soroban contract invocation to execute. Contains a base64 encoded, unsigned Stellar `TransactionEnvelope` in `envelopeXdr`.
        - SorobanCallData: The Soroban contract invocation to execute, for `SOROBAN_CALL` operations. Fireblocks decodes the submitted envelope, determines the footprint, resource fee, sequence number and authorization entries from its own simulation, and signs a transaction it rebuilt from the invocation. Only the contract invocation itself is carried through unchanged.
          - `envelopeXdr` string, byte, required: A base64 encoded, unsigned Stellar `TransactionEnvelope` carrying exactly one `invokeHostFunction` operation that invokes a contract. The API only checks that the value is present. The envelope is decoded and validated after the transaction is created, and a transaction whose envelope fails validation is not signed and ends as `FAILED`. An envelope is rejected if it carries signatures or authorization entries, a memo or a fee-bump wrapper, if its source account is not the Stellar address of the vault account, or if it has no bounded time window. A Stellar transaction cannot exceed 132096 bytes, about 176128 base64 characters.
        - unknown
      - `inputsSelection` union: For UTXO based blockchains, selections of inputs for the transaction. The value should be set to the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)
        - object
        - unknown
      - `allowBaseAssetAddress` union: Transfers to unmanaged wallets only. When true, if the destination doesn't have a whitelisted address for the requested asset, we'll use the destination's whitelisted address of the base asset (e.g., use the ETH address for an ERC-20). If the requested asset's whitelisted address exists, it is used. **Note:** This is a premium feature that should be enabled in your workspace. Please contact your Customer Success Manager or Fireblocks Support for more information.
        - boolean
        - unknown
      - `piiData` union: For exchange compliance (e.g., Binance) and Travel Rule purposes, contains a custom JSON structure with Personally Identifiable Information (PII) relevant to the transaction. This data must be fully encrypted by the sender before being submitted to the Fireblocks API. The recommended encryption method is hybrid encryption using AES-256-GCM for the payload and RSA-OAEP for key exchange, with the recipient exchange's public key. [Learn more](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks)
        - object
        - unknown
    - `utxoSelectionParams` UtxoSelectionParams: For UTXO-based blockchains only. Controls which UTXOs are used for automatic selection. Cannot be used together with extraParameters.inputsSelection.
      - `selectionStrategy` 'AMOUNT_ASC' | 'AMOUNT_DESC': Optional override for the UTXO selection strategy configured at the vault/tenant level.
      - `filters` UtxoSelectionFilters: Narrow the UTXO candidate pool. All specified filters are AND-ed together.
        - `includeAllLabels` string[]: Only include UTXOs that have ALL of these labels.
        - `includeAnyLabels` string[]: Only include UTXOs that have at least one of these labels.
        - `excludeAnyLabels` string[]: Exclude UTXOs that have any of these labels.
        - `address` string: Only include UTXOs from this specific address.
        - `minAmount` string: Minimum UTXO amount in the asset's base unit (e.g., BTC).
        - `maxAmount` string: Maximum UTXO amount in the asset's base unit (e.g., BTC).
      - `inputSelection` UtxoInputSelection: Explicitly control which UTXOs to include or exclude.
        - `inputsToSpend` UtxoInput[]: Force-include specific UTXOs by txHash and index.
          - `txHash` string, required
          - `index` integer, required: The output index (vout)
        - `inputsToExclude` UtxoInput[]: Exclude specific UTXOs from selection.
          - `txHash` string, required
          - `index` integer, required: The output index (vout)
        - `fillFeeForSelectedInputs` boolean: When true and inputsToSpend is provided, automatically add more UTXOs to cover the transaction fee. Requires inputsToSpend.
    - `customerRefId` string: The ID for AML providers to associate the owner of funds with transactions.
    - `travelRuleMessage` TravelRuleCreateTransactionRequest
      - `originatorVASPdid` string: 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.
      - `beneficiaryVASPdid` string: 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.
      - `originatorVASPname` string: The name of the VASP acting as the transaction originator.
      - `beneficiaryVASPname` string: The name of the VASP acting as the transaction beneficiary.
      - `beneficiaryVASPwebsite` string: The website of the VASP acting as the transaction beneficiary.
      - `transactionBlockchainInfo` TravelRuleTransactionBlockchainInfo: Information about the blockchain transaction.
        - `txHash` string: The hash of the transaction
        - `origin` string: The origin address of the transaction
        - `destination` string: The destination address of the transaction
      - `originator` TravelRulePiiIVMS, required: Personal identifiable information related to the transaction
        - `originatorPersons` TravelRulePerson[]: Information about the originator of the transaction
          - `naturalPerson` TravelRuleNaturalPerson
            - `name` TravelRuleNaturalPersonNameIdentifier[]: An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `dateAndPlaceOfBirth` TravelRuleDateAndPlaceOfBirth: Represents the date and place of birth for a natural person
              - …
            - `customerIdentification` string: A unique identifier for the customer within the organization's context. The value must be encrypted.
            - `countryOfResidence` string: The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
          - `legalPerson` TravelRuleLegalPerson
            - `name` TravelRuleLegalPersonNameIdentifier
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: The array of geographic addresses associated with the legal person.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `customerIdentification` string: A unique identifier that identifies the customer in the organization's context. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
            - `countryOfRegistration` string: The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted.
        - `beneficiaryPersons` TravelRulePerson[]: Information about the beneficiary of the transaction
          - `naturalPerson` TravelRuleNaturalPerson
            - `name` TravelRuleNaturalPersonNameIdentifier[]: An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `dateAndPlaceOfBirth` TravelRuleDateAndPlaceOfBirth: Represents the date and place of birth for a natural person
              - …
            - `customerIdentification` string: A unique identifier for the customer within the organization's context. The value must be encrypted.
            - `countryOfResidence` string: The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
          - `legalPerson` TravelRuleLegalPerson
            - `name` TravelRuleLegalPersonNameIdentifier
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: The array of geographic addresses associated with the legal person.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `customerIdentification` string: A unique identifier that identifies the customer in the organization's context. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
            - `countryOfRegistration` string: The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted.
        - `accountNumber` string[]: Beneficiary account number. The value must be encrypted.
      - `beneficiary` TravelRulePiiIVMS, required: Personal identifiable information related to the transaction
        - `originatorPersons` TravelRulePerson[]: Information about the originator of the transaction
          - `naturalPerson` TravelRuleNaturalPerson
            - `name` TravelRuleNaturalPersonNameIdentifier[]: An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `dateAndPlaceOfBirth` TravelRuleDateAndPlaceOfBirth: Represents the date and place of birth for a natural person
              - …
            - `customerIdentification` string: A unique identifier for the customer within the organization's context. The value must be encrypted.
            - `countryOfResidence` string: The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
          - `legalPerson` TravelRuleLegalPerson
            - `name` TravelRuleLegalPersonNameIdentifier
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: The array of geographic addresses associated with the legal person.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `customerIdentification` string: A unique identifier that identifies the customer in the organization's context. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
            - `countryOfRegistration` string: The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted.
        - `beneficiaryPersons` TravelRulePerson[]: Information about the beneficiary of the transaction
          - `naturalPerson` TravelRuleNaturalPerson
            - `name` TravelRuleNaturalPersonNameIdentifier[]: An array of structured name identifiers for the natural person, referencing the TravelRuleNaturalPersonNameIdentifier schema.
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: An array of geographic addresses associated with the natural person, referencing the TravelRuleGeographicAddress schema.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `dateAndPlaceOfBirth` TravelRuleDateAndPlaceOfBirth: Represents the date and place of birth for a natural person
              - …
            - `customerIdentification` string: A unique identifier for the customer within the organization's context. The value must be encrypted.
            - `countryOfResidence` string: The ISO-3166 Alpha-2 country code of the natural person's residence. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
          - `legalPerson` TravelRuleLegalPerson
            - `name` TravelRuleLegalPersonNameIdentifier
              - …
            - `geographicAddress` TravelRuleGeographicAddress[]: The array of geographic addresses associated with the legal person.
              - …
            - `nationalIdentification` TravelRuleNationalIdentification: Represents a national identifier for a person or entity
              - …
            - `customerIdentification` string: A unique identifier that identifies the customer in the organization's context. The value must be encrypted.
            - `customerNumber` string: A distinct identifier that uniquely identifies the customer within the organization. The value must be encrypted.
            - `countryOfRegistration` string: The ISO-3166 Alpha-2 country code where the legal person is registered. The value must be encrypted.
        - `accountNumber` string[]: Beneficiary account number. The value must be encrypted.
      - `encrypted` string: Encrypted data related to the transaction.
      - `protocol` 'IVMS101' | 'TRLight' | 'TRP' | 'OpenVASP' | 'GTR': The protocol used to perform the travel rule.
      - `targetProtocol` string: The target protocol for GTR (Global Travel Rule) transfers.
      - `skipBeneficiaryDataValidation` boolean: Whether to skip validation of beneficiary data.
      - `travelRuleBehavior` boolean: Whether to check if the transaction complies with the travel rule in the beneficiary VASP's jurisdiction.
      - `originatorRef` string: A reference ID related to the originator of the transaction.
      - `beneficiaryRef` string: A reference ID related to the beneficiary of the transaction.
      - `travelRuleBehaviorRef` string: A reference ID related to the travel rule behavior.
      - `originatorProof` TravelRuleOwnershipProof: Ownership proof related to the originator of the transaction.
        - `type` string: The type of ownership proof. Example values: - `eip-191`: Ethereum signature proof - `eip-712`: Ethereum typed data signature proof - `bip-137`: Bitcoin signature proof - `microtransfer`: Microtransaction (Satoshi test) - `screenshot`: Uploaded screenshot of the wallet - `self-declaration`: Checkbox attestation of ownership
        - `proof` string: The cryptographic signature, transaction hash, or other proof depending on the type. Examples: - For `eip-191`: `0x3dd4a17a...ce4a2bcd1b` - For `microtransfer`: The transaction hash `H3V8GXBy39Dz...tr3TSTkY=`
        - `attestation` string: A human-readable statement of wallet ownership. Required for signature proofs and self-declarations. Examples: - `I certify that ETH account 0x896B...0b9b belongs to me.` - `I hereby declare that the blockchain address 0xa437bEed902AF9338B7DEB23848e195d85019510 is under my control.`
        - `address` string: The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ`
        - `wallet_provider` string: The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual`
        - `url` string: The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png`
        - `did` string: The Decentralized Identifier (DID) associated with the ownership proof.
        - `status` string: The status of the ownership proof verification.
        - `confirmed` boolean: Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true`
      - `beneficiaryProof` TravelRuleOwnershipProof: Ownership proof related to the originator of the transaction.
        - `type` string: The type of ownership proof. Example values: - `eip-191`: Ethereum signature proof - `eip-712`: Ethereum typed data signature proof - `bip-137`: Bitcoin signature proof - `microtransfer`: Microtransaction (Satoshi test) - `screenshot`: Uploaded screenshot of the wallet - `self-declaration`: Checkbox attestation of ownership
        - `proof` string: The cryptographic signature, transaction hash, or other proof depending on the type. Examples: - For `eip-191`: `0x3dd4a17a...ce4a2bcd1b` - For `microtransfer`: The transaction hash `H3V8GXBy39Dz...tr3TSTkY=`
        - `attestation` string: A human-readable statement of wallet ownership. Required for signature proofs and self-declarations. Examples: - `I certify that ETH account 0x896B...0b9b belongs to me.` - `I hereby declare that the blockchain address 0xa437bEed902AF9338B7DEB23848e195d85019510 is under my control.`
        - `address` string: The wallet address being verified. Examples: - For Ethereum: `0x896B...0b9b` - For Bitcoin: `1442...dxhsQ`
        - `wallet_provider` string: The wallet provider or method used for verification. Examples: - For Metamask: `Metamask` - For manual signature: `manual`
        - `url` string: The URL for the uploaded screenshot (for `screenshot` proof types only). Example: `https://example.com/uploaded_image.png`
        - `did` string: The Decentralized Identifier (DID) associated with the ownership proof.
        - `status` string: The status of the ownership proof verification.
        - `confirmed` boolean: Whether the user confirmed ownership of the wallet (for `self-declaration` proofs). Example: `true`
      - `beneficiaryDid` string: 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, a new random DID is generated for every transaction.
      - `originatorDid` string: 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, a new random DID is generated for every transaction.
      - `isNonCustodial` boolean: Indicates if the transaction involves a non-custodial wallet.
    - `travelRuleMessageId` string: The ID of the travel rule message from any travel rule provider. Used for travel rule supporting functionality to associate transactions with existing travel rule messages.
    - `autoStaking` boolean: This feature is no longer supported.
    - `networkStaking` union: This feature is no longer supported.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `cpuStaking` union: This feature is no longer supported.
      - string: Numeric string (recommended)
      - number: Number (deprecated)
    - `useGasless` boolean: - Override the default gasless configuration by sending true\false
    - `configurations` TransactionConfigurations
      - `expiresAfterSeconds` number: The number of seconds the transaction is valid for before it expires. After the specified duration, the transaction will expire if it has not been broadcasted.
  - `isSrcCollateral` boolean: optional

## Response `200`

A transaction object

- CreateTransactionResponse
  - `id` string: The ID of the transaction.
  - `status` string: The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses)
  - `systemMessages` SystemMessageInfo[]
    - `type` 'WARN' | 'BLOCK'
    - `message` string: 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.

## Other responses

- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
