EIP-2718: Typed Transaction Envelope
Originally, Ethereum had one transaction format. EIP-2930 (access lists) and EIP-1559 (base fee) needed new fields, but breaking the existing format would have required a hard fork. EIP-2718 introduces a type byte as the first byte of serialised transactions:
| Type | Defined by |
|---|---|
0xc0-0xfe | Legacy (RLP-encoded transaction directly) |
0x00 | Reserved |
0x01 | EIP-2930 (access list) |
0x02 | EIP-1559 (fee market) |
0x03 | EIP-4844 (blob) |
0x04 | EIP-7702 (set-code) |
Neo Equivalent
Neo has a single transaction type by design. Adding new capabilities (access lists via witness scopes, fee handling, etc.) is done by extending the existing transaction structure. Backward compatibility is handled at the network protocol level rather than by introducing parallel formats. The serialisation is binary, versioned by the network message version.
Live on Neo TestNet
Both implementations are deployed on Neo N3 TestNet (network magic 894710606).
| Implementation | Contract Hash | Deploy Tx |
|---|---|---|
Solidity (neo-solc) | 0x4e2300b8426b26eb8bbf57398a53ad810e313bf6 | 0x3f88a613…63d867 |
Neo C# (nccs) | 0xb600afb3c034ff11a3e25a26fa03b58e263d9cb8 | 0x989908a1…c2ed1f |
Checked-in snapshot matches on the EVM reference type constants; the manifest now also asserts Neo's neoTxVersion on both implementations. Source pairs under docs/standards-mirror/deployments/eip-2718/.
