Skip to main content
POST
/
api
/
v1
/
wallet
/
paymaster_raw
Push a fully-built UserOperation through EntryPoint.handleOps from the backend EOA
curl --request POST \
  --url https://api.hevn.finance/api/v1/wallet/paymaster_raw \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "userOp": {
    "sender": "<string>",
    "nonce": "<string>",
    "callData": "<string>",
    "callGasLimit": "<string>",
    "verificationGasLimit": "<string>",
    "preVerificationGas": "<string>",
    "maxFeePerGas": "<string>",
    "maxPriorityFeePerGas": "<string>",
    "initCode": "0x",
    "paymasterAndData": "0x",
    "signature": "0x"
  }
}
'
{
  "userOpHash": "<string>",
  "txHash": "<string>",
  "signer": "<string>",
  "entryPoint": "<string>",
  "sender": "<string>",
  "beneficiary": "<string>",
  "blockNumber": 123,
  "status": 123,
  "gasUsed": 123,
  "logsCount": 123
}

Authorizations

Authorization
string
header
default:Bearer <token>
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

payment-id
string | null
payment-memo
string | null
x-api-key
string | null

Body

application/json

A fully-built ERC-4337 v0.6 UserOperation to push through EntryPoint.handleOps directly from the backend EOA.

The backend acts as the bundler itself: it ABI-encodes handleOps([userOp], beneficiary) against the canonical v0.6 EntryPoint and broadcasts an EIP-1559 tx from the CDP "owner" server account, paying gas in ETH. There is no third-party paymaster / bundler service involvement.

userOp follows the JSON-RPC eth_sendUserOperation shape exactly — camelCase keys, all numeric fields as 0x-hex strings, all byte fields as 0x-hex strings, signature already applied. See UserOperationV06 for the full field list.

userOp
UserOperationV06 · object
required

ERC-4337 v0.6 UserOperation in the JSON-RPC eth_sendUserOperation shape — camelCase keys (via the CamelModel alias generator), 0x-hex string values for every numeric and byte field.

All 11 v0.6 fields are present:

sender, nonce, initCode, callData, callGasLimit,
verificationGasLimit, preVerificationGas, maxFeePerGas,
maxPriorityFeePerGas, paymasterAndData, signature

signature defaults to "0x" because some endpoints (e.g. /wallet/op_cosign) consume an unsigned userOp and produce the signature themselves, while others (e.g. /wallet/paymaster_raw) consume a fully-signed userOp and submit it on-chain as-is.

Response

Successful Response

Response for /wallet/paymaster_raw.

The backend EOA submitted EntryPoint.handleOps([userOp], beneficiary) on Base mainnet and waited for the receipt. All fields reflect the on-chain outcome — including reverts. A status == 0 means the tx was mined but the EntryPoint reverted (e.g. AA24 signature error, AA33 reverted (or OOG)); the tx hash is still real and can be inspected on basescan.

userOpHash
string
required
txHash
string
required
signer
string
required
entryPoint
string
required
sender
string
required
beneficiary
string
required
blockNumber
integer
required
status
integer
required
gasUsed
integer
required
logsCount
integer
required