Skip to main content

JSONExtensionRegistry

JSONExtensionRegistry#

This contract is an extension registry for any address or contract owned by another address to reference a theming configuration file on-chain to update their zora.co minting profile. On the UI level, this is also known as the Personalize feature - applicable to profile pages, collection and edition pages.

This contract is statically deployed at 0xABCDEFEd93200601e1dFe26D6644758801D732E8 on the following chains: | chain | address | etherscan | |-------|---------|----| | zora | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | zora sepolia | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | optimism | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | base | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | mainnet | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | sepolia | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | | | arbitrum | 0xABCDEFEd93200601e1dFe26D6644758801D732E8 | |

We will deploy on further chains as needed and we use an open CREATE2 bytecode-based deploy scheme where anyone can deploy this hyperstructure to any chain as desired.

Updating your configuration#

function setJSONExtension(address target, string memory uri) external;

Call this function to set the JSON extension for your own address or an owned target address. We lookup ownership first via AccessControl then the owner() function.

Reading your configuration#

function getJSONExtension(address target) external returns (string memory);

This function gets the latest registered JSON extension file.

Checking your admin status#

function getIsAdmin(address target, address expectedAdmin) external view returns (bool);

For front-ends checking for updates you can use the getIsAdmin function to determine if the ad.

Source#

View source at github.com/ourzora/json-extension-registry