# choose ERC-4337 bundler and paymaster infrastructure

> Pimlico is the default when the decision is specifically about ERC-4337 bundler and paymaster infrastructure, separate from the account SDK. It is provider-neutral (works under Safe and other 4337 accounts), offers hosted bundler + paymaster with gas sponsorship and ERC-20 gas, ships the permissionless.js SDK, and can be self-hosted via the open-source Alto bundler. Safe is shown as a representative account layer, Base as a low-cost execution default, and The Graph for indexing UserOps and paymaster spend. ZeroDev and Biconomy are listed as full-stack alternatives rather than combined, since this intent is about choosing infra rather than adopting one end-to-end provider.

## Recommended stack

- **Pimlico** (transactions_and_paymasters) — readiness 88/100, difficulty medium — Use Pimlico for provider-neutral ERC-4337 infra: hosted bundler, paymaster (gas sponsorship and ERC-20 gas), the permissionless.js SDK, and the open-source Alto bundler if you want to self-host.
- **Safe** (wallet_and_identity) — readiness 80/100, difficulty low — Safe smart accounts are a common account layer that Pimlico's bundler/paymaster serves; pick your account implementation independently of the infra.
- **Base** (settlement_or_execution) — readiness 82/100, difficulty low — Use Base as a low-cost EVM default for smart-account UX and gas sponsorship.
- **The Graph** (indexing_and_data) — readiness 80/100, difficulty medium — Index UserOps, sponsored operations, and paymaster spend for support, analytics, and agent-readable state.

## Considered and excluded

- zerodev — ZeroDev is a full-stack AA provider (account SDK + infra); this intent is specifically about choosing provider-neutral bundler/paymaster infra. ZeroDev is a strong alternative if you want one opinionated end-to-end SDK rather than mixing an account layer with separate infra.
- biconomy — Biconomy is an alternative bundler/paymaster and AA stack; listed as a credible alternative rather than combined, to avoid mixing provider-specific paymaster assumptions.

## Risks

- EntryPoint version support (v0.6 / v0.7 / v0.8) and per-chain coverage must be confirmed for your exact target chain and account implementation.
- Gas sponsorship can fail when paymaster policies or account-level limits are reached; implement fallback behavior if actions should still proceed.
- Hosted bundler/paymaster paths depend on a provider RPC; self-host the Alto bundler if you need to remove that dependency.
- Paymaster APIs and policy models are provider-specific, creating some lock-in; isolate them behind your own interface.

## Next steps

- Pick the EntryPoint version and account implementation (e.g. Safe) before wiring infra.
- Decide managed (Pimlico hosted) vs self-hosted (Alto bundler) for your reliability and cost needs.
- Configure sponsorship policies and fallback middleware before shipping gasless transactions.
- If charging gas in stablecoins, set up the ERC-20 paymaster and confirm supported tokens per chain.
- Verify target-chain support and run the permissionless.js quickstart against a project-specific RPC key.

## What the agent receives

```json
{
  "intent": "I'm building smart accounts and need to choose bundler and paymaster infrastructure (self-host vs managed) for ERC-4337",
  "matched_intent": "choose-erc-4337-infra",
  "recommended_stack": [
    {
      "slug": "pimlico",
      "name": "Pimlico",
      "role": "transactions_and_paymasters",
      "readiness_score": 88,
      "integration_difficulty": "medium",
      "reason": "Use Pimlico for provider-neutral ERC-4337 infra: hosted bundler, paymaster (gas sponsorship and ERC-20 gas), the permissionless.js SDK, and the open-source Alto bundler if you want to self-host."
    },
    {
      "slug": "safe",
      "name": "Safe",
      "role": "wallet_and_identity",
      "readiness_score": 80,
      "integration_difficulty": "low",
      "reason": "Safe smart accounts are a common account layer that Pimlico's bundler/paymaster serves; pick your account implementation independently of the infra."
    },
    {
      "slug": "base",
      "name": "Base",
      "role": "settlement_or_execution",
      "readiness_score": 82,
      "integration_difficulty": "low",
      "reason": "Use Base as a low-cost EVM default for smart-account UX and gas sponsorship."
    },
    {
      "slug": "the-graph",
      "name": "The Graph",
      "role": "indexing_and_data",
      "readiness_score": 80,
      "integration_difficulty": "medium",
      "reason": "Index UserOps, sponsored operations, and paymaster spend for support, analytics, and agent-readable state."
    }
  ],
  "excluded_candidates": [
    {
      "slug": "zerodev",
      "reason": "ZeroDev is a full-stack AA provider (account SDK + infra); this intent is specifically about choosing provider-neutral bundler/paymaster infra. ZeroDev is a strong alternative if you want one opinionated end-to-end SDK rather than mixing an account layer with separate infra."
    },
    {
      "slug": "biconomy",
      "reason": "Biconomy is an alternative bundler/paymaster and AA stack; listed as a credible alternative rather than combined, to avoid mixing provider-specific paymaster assumptions."
    }
  ],
  "risks": [
    "EntryPoint version support (v0.6 / v0.7 / v0.8) and per-chain coverage must be confirmed for your exact target chain and account implementation.",
    "Gas sponsorship can fail when paymaster policies or account-level limits are reached; implement fallback behavior if actions should still proceed.",
    "Hosted bundler/paymaster paths depend on a provider RPC; self-host the Alto bundler if you need to remove that dependency.",
    "Paymaster APIs and policy models are provider-specific, creating some lock-in; isolate them behind your own interface."
  ],
  "next_steps": [
    "Pick the EntryPoint version and account implementation (e.g. Safe) before wiring infra.",
    "Decide managed (Pimlico hosted) vs self-hosted (Alto bundler) for your reliability and cost needs.",
    "Configure sponsorship policies and fallback middleware before shipping gasless transactions.",
    "If charging gas in stablecoins, set up the ERC-20 paymaster and confirm supported tokens per chain.",
    "Verify target-chain support and run the permissionless.js quickstart against a project-specific RPC key."
  ],
  "generated_with": "composewith.eth",
  "registry_version": "2026.07.02-5a6fd5e"
}
```

---
Canonical: https://composewith.eth/intents/choose-erc-4337-infra
