Skip to main content
A transfer moves an asset from a source to one or more destinations and is the default operation of the Create a new transaction endpoint. The examples on this page assume an initialised client as described in Choose an interface and use the testnet asset ETH_TEST5 (Ethereum Sepolia), so you can try each one without moving real funds. To protect a request against duplicates, set a unique externalTxId on every request, as described in Transaction idempotency. The full list of fields, enums and limits is in the API reference.

Vault account to vault account

This example sends 0.001 ETH_TEST5 from one vault account to another, which is the most common transfer. Replace the placeholders with your own vault account IDs.
The remaining examples on this page change only the source or destination, so they show just the request and the call, and they rely on the same imports as the example above.

Send to a one-time address

A one-time address sends to a blockchain address that is not saved in your workspace, so it is not covered by your allowlist. Put the address in oneTimeAddress, and add a tag only for assets that use a memo or destination tag.

Send to an allowlisted wallet

To send to a wallet saved in your workspace, set the destination type to INTERNAL_WALLET, EXTERNAL_WALLET or CONTRACT and pass the wallet’s id. The example uses an external wallet, and the other two wallet types differ only in the type value and the ID. See Allowlist addresses for how these wallets are created and Sources and destinations for the peer types.

Send to an exchange account or network connection

To send to a connected exchange account, use the destination type EXCHANGE_ACCOUNT with the exchange account’s ID. To send to a Fireblocks Network connection, use NETWORK_CONNECTION with the connection’s ID. The example shows an exchange account, and Connect to exchanges and fiat providers explains how to connect the accounts and find their IDs.

Send from a Wallet Pool

A Wallet Pool groups vault accounts under one logical source, so you name the pool as the source and Fireblocks selects a member vault account to send from. The pool is set up as described in Wallet Pools, which also covers policy setup and reconciliation.

Send to multiple destinations

UTXO-based blockchains such as Bitcoin can send a single transaction to several destinations. Instead of a single destination, pass a destinations array in which each entry has its own amount and destination. The example sends to two one-time addresses on the Bitcoin testnet (BTC_TEST). To choose which UTXOs fund the transaction, see Select UTXOs for a transaction.

Fees and amounts

These optional fields on the request control the fee and how the amount is treated, and each is described in full on the Create a new transaction page.
  • feeLevel applies to UTXO, EVM-based and Solana blockchains and sets the fee level to pay, with the values LOW, MEDIUM and HIGH.
  • fee is an alternative to feeLevel that gives the fee per byte for UTXO-based blockchains, or the transaction fee for Ripple.
  • priorityFee is an alternative to feeLevel for Ethereum-based blockchains and sets the EIP-1559 priority fee in Gwei.
  • maxFee is the maximum fee (gas price or fee per byte) you are willing to pay when the current feeLevel value is higher.
  • failOnLowFee makes the transaction fail instead of getting stuck without confirmations when the current MEDIUM fee level is higher than the fee specified in the transaction.
  • treatAsGrossAmount deducts the fee from the requested amount, and it is only considered when the asset is a base asset such as ETH, so it is ignored for assets such as USDC.
To see what a transaction will cost before you create it, use Estimate a transaction fee. The following example combines several of these fields in one request.