{"uid":"cap_mY8Cqvb8PBcWsateGjUc0","slug":"halowerk-aa-useroperation-simulator-91a40cf6","name":"Halowerk AA UserOperation Simulator","description":"Validates a UserOperation structurally and against chain state. It computes the required prefund from the gas limits and fee fields, reads the sender deposit on the EntryPoint and, when a paymaster is set, that paymaster deposit and stake, and says plainly whether the operation is funded. The nonce is read from the EntryPoint and compared with the one supplied, so a stale nonce is caught before submission.","url":"https://ident.halowerk.com/v1/aa-simulate","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"chain":{"enum":["ethereum","base"],"type":"string","default":"base","description":"Which chain to check against."},"entry_point":{"type":"string","maxLength":64,"description":"EntryPoint address. Defaults to v0.7."},"simulate_call":{"type":"boolean","default":true,"description":"Execute the inner call with eth_call to surface a revert."},"user_operation":{"type":"object","properties":{"nonce":{"type":"string","description":"Nonce as hex or decimal."},"sender":{"type":"string","description":"Smart account address."},"factory":{"type":"string"},"callData":{"type":"string","description":"The call the account should make."},"initCode":{"type":"string","description":"v0.6 style; the first 20 bytes are read as the factory."},"paymaster":{"type":"string","description":"Paymaster address, v0.7 style."},"callGasLimit":{"type":"string"},"maxFeePerGas":{"type":"string"},"paymasterAndData":{"type":"string","description":"v0.6 style; the first 20 bytes are read as the paymaster."},"preVerificationGas":{"type":"string"},"maxPriorityFeePerGas":{"type":"string"},"verificationGasLimit":{"type":"string"}},"description":"The UserOperation. EntryPoint v0.7 field names; v0.6 style is accepted and mapped."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_0QTYf16vWmPs1flSEVSN5","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates an ERC-4337 UserOperation structurally and against live chain state, checking funding, nonce freshness, paymaster stake, and gas limits before submission.","exampleAgentPrompt":"Before I submit this UserOperation to the bundler, check it against the EntryPoint on chain — verify the sender deposit covers the prefund, confirm the paymaster is staked and funded, and tell me if the nonce is still fresh.","exampleUseCases":[{"title":"Pre-flight check before bundler submission","prompt":"I'm about to send this UserOperation to the bundler — can you run it through the simulator first to make sure the sender has enough deposit on the EntryPoint, the nonce is current, and the gas fees are properly set?"},{"title":"Debugging a rejected smart account transaction","prompt":"My UserOperation keeps getting rejected and I'm not sure why. Can you simulate it against live chain state and tell me whether it's a funding issue, a stale nonce, or a paymaster problem?"},{"title":"Paymaster stake and deposit verification","prompt":"We're using a paymaster for this sponsored transaction — before submitting, can you check that the paymaster has sufficient deposit and stake on the EntryPoint to cover this UserOperation's prefund requirement?"}],"resultDescription":"Returns a structured validation result indicating whether the UserOperation is valid and funded, including: the computed required prefund derived from gas limits and fee fields, the sender's current deposit balance on the EntryPoint, the paymaster's deposit and stake (if applicable), the expected vs supplied nonce, and a plain-language verdict on whether the operation is ready for bundler submission.","failureModes":["Stale nonce: supplied nonce does not match EntryPoint state, operation rejected","Insufficient sender deposit: sender's EntryPoint balance does not cover required prefund","Underfunded paymaster: paymaster deposit insufficient for the operation's gas costs","Unstaked paymaster: paymaster does not meet minimum stake requirements","Malformed UserOperation: structural validation fails due to missing or invalid fields","RPC/chain connectivity error: unable to read live state from the EntryPoint contract","Unsupported chain: target chain or EntryPoint address not supported by the service"],"whenToPreferThis":"Use this endpoint when you need to pre-flight validate an ERC-4337 UserOperation before submitting it to a bundler — especially when you want to catch funding shortfalls, stale nonces, or paymaster issues without spending gas on a failed transaction. Prefer this over manual simulation when you need a single call that checks sender deposit, paymaster stake/deposit, nonce freshness, and prefund computation together in one plain-language verdict.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:36:34.028Z","isFirstParty":false}