Skip to main content


Supports bids in ETH and supports Listing Fee.


All deployed addresses can be found on the Auctions introduction page.

Check out the Key Considerations 🔑 section before getting started.

Auction Structure#

  • seller: The address of the seller
  • reservePrice: The reserve price to start the auction
  • sellerFundsRecipient: The address where funds are sent after the auction
  • highestBid: The highest bid of the auction
  • highestBidder: The address of the highest bidder
  • duration: The length of time that the auction runs after the first bid is placed
  • startTime: The time that the first bid can be placed
  • firstBidTime: The time that the first bid is placed
  • listingFeeRecipient: The address that listed the auction
  • listingFeeBps: The fee that is sent to the lister of the auction
struct Auction {    address seller;    uint96 reservePrice;    address sellerFundsRecipient;    uint96 highestBid;    address highestBidder;    uint48 duration;    uint48 startTime;    uint80 firstBidTime;    address listingFeeRecipient;    uint16 listingFeeBps;}



Implements EIP-165 for standard interface detection.

function supportsInterface(bytes4 _interfaceId) returns (bool)


Creates an auction for a given ERC-721 NFT. There can only be one auction at a time for a given NFT.

function createAuction(    address _tokenContract,    uint256 _tokenId,    uint256 _duration,    uint256 _reservePrice,    address _sellerFundsRecipient,    uint256 _startTime,    uint256 _listingFeeBps,    address _listingFeeRecipient)


Updates the auction reserve price for a given NFT

function setAuctionReservePrice(    address _tokenContract,    uint256 _tokenId,    uint256 _reservePrice)


Cancels the auction for a given NFT.

function cancelAuction(address _tokenContract, uint256 _tokenId)


Places a bid on the auction for a given NFT. The bid percentage difference must be greater than or equal to 10% of the previous bid.

function createBid(address _tokenContract, uint256 _tokenId)


Ends the auction for a given NFT by sending the NFT to the highest bidder and the funds to the seller. Note, that this module honors royalty payouts and also supports Listing Fees.

function settleAuction(address _tokenContract, uint256 _tokenId)