How to sells NFTs on the secondary market?
Overview
As an End User, I want to be able to sell NFTs (that I bought on the primary or the secondary market) on the secondary market.
For the moment, like for the purchase of an NFT, the only way to sell an NFT is with the auction mechanism. As an End User, when I create a listing to sell a specific NFT of mine, I need to set:
The floor price in XTZ: the first order will have to be greater or equal to this floor price
The start and end dates (minutes, hours, days) : when the end date is reached, the best order wins the NFT.
In the back-end, there will be 2 steps (so 2 endpoints to call) to create a listing for a specific token:
Create a listing,
Link the listing to the token.
As an End User who sells a NFT on the secondary marketplace, I will receive email notifications when:
I receive a new order
The listing has been sold to another End User
Convert XTZ amount in EUR
This step is recommended (to display important information for the End Users) but not mandatory.
Use case
To offer your End Users a smooth user experience, when your End Users place an order, we advise you to convert it in the other currency. If the order is in EUR, you can display the price in XTZ and conversely if the order is in XTZ, you can display the price in EUR.
As an End User, when I type an amount in XTZ to withdraw to an external Tezos wallet, I might want to be able to check how much is this amount in EUR.
When an End User places an order in EUR (by credit card) for a specific listing, he can wonder how much it is worth in XTZ and conversely
when an End User places an order in XTZ for a specific listing, he can wonder how much it is worth in EUR.
API
Here is the link to the API documentation to convert a price in another specific currency:
https://sandbox.nfts.eniblock.fr/redoc/listings-trades#operation/getExchangeRate
Create a listing
Use cases
As an End User, I want to be able to sell NFTs (that I bought on the primary or the secondary market) on the secondary market.
As an End User, when I validate the listing creation of my NFT, first a listing needs to be created in database through a specific endpoint.
API
Here is the link to the API documentation to create a listing for a specific End User:
https://sandbox.nfts.eniblock.fr/redoc/listings-trades#operation/createListing
Link the listing to the token
Use case
As an End User, I want to be able to sell NFTs (that I bought on the primary or the secondary market) on the secondary market.
Once the listing has been created, another endpoint to link the created listing to the token that is for sale by the End User needs to be called.
API
Here is the link to the API documentation to link the listing to the token:
https://sandbox.nfts.eniblock.fr/redoc/listings-trades#operation/createListingTokens
Calculate fees and royalties
Use case
As an End User, when I sell a NFT on the secondary marketplace, there will be potential fees and royalties.
When the End User types a listing amount, we highly recommend you to display both fees and royalties amounts.
This step is recommended (to display important information for the End Users) but not mandatory.
API
Here is the link to the API documentation to get the fees and royalties amounts:
https://sandbox.nfts.eniblock.fr/redoc/listings-trades#operation/findFeesAndRoyalties
Get the orders for the listing
Use case
Say your are making a fantasy football video game: when an End User chose a specific listing on the listing page, you want to be able to display to your End User all the current orders regarding this specific listing.
For example, if there is one current order on the listing, you want to display specific information like the End User account name who made the order, the price and the daytime.
API
If we want to identify the auction winner, we need to query with the following parameters: "type
": "CASH_HOLDER
" in order to get the accountName
and the transactionHash
.
Here is the link to the API documentation to display a list of the current orders for a specific listing:
https://sandbox.nfts.eniblock.fr/redoc/listings-trades#operation/getOrderPayments
