ERC-1820: Pseudo-introspection Registry Contract
ERC-1820 deploys a single global registry contract at the deterministic address 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24 (via Nick's-method singleton deploy). Any contract can register that another address implements an interface for it — setInterfaceImplementer(account, interfaceHash, implementer). ERC-777's tokensReceived hook discovery uses this.
Why It's Needed on Ethereum
ERC-165 only works for contracts that implement the standard themselves. ERC-1820 adds a layer: external delegated implementers, and EOAs that designate another contract to act on their behalf for specific interfaces.
Neo Equivalent
Neo has no global registry contract because the manifest already serves the discovery purpose for the contract's own interfaces, and ContractManagement provides the lookup primitives. For "EOA-style accounts that delegate to another contract", Neo's NEP-30 verify subsumes the use case.
If you genuinely need a key-value style attribute registry, the Neo C# port below shows a minimal version — typically deployed once by an ecosystem and called by participating contracts.
Live on Neo TestNet
Both implementations deployed on Neo N3 TestNet.
| Implementation | TestNet Address | Contract Hash |
|---|---|---|
Solidity (neo-solc) | NgiVMV6vo8QHaQEhxMDBMCHdq2Ps5iXQxm | 0x02704624…2ad52ee4 |
Neo C# (nccs) | NaJCEkEXwwsWFHXU791K6Zk3ZpFya5HPk6 | 0x8f36ff27…99cec59d |
Verified: getManager(account) == account (default behavior matches the EIP). docs/standards-mirror/deployments/erc-1820/.
