Zora

Intro

Zora has built its own Media ecosystem on top of the Ethereum and mainly uses the ERC721] as base contract Zora Development Kit (ZDK) can be found at: https://docs.zora.co/docs/zora-api/zdk

Full documentation is available at: https://docs.zora.co/docs/smart-contracts/zora-V3 Zora protocol has a full stack of decentralised open source tools:

More sources are at the bottom of this page

The difference between ERC721 and zNFT ERC721

"The zNFT ERC721 has these main changes from a standard ERC721 largely for:

  1. building the market code into the token contract itself for a permission-less perpetual market

  2. allowing for URL updates and accessing both metadata and content along with validatable hashes directly from the contract. The current owner can update the URL which can be validated off-chain as being the same content as the original."

(Source: reply on Discord from Iain)

About the protocol

  • Zora protocol is an extension to ERC721

  • Intended to provide a unified pool of liquidity in the form of bids for each NFT market

  • This protocol refers to NFTs as Media

  • Establishes universal, perpetual markets for media in the form of ERC721

Utilities of Zora protocol (standard)

Functions-simplified Types

  • constructAsk

  • constructBid

  • constructBidShares

Hashing Utilities

  • sha256FromBuffer

  • sha256FromHexString

  • sha256FromFile - Create a sha256 hash from a local file This is most useful for the hashing of large files. It uses a read stream to load bits into memory via a buffer and construct a hash as it consumes the contents of the file.

EIP712 Utilities

  • signPermitMessage - Permit was specified as an extension of the ERC-20 standard to allow users to issue approval to accounts without needing ETH.

We have extended it further to be used for the Zora Protocol, so that users can delegate approvals to other smart contracts to perform actions that approved users can do such as:

  • setAsk

  • acceptBid

  • updateContentURI

  • updateMetadataURI

  • transfer

For now, the signer must be an ethers Wallet object. But soon we will support any Signer.

  • signmintWithSigMessage

  • recoverSignatureFromPermit

  • recoverSignatureFromMintWithSig

Miscellaneous

  • approveERC20

  • isURIHashVerified

  • isMediaDataVerified

  • wrapETH

  • unwrapETH

This is the sum up of Zora Contracts overview, find full documentation here: https://docs.zora.co/docs/smart-contracts/zora-contracts

  • Zora Contracts: https://docs.zora.co/docs/smart-contracts/ZORA-contracts

  • Zora Protocol - ZDK: https://docs.zora.co/docs/developer-tools/zdk/introduction

  • Zora as Media Protocol: https://cryptomedia.wtf/

  • Zora zDK - NFT Gallery Components and code snippets: https://ourzora.github.io/nft-components/?path=/docs/introduction--page

  • Metadata schemas: https://github.com/ourzora/media-metadata-schemas

Last updated