Fireblocks Tempo (Beta) API

The Tempo (Beta) API from Fireblocks — 1 operation(s) for tempo (beta).

Operations 1

POST /operations/tempo/transfer Create a Tempo transfer transaction #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fireblocks:fireblocks-tempo-beta-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fireblocks-tempo-beta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fireblocks Tempo (Beta) API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.


    - Visit our website for more information: Fireblocks Website

    - Visit our developer docs: Fireblocks DevPortal'
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
tags:
- name: Tempo (Beta)
paths:
  /operations/tempo/transfer:
    post:
      summary: Create a Tempo transfer transaction
      description: Creates a new Tempo transfer transaction.
      tags:
      - Tempo (Beta)
      operationId: createTempoTransfer
      x-rate-limit-category: async
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTempoTransferRequest'
      responses:
        '200':
          description: Transaction created.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTempoTransferResponse'
        default:
          $ref: '#/components/responses/Error'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<CreateTempoTransferResponse>> = fireblocks.tempoBeta.createTempoTransfer(tempoBetaApiCreateTempoTransferRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<CreateTempoTransferResponse>> response = fireblocks.tempoBeta().createTempoTransfer(createTempoTransferRequest, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.tempo_beta.create_tempo_transfer(create_tempo_transfer_request, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<CreateTempoTransferResponse>> = fireblocks.tempoBeta.createTempoTransfer(tempoBetaApiCreateTempoTransferRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<CreateTempoTransferResponse>> response = fireblocks.tempoBeta().createTempoTransfer(createTempoTransferRequest, idempotencyKey);
      - lang: Python
        source: response = fireblocks.tempo_beta.create_tempo_transfer(create_tempo_transfer_request, idempotency_key);
components:
  schemas:
    OneTimeAddress:
      type: object
      properties:
        address:
          type: string
        tag:
          type: string
      required:
      - address
    TempoTransferSource:
      type: object
      description: The transfer's source.
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - VAULT_ACCOUNT
          - EMBEDDED_WALLET
          description: The kind of source.
          example: VAULT_ACCOUNT
        id:
          type: string
          description: Required when type is VAULT_ACCOUNT — the vault account ID.
          example: '0'
        walletId:
          type: string
          description: Required when type is EMBEDDED_WALLET.
          example: wallet-1
      example:
        type: VAULT_ACCOUNT
        id: '0'
    TempoTransferDestinationItem:
      type: object
      description: One destination in a multi-destination transfer. `destination.type` is narrowed the same way as the top-level `destination` field.
      properties:
        amount:
          type: string
          description: The amount to transfer to this destination, as a numeric string.
          example: '0.01'
        destination:
          $ref: '#/components/schemas/TempoTransferDestination'
        travelRuleMessageId:
          type: string
          description: Beta. An identifier of a TravelRule message, already sent to the TravelRule provider.
          example: trm_12345678-1234-1234-1234-123456789012
        customerRefId:
          type: string
          description: The ID for AML providers to associate the owner of funds with transactions.
          example: abcdef
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    TransactionConfigurations:
      type: object
      properties:
        expiresAfterSeconds:
          type: number
          description: 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.
          minimum: 300
          maximum: 86400
          example: 3600
    CreateTempoTransferResponse:
      type: object
      properties:
        id:
          type: string
          description: The Fireblocks transaction ID.
          example: d5c9a1b2-3e4f-4a5b-8c6d-7e8f9a0b1c2d
        status:
          type: string
          description: The current status of the transaction.
          example: SUBMITTED
    TempoTransferDestination:
      type: object
      description: The transfer's destination. Mutually exclusive with `destinations`.
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - VAULT_ACCOUNT
          - ONE_TIME_ADDRESS
          - UNMANAGED_WALLET
          description: The kind of destination.
          example: VAULT_ACCOUNT
        id:
          type: string
          description: Required when type is VAULT_ACCOUNT or UNMANAGED_WALLET.
          example: '1'
        oneTimeAddress:
          $ref: '#/components/schemas/OneTimeAddress'
      example:
        type: VAULT_ACCOUNT
        id: '1'
    CreateTempoTransferRequest:
      description: Request body for creating a Tempo transfer transaction.
      allOf:
      - type: object
        description: Chain-agnostic core fields.
        required:
        - assetId
        - source
        properties:
          note:
            type: string
            description: A custom note that can be associated with the transaction.
            example: Created via API
          externalTxId:
            type: string
            description: Unique ID provided by the customer, used to identify the transaction.
            example: unique-id-123
          feeCurrency:
            type: string
            x-fb-entity: asset
            description: 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.
            example: PATHUSD_TEMPO_54V8
          assetId:
            type: string
            x-fb-entity: asset
            description: 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.
            example: PATHUSD_TEMPO_54V8
          source:
            $ref: '#/components/schemas/TempoTransferSource'
          destination:
            $ref: '#/components/schemas/TempoTransferDestination'
          amount:
            type: string
            description: 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).
            example: '0.01'
          treatAsGrossAmount:
            type: boolean
            description: If true, the specified amount includes the fee (fee is deducted from amount).
            example: false
          feeLevel:
            type: string
            enum:
            - LOW
            - MEDIUM
            - HIGH
            description: The fee level to use, mutually exclusive with an explicit custom fee.
            example: MEDIUM
          travelRuleMessage:
            type: string
            description: Beta. An opaque travel-rule payload.
            example: '{}'
          travelRuleMessageId:
            type: string
            description: Beta. An identifier of a TravelRule message, already sent to the TravelRule provider.
            example: trm_12345678-1234-1234-1234-123456789012
          useGasless:
            type: boolean
            description: Opt in to fee-payer-sponsored (gasless) transfer.
            example: true
          configurations:
            $ref: '#/components/schemas/TransactionConfigurations'
      - description: EVM-specific fields.  maxFeePerGas/maxPriorityFeePerGas are EIP-1559 fee parameters.
        allOf:
        - type: object
          description: EIP-1559 fee parameters.
          properties:
            maxFeePerGas:
              type: string
              description: The maximum total fee per gas the sender is willing to pay, in wei.
              example: '50'
            maxPriorityFeePerGas:
              type: string
              description: The maximum priority fee (tip) per gas the sender is willing to pay, in wei.
              example: '2'
        - type: object
          properties:
            destinations:
              type: array
              items:
                $ref: '#/components/schemas/TempoTransferDestinationItem'
              description: Multiple destinations for a single transfer. Mutually exclusive with `destination`.
              example:
              - destination:
                  type: VAULT_ACCOUNT
                  id: '2'
                amount: '0.01'
            failOnLowFee:
              type: boolean
              description: Beta. If true, fail the transaction rather than sending it with a low fee.
              example: false
            gasLimit:
              type: string
              description: The gas limit for the transaction.
              example: '21000'
            replaceTxByHash:
              type: string
              description: Beta. The hash of the EVM transaction to replace (RBF).
              example: '0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8'
            feePayerAccountId:
              type: string
              description: Vault account ID of the fee payer sponsoring this transfer.
              example: '3'
      - type: object
        description: Tempo-specific fields.
        properties:
          nonceStrategy:
            type: string
            enum:
            - SEQUENTIAL
            - USER_DEFINED_LANE
            - EXPIRING
            description: '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`.'
            example: SEQUENTIAL
          nonceLane:
            type: integer
            minimum: 1
            maximum: 16
            description: The nonce lane to use, 1–16. Required and only meaningful when nonceStrategy is USER_DEFINED_LANE; not used for SEQUENTIAL or EXPIRING.
            example: 1
          memo:
            type: string
            description: Beta. Tempo TIP-20 memo (max 32 bytes).
            example: invoice-1234
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: 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.
      required: false
      schema:
        type: string
  headers:
    X-Request-ID:
      schema:
        type: string
      description: Unique ID correlated to the API request. Please provide it in any support ticket you create or on Github issues related to Fireblocks SDKs
  securitySchemes:
    bearerTokenAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
x-readme:
  explorer-enabled: false
  samples-languages:
  - curl
  - javascript
  - python
x-provenance:
  method: harvested
  publisher: Fireblocks
  source: https://swagger.fireblocks.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)