Awesome
NFT Storefront Contract Standard
The version of the contracts in the main
branch is the
Cadence 1.0 version of the contracts and is not the same
as the ones that are currently deployed to testnet and mainnet.
See the cadence-0.42
branch for the currently deployed versions.
The NFT Storefront contract standard is a cornerstone of the Open Marketplace ecosystem on Flow. An open market ecosystem promotes the
free flow of NFT listings across the network, emitted as events and consumed by other marketplaces (or any other consumer). Marketplaces may filter
listings consumed based on commission rates they may receive. Listings may be created with variable commission, royalties or other fractional revenue, paying to multiple accounts. NFT listings are not NFTs, they are Resources which can be transacted with using the purchase
function to obtain the token indicated by the listing.
The NFTStorefront contract lets you create a non-custodial NFT marketplace to simplify integration with off-chain applications/UIs. The contract supports sellers who want to list and manage NFTs for sale simultaneously across any number of marketplaces. Listing expiry, orphaned and ghost listing cleanup are also of value for integrators to minimize overheads and ensure the best UX.
Marketplaces and sellers also benefit from the robust security guarantees of Flow's account model when trading NFTs. Through this standard a NFT trade takes place from peer-to-peer, directly from the Storefront Resource in the sellers account to the purchasers account. At the same time, the standard ensures that marketplaces or other recipients may receive royalties, fees or commissions with no risk to the seller.
Sellers or marketplaces can optionally configure their NFTStorefront to be limited or closed. However, those wishing to participate in the Open Marketplace ecosystem on Flow are required to use the NFTStorefront standard.
Detailed docs: docs/documentation.md
Contract Addresses
Name | Testnet | Previewnet | Mainnet |
---|---|---|---|
NFTStorefront | 0x94b06cfca1d8a476 | 0x6df5e52755433994 | 0x4eb8a10cb9f87357 |
NFTStorefrontV2 (recommended) | 0x2d55b98eb200daef | 0x6df5e52755433994 | 0x4eb8a10cb9f87357 |
Usage
Each account that wants to offer NFTs for sale installs a Storefront
,
and then lists individual sales within that Storefront
as Listing
resources.
There is one Storefront
per account that handles sales of all NFT types
for that account.
Each Listing
can list one or more cut percentages.
Each cut is delivered to a predefined address.
Cuts can be used to pay listing fees or other considerations.
Each NFT may be listed in one or more Listing
resources.
The validity of each Listing
can easily be checked.
Purchasers can watch for Listing
events and check the NFT type and
ID to see if they wish to buy the offered item.
Marketplaces and other aggregators can watch for Listing
events
and list items of interest.