---
title: "Create a Tempo transfer transaction"
method: POST
path: "/operations/tempo/transfer"
tags: ["Tempo (Beta)"]
---

# Create a Tempo transfer transaction

`POST /operations/tempo/transfer`

## Request

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

Creates a new Tempo transfer transaction.

## Headers

- `Idempotency-Key` string

## Request body

- CreateTempoTransferRequest: Tempo-specific fields.
  - `note` string: A custom note that can be associated with the transaction.
  - `externalTxId` string: Unique ID provided by the customer, used to identify the transaction.
  - `feeCurrency` string: The asset ID used to pay the transaction fee, if different from assetId. Maps to FeeParams.feeCurrency. Must be a valid fee token for `assetId` (e.g. a TIP-20 gas token for the base asset); an invalid pairing surfaces as 400 INVALID_FEE_CURRENCY_PARAM.
  - `assetId` string, required: The ID of the asset to transfer. Must be a non-deprecated asset supported on a Tempo-eligible blockchain; an unknown, deprecated, or unsupported asset surfaces as 400 UNSUPPORTED_ASSET.
  - `source` TempoTransferSource, required: The transfer's source.
    - `type` 'VAULT_ACCOUNT' | 'EMBEDDED_WALLET', required: The kind of source.
    - `id` string: Required when type is VAULT_ACCOUNT — the vault account ID.
    - `walletId` string: Required when type is EMBEDDED_WALLET.
  - `destination` TempoTransferDestination: The transfer's destination. Mutually exclusive with `destinations`.
    - `type` 'VAULT_ACCOUNT' | 'ONE_TIME_ADDRESS' | 'UNMANAGED_WALLET', required: The kind of destination.
    - `id` string: Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET.
    - `oneTimeAddress` OneTimeAddress
      - `address` string, required
      - `tag` string
    - `memo` string: Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive data in it. - A memo is currently supported only for a transfer with a single destination
  - `amount` string: The amount to transfer, as a numeric string. Required when `destination` is set; must be omitted when `destinations` is set (each entry carries its own amount instead).
  - `treatAsGrossAmount` boolean: If true, the specified amount includes the fee (fee is deducted from amount).
  - `feeLevel` 'LOW' | 'MEDIUM' | 'HIGH': The fee level to use, mutually exclusive with an explicit custom fee.
  - `travelRuleMessage` string: Beta. An opaque travel-rule payload.
  - `travelRuleMessageId` string: Beta. An identifier of a TravelRule message, already sent to the TravelRule provider.
  - `useGasless` boolean: Opt in to fee-payer-sponsored (gasless) transfer.
  - `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.
  - `maxFeePerGas` string: The maximum total fee per gas the sender is willing to pay, in wei.
  - `maxPriorityFeePerGas` string: The maximum priority fee (tip) per gas the sender is willing to pay, in wei.
  - `destinations` TempoTransferDestinationItem[]: Multiple destinations for a single transfer. Mutually exclusive with `destination`.
    - `amount` string: The amount to transfer to this destination, as a numeric string.
    - `destination` TempoTransferDestination: The transfer's destination. Mutually exclusive with `destinations`.
      - `type` 'VAULT_ACCOUNT' | 'ONE_TIME_ADDRESS' | 'UNMANAGED_WALLET', required: The kind of destination.
      - `id` string: Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET.
      - `oneTimeAddress` OneTimeAddress
        - `address` string, required
        - `tag` string
      - `memo` string: Tempo TIP-20 memo, sent on-chain with the transfer to this destination. Exactly 32 bytes once UTF-8 encoded. NOTES: - The memo is public and permanent on-chain, so do not put sensitive data in it. - A memo is currently supported only for a transfer with a single destination
    - `travelRuleMessageId` string: Beta. An identifier of a TravelRule message, already sent to the TravelRule provider.
    - `customerRefId` string: The ID for AML providers to associate the owner of funds with transactions.
  - `failOnLowFee` boolean: Beta. If true, fail the transaction rather than sending it with a low fee.
  - `gasLimit` string: The gas limit for the transaction.
  - `replaceTxByHash` string: Beta. The hash of the EVM transaction to replace (RBF).
  - `feePayerAccountId` string: Vault account ID of the fee payer sponsoring this transfer.
  - `nonceStrategy` 'SEQUENTIAL' | 'USER_DEFINED_LANE' | 'EXPIRING': Tempo's 2-dimensional nonce strategy: `SEQUENTIAL` runs under a single nonce lane (lane 0); `USER_DEFINED_LANE` runs in parallel under a specified lane (1–16), and requires `nonceLane`; `EXPIRING` marks the transaction with an expiry of up to 5 minutes (Tempo-defined) and does not use `nonceLane`.
  - `nonceLane` integer: The nonce lane to use, 1–16. Required and only meaningful when nonceStrategy is USER_DEFINED_LANE; not used for SEQUENTIAL or EXPIRING.

## Response `200`

Transaction created.

- CreateTempoTransferResponse
  - `id` string: The Fireblocks transaction ID.
  - `status` string: The current status of the transaction.

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