Integrate Statemine interaction into UI of KodaDot
Short description
Statemine as the “home base” of assets in the Kusama network has so far untapped potential for users to create initial liquidity to support their project through the asset pallet and also to tokenize unique (non-fungible) assets.
This project aims to extend the current, universal NFT explorer and marketplace interface (KodaDot) to support non-fungible tokens on Statemine. With the final result of this proposal, users will be able to mint, transfer, and burn NFTs on the Statemine network.
Problem statement
The current workflow to create non-fungible assets on Statemine is not present except using extrinsics which is intended for developers’ executions and they are not end-user friendly, which result in a complex task for end-users to create NFTs.
Deliverables
On top of this, we will provide a user-friendly interface to teleport KSM between Kusama and Statemine, plus future connected parachains as well if they have close to similar functionality. The result will be, that users aren’t forced to switch between apps, chains and reload their window context completely.
First of all, our aim since every grant till today is to have an open-source UI with permissive MIT license and support developers to fork and contribute to repository, as till today we have 60+ forks.
Our primary deliverable will be an extension of KodaDot: an NFT explorer to work with the Statemine’s unique pallet.
The main goal of this proposal is to provide a simple friendly NFT UI to the end-users to open flood gates to mainstream adoption of non-fungible tokens for Statemine
Milestone 1: Non-fungible tokens
The first milestone is focused on the three main sections:
- Teleport $KSM between Kusama Relay Chain and Statemine
- Implement a user interface to create, burn, transfer NFTs (and many more)
- Design and setup the SubQuery indexing service, which could be reused by other projects
Deliverables
- Make a page dedicated to creating a unique (NFT) with a simple workflow
- Ability to create a Class (collection)
- Show class detail with metadata
- Show minted NFTs in explorer mode
- Ability to set and remove approval for instances
- Display metadata for particular NFT (instance)
- Transfer (send) ownership for class and instance
- Set metadata for class and instance
- Set attributes for class and instance
- Burn an instance
- Clear metadata and attributes.
- Implement a page to teleport KSM between Kusama and Statemine
- Extend vue-polkadot/api to handle multiple (parallel connections).
- Provide check if a user has enough balance on Statemine / Kusama to be able to mint and transfer a collection.
- Implement a GraphQL schema for Classes and instances
- Extend the embeddable component that will work with the Statemine implementation (note: embeddable component ->
- Write introduction article around experience with development around unique pallet implementation
- Write introduction article presenting using KodaDot on Statemine
Amount required -- 27_000 €
Budget breakdown
Milestone 1 - non-fungible interface for Statemine in KodaDot
- Teleport interface for $KSM - 4k€
- Implement interface & flow
-
- Easier NFT creation - 9k€
-
- Showcase & Displaying NFT assets - 6k€
- Design query and deploy SubQuery project - 8k€
Team
The team behind @KodaDot
- Matej Nemcek (@yangwao) - Co-Founder of KodaDot, VueJS background, more info hypersignal.xyz
- Viktor Valastin (@vikiival) - Co-Founder of KodaDot, Publication about carsharing dApp on ETH using ERC721 token composition.
Comments (5)
Thanks for the proposal. Just FYI this is already done on Singular (pending release), but it's always good to have more options, especially open source ones 👍
A few questions.
Double sells are normal, they happen to us too, though only in extreme circumstances these days - if you enable buying and selling of Statemine assets, what logic do you intend to put in place to avoid this, and how decentralized will it be? I ask about decentralization of this functionality because a staple of Kodadot and this proposal is openness and open-sourceness, and a centralized component would make things a bit more complicated.
Milestone 1 states "Teleport $KSM between Kusama Relay Chain and Statemine", do you mean RMRK? Between RMRK and Statemine? If so, how do you intend to account of emote values, and how do you plan to do the bridging? Likewise, do you intend to implement or ignore the RMRK 2.0 standard?
Milestone 1 also says "Implement a user interface to create, burn, transfer NFTs (and many more)" - what is the "many more"?
We have already spoken to Subquery about setting up a graph for Statemine some months ago. I'm wondering if you too have talked to them about this and if this is something related? They were planning to build this themselves regardless of this proposal.
I ask because we've noticed that since you started relying almost entirely on Subquery, you're basically delegating all your infra to a third party. This lead to a 36 hours interruption of service on Kodadot until it was noticed, when Kusama recently had a problem with finalization and Subquery was one of the services that was knocked offline (in a way). How do you intend to avoid this in the future, and will your Statemine implementation also use Subquery or do you plan to use native chain reads and RPC calls (imo, you should)?
I'm curious because integrating Statemine is rather easy, so if you'll be offloading your infra (DB) to a third party like Subquery, what is the 27000 euro for other than UI (most of the deliverables you list are just a single function call, hardly a day's work, except the teleport which I'm not clear on)?
I'm pretty sure this means what they said, "teleport KSM [the token], between Kusama and Statemine" - as you can do in the Polkadot js UI - I don't see how this is related to RMRK? KSM is not an NFT.
Also, for onchain NFTs, I would recommend we use multisig escrows for purchasing if native onchain market logic isn't available, I recall Bryan had demonstrated a handful of marketplaces for other transferrable assets (indeces, proxy accounts, etc) on Kusama early on which used this mechanism. Hoping we finally get the decentralized network of escrow providers hinted at by the early local ksm projects 😂