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

Groups

List Groups

GET /v1/groups

Query parameters:

ParameterTypeRequiredDescription
senderstringNoFilter by sender address (hex, 20 bytes)
chainIdnumberNoFilter by chain ID
limitnumberNoMax results to return (default: 100, max: 500)
activebooleanNoReturn only active (non-terminal) groups

Response example:

[
  {
    "chainId": 42431,
    "groupId": "0x...",
    "nonceKey": "0x...",
    "nonceKeyInfo": {
      "kind": "0x01",
      "scope": { "encoding": "hex", "value": "0x..." },
      "group": { "encoding": "utf8", "value": "my-group" },
      "memo": { "encoding": "hex", "value": "0x..." }
    },
    "startAt": 1700000000,
    "endAt": 1700086400,
    "nextPaymentAt": 1700043200
  }
]

Response Fields

FieldTypeDescription
chainIdnumberChain ID
groupIdstringGroup ID (hex)
nonceKeystringNonce key (hex U256)
nonceKeyInfoobjectDecoded nonce key components
startAtnumberUnix timestamp of first transaction eligibility
endAtnumberUnix timestamp of last transaction expiration
nextPaymentAtnumber?Unix timestamp of next eligible transaction

endAt is the largest eligibleAt for the group. nextPaymentAt is the earliest eligibleAt for non-terminal transactions in the group. active=true returns groups whose endAt is in the future.

Get Group

GET /v1/senders/{sender}/groups/{groupId}

Get detailed information about a transaction group including member transactions and cancel plan.

Path Parameters

ParameterTypeDescription
senderstringSender address (hex, 20 bytes)
groupIdstringGroup ID (hex, 16 bytes)

Query Parameters

ParameterTypeRequiredDescription
chainIdnumberNoRequired if group exists on multiple chains

Response

{
  "sender": "0x...",
  "groupId": "0x...",
  "nonceKey": "0x...",
  "nonceKeyInfo": {
    "kind": "0x01",
    "scope": { "encoding": "hex", "value": "0x..." },
    "group": { "encoding": "utf8", "value": "my-group" },
    "memo": { "encoding": "hex", "value": "0x..." }
  },
  "members": [
    {
      "txHash": "0x...",
      "nonceKey": "0x...",
      "nonce": 0,
      "status": "executed"
    },
    {
      "txHash": "0x...",
      "nonceKey": "0x...",
      "nonce": 1,
      "status": "queued"
    }
  ],
  "cancelPlan": {
    "nonceKey": "0x...",
    "nonces": [0, 1, 2],
    "alreadyInvalidated": false
  }
}

Response Fields

FieldTypeDescription
senderstringSender address (hex)
groupIdstringGroup ID (hex)
nonceKeystringNonce key shared by all members (hex U256)
nonceKeyInfoobjectDecoded nonce key components
membersarrayList of group member transactions
members[].txHashstringTransaction hash (hex)
members[].nonceKeystringNonce key (hex U256)
members[].noncenumberTransaction nonce
members[].statusstringTransaction status
cancelPlanobjectInformation for canceling the group on-chain
cancelPlan.nonceKeystringNonce key to use for cancellation
cancelPlan.noncesnumber[]Nonces that need to be invalidated
cancelPlan.alreadyInvalidatedbooleanTrue if all nonces are already invalid

To cancel the group, the user must invalidate all nonces for the group’s nonce key. All group members share the same nonce key. Transactions are grouped only when nonceKey matches the explicit grouping format.

Cancel Group (Local)

POST /v1/senders/{sender}/groups/{groupId}/cancel

Cancel a group locally. This marks all group transactions as canceled_locally, clears stored raw_tx data, and removes scheduled retries. This does not affect on-chain state — transactions that have already been broadcast may still be mined.

The specification also notes that local cancel:

  • Removes the group from the scheduler.
  • Removes the signed transactions from the database while keeping the remaining metadata.

Headers

HeaderRequiredDescription
AuthorizationYesSignature <hex> — Tempo primitive signature bytes over keccak256(groupId) signed by the sender. Accepts legacy 65-byte secp256k1 signatures or P256/WebAuthn signatures with a 1-byte type prefix (0x01/0x02) per the Tempo signature spec.

Response

{
  "canceled": 3,
  "txHashes": ["0x...", "0x...", "0x..."]
}

Errors

StatusDescription
401Missing or invalid authorization signature
404Group not found