Note: The JPG Protocol has not been audited, and you should exercise caution when interacting with the protocol, particularly any marketplace functionality.

Marketplace functionality

If you are the owner of an NFT you would like to sell, you can do so through JPG's marketplace functionality.

Selling an NFT

A user can list a token for sale with the listForSale function, which requires data for the token you're listing, a price in ETH, and an optional curator address. If you input a specific curator as the seller, then only that curator will be able to make the sale.
When listing a token for sale, it does not leave your wallet until someone purchases the asset.
After a sale has occurred, the seller will need to withdraw the ETH from the contract by calling withdrawBalance.
There is also a bulkListForSale function, which allows you to list multiple NFTs for sale in one transaction.

Buying an NFT

If you would like to purchase an NFT currently listed through JPG, you can do so via the buyFixedPrice function.
The ending purchase price is the sum of the list price, curator fee, and royalty fee.

Curator Fee

Curators may receive commissions for sales through their subregistries. They can select a fee using setCuratorFee or use the standard curator fee of 5%.
This fee is added on top of the list price set by the seller.

Creator Royalties

There is also a creator royalty added to the seller's list price. Due to a lack of royalty standards across marketplaces, this is set at a flat 10% and is distributed manually by the JPG team. In the future, we plan to integrate royalty standards that gain adoption to automate this process.