Transactions

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,

post/transactions

Request

Headers

X-End-User-Wallet-Idstring uuid

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

Idempotency-Keystring

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.

Request body

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

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

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

notestring

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

externalTxIdstring

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.

feeCurrencystring

For Tempo-based transactions only, the asset used to pay the transaction's network fee, as an asset ID (see supported assets). For any other blockchain, this value is ignored. This feature is currently in beta and might be subject to changes.

assetIdstring

The ID of the asset to transfer, for TRANSFER, MINT or BURN operations. See the list of supported assets and their IDs on Fireblocks.

treatAsGrossAmountboolean

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

forceSweepboolean

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.

failOnLowFeeboolean

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.

maxFeestring

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.

maxTotalFeestring

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

replaceTxByHashstring

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.

customerRefIdstring

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

travelRuleMessageIdstring

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.

autoStakingboolean

This feature is no longer supported.

useGaslessboolean
  • Override the default gasless configuration by sending true\false

Response

A transaction object

idstring

The ID of the transaction.

statusstring

The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses)

Example response

{
  "systemMessages": [
    {
      "message": "Slow transaction processing. Outgoing transactions might be stuck."
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.