{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-smart-accounts",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-smart-accounts/",
  "collection": "ethereum",
  "title": "Smart accounts: programmable authorization, recovery and gas",
  "description": "Understand smart accounts through batching and recovery examples, then distinguish ERC-4337 user operations from EIP-7702 delegation and sponsorship.",
  "aliases": [
    "account abstraction",
    "ERC-4337",
    "smart wallet",
    "EIP-7702"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T15:10:23.134Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "Smart accounts use programmable logic to authorize actions, which can enable recovery rules, transaction batching and sponsored gas. ERC-4337 packages user operations through an EntryPoint; EIP-7702 lets a key-controlled account delegate execution to code. These mechanisms do not automatically make every wallet recoverable or every transaction free.",
    "claimId": "ethereum-smart-accounts-quick-answer",
    "sourceIds": [
      "erc4337",
      "eip7702",
      "contracts"
    ]
  },
  "keyFacts": [
    {
      "label": "ERC-4337",
      "value": "UserOperations reach an EntryPoint through bundled transactions",
      "sourceIds": [
        "erc4337"
      ],
      "id": "erc-4337",
      "claimId": "ethereum-smart-accounts-fact-erc-4337"
    },
    {
      "label": "Paymaster",
      "value": "Can agree to cover gas subject to its rules",
      "sourceIds": [
        "erc4337"
      ],
      "id": "paymaster",
      "claimId": "ethereum-smart-accounts-fact-paymaster"
    },
    {
      "label": "EIP-7702",
      "value": "Persistent code delegation for an externally owned account",
      "sourceIds": [
        "eip7702"
      ],
      "id": "eip-7702",
      "claimId": "ethereum-smart-accounts-fact-eip-7702"
    }
  ],
  "prerequisites": [
    "ethereum-accounts",
    "ethereum-wallet-requests"
  ],
  "sections": [
    {
      "id": "programmable-authority",
      "heading": "Authorization can be a rule rather than one unrestricted key",
      "sourceIds": [
        "erc4337",
        "contracts"
      ],
      "paragraphs": [
        "A programmed account can require several signatures, impose spending conditions or define a recovery procedure. Those features are possibilities implemented by the account’s code, not automatic promises of the phrase smart wallet.",
        "For example, a small purchase might use one signer while changing recovery settings requires two. The convenience and failure modes depend on exactly who can satisfy or modify those rules."
      ]
    },
    {
      "id": "user-operation",
      "heading": "ERC-4337 adds a route for user operations",
      "sourceIds": [
        "erc4337",
        "gas"
      ],
      "paragraphs": [
        "A user operation describes an intended action under the account’s validation logic. A bundler includes operations in a transaction calling an EntryPoint contract, which coordinates validation and execution.",
        "In an illustrative sponsored onboarding flow, a paymaster agrees to cover the user’s operation. The user may not need a native ETH balance for that interaction, but the bundling transaction still consumes gas paid through the arrangement."
      ]
    },
    {
      "id": "delegation-route",
      "heading": "EIP-7702 is a distinct mechanism that can work alongside it",
      "sourceIds": [
        "eip7702",
        "forks"
      ],
      "paragraphs": [
        "EIP-7702 permits an externally owned account to authorize delegated code while retaining transaction-origination capability. It is not the same object or mechanism as an ERC-4337 user operation.",
        "A wallet can use such code to support an approval and the subsequent action together. The delegation persists until changed or cleared, so authorizing it is more consequential than granting one temporary website connection."
      ]
    },
    {
      "id": "recovery-tradeoffs",
      "heading": "Recovery and convenience introduce their own conditions",
      "sourceIds": [
        "erc4337",
        "eip7702",
        "contracts"
      ],
      "paragraphs": [
        "If recovery requires designated guardians, their availability and authority become part of account security. If sponsorship ends, the application’s former no-gas experience may no longer be available.",
        "Delegate code also executes with extensive account capabilities. A polished recovery screen does not establish that the implementation is correct, that upgrades are restricted or that every asset and application supports the account."
      ]
    }
  ],
  "faq": [
    {
      "question": "Do smart accounts eliminate private keys?",
      "answer": "Not necessarily. They change how authority can be checked; implementations may still use keys alongside multiple signers, recovery or other rules.",
      "sourceIds": [
        "erc4337",
        "contracts"
      ]
    },
    {
      "question": "Are sponsored transactions actually free?",
      "answer": "A sponsor pays or arranges payment for execution. It can impose conditions or charge through another mechanism, and the network still consumes resources.",
      "sourceIds": [
        "erc4337",
        "gas"
      ]
    },
    {
      "question": "Is EIP-7702 the same as ERC-4337?",
      "answer": "No. EIP-7702 changes account delegation at the protocol level, while ERC-4337 defines user operations, bundlers and EntryPoint-based processing.",
      "sourceIds": [
        "eip7702",
        "erc4337"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-smart-accounts-quick-answer",
      "articleSlug": "ethereum-smart-accounts",
      "statement": "Smart accounts use programmable logic to authorize actions, which can enable recovery rules, transaction batching and sponsored gas. ERC-4337 packages user operations through an EntryPoint; EIP-7702 lets a key-controlled account delegate execution to code. These mechanisms do not automatically make every wallet recoverable or every transaction free.",
      "sourceIds": [
        "source-a40a3054f2d60b07",
        "source-d4e3c4ededc427a1",
        "source-1bffcf35253de959"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a40a3054f2d60b07",
          "locator": "Abstract; definitions; UserOperation; EntryPoint; paymasters"
        },
        {
          "sourceId": "source-d4e3c4ededc427a1",
          "locator": "Abstract; persistence of code delegation; transaction origination; security considerations"
        },
        {
          "sourceId": "source-1bffcf35253de959",
          "locator": "What is a smart contract; a digital vending machine; limitations; multisig"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked4337 UserOperation/EntryPoint/bundler/paymaster and7702 persistent delegation. Recovery features implementation-specific."
        ]
      }
    },
    {
      "id": "ethereum-smart-accounts-fact-erc-4337",
      "articleSlug": "ethereum-smart-accounts",
      "statement": "ERC-4337: UserOperations reach an EntryPoint through bundled transactions",
      "sourceIds": [
        "source-a40a3054f2d60b07"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a40a3054f2d60b07",
          "locator": "Abstract; definitions; UserOperation; EntryPoint; paymasters"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked4337 UserOperation/EntryPoint/bundler/paymaster and7702 persistent delegation. Recovery features implementation-specific."
        ]
      }
    },
    {
      "id": "ethereum-smart-accounts-fact-paymaster",
      "articleSlug": "ethereum-smart-accounts",
      "statement": "Paymaster: Can agree to cover gas subject to its rules",
      "sourceIds": [
        "source-a40a3054f2d60b07"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a40a3054f2d60b07",
          "locator": "Abstract; definitions; UserOperation; EntryPoint; paymasters"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked4337 UserOperation/EntryPoint/bundler/paymaster and7702 persistent delegation. Recovery features implementation-specific."
        ]
      }
    },
    {
      "id": "ethereum-smart-accounts-fact-eip-7702",
      "articleSlug": "ethereum-smart-accounts",
      "statement": "EIP-7702: Persistent code delegation for an externally owned account",
      "sourceIds": [
        "source-d4e3c4ededc427a1"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-d4e3c4ededc427a1",
          "locator": "Abstract; persistence of code delegation; transaction origination; security considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked4337 UserOperation/EntryPoint/bundler/paymaster and7702 persistent delegation. Recovery features implementation-specific."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "erc4337",
      "label": "ERC-4337: Account Abstraction Using Alt Mempool",
      "publisher": "Ethereum Request for Comments",
      "url": "https://raw.githubusercontent.com/ethereum/ERCs/583335b7912e51b1ea515bb662532dd29b27e786/ERCS/erc-4337.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-4337",
      "version": "583335b7912e51b1ea515bb662532dd29b27e786",
      "checkedAt": "2026-10-02T14:35:55.049363+00:00",
      "locator": "Abstract; definitions; UserOperation; EntryPoint; paymasters",
      "sha256": "baaa07330dcb67838234774ee8cf8022b5e16e68ddbfa4958913505dc7d44562",
      "note": "Defines user operations, bundlers, programmable validation and sponsored gas settlement.",
      "recordId": "source-a40a3054f2d60b07",
      "contentSha256": "baaa07330dcb67838234774ee8cf8022b5e16e68ddbfa4958913505dc7d44562"
    },
    {
      "id": "eip7702",
      "label": "EIP-7702: Set Code for EOAs",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-7702",
      "version": "ac912ca6a9685590345dd8e5736cda75976d0131",
      "checkedAt": "2026-10-02T14:35:51.249142+00:00",
      "locator": "Abstract; persistence of code delegation; transaction origination; security considerations",
      "sha256": "3d46953e13ebc7ebe229971b301ede853aad6e29f4faf4db1eb9a2085accde1b",
      "note": "Defines persistent EOA code delegation, continued transaction origination and the account-wide consequences of delegate code.",
      "recordId": "source-d4e3c4ededc427a1",
      "contentSha256": "3d46953e13ebc7ebe229971b301ede853aad6e29f4faf4db1eb9a2085accde1b"
    },
    {
      "id": "contracts",
      "label": "Introduction to smart contracts",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/smart-contracts/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.398357+00:00",
      "locator": "What is a smart contract; a digital vending machine; limitations; multisig",
      "sha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db",
      "note": "Supports contract code/state, deterministic rules, illustrative vending logic, external-data limits and multisignature access.",
      "recordId": "source-1bffcf35253de959",
      "contentSha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db"
    },
    {
      "id": "gas",
      "label": "Gas and fees",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/gas/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/gas/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.393022+00:00",
      "locator": "How are gas fees calculated; base fee; gas limit",
      "sha256": "5af7b13e15072d45f38e6fd48e414324c7229b6110d6f8f7fc14100e5153509d",
      "note": "Supports gas units, ETH/gwei units, base/priority fees, resource limits and charges for executed failed transactions.",
      "recordId": "source-a8f47d83f0f10a68",
      "contentSha256": "5af7b13e15072d45f38e6fd48e414324c7229b6110d6f8f7fc14100e5153509d"
    },
    {
      "id": "forks",
      "label": "Ethereum protocol upgrade history",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/ethereum-forks/index.md",
      "canonicalUrl": "https://ethereum.org/en/ethereum-forks/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:42:49.753070+00:00",
      "locator": "Prague-Electra (Pectra); Paris (The Merge); London",
      "sha256": "5271b10144c46964edd0e49ba692114de372f258ccdc94306198da8b7dae0d3a",
      "note": "Records shipped Pectra changes including EIP-7702 and EIP-7251; supports dated historical upgrade context.",
      "recordId": "source-556d7525a12cff50",
      "contentSha256": "5271b10144c46964edd0e49ba692114de372f258ccdc94306198da8b7dae0d3a"
    }
  ],
  "related": {
    "articles": [
      "ethereum-accounts",
      "ethereum-token-approvals",
      "ethereum-transactions-and-nonces",
      "create2-contract-addresses",
      "smart-account-bundlers",
      "smart-account-recovery"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Smart accounts: programmable authorization, recovery and gas.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-smart-accounts/"
}
