EIPs

EIP-2930 — Optional access lists

eips.ethereum.org/EIPS/eip-2930

The first typed transaction (0x01) and the access-list data structure every later type (1559, 4844, 7702) reuses. An access list pre-declares the (address, storage_keys) tuples a transaction will touch, trading a calldata surcharge for cheaper post-Berlin opcode costs.

import {
  accessListSchema,
  accessListEntrySchema,
  transaction2930UnsignedSchema,
  transaction2930SignedSchema,
  ACCESS_LIST_ADDRESS_COST,
  ACCESS_LIST_STORAGE_KEY_COST,
  FORK_BLOCK,
} from "@ethernauta/eip/2930";

Surface

Access list

ExportPurpose
accessListEntrySchema, AccessListEntryOne (address, storageKeys[]) tuple.
accessListSchema, AccessListThe full list.

Used by every typed transaction in the library: 1559, 4844, 7702 all import this schema from here.

Wire format

ExportPurpose
transaction2930UnsignedSchema, Transaction2930UnsignedType-1 pre-signing payload.
transaction2930SignedSchema, Transaction2930SignedType-1 signed envelope.

Spec constants

ExportValueSource
ACCESS_LIST_ADDRESS_COST2400nPer-address gas cost.
ACCESS_LIST_STORAGE_KEY_COST1900nPer-storage-key gas cost.
FORK_BLOCK12244000nBerlin activation.

Where this used to live

The access-list schema and the type-1 codec previously sat under @ethernauta/eth/core/transaction/. They moved here as part of the rule “if the symbol is defined in the EIP paper, it lives in packages/eip/src/<n>/“.

Knock-on effect: every other typed-tx schema in this monorepo now imports accessListSchema from @ethernauta/eip/2930 instead of re-declaring it. Single source of truth for the access-list shape.

When dapps need this

  • Building access lists. eth_createAccessList (still in @ethernauta/eth) returns an AccessList. The schema validates the response.
  • Composing typed transactions. When you construct a 1559 or 4844 transaction by hand, the accessList field is this schema’s type.
  • Cost modeling. The two cost constants let you predict the calldata premium an access list adds before deciding whether to include one.

See also