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