Skip to main content
POST
/
api
/
v1
/
transfers
/
{transferId}
/
confirm-broadcast
curl -X POST /api/v1/transfers/42/confirm-broadcast \
  -H "x-api-key: mh_live_abc123..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "routeInitSignatures": [],
    "keeperFundingSignature": "7hGpRt4bJm2Kx9Nv5aZqYe3uLk8dQ1P..."
  }'
{
  "transfer": {
    "id": 42,
    "status": "processing"
  }
}

Documentation Index

Fetch the complete documentation index at: https://dev-docs.multihopper.com/llms.txt

Use this file to discover all available pages before exploring further.

After signing and broadcasting the prepared transactions to Solana, call this endpoint to record the signatures. Once the full bundle is recorded the transfer advances to processing and the keeper network takes over. This endpoint is resumable and called twice in the normal flow:
  1. Immediately after keeperFundingTx — call with just keeperFundingSignature and an empty routeInitSignatures: []. This prevents the keeper from being double-funded if deployment is later resumed.
  2. After all remaining transactions — call with routeInitSignatures, orchestratorInitSignature, and sessionInitSignatures.

Path parameters

transferId
integer
required
The internal transfer ID.

Request body

routeInitSignatures
array
required
Base58 signatures for each routeInitTxs entry. Pass an empty array [] on the intermediate call (after keeper funding only).
keeperFundingSignature
string
Base58 signature for keeperFundingTx. Required whenever /prepare emitted a keeperFundingTx — omitting it returns MH_039.
orchestratorInitSignature
string
Base58 signature for orchestratorInitTx. Omit when that field was null.
sessionInitSignatures
array
Base58 signatures for each sessionInitTxs entry. Omit when empty.

Response

transfer
object
Updated transfer object. status becomes processing once the full bundle is recorded.
curl -X POST /api/v1/transfers/42/confirm-broadcast \
  -H "x-api-key: mh_live_abc123..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "routeInitSignatures": [],
    "keeperFundingSignature": "7hGpRt4bJm2Kx9Nv5aZqYe3uLk8dQ1P..."
  }'
{
  "transfer": {
    "id": 42,
    "status": "processing"
  }
}