Submit User Operation
Overview
This SDK method allows you to submit a signed user operation to the network for execution. The user operation must be created and signed before submission.
Method
xellar.accountAbstraction.create.submitUserOp({
signature: string,
userOpId: string,
hash: string,
isSponsored: boolean,
});
Parameters
signature
(required): The signature of the user operation hash.userOpId
(required): The unique identifier of the user operation.hash
(required): The hash of the user operation.isSponsored
(optional): Whether the user operation is sponsored (gas paid by the organization).
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"
}
}
⚠️
The user operation must be submitted before the validUntil
timestamp
expires.