{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-access-lists",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-access-lists/",
  "collection": "ethereum",
  "title": "Ethereum access lists: declaring accounts and storage in advance",
  "description": "Understand Ethereum transaction access lists as gas-accounting hints for addresses and storage keys, not permission lists or guaranteed cost reductions.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:12:41.505Z",
    "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": "An Ethereum access list declares addresses and storage keys to be treated as already accessed for gas accounting under the specified transaction rules. EIP-2930 charges for these entries up front. An access list is not an authorization list, and including one does not automatically make every transaction cheaper.",
    "claimId": "ethereum-access-lists-quick-answer",
    "sourceIds": [
      "eip2930"
    ]
  },
  "keyFacts": [
    {
      "label": "Contents",
      "value": "An access list contains address and storage-key entries.",
      "sourceIds": [
        "eip2930"
      ],
      "id": "contents",
      "claimId": "ethereum-access-lists-fact-contents"
    },
    {
      "label": "Cost",
      "value": "The EIP-2930 schedule charges per listed address and storage key.",
      "sourceIds": [
        "eip2930"
      ],
      "id": "cost",
      "claimId": "ethereum-access-lists-fact-cost"
    },
    {
      "label": "Duplicates",
      "value": "Duplicate entries are permitted but charged repeatedly under the specification.",
      "sourceIds": [
        "eip2930"
      ],
      "id": "duplicates",
      "claimId": "ethereum-access-lists-fact-duplicates"
    }
  ],
  "prerequisites": [
    "ethereum-gas-fees"
  ],
  "sections": [
    {
      "id": "warm",
      "heading": "Predeclare some execution accesses",
      "sourceIds": [
        "eip2930"
      ],
      "paragraphs": [
        "The mechanism populates accessed-address and accessed-storage-key sets before execution. This changes the gas treatment of later accesses under the relevant rules.",
        "It does not limit execution to only the listed contracts or slots. A contract can still access other locations, with their applicable gas costs."
      ]
    },
    {
      "id": "tradeoff",
      "heading": "Pay an upfront cost to change later costs",
      "sourceIds": [
        "eip2930"
      ],
      "paragraphs": [
        "The original specification charges 2,400 gas per address and 1,900 per storage key, then applies warmed-access treatment. These figures describe the cited EIP schedule; a real estimate must use the network’s active rules.",
        "Unused entries and duplicates can waste gas. Whether a list helps depends on the actual execution path and the costs it changes."
      ]
    },
    {
      "id": "permission",
      "heading": "Do not confuse the list with an approval",
      "sourceIds": [
        "eip2930",
        "erc20"
      ],
      "paragraphs": [
        "Listing a token contract does not approve a spender. Listing a storage slot does not grant the sender permission to modify it. Authorization remains in signatures and contract logic.",
        "Wallets should describe access lists as transaction execution data, separately from token allowances or account permissions."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does an access list stop a transaction from calling unlisted contracts?",
      "answer": "No. It affects gas accounting for declared accesses; it is not a sandbox that forbids other contract calls.",
      "sourceIds": [
        "eip2930"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-access-lists-quick-answer",
      "articleSlug": "ethereum-access-lists",
      "statement": "An Ethereum access list declares addresses and storage keys to be treated as already accessed for gas accounting under the specified transaction rules. EIP-2930 charges for these entries up front. An access list is not an authorization list, and including one does not automatically make every transaction cheaper.",
      "sourceIds": [
        "source-3292ac77ce3024af"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-3292ac77ce3024af",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Read EIP-2930 list shape, warm-access sets, upfront 2400 gas/address and 1900 gas/storage-key constants, duplicate charging and unrestricted unlisted accesses.",
          "Constants are scoped to the cited EIP schedule. Gas access lists are correctly separated from ERC-20 allowances and signature authorization."
        ]
      }
    },
    {
      "id": "ethereum-access-lists-fact-contents",
      "articleSlug": "ethereum-access-lists",
      "statement": "Contents: An access list contains address and storage-key entries.",
      "sourceIds": [
        "source-3292ac77ce3024af"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-3292ac77ce3024af",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Read EIP-2930 list shape, warm-access sets, upfront 2400 gas/address and 1900 gas/storage-key constants, duplicate charging and unrestricted unlisted accesses.",
          "Constants are scoped to the cited EIP schedule. Gas access lists are correctly separated from ERC-20 allowances and signature authorization."
        ]
      }
    },
    {
      "id": "ethereum-access-lists-fact-cost",
      "articleSlug": "ethereum-access-lists",
      "statement": "Cost: The EIP-2930 schedule charges per listed address and storage key.",
      "sourceIds": [
        "source-3292ac77ce3024af"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-3292ac77ce3024af",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Read EIP-2930 list shape, warm-access sets, upfront 2400 gas/address and 1900 gas/storage-key constants, duplicate charging and unrestricted unlisted accesses.",
          "Constants are scoped to the cited EIP schedule. Gas access lists are correctly separated from ERC-20 allowances and signature authorization."
        ]
      }
    },
    {
      "id": "ethereum-access-lists-fact-duplicates",
      "articleSlug": "ethereum-access-lists",
      "statement": "Duplicates: Duplicate entries are permitted but charged repeatedly under the specification.",
      "sourceIds": [
        "source-3292ac77ce3024af"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-3292ac77ce3024af",
          "locator": "Specification"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Read EIP-2930 list shape, warm-access sets, upfront 2400 gas/address and 1900 gas/storage-key constants, duplicate charging and unrestricted unlisted accesses.",
          "Constants are scoped to the cited EIP schedule. Gas access lists are correctly separated from ERC-20 allowances and signature authorization."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip2930",
      "label": "Optional access lists",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-2930",
      "locator": "Specification",
      "note": "Predeclared account and storage access sets with explicit gas charges.",
      "version": "EIP/ERC-2930; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.494Z",
      "contentSha256": "f09871e6ddd399f05f4ffc83d1b0d49cbce28397feeff2e0c6077292fdee277a",
      "recordId": "source-3292ac77ce3024af"
    },
    {
      "id": "erc20",
      "label": "ERC-20 Token Standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-20",
      "locator": "totalSupply; balanceOf; transfer; decimals; approve; allowance; transferFrom; Transfer",
      "note": "Token supply, displayed units and balance accounting.",
      "version": "ERC-20",
      "checkedAt": "2026-10-02T17:03:45.826Z",
      "contentSha256": "98bda5e4707841a68684879878c4c165fdaa47d89ed69ebf232ab9be06ff050e",
      "recordId": "source-ac4ad503a55127bb"
    }
  ],
  "related": {
    "articles": [
      "ethereum-state-and-storage",
      "ethereum-token-approvals",
      "ethereum-calldata"
    ],
    "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. “Ethereum access lists: declaring accounts and storage in advance.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-access-lists/"
}
