SettleMint
Developer guidesAPI integration

Bundler JSON-RPC

Discover the active ERC-4337 chain and EntryPoint through DALP's bundler-compatible JSON-RPC endpoint.

The bundler endpoint gives account abstraction clients an ERC-4337-style JSON-RPC surface for network discovery. Wallets and SDKs can read the active chain ID or EntryPoint address before building a UserOperation flow.

For paymaster deposits, sponsorship settings, and signer-key rotation, see System paymasters. For the broader REST API, see API reference.

Endpoint

EndpointProtocolContent typeUse it for
POST /api/v2/bundlerJSON-RPC 2.0application/jsonDiscover the active chain and ERC-4337 EntryPoint.

The endpoint accepts a JSON-RPC 2.0 request object. Include an id when you expect a JSON response. Requests that omit id are handled as JSON-RPC notifications and return 204 No Content.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_supportedEntryPoints",
  "params": []
}

A successful response echoes the same id and places the method result in result:

{
  "jsonrpc": "2.0",
  "result": ["0x1111111111111111111111111111111111111111"],
  "id": 1
}

Supported methods

MethodParametersResult typeUse it for
eth_chainIdnonehex stringRead the active network chain ID.
eth_supportedEntryPointsnoneaddress arrayRead the ERC-4337 EntryPoint supported by the platform.

eth_chainId

Returns the active chain ID as a hexadecimal string, matching the Ethereum JSON-RPC convention used by wallets.

curl --request POST \
  "$DALP_API_URL/api/v2/bundler" \
  --header "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_chainId",
    "params": []
  }'

Example response:

{
  "jsonrpc": "2.0",
  "result": "0x89",
  "id": 1
}

eth_supportedEntryPoints

Returns the EntryPoint address DALP resolves for the active network. The response is an array so ERC-4337 clients can consume it through the standard bundler method shape.

curl --request POST \
  "$DALP_API_URL/api/v2/bundler" \
  --header "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "eth_supportedEntryPoints",
    "params": []
  }'

Example response:

{
  "jsonrpc": "2.0",
  "result": ["0x1111111111111111111111111111111111111111"],
  "id": 2
}

If the network Directory contract is not configured, or if the EntryPoint registration has not been indexed yet, the endpoint returns a JSON-RPC error response. Retry after the network configuration is complete and indexing has caught up.

UserOperation methods

The endpoint recognizes JSON-RPC method names through the standard dispatcher. UserOperation submission and lookup methods are not available from this API surface. When the request includes an id, these calls return method not found. When the request omits id, DALP treats it as a JSON-RPC notification and returns 204 No Content without an error body.

MethodResponse with id
eth_sendUserOperationMethod not found
eth_estimateUserOperationGasMethod not found
eth_getUserOperationByHashMethod not found
eth_getUserOperationReceiptMethod not found

Example response for a request with id:

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32601,
    "message": "Method not found: eth_sendUserOperation. See ERC-4337 bundler documentation for supported methods."
  },
  "id": 3
}

Error responses

The endpoint returns JSON-RPC error envelopes with HTTP 200 for parse, validation, and method errors, so bundler clients can handle failures through JSON-RPC semantics.

CodeMeaningWhen it appears
-32700Parse errorThe request body is not valid JSON.
-32600Invalid requestThe request is not a JSON-RPC 2.0 object, has no string method, or uses an invalid id type.
-32601Method not foundThe requested method is not supported by this endpoint.
404Not foundThe EntryPoint has not been indexed for the active network.
503UnavailableThe network Directory contract is not configured for EntryPoint discovery.
-32603Internal errorA supported method failed without a more specific JSON-RPC or DALP status code.

Validation and method-resolution errors use this shape:

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32600,
    "message": "Invalid JSON-RPC request",
    "data": {
      "dapiError": {
        "id": "DALP-0085",
        "category": "client",
        "status": 400,
        "retryable": false,
        "message": "Invalid JSON-RPC request",
        "why": "The JSON-RPC request is missing required fields or uses an unsupported shape.",
        "fix": "Send a valid JSON-RPC 2.0 request with the required method, id, and params fields."
      }
    }
  },
  "id": 1
}

For invalid JSON, DALP cannot read a request id, so the response uses id: null. Unsupported method responses use the JSON-RPC error envelope without data.dapiError because the method dispatcher can return a specific method-not-found message directly.

Integration notes

  • Send params as an array. The supported methods do not require parameters, so [] is sufficient.
  • Use request IDs when the caller needs a response. Omit id only for fire-and-forget JSON-RPC notifications.
  • Treat the returned EntryPoint as network-specific. Private and local networks can return an EntryPoint address registered for that environment instead of a hardcoded canonical address.
  • Use the REST paymaster endpoints for funding and sponsorship operations; this JSON-RPC endpoint is for bundler-compatible discovery.

On this page