Assembling a Bitcoin transaction
Solana, EVM, and Tron signing return a finished transaction you can broadcast directly. Bitcoin signing returns one signature per input, so there is one extra step: turn those signatures into a signed transaction.POST /api/txs/finalize does this for you, so you never implement Bitcoin signature encoding.
Pass the unsigned transaction (from prepare-sign), the per-input signatures (from signing), and the wallet’s public key. The endpoint returns the signed transaction hex, ready for the broadcast step below.
Finalize is Bitcoin-only, and only needed when you sign with the WalletSuite SDK (which returns per-input signatures). If you sign Bitcoin with your own signer, it already produces a finished transaction — skip finalize and broadcast it directly.
Broadcast paths
You have two ways to put a signed transaction on-chain. They are interchangeable, so pick whichever fits your stack.Your own RPC
Submit the raw transaction through your existing node or provider. You own the connection and the response.WalletSuite API
POST the signed transaction to WalletSuite and we submit it to the right network. Pass the chain and the raw signed transaction. The endpoint returns the transaction hash.
Authenticate with your API key in the x-api-key header. See Credentials & Authentication for keys and Rate limits for tier constraints.
data.hash:
chain is the lowercase chain identifier (for example base, ethereum, tron). signedTx is the raw output from the signing call. Both fields are required.A
POST send can return ok: false for insufficient funds, a nonce that is too low or stale, or an already-known transaction. Re-fetch the nonce and gas with prepare-sign, then re-sign and resend.Tracking status
Once a transaction is on-chain, poll its status by hash. Pass thechain as a query parameter (it defaults to ethereum).
The status endpoint returns the status fields directly at the top level, not under a
data field. Read status straight off the parsed response. This is different from the send call above, which wraps its result in data.Transaction states
A transaction moves through a small set of states from submission to a final result.PENDING does not mean the transaction failed. The network has not included it in a block yet, which can take a while under congestion or a low fee. Keep polling until you see a terminal state (SUCCEEDED or FAILED).Incoming transfers
Polling tells you about a transaction you sent. For funds arriving at an address you watch, do not poll. Subscribe to a webhook instead. WalletSuite pushes a signed event to your endpoint the moment an inbound transfer touches a watched address. See Webhooks Overview to get started, and Verify signatures for verification.Webhooks are a trigger, not the final word. Confirm authoritative state with the status endpoint before you move money or release goods.
Next steps
Signing
Sign transactions across 84 chains with one wallet and a few lines of code.
Webhooks Overview
React to inbound transfers in real time, no polling required.