Bundler REST API
Submit and track ERC-4337 UserOperations, request ERC-7677 sponsorship, and discover the active EntryPoint through typed REST resources.
DALP exposes each bundler and paymaster action as a typed v2 REST resource. Authenticate every request with an API key for the organization whose wallets you operate. Operations that name a sender also require the active organization and chain context to resolve to that wallet.
Resources
| Route | Use it for |
|---|---|
GET /api/v2/bundler/chain-id | Read the active chain ID. |
GET /api/v2/bundler/entry-points | Read the EntryPoint addresses supported on the active chain. |
POST /api/v2/bundler/user-operations | Submit a signed UserOperation. |
POST /api/v2/bundler/user-operation-gas-estimates | Estimate UserOperation gas limits. |
GET /api/v2/bundler/user-operations/{userOperationHash} | Read a submitted, pending, or mined UserOperation. |
GET /api/v2/bundler/user-operation-receipts/{userOperationHash} | Read the mined receipt for a UserOperation. |
POST /api/v2/bundler/paymaster-stub-data | Get placeholder sponsorship data for gas estimation. |
POST /api/v2/bundler/paymaster-data | Get signed sponsorship data before submission. |
The live /api/v2/spec.json document defines each request, response, status, and public error schema. Methods that do not apply to the active organization's configuration return an ordinary public HTTP error instead of a protocol method-not-found envelope.
Discover the EntryPoint
curl "$DALP_API_URL/api/v2/bundler/entry-points" \
--header "X-Api-Key: $DALP_API_KEY"Read the EntryPoint from the response instead of hardcoding one. Private and local networks can register a different address. An unavailable directory registration or indexing gap returns a typed public failure with remediation guidance.
Submit a UserOperation
curl --request POST \
"$DALP_API_URL/api/v2/bundler/user-operations" \
--header "Content-Type: application/json" \
--header "X-Api-Key: $DALP_API_KEY" \
--data @user-operation.jsonThe sender wallet must belong to the authenticated organization. For a weighted multisig wallet, one call can record a signature without crossing the submission threshold. Read the UserOperation resource until it reaches a pending, submitted, or mined state; do not treat the returned hash alone as proof that it entered the mempool.
Duplicate signatures on an active approval are idempotent. A hash tied to another approval flow or a terminal approval returns a public error and does not silently enqueue new work.
Estimate gas
Call POST /api/v2/bundler/user-operation-gas-estimates with the candidate UserOperation before collecting final signatures. The previewed nonce, call data, gas limits, fee values, paymaster fields, and signature shape contribute to the signed hash. Re-estimating after signatures are collected can invalidate them.
Request sponsorship
Use POST /api/v2/bundler/paymaster-stub-data during estimation and POST /api/v2/bundler/paymaster-data before submission. These resources require gas sponsorship to be enabled for the organization and an available system paymaster for the sender.
For funding and signer-key operations, see System paymasters. For the architecture behind sponsorship, see Paymasters and gas sponsorship.
Error handling
Bundler resources use the same public HTTP error object as the rest of v2. Branch on error.id, error.status, and error.retryable; preserve the request ID when escalating a failure. A retryable dependency failure is not evidence that the UserOperation was never accepted, so read by hash before resubmitting.
See Error handling for the shared envelope and recovery rules. SDK users can keep the established eight method names through createDalpBundlerClient; that client calls these REST resources directly.
Account native balance API
Read indexed native balances and history for accounts, plus the live custody wallet gas balance, in the active DALP system.
Bundler wallet status
Read the active system's bundler wallet address and its native token balance through the DALP API to monitor sponsored-gas funding.