{
  "id": 7686,
  "title": "EIP-7686: Linear EVM memory limits",
  "status": "Stagnant",
  "type": "Standards Track",
  "category": "Core",
  "summary": "This proposal ties how much EVM memory a transaction can use directly to its gas. It simplifies memory pricing rules so each unit of gas corresponds to at most one byte of memory, making worst-case resource use easier to understand for operators and developers.",
  "impacts": [
    "For ordinary users this change is largely invisible, mainly constraining unusually memory-heavy transactions that approach gas and resource limits.",
    "Contract developers may review patterns that access high memory with little gas, though typical applications fit within the new limits.",
    "Wallets that implement their own gas estimation must update memory-cost logic; others inherit the behavior change from underlying nodes.",
    "Gas analyzers, simulators, and tracing tools must update their memory cost and call-gas models to match the new linear rules.",
    "EVM-compatible rollups mirroring mainnet gas rules would implement the new memory limit and pricing to maintain behavior compatibility.",
    "Node operators benefit from a linear bound on per-transaction memory usage, simplifying capacity planning and reducing worst-case memory exhaustion risk.",
    "Consensus-layer clients see minimal direct impact; they mainly ensure testing and fork configuration align with updated execution-layer behavior.",
    "Execution-layer clients must update EVM memory-cost calculation, enforce the new per-context memory cap, and adjust call-gas logic accordingly.",
    "Provides a clear linear upper bound on total memory a transaction can consume.",
    "Simplifies EVM memory pricing by removing the quadratic term from the cost function.",
    "Makes worst-case resource usage easier to estimate for EVM executions and client operators.",
    "Aligns call-gas limits with memory usage, avoiding unbounded memory growth across nested sub-calls."
  ],
  "discussion_url": "https://ethereum-magicians.org/t/eip-7686-linear-evm-memory-limits/19448",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7686.md",
  "canonical_url": "/latest/eips/7686.json",
  "markdown_url": "/latest/eips/7686.md",
  "citations": [
    {
      "recordId": "eip-7686",
      "artifactPath": "normalized/7686.json",
      "url": "/records/proposal/eip-7686/normalized/7686.json",
      "label": "EIP-7686: Linear EVM memory limits",
      "snippet": "This proposal ties how much EVM memory a transaction can use directly to its gas. It simplifies memory pricing rules so each unit of gas corresponds to at most one byte of memory, making worst-case resource use easier to"
    }
  ]
}
