Overview
These substatuses apply to transactions in the Broadcasting primary status. They provide visibility into each step as Fireblocks submits your signed transaction to the blockchain network.
Broadcasting substatuses and the broadcastingStatusInfo object are available through the Get Transaction by ID API endpoint. To monitor broadcasting progress, poll the endpoint directly.
Note
Broadcasting substatuses are available through the API only. Webhook notifications do not include Broadcasting substatuses at this time.
Substatus flow
QUEUED_FOR_BROADCAST → SENDING_TO_NODE → TRANSIENT_NODE_ERROR_RETRY → RETRY_LIMIT_EXCEEDED
When a step succeeds, the transaction advances to its next state. Not every transaction passes through all substatuses: a transaction that broadcasts successfully moves forward from SENDING_TO_NODE without entering the retry or limit-exceeded states.
QUEUED_FOR_BROADCAST
The QUEUED_FOR_BROADCAST substatus indicates the transaction has been received by the Fireblocks broadcasting infra and is queued to be picked up for the first RPC call to the blockchain node. This is a short-lived transient state that requires no action.
API response example
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"assetId": "USDC_ETH_TEST5_6ZNT",
"status": "BROADCASTING",
"subStatus": "QUEUED_FOR_BROADCAST",
"txHash": "0x000...000",
"operation": "TRANSFER",
"nonce": "34"
}SENDING_TO_NODE
The SENDING_TO_NODE substatus indicates Fireblocks is making its first RPC call to the blockchain node. No action is required.
If the node responds successfully, the transaction advances to its next state. A non-terminal error moves the substatus to TRANSIENT_NODE_ERROR_RETRY. A terminal error moves the transaction to Failed with an appropriate substatus.
API response example
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"assetId": "USDC_ETH_TEST5_6ZNT",
"status": "BROADCASTING",
"subStatus": "SENDING_TO_NODE",
"txHash": "0x000...000",
"operation": "TRANSFER",
"nonce": "35"
}TRANSIENT_NODE_ERROR_RETRY
The TRANSIENT_NODE_ERROR_RETRY substatus indicates the blockchain node rejected the transaction with a non-terminal error and Fireblocks is actively retrying. The broadcastingStatusInfo object provides the error type, error code, and an estimated window for how long retries continue.
Check the errorCode in broadcastingStatusInfo to understand the cause and take action before retries are exhausted. Use estimatedRetryDeadline (epoch milliseconds) to determine approximately how long Fireblocks continues retrying before stopping.
API response example
This example shows a retry triggered by an INSUFFICIENT_FUNDS error:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"assetId": "USDC_ETH_TEST5_6ZNT",
"status": "BROADCASTING",
"subStatus": "TRANSIENT_NODE_ERROR_RETRY",
"txHash": "0x000...000",
"operation": "TRANSFER",
"nonce": "35",
"broadcastingStatusInfo": {
"estimatedRetryDeadline": 1776079929836,
"errorType": "NODE_ERROR",
"errorCode": "INSUFFICIENT_FUNDS"
}
}RETRY_LIMIT_EXCEEDED
The RETRY_LIMIT_EXCEEDED substatus indicates Fireblocks exhausted all retry attempts and stopped submitting the transaction to the network. The broadcastingStatusInfo object contains the final error details from the last attempt. The estimatedRetryDeadline field is absent at this substatus because retries are no longer occurring.
This substatus is uncommon under normal conditions. The transaction does not progress on its own. Submit a Boost (RBF) transaction using the same nonce with corrected parameters (e.g., resolved funding or an adjusted fee). Fireblocks automatically handles the status tracking of both the original and replacement transactions.
API response example
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"assetId": "USDC_ETH_TEST5_6ZNT",
"status": "BROADCASTING",
"subStatus": "RETRY_LIMIT_EXCEEDED",
"txHash": "0x000...000",
"operation": "TRANSFER",
"nonce": "35",
"broadcastingStatusInfo": {
"errorType": "NODE_ERROR",
"errorCode": "INSUFFICIENT_FUNDS"
}
}broadcastingStatusInfo field reference
The broadcastingStatusInfo object is present only on the TRANSIENT_NODE_ERROR_RETRY and RETRY_LIMIT_EXCEEDED substatuses.
| Field | Type | Present on | Description |
|---|---|---|---|
estimatedRetryDeadline |
number (epoch ms) |
TRANSIENT_NODE_ERROR_RETRY only |
Estimated time of the final retry attempt. Not present on RETRY_LIMIT_EXCEEDED. |
errorType |
string | Both | Error category. Possible values: NODE_ERROR, NETWORK_ERROR. |
errorCode |
string | Both | Mapped error code from the node. Examples: INSUFFICIENT_FUNDS, NONCE_TOO_LOW. |