Wildcards Protocol

Link ENS Domains to NFT Collections on any chain and provide holders with free wildcard sub-domains

Wildcards Protocol

Our protocol empowers NFT projects by enabling wildcard domains for their Ethereum Name Service (ENS) names. By linking an ENS name to an NFT collection, individual holders will automatically receive wildcard subdomains.

For example, 69.dippies.eth will always point to the owner of Dippies #69.

Ethereum Contract Address

The smart contract for the Wildcards Protocol is deployed on the Ethereum Mainnet at this address.

This contract is a slight modification of the official ENS Public Resolver, which is deployed here. Most functions found in the public resolver such as setAddr, setContentHash, and setText have been implemented, allowing the main domain (i.e., dippies.eth) to retain normal on-chain record setting via the resolver. The domain's controller/manager can also set normal on-chain subdomains. NFT Wildcard resolution only kicks in when a subdomain does not 'exist' in the registry.

Getting Started

The first step for an NFT project is setting the resolver contract of their ENS domain to this address

The second step for an NFT project is to link their ENS name to their NFT contract address while also providing the chain ID (chain ID for Ethereum is 1, Optimism is 10).

This process is tailored to both NFT projects on Ethereum and those on other chains.

Currently we support ETH & Optimism with other EVM chains being added weekly.

setLinkedContract Function

NFT project owners will use the setLinkedContract function to link an ENS to their NFT contract address:

function setLinkedContract(string memory name, uint256 NFTchainId, address nftaddr)

When calling this function, NFT projects should provide the following information:

  • name: This is the ENS name that you want to link to your NFT collection. For example, "dippies.eth".
  • NFTchainId: This is the chain ID of the network where the NFT contract is deployed. For Ethereum, this will be 1.
  • nftaddr: This is the address of the NFT contract that you want to link with the ENS name. For example, "0x82f5ef9ddc3d231962ba57a9c2ebb307dc8d26c2".

Optimism Support

While the Wildcards Protocol also supports the Optimism network, we would like to clarify that our Optimism-specific resolver, deployed here, is solely used for resolving NFT ownership & records on Optimism. It is not intended for users to directly interact with this resolver.

Instead, NFT project owners wishing to link their ENS names to collections on the Optimism network should still utilize our Ethereum mainnet contract to do so.

The purpose of our Optimism resolver is to facilitate the Cross-Chain Interoperability Protocol (CCIP) in our back-end processes. Our CCIP gateway server directly forwards all queries it receives to the 'resolve' function of this Optimism resolver.

Resolving a Wildcard Domain

Many popular libraries such as ethers.js and web3.js support resolving of wildcard ENS domains out of the box. This functionality is also supported by many popular wallets, including MetaMask, Trust Wallet, and Uniswap Wallet.


If you have any questions, please feel free to reach out to us. You can create an issue on GitHub or contact us directly on Twitter