Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Transactions

Submit Transactions (Batch)

POST /v1/transactions

Submit one or more signed transactions for broadcasting.

Request

{
  "chainId": 42431,
  "transactions": ["0x...signed_tx_1...", "0x...signed_tx_2..."]
}
FieldTypeRequiredDescription
chainIdnumberYesTarget chain ID
transactionsstring[]YesArray of hex-encoded signed transactions

Response

{
  "results": [
    {
      "ok": true,
      "txHash": "0x...",
      "sender": "0x...",
      "nonceKey": "0x...",
      "nonce": 5,
      "groupId": "0x...",
      "eligibleAt": 1700000000,
      "expiresAt": 1700003600,
      "status": "queued",
      "alreadyKnown": false
    }
  ]
}
FieldTypeDescription
resultsarrayArray of results, one per submitted transaction
results[].okbooleanWhether submission succeeded
results[].txHashstring?Transaction hash (hex)
results[].senderstring?Sender address (hex)
results[].nonceKeystring?Nonce key (hex U256)
results[].noncenumber?Transaction nonce
results[].groupIdstring?Group ID if using group nonce key (hex)
results[].eligibleAtnumber?Unix timestamp when broadcasting begins
results[].expiresAtnumber?Unix timestamp when tx expires
results[].statusstring?Initial transaction status
results[].alreadyKnownboolean?True if tx was already in the system
results[].errorstring?Error message if ok is false

Behavior

  • Hash-based idempotency: (chainId, txHash) is unique, and resubmission returns the existing record.
  • Static validation performed at ingest: decoding, signature verification, and not already expired.
  • Dynamic validity (nonce, balance) is handled by the scheduler.

Get Transaction

GET /v1/transactions/{txHash}

Retrieve a single transaction by hash.

Path Parameters

ParameterTypeDescription
txHashstringTransaction hash (hex, 32 bytes)

Query Parameters

ParameterTypeRequiredDescription
chainIdnumberNoFilter by chain ID (required if tx exists on multiple chains)

Response

Returns a TxInfo object.

Errors

StatusDescription
400Invalid transaction hash format
404Transaction not found

Cancel Transaction (Mark Stale by Nonce)

DELETE /v1/transactions/{txHash}

Mark a transaction as stale_by_nonce when its nonce has been consumed by another transaction on-chain.

Query Parameters

ParameterTypeRequiredDescription
chainIdnumberNoFilter by chain ID

Response

Returns the updated TxInfo object with status stale_by_nonce.

Errors

StatusDescription
400Transaction nonce has not been invalidated on-chain
400Transaction is already in a terminal state
404Transaction not found

Behavior

  • Fetches the current nonce for the transaction’s nonce key.
  • If the current nonce is higher than the transaction nonce, marks the transaction as stale_by_nonce.
  • Otherwise returns 400.

List Transactions

GET /v1/transactions

Query transactions with optional filters.

Query Parameters

ParameterTypeRequiredDescription
chainIdnumberNoFilter by chain ID
senderstringNoFilter by sender address (hex, 20 bytes)
groupIdstringNoFilter by group ID (hex, 16 bytes)
ungroupedbooleanNoReturn only transactions without a group (cannot combine with groupId)
statusstringNoFilter by status (can be repeated for multiple statuses)
limitnumberNoMax results to return (default: 100, max: 500)

Example

GET /v1/transactions?sender=0x1234...&status=queued&status=retry_scheduled&chainId=42431&limit=50

Response

Returns an array of TxInfo objects.