prepareFlowSigning
Locks in the quote and transitions the flow to thesigning state. Returns the flow with quote.signingPayload containing the data to sign.
Most integrations should use
submitFlowTransaction instead, which calls prepareFlowSigning automatically. Use this function directly only when you need to handle signing and broadcasting yourself (e.g., server-side signing with a custody wallet).Usage
Parameters
| Parameter | Type | Description |
|---|---|---|
flowId | string | The flow ID. |
assertBalanceForGasCost | boolean (optional) | Verify the wallet has enough for gas. Returns 422 if insufficient. Default: false. |
assertBalanceForTransferAmount | boolean (optional) | Verify the wallet has enough for the transfer. Returns 422 if insufficient. Default: false. |
Returns
Promise<Flow> — the flow with executionState: 'signing' and quote.signingPayload populated.
The signing payload structure depends on the chain:
| Chain | Fields |
|---|---|
| EVM | evmTransaction (to, data, value, gasLimit) and optional evmApproval (tokenAddress, spenderAddress, amount) |
| SOL, SUI | serializedTransaction (base64-encoded) |
| BTC | psbt (base64-encoded unsigned PSBT) |
| TRON | tronTransaction (rawDataHex, to, value) |
Examples
Prepare with balance assertions
Manual sign and broadcast flow
Related
- Fireblocks Flow JavaScript SDK guide - End-to-end flow guide
submitFlowTransaction- Recommended: handles prepare, sign, and broadcastbroadcastFlow- Record the broadcast- Signing the transaction by chain - Chain-specific signing examples