Submit User Operation
Overview
This API endpoint allows you to submit a user operation for execution. It requires a signature and other details to process the operation.
- HTTP Method: POST
- Endpoint:
{{BASE_URL}}/api/v1/userOp/submit
Request Body Parameters
signature
(required): The cryptographic signature of the user operation.userOpId
(required): The unique identifier of the user operation.hash
(required): The hash of the user operation.isSponsored
(required): A boolean indicating whether the operation is sponsored by organization.
Example Request Body
{
"signature": "0x.....",
"userOpId": "67b1fc9a442f26832dadd881",
"hash": "0x.....",
"isSponsored": true
}
Request
Request Headers
X-APP-ID
: (required): APP ID/Project ID obtained from dashboard.X-SIGNATURE
: (required): Calculated signature, please refer to Authorization section.X-TIMESTAMP
: (required): Request timestamp in RFC3339 format.
Example Request Syntax
curl -X POST -H "Content-Type: application/json" \
-H "x-app-id: $YOUR_APP_ID" \
-H "x-signature: $CALCULATED_SIGNATURE" \
-H "x-timestamp: $TIMESTAMP" \
-d '{
"signature": "0x.....",
"userOpId": "67b1fc9a442f26832dadd881",
"hash": "0x.....",
"isSponsored": true
}' {{BASE_URL}}/api/v1/userOp/submit
Response
The response will include a JSON object with the following properties:
status
(number): The HTTP status code of the response (e.g., 200 for success).message
(string): A message providing additional information about the operation.data
(object): An object containing the operation details:id
(string): Unique identifier for the user operation.createdAt
(string): Timestamp when the operation was created.updatedAt
(string): Timestamp when the operation was last updated.accountId
(string): ID of the account associated with the operation.ownerId
(string): ID of the owner of the account.clientId
(string): Client ID associated with the operation.appId
(string): Your application ID.signature
(string): Operation signature.userOpHash
(string): Hash of the user operation.status
(string): Current status of the operation (e.g., "on_process").type
(string): Type of operation (e.g., "send_token").network
(string): Network where the operation was executed.chainId
(number): Chain ID of the network.payer
(string): Who pays for the operation (owner, organization, none).validUntil
(string): Timestamp until when the operation is valid.failedReason
(string|null): Reason for failure if the operation failed.bundlerVersion
(string): Version of the bundler used.successAt
(string|null): Timestamp when the operation succeeded.failedAt
(string|null): Timestamp when the operation failed.sentAt
(string): Timestamp when the operation was sent.
Example Response
{
"status": 200,
"message": "success",
"data": {
"id": "6832c79298edc14f4928b5f8",
"createdAt": "2025-05-25T07:32:34.132Z",
"updatedAt": "2025-05-25T07:33:10.854430702Z",
"accountId": "6831d4f51579da4b4499155a",
"ownerId": "6831d4f51579da4b44991558",
"clientId": "ca1f7181-d647-42c5-bd4b-aa50706d227b",
"appId": "8bff7124-2b2e-491d-9baa-cce89bd196af",
"signature": "***",
"userOpHash": "***",
"status": "on_process",
"type": "send_coin",
"network": "ethereum-holesky",
"chainId": 17000,
"payer": "organization",
"validUntil": "2025-05-25T08:02:34.132Z",
"failedReason": null,
"bundlerVersion": "0.7",
"successAt": null,
"failedAt": null,
"sentAt": "2025-05-25T07:33:10.889091085Z"
}
}