REST broadcasts create persisted transaction records that Para tracks to terminal status on-chain. Records are queryable, auditable, and emit webhooks when they confirm or fail — no partner-side indexer required. Rows are written forDocumentation Index
Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/wallets/{walletId}/transfer broadcasts and for POST /v1/wallets/{walletId}/sign-transaction when broadcast: true. Sign-only calls do not write rows.
Status Lifecycle
| Status | Meaning |
|---|---|
pending | Record inserted; broadcast not yet attempted. |
submitted | RPC accepted the signed bytes. Monitor is running. Not terminal. |
confirmed | Included in a block, not reverted. blockNumber and blockHash are populated. |
reverted | Included on-chain but execution failed (EVM status=0 or Solana signature error). Terminal. |
failed | Never broadcast, or broadcast was rejected by the RPC. failureStage identifies where. Terminal. |
Partner code must treat unknown status values as non-terminal. Para may add new statuses (
finalized, replaced) in a later release without bumping the API version.Response Shape
Calls that broadcast return atransactionId field and set an x-transaction-id response header. Use either to look up the record afterward.
For
sign-transaction, omitted broadcast is also sign-only — no record is written and no transactionId is returned.x-transaction-id and includes transactionId in the JSON body. Failures after signing also include signedTransaction. Use the transaction history record’s failureStage and failureCode fields for persisted failure details.
Reading Transaction History
List transactions for a wallet
?status=. Filter by source operation via ?intentKind=transfer or ?intentKind=sign_transaction. Paginate via ?cursor= using the opaque cursor returned in each response. Results are ordered by createdAt DESC.
Look up a single transaction
404 with an identical body to missing records.
Record Fields
Each record includesintentKind, either transfer or sign_transaction.
For EVM sign_transaction records, Para stores chainId, to, and value when value was present in the request. tokenAddress is absent. Para does not decode calldata.
For Solana sign_transaction records, to, value, and tokenAddress are absent because Para does not decode arbitrary Solana instructions.
Polling Recipe
When webhooks aren’t practical, poll the record until it leaves thesubmitted state.
Webhooks
Subscribe to two event types from the Developer Portal to receive terminal-state notifications automatically:| Event | When it fires |
|---|---|
rest.transaction.confirmed | Transaction included in a block without reverting. |
rest.transaction.failed | Transaction reverted on-chain, or monitor detected a terminal RPC failure. |
rest.transaction.confirmed:
rest.transaction.failed mirrors the shape and adds status (reverted or failed), plus optional failureStage, failureCode, and failureMessage fields.
Failure Fields
Whenstatus = failed, failureStage describes where the pipeline broke:
| Stage | Meaning |
|---|---|
mpc_sign | The MPC signing ceremony errored before a signature was produced. |
signature_apply | The signature could not be attached to the transaction. |
signer_verify | The recovered signer address did not match the wallet’s public address (EVM only). |
broadcast | The RPC node rejected the signed bytes (e.g. INSUFFICIENT_NATIVE_BALANCE, EXECUTION_FAILED). |
monitor_timeout | The signed transaction was broadcast but didn’t reach a terminal on-chain state within Para’s 30-minute monitor window. The transaction may still confirm later — query the chain directly to verify. |
status = reverted, the transaction reached the chain and executed with a revert — blockNumber and blockHash are populated, failureStage is absent, and failureMessage contains any error detail surfaced by the monitor.
Broadcast Error Messages
REST/transfer now sources broadcast-failure messages from Para’s shared broadcast helper rather than passing through raw ethers.js strings. If code parses the previous raw string format, update it to read failureCode (e.g. INSUFFICIENT_NATIVE_BALANCE, EXECUTION_FAILED) from the transaction record or failure webhook instead.
Retention
Both/transfer broadcasts and sign-transaction calls with broadcast: true write rows. Retention remains deferred until the rest_transfers table reaches an agreed large-row or disk threshold.