ZeroDev website screenshot

ZeroDev

ZeroDev is account-abstraction / smart-wallet infrastructure for EVM chains. It runs an ERC-4337 (and EIP-7702) bundler RPC and a paymaster RPC, both exposed as JSON-RPC over HTTPS, plus the Kernel smart-account SDK and a meta-aggregator (Smart Routing). Apps sponsor gas, let users pay gas in ERC-20s, and submit UserOperations through a single project-scoped RPC endpoint.

4 APIs 0 Features
Account AbstractionSmart WalletsERC-4337EIP-7702PaymasterBundlerJSON-RPCWeb3

APIs

ZeroDev Bundler RPC

ERC-4337 bundler exposed as JSON-RPC over HTTPS. A single POST to the project-scoped RPC URL carries methods eth_sendUserOperation, eth_estimateUserOperationGas, eth_getUserOper...

ZeroDev Paymaster RPC

Verifying and ERC-20 paymaster exposed as JSON-RPC over the same project-scoped RPC URL. Methods include zd_sponsorUserOperation (ZeroDev sponsorship), pm_sponsorUserOperation (...

ZeroDev Kernel SDK

Kernel is ZeroDev's modular ERC-4337 and EIP-7702 smart-account implementation. The TypeScript Kernel SDK (built on viem / permissionless) builds and signs UserOperations, then ...

ZeroDev Meta-Aggregator (Smart Routing)

ZeroDev's meta-infrastructure aggregates underlying bundler and paymaster providers behind one project-scoped RPC, with Smart Routing that lets users deposit and have assets rou...

Collections

Pricing Plans

Zerodev Plans Pricing

4 plans

PLANS

Rate Limits

Zerodev Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: ZeroDev Bundler & Paymaster RPC
  version: '3.0'
  description: 'JSON-RPC 2.0 over HTTPS. All calls are an HTTP POST of a {jsonrpc,id,method,params} envelope to a single project-scoped
    URL: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}. Authentication is by projectId embedded in the URL path.
    The same endpoint serves both bundler and paymaster methods; append ?provider=ULTRA_RELAY to route through UltraRelay.'
items:
- info:
    name: Bundler RPC
    type: folder
  items:
  - info:
      name: eth_sendUserOperation
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_sendUserOperation","params":[{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x","callGasLimit":"0x88b8","verificationGasLimit":"0x33450","preVerificationGas":"0xc350","maxFeePerGas":"0x59682f00","maxPriorityFeePerGas":"0x3b9aca00","signature":"0x"},"0x0000000071727De22E5E9d8BAf0edAc6f37da032"]}'
    docs: Submit a signed UserOperation to the bundler. Returns the userOpHash.
  - info:
      name: eth_estimateUserOperationGas
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_estimateUserOperationGas","params":[{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x","signature":"0x"},"0x0000000071727De22E5E9d8BAf0edAc6f37da032"]}'
    docs: Estimate preVerificationGas, verificationGasLimit, and callGasLimit for a UserOperation.
  - info:
      name: eth_getUserOperationByHash
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_getUserOperationByHash","params":["0xdead00000000000000000000000000000000000000000000000000000000beef"]}'
    docs: Look up a UserOperation by its hash.
  - info:
      name: eth_getUserOperationReceipt
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_getUserOperationReceipt","params":["0xdead00000000000000000000000000000000000000000000000000000000beef"]}'
    docs: Fetch the receipt for an included UserOperation.
  - info:
      name: eth_supportedEntryPoints
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_supportedEntryPoints","params":[]}'
    docs: List the EntryPoint contract addresses (v0.6 / v0.7) the bundler supports.
  - info:
      name: eth_chainId
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
    docs: Return the chain ID served by this RPC.
- info:
    name: Paymaster RPC
    type: folder
  items:
  - info:
      name: zd_sponsorUserOperation
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"zd_sponsorUserOperation","params":[{"chainId":8453,"userOp":{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x","signature":"0x"}}]}'
    docs: ZeroDev gas sponsorship. Returns the paymaster fields and updated gas values.
  - info:
      name: pm_sponsorUserOperation
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"pm_sponsorUserOperation","params":[{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x","signature":"0x"},"0x0000000071727De22E5E9d8BAf0edAc6f37da032"]}'
    docs: Pimlico-compatible sponsorship. Returns paymasterAndData (v0.6) or paymaster fields (v0.7).
  - info:
      name: pm_getPaymasterStubData
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"pm_getPaymasterStubData","params":[{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x"},"0x0000000071727De22E5E9d8BAf0edAc6f37da032","0x2105",{}]}'
    docs: ERC-7677 stub paymaster data, used upstream to derive preVerificationGas.
  - info:
      name: pm_getPaymasterData
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"pm_getPaymasterData","params":[{"sender":"0x1234567890123456789012345678901234567890","nonce":"0x0","callData":"0x"},"0x0000000071727De22E5E9d8BAf0edAc6f37da032","0x2105",{}]}'
    docs: ERC-7677 final paymaster data and signed paymaster fields.
  - info:
      name: zd_getERC20PaymasterAddress
      type: http
    http:
      method: POST
      url: https://rpc.zerodev.app/api/v3/{projectId}/chain/{chainId}
      header:
      - key: Content-Type
        value: application/json
      body:
        type: json
        data: '{"jsonrpc":"2.0","id":1,"method":"zd_getERC20PaymasterAddress","params":[{"entryPoint":"0x0000000071727De22E5E9d8BAf0edAc6f37da032","gasToken":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}]}'
    docs: Resolve the ERC-20 paymaster address for paying gas with a given token.