Sign and track transactions
Every blockchain step in Sinbad follows the same pattern, whichever wallet the customer uses: Sinbad prepares a transaction, the customer’s wallet signs it, you submit it through one API, and you track it until it is confirmed. This page describes the pattern. Wallets and gas has the signing, fee and retry details.
The four steps
For transactionHash, report the hash of the transaction that was included in a block, as a block explorer shows it. Keep the same Idempotency-Key when you retry. No separate reporting endpoint exists.
Track confirmed funding
Poll the breakdown, or consume signed trade webhooks. A breakdown moves from AWAITING_FUNDING to CONFIRMED after Sinbad verifies the escrow events on chain. The status of a transaction attempt is a separate value.
202means Sinbad accepted the submission, not that the trade is funded.- After the signing deadline passes, keep tracking until the breakdown shows confirmed funding or an on-chain
EXPIRED. Confirmation can finish after the deadline. REVIEW_REQUIREDneeds investigation. Contact Sinbad and do not submit again.- Track the submitted prepared transaction as well as the breakdown.
Rules that affect every submission
- An
Idempotency-Keyis 8 to 128 characters fromA-Z,a-z,0-9,_and-. It is bound to the prepared transaction and to the transaction you send. Reusing it with a different transaction returns409 CONFLICT. - Before Sinbad sends signed bytes, it simulates the call. If the simulation fails, the response is a generic
503 UPSTREAM_ERRORwith no reason. Retrying the same call does not help. Check the customer’s balance, allowance and trade state. - If the wallet has too little POL for the network fee, the response is
400 INSUFFICIENT_BALANCEwithdetails.kind: "NATIVE_GAS"and the required, current and missing amounts. A stale wallet nonce returns409 CONFLICTfirst.
Next steps
- Wallets and gas for building transactions, fees and recovery.
- Trade lifecycle for what happens after funding.