User Ops
Relay a client-signed UserOp to the bundler and track its lifecycle. The relay boundary - never authority.
Relay a client-signed UserOp to the bundler
Authorization
sessionToken Botanary session token from POST /auth/session. Not a key - a revocable session bearer.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://api.app.botanary.xyz/userops" \ -H "Content-Type: application/json" \ -d '{ "userOp": { "sender": "0x8f2A9c4419aD77b0392bC41D8123aa77c0Fe41D0", "nonce": "0", "callData": "0x", "callGasLimit": "200000", "verificationGasLimit": "150000", "preVerificationGas": "50000", "maxFeePerGas": "1000000000", "maxPriorityFeePerGas": "1000000000", "signature": "0x", "entryPoint": "0x8f2A9c4419aD77b0392bC41D8123aa77c0Fe41D0", "chainId": 42161 }, "userOpHash": "0x4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b", "intentType": "send" }'{
"id": "op_01H8",
"userOpHash": "0x4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b",
"status": "pending",
"txHash": "0x4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b",
"submittedAt": "2019-08-24T14:15:22Z",
"error": "string"
}{
"error": {
"code": "out_of_scope",
"message": "This action exceeds the per-action cap.",
"declineReason": "cap_exceeded",
"details": {},
"requestId": "string"
}
}{
"error": {
"code": "unauthorized",
"message": "Session token missing or expired."
}
}{
"error": {
"code": "out_of_scope",
"message": "This action exceeds the per-action cap.",
"declineReason": "per_action_exceeded"
}
}Track a submitted UserOp
Authorization
sessionToken Botanary session token from POST /auth/session. Not a key - a revocable session bearer.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://api.app.botanary.xyz/userops/string"{
"id": "op_01H8",
"userOpHash": "0x4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b",
"status": "pending",
"txHash": "0x4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b4c1f9a0b2d7e8c3f1a6b0d4e2c9f7a1b",
"submittedAt": "2019-08-24T14:15:22Z",
"error": "string"
}{
"error": {
"code": "unauthorized",
"message": "Session token missing or expired."
}
}{
"error": {
"code": "out_of_scope",
"message": "This action exceeds the per-action cap.",
"declineReason": "cap_exceeded",
"details": {},
"requestId": "string"
}
}