{"id":"EIP-2718","name":"Typed Transaction Envelope","status":"Final","chain":"both","category":{"id":"comprehension","name":"Comprehension & Display","description":"Making blockchain data readable to humans"},"journeyStages":[{"id":"status","name":"Status & Confirmation","description":"Waiting for and confirming outcomes"}],"uxImpact":"Different transaction types (legacy, EIP-1559, EIP-4844 blobs) coexist seamlessly — users don't need to understand encoding differences. Design implications: abstract transaction type complexity from users, show relevant fields per type (maxFeePerGas vs gasPrice), indicate transaction type in history views for debugging. Design decisions: whether to expose transaction type in UI at all, how to handle wallets that don't support newer types, default type selection logic, backwards compatibility messaging.","hasDetailedContent":true,"content":{"id":"EIP-2718","summary":"EIP-2718 introduced typed transaction envelopes - a way to define different transaction formats. Instead of one transaction format forever, new types can be added: Type 0 (legacy), Type 1 (access lists), Type 2 (EIP-1559), Type 4 (EIP-7702). Wallets show different UIs based on transaction type, and the ecosystem can evolve without breaking old transactions.","applicability":{"whenToUse":["Your product addresses: no way to add new transaction features.","Your product addresses: backwards compatibility concerns.","The flow should deliver: new transaction types can be added (Type 2, Type 4, etc.).","You are designing a transaction type indicator experience with visible states and recovery paths."],"whenToAvoid":["Default to Type 2 unless compatibility requires legacy.","Show type badge with brief explanation.","Type-specific gas inputs and explanations.","Users never see addresses, amounts, or signing payloads in your UI."]},"designerTakeaways":["You can design UI that delivers new transaction types can be added (Type 2.","You can design UI that delivers old types still work, new types opt-in.","You can design UI that delivers type byte tells wallets how to parse and display."],"problemsSolved":[{"problem":"No way to add new transaction features","oldWay":"Transaction format was fixed, new features impossible","newWay":"New transaction types can be added (Type 2, Type 4, etc.)","impact":"critical"},{"problem":"Backwards compatibility concerns","oldWay":"Changing tx format would break everything","newWay":"Old types still work, new types opt-in","impact":"high"},{"problem":"No context for transaction interpretation","oldWay":"All transactions looked the same","newWay":"Type byte tells wallets how to parse and display","impact":"high"},{"problem":"Gas pricing couldn't evolve","oldWay":"Single gas price field forever","newWay":"Type 2 added base fee + priority fee via new format","impact":"high"}],"uxPatterns":[{"name":"Transaction Type Indicator","description":"Show users which transaction type they're signing","mockup":"concept/gas-abstraction","userFlow":["User initiates transaction","Wallet detects/selects transaction type","Type-specific UI shown","User sees relevant gas options","Confirms with full context"]},{"name":"Legacy vs Modern Transaction Choice","description":"Let users choose transaction type when relevant","mockup":"concept/gas-abstraction","userFlow":["User opens advanced settings","Transaction types explained","Recommendation highlighted","User selects appropriate type","Type determines gas UI"]},{"name":"Transaction History by Type","description":"Filter and view transactions by type","mockup":"concept/gas-abstraction","userFlow":["User views transaction history","Each tx shows its type","Can filter by type","Understand different tx behaviors"]},{"name":"EIP-7702 Transaction","description":"Special UI for account upgrade transactions","mockup":"generic/instant-confirm","userFlow":["User enables smart wallet","Type 4 transaction created","Features explained clearly","Address confirmation shown","Upgrade executed"]}],"uiComponents":[{"name":"TransactionTypeBadge","description":"Visual indicator of transaction type","states":["type-0","type-1","type-2","type-4"],"props":["type","showName","showDescription"]},{"name":"TypeSpecificGasUI","description":"Gas settings appropriate for transaction type","states":["legacy","eip1559","eip7702"],"props":["type","gasParams","onChange"]},{"name":"TransactionTypeSelector","description":"Advanced option to choose transaction type","states":["collapsed","expanded"],"props":["availableTypes[]","selected","onSelect","recommendation"]}],"antiPatterns":[{"pattern":"Hiding transaction type from users","why":"Users can't understand why gas UI differs","instead":"Show type badge with brief explanation","severity":"medium"},{"pattern":"Using legacy (Type 0) by default","why":"Misses EIP-1559 benefits, wastes user money","instead":"Default to Type 2 unless compatibility requires legacy","severity":"high"},{"pattern":"Same gas UI for all types","why":"Type 2 has different fields than Type 0","instead":"Type-specific gas inputs and explanations","severity":"medium"},{"pattern":"Not explaining new transaction types","why":"Users confused by Type 4 (7702) when it appears","instead":"Clear explanation of what new types enable","severity":"medium"}],"onMonad":[{"aspect":"Transaction Type Support","ethereum":"Types 0, 1, 2, 4 all supported","monad":"Monad supports the same transaction types","designImplication":"Same type-based UI works on Monad"},{"aspect":"EIP-1559 on Monad","ethereum":"Type 2 widely used for predictable fees","monad":"Type 2 works but fees already very low","designImplication":"Still recommend Type 2 for consistency"},{"aspect":"EIP-7702 Benefits","ethereum":"Type 4 for smart wallet upgrades","monad":"Same benefits plus faster execution","designImplication":"Encourage Type 4 adoption for smart wallet features"}],"relatedStandards":[{"id":"EIP-1559","relationship":"EIP-1559 introduced Type 2 transactions via EIP-2718"},{"id":"EIP-7702","relationship":"EIP-7702 introduced Type 4 transactions for account upgrades"},{"id":"EIP-658","relationship":"Transaction receipts include type for proper parsing"},{"id":"EIP-155","relationship":"Chain ID included in typed transaction encoding"}]},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-2718","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=EIP-2718","type":"discussion"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/EIP-2718","markdown":"https://www.eipsfordesigners.com/standards/EIP-2718/content.md","agent":"https://www.eipsfordesigners.com/standards/EIP-2718/agent.md","api":"https://www.eipsfordesigners.com/api/standards/EIP-2718","official":"https://eips.ethereum.org/EIPS/eip-2718","discussion":"https://ethereum-magicians.org/search?q=EIP-2718"},"freshness":{"lastReviewed":"2026-04-05","lastUpdated":"2026-04-05"}}