EIP-7702: Set Code for Externally-Owned Accounts
EIP-7702 (Pectra hard fork, 2025) lets an EOA temporarily delegate its execution to contract code via a signed authorisation list in a transaction. For the duration of the transaction, calls to the EOA's address run the delegated contract's bytecode — the EOA effectively becomes a smart account, on demand.
This is Ethereum's third attempt at account abstraction, after EIP-2938 (failed) and ERC-4337 (parallel mempool). 7702 finally reconciles the two by amending the EVM itself.
Authorisation Tuple
(chainId, address, nonce, y_parity, r, s)Signed off-chain by the EOA, included in a type-4 transaction's authorisationList.
Neo Equivalent
EIP-7702 is Ethereum catching up to what Neo always had: every Neo account is a contract from the protocol's perspective. To make an account "smart", you deploy a contract whose script hash matches your wallet address. There's no mode-switching because there's no mode to switch from — verification scripts run on every transaction signing the account.
The Neo C# tab shows what an EIP-7702-style "delegated execution" looks like in Neo terms: a programmable account contract.
Live on Neo TestNet
Both implementations are deployed on Neo N3 TestNet (network magic 894710606).
| Implementation | Contract Hash | Deploy Tx |
|---|---|---|
Solidity (neo-solc) | 0xb156b370b4ad897caf955e38fffa637195438751 | 0x7a3335dd…17e917 |
Neo C# (nccs) | 0x158d0d7fdf17d71b6e733997cd74b68f0d1c3bfd | 0x0e74dedc…e84590 |
Cross-implementation invocations match on delegationCount. Source pairs under docs/standards-mirror/deployments/eip-7702/.
