# Introducing *.getcode.eth: ENS based onchain metadata resolver Source: https://ethereum-magicians.org/t/introducing-getcode-eth-ens-based-onchain-metadata-resolver/26994 Kiwi News: https://news.kiwistand.com/stories/Introducing-getcodeeth-ENS-based-onchain-metadata-resolver?index=0x69502694f2ae17b6db60b18103b681bee5f947c3b43c28b7656928be2efa594e75b90015 Submitted by misha on 2025-12-27 UTC, 2 upvotes, 0 comments ## Summary *.getcode.eth is an ENS wildcard resolver, built on ERC-3668, that extracts the metadata hash embedded in a contract's bytecode and resolves it as an ENS contenthash, making it fully onchain. It supports three modes: direct mode returns an IPFS contenthash of metadata.json, CBOR mode returns the raw dag-cbor CID, and proxy mode attempts to detect a proxy and resolve its metadata. The article lists limitations, including that old contracts lack embedded metadata, most contracts with Swarm metadata fail to resolve because they are not pinned in Swarm storage, and many contracts' IPFS metadata is not pinned to the IPFS network. ## Article Introducing *.getcode.eth: ENS based onchain metadata resolver What is *.GetCode.eth? Solidity compiler by default appends CBOR-encoded metadata to contract’s bytecode. *.getcode.eth is an ERC-3668 wildcard ENS resolver that extracts metadata hash from contract’s bytecode and resolves that as ENS contenthash. Examples : a) zAMM contracts: 0x00000000008892d085e0611eb8C8BDc9FD856fD3.getcode.eth b) Safe Proxy: 0xA23dfEA786465E0Ef51eD6C288c9f0070d047ef7.proxy.getcode.eth Basic UI with Metadata parsing & download features Resolver source code : 0x7661a4705F10d828B7d9FAB680c6E9559faEABB0 (verified on etherscan) 3 modes of operation Direct mode : 0x.getcode.eth -> IPFS contenthash (0xe3010170...) of metadata.json CBOR mode : 0x.cbor.getcode.eth -> Returns Raw dag-cbor CID of metadata Proxy Mode : 0x.proxy.getcode.eth -> Tries to detect proxy & resolve metadata.json Limitations : a) old contracts don’t have embedded metadata in contract bytecode b) all most all contracts with swarm metadata are fail to resolve as they’re not pinned in swarm storage c) bad proxies like USDC return blank implementation() address d) lots of contracts don’t have their IPFS metadata pinned in IPFS network You can read more about this in https://playground.sourcify.dev/, *.getcode.eth is same as sourcify playground but 100% onchain using contract’s bytecode & ENS wildcard resolver.