Skip to main content
GET
/
v0
/
safe
/
rpc
/
{user_op_hash}
/
status
Poll UserOperation status
curl --request GET \
  --url https://api.sumvin.com/v0/safe/rpc/{user_op_hash}/status \
  --header 'x-sumvin-pat: <api-key>'
{
  "_links": {
    "self": {
      "href": "<string>",
      "method": "GET",
      "templated": false,
      "description": "<string>"
    }
  },
  "user_op_hash": "<string>",
  "status": "<string>",
  "txn_hash": "<string>",
  "block_number": 123,
  "gas_used": 123,
  "actual_gas_cost_wei": 123,
  "success": true
}

Authorizations

x-sumvin-pat
string
header
required

Personal access token issued to the Sumvin CLI. Send it in the x-sumvin-pat header to authenticate as the owning user.

Headers

x-juno-orgid
string | null

Tenant org ID for multi-tenant auth

x-sumvin-token
string | null
x-sumvin-pat
string | null
x-juno-jwt
string | null
X-Timestamp-Format
string

Controls how timestamp fields are serialized in JSON response bodies.

Default (header omitted or any other value): epoch milliseconds as integers. iso8601: UTC ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.

Example: with X-Timestamp-Format: iso8601, the field value 1704067200000 becomes "2024-01-01T00:00:00Z".

Affected fields (recursively, in dicts and arrays): any field whose name ends in _at, plus the literal field names timestamp, period_start, and period_end. All other fields are passed through unchanged.

Only iso8601 is recognized. Any other value (or omitting the header) yields the default epoch-ms representation; the server does not reject unknown values, so this is documented as an example rather than an enum to keep generated clients permissive.

Example:

"iso8601"

Path Parameters

user_op_hash
string
required

Response

UserOperation status retrieved.

HAL navigation links. Includes a receipt link to the underlying transaction receipt when txn_hash is populated.

user_op_hash
string
required

The UserOperation hash that was polled.

status
string
required

Current lifecycle status. One of: not_found, not_submitted, queued, submitted, included, rejected, failed. included and failed are on-chain terminal states; rejected is a pre-submission terminal state with no transaction hash.

txn_hash
string | null

On-chain transaction hash of the bundle that contained this UserOperation. Present once the operation reaches included or failed. Absent for rejected operations because they never reached the chain.

block_number
integer | null

Block number containing the bundle transaction, once on-chain.

gas_used
integer | null

Gas units consumed by this UserOperation, populated after inclusion.

actual_gas_cost_wei
integer | null

Total gas cost in wei attributed to this UserOperation, populated after inclusion. Sumvin's paymaster covers this — the user is not charged.

success
boolean | null

True when the UserOperation succeeded on-chain, false when it reverted, and null while the operation is still pending.