Create a new transaction

Creates a new transaction. This endpoint can be used for regular Transfers, Contract Calls, Raw & Typed message signing. - For Transfers, the required parameters are: assetId, source, destination and amount. - For Contract Calls, the required parameters are: operation.CONTRACT_CALL, assetId (Base Asset), source,

Body Params
string
enum
Defaults to TRANSFER
  • 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 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.

  • 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.

  • 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.

  • APPROVE - Enables the approve function for a smart contract or wallet to withdraw from a designated wallet. Learn more.

  • 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.

string

Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace.

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 endpoint to validate whether these transactions have been processed.

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.

source
object

The source of the transaction.

destination
object

The destination of the transaction.

destinations
array of objects

For UTXO based blockchains, you can send a single transaction to multiple destinations.

destinations

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.

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.

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.

string
enum

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.

Allowed:

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.

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.

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.

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.

string

For BTC-based blockchains only. The maximum fee (in the units of the fee-paying asset) that should be paid for the transaction.

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.

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.

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

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
object

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. The inputs can be retrieved from the Retrieve Unspent Inputs endpoint.

For RAW operations, add the key rawMessageData with the value set to the raw message data structure.

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

Note: rawMessageData, contractCallData, and inputsSelection cannot be used together in the same call.

string

The ID for AML providers to associate the owner of funds with transactions.

travelRuleMessage
object
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.

boolean
deprecated

This feature is no longer supported.

deprecated

This feature is no longer supported.

deprecated

This feature is no longer supported.

boolean
  • Override the default gasless configuration by sending true\false
Headers
uuid

Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.

string

A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.

Responses

Language
URL
LoadingLoading…
Response
Choose an example:
application/json