Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NFT Marketplace UI #3

Open
green-jay opened this issue Apr 20, 2022 · 0 comments
Open

NFT Marketplace UI #3

green-jay opened this issue Apr 20, 2022 · 0 comments

Comments

@green-jay
Copy link

green-jay commented Apr 20, 2022

Title

NFT Marketplace UI

Short description

The objective is to use a middleware to index and process historical node data and to build a user interface for the NFT infrastructure and its trading functionality we have built as set of Substrate pallets.

Bounty

1st place: $17,000
2nd place: $8,000

The bounties will be paid out in $HDX and $BSX (which may be frozen until the official launch via LBP has been conducted)

All submissions are eligible for a $150,000 shared prize pool offered by the Polkadot treasury, link to more info here soon.

Code refs

https://github.com/galacticcouncil/Basilisk-node/tree/feat/marketplace/pallets/marketplace

Contact person

jgreen#7106 on Discord

Requirements

1) Middleware


In order to have reasonably fast node querying, an SDK for exporting and processing the data should be used. Typically we use SubSquid SDK for this preprocessing but you can choose other similar services such as SubQuery etc. For inspiration you can check Basilisk-api repository

2) UI


A lightweight user interface should be created to display and trade NFTs (Non-fungible tokens).

List of supported operations/interactions can be derived from callable functions (extrinsics) of the pallets:

  • Create a class
    Creates a class, (i.e. collection) of tokens that can all be described by certain set of common properties.

  • Mint
    Mints a token that is unique within a class.

  • Transfer
    Transfers ownership of a token to another wallet.

  • Burn
    Destroys a previously minted token.

  • Destroy a class
    Destroys a previously created class. In our implementation, such a class cannot contain any minted tokens inside.

  • Set a price
    Also commonly called a listing. Owner of a token can list their token on the marketplace with a specified price for which it can be bought instantly by other users.

  • Buy
    A user can buy a listed token for previously set price by its owner.

  • Make an offer
    Even if a user does not set price for their token, other users can make offers for which they would buy the token. This reserves a full offered amount on offerer's account. Only one offer can be made by one account for a token.

  • Withdraw an offer
    Retract a previous offer and unreserve funds.

  • Accept an offer
    Owner of a token can decide to accept an offer which then acts as a regular buy action.

  • Add a royalty
    Owner of an NFT can embed a royalty to a token. That means from that point on, each trade of this NFT will split the full amount to the royaltee (usually the owner) and the seller of the NFT in the defined ratio.

For more detailed info and actual configuration of the runtime please refer to in-line documentation preceding the corresponding method.

Additionally, historical data should be displayed in a sensible manner:

  • history of trades, offers, floor and ceiling prices
  • statistics of the whole marketplace and individual classes

All of the code must be open source licensed under https://spdx.org/licenses/Apache-2.0.html or MIT

Additional info

The basis of our NFT infrastructure is a generic NFT pallet built on top of the FRAME's Uniques pallet.

Technical specification

Pallet-nft provides an interface to perform standard operations with NFTs (e.g. create_class, mint, transfer, burn, destroy_class) for:

  • Other pallets such as pallet-marketplace via intrinsics (i.e. do_operation)
  • Users, who can directly call extrinsics

Pallet-marketplace then provides users with ability to monetize their tokens.

Submissions

Submissions are open until June 20, 12 CET.

You can submit your solution by opening a PR in this repo. Please include:

Your team's name, size and contact details
BSX / HDX address for the payout
A description of your submission
Links to your (public) repo(s) where the solutions have been developed
A 5-min video explaining your submission
The winners will be selected and notified in June.

Don't forget to submit your solution also via DoraHacks. This will allow you to participate in the distribution of the $150,000 prize pool provided by Polkadot treasury.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant