NFT 'Showcase' ENS record and record standardization

We’re trying hard not to break anything on active ENS/IP specs so we don’t recommend reading json directly from eth.limo/… that’ll require new ENSIP specs. We use “randomized” list of public IPFS gateways as CCIP gateways to stay “decentralized” and read everything as “normal” CCIP’d ENS records.

function text(bytes32 node, string calldata key) external view returns (string memory value);

// get
let provider = new BrowserProvider(window.ethereum)
let resolver = await provider.getResolver("broke.eth")
let showcase = await resolver.getText("showcase")
// set
let _data = "data:application/json,..." // actual json string to resolve
// signed by owner/manager
let showcase_json = {"data": "<Resolver.__callback.selector + abi.encode(abi.encode(_data), signature, signer)>"}
// "data": here is CCIP-read specs

We’re testing “IPNS+IPFS” for storage pointer, & making sure we don’t break future IPNS+IPLD compatibility. (Support IPLD Contenthash - #7 by 0xc0de4c0ffee)

Text record’s key “showcase” is used as .json stored in .well-known directory format https://ipfs-gateway.tld/ipns/f<ipns-hex>/.well-known/eth/broke/showcase.json

Reverse eth/domain/sub.. directory format supports * wildcard subdomains records in same storage, e.g, https://ipfs-gateway.tld/ipns/f<ipns-hex>/.well-known/eth/broke/not/avatar.json for not.broke.eth’s avatar.

3 Likes