Docs

Marketplace V3

Yash Kumar

We're excited to announce the release of Marketplace V3!

The new marketplace contract, Marketplace V3, offers improvements over previous version in terms of design and features. We've added conveniences to the smart contract to make the experience of performing these core actions fast and intuitive.

Key improvements include:

  • Making offers for NFTs not on sale at all, or at favorable prices
  • Ability to accept multiple currencies for direct listings
  • Reserve listings for particular buyers
  • Explicit getter functions for fetching high level states e.g. “has an auction ended”, “who is the winning bidder”, etc.
  • Simplify start time and expiration time for listings

The design document provides the context behind this update and contains the API reference for functions on the contract.

The contract is divided into separate extensions for listings, auctions, and offers. On typescript SDK, the usage of new marketplace contract is different from the previous version:

const marketplace = await sdk.getContract("your_address", "marketplace-v3"):
// directlistings
marketplace.directListings.createListing(...)
marketplace.directListings.buyFromListing(...)
// english auctions
marketplace.englishAuctions.createAuction(...)
marketplace.englishAuctions.makeBid(...)
// offers (make offers on any NFT, doesn't even need to be listed!)
marketplace.offers.makeOffer(...)
marketplace.offers.acceptOffer(...)

You can find the SDK API reference here: Direct Listings, English Auctions, Offers.

The new marketplace smart contract is supported by the typescript SDK version 3.8.0 onwards! It is available to deploy here: https://thirdweb.com/thirdweb.eth/MarketplaceV3.