SIP001 - Non Fungible Tokens in STEEM

in nft •  6 years ago  (edited)

NFT.png

We all love tokens

One specific kind - Non Fungible Tokens, or NFTs in short, form the basis of many great dApps such as CryptoKitties, Gods Unchained, Known Origin and of course our beloved @steemmonsters!

NFT concept so useful and powerful it could even be considered by some a defining factor for blockchain growth.

I think it's about time to introduce native support for NFTs in Steem Blockchain!

I wrote an open source specfication proposal which does just that. Next step will be to gather enough community support - your support - to make it a reality.

Check it out on Github

In short, this spec proposes:

  • Native APIs for NFTs (querying, issuing, burning, etc.)
  • Separate storage inside each token for issuer's, owner's and dApp's data - they can write only to their own section.
  • A new mechanism for users to send NFT tokens to third party dApps (similar to a smart contract)
  • For those dApps to consume and process token interactions asynchronously using on-chain queuing

We are looking forward for your comments:

  • If you are an entrepreneur: tell us how would you use native NFTs on Steem?
  • If you are a developer: what do you think about the specification proposal?

How you can help:

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hello @upheaver! I believe that this is an excellent proposal for the Steem blockchain. Although I know very little of this approach but, from your detailed and descriptive document, I could not agree with you more on how this approach could greatly benefit the blockchain.

One thing I would like to point out in your contribution is how you tagged it. We moved your contribution from the development category to the ideas category. Proposals or suggestion to an open source project fits more on the ideas category.

I would like to invite you to talk about this approach on Utopian IdeaHub show. You will have the opportunity to talk about this proposal to a wider audience on our discord server. Thank you.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Great, thank you very much for the review!

voted for witness

Thanks!

Thank you for your review, @knowledges! Keep up the good work!

Oh wow... very interesting.

Well, a little while ago I wrote a post about designing an onboarding system for dapps that need a solution that is a lot more robust than the one currently provided by the blockchain.

One of the ideas here was the incubating account would amass enough resources to create a "real" account on the blockchain, granted the requisites were met. Passing a test, earning enough upvotes, etc.

It seems to me like a system could implement a NFTokens to keep track of the earnings, awards, levels or what have you to "graduate" the incubating accounts into real accounts.

Of course for this to make sense, I would probably have to write a wall of text, but much of the idea is explained on my post.

  ·  6 years ago (edited)

Just thinking out loud: you could use this NFT like a punch-in timecard which records user's progress as he explores the various community apps. He can then hand it in and convert to a full account.

After reading your comments to @Ned, I was wondering if you might consider a more in-depth explanation of your proposal and the potential benefits.

I myself read this and some of the documentation and wasn't fully clear about the benefits. Likely quite a few others weren't as well.

I ended up not responding because I wasn't quite sure about the potential benefits.

I'm not sure what I would use them for, but I have wished I could create some type of game on Steem for quite a while and have investigated it to some degree. Of course, it's not exactly easy without enlisting the help of other developers. I think that advancements that increase our viability for games and dapps are extremely beneficial though.

Games are a huge market. They may in fact end up being quite a substantial portion of the crypto community, as more games may decide to use crypto. They already use digital currency as it is. It would be quite beneficial if they used crypto instead. If even a few relatively small games chose to use Steem and SMT's, that might be quite good for the Steem price and development.

Thanks for your feedback. Indeed the spec can be complicated to understand, I am thinking to write several posts on the differences between upcoming SMTs and main features of the proposal

NFTs are very important to the future of Steem. We need this to happen. This post will be resteemed and I'll resteem and upvote any future posts related to it.

I want to be able to creat a Steem newspaper as an NFT that can be purchased or regularly distributed to delegating subscribers to the news.

Additionally, I also like the idea of NFTs as comic books, art, ebooks.

This could easily be done with my upcoming DApp creator called steem-state for soft-consensus applications on top of the Steem blockchain.

Are you wanting to hard-code this onto the Steem source, or would want it running on top of the Steem blockchain (still being fully decentralized) using custom_json transactions? I'll update you once my project is released (should be by friday).

  ·  6 years ago (edited)

i wonder if a separate token for up voting comments would be useful. but then again im sure if it was it probably would have been looked at earlier


This post was shared in the Curation Collective Discord community for curators, and upvoted and resteemed by the @c-squared community account after manual review.
@c-squared runs a community witness. Please consider using one of your witness votes on us here

Hey, @upheaver!

Thanks for contributing on Utopian.
Congratulations! Your contribution was Staff Picked to receive a maximum vote for the ideas category on Utopian for being of significant value to the project and the open source community.

We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

  ·  6 years ago (edited)

My understanding is:

  1. we'll not be able to "see" these tokens in our Steem wallets.

Ok, maybe you'll design your own client for that purpose, but:

Number 2 - we'll not be able to trade these tokens on internal Steem market.

Ok, maybe you'll create the own market too. But doesn't it look like too much fuss ?

  ·  6 years ago (edited)

No, that's the other way around. This proposal is to implement these features natively, which means these tokens will be visible natively on the blockchain and all user interfaces, and you will be able to trade them against native currencies (STEEM and SBD), and even SMTs.

But that's something you can't accomplish without Steemit inc ?

It would be great if they did, but it's not 100% necessary. It would be possible to build this as a "community plugin" for Steem blockchain.

Witnesses ultimately control what software gets deployed.

But at least the site steemit.com is 100% property of Steemit inc afaik, so you can't force them to cooperate considering what steemit.com visitors will be able to see. Right now there's quite a few blockchain functions not supported by steemit.com ( like acc creation, convertion and so on ) and there's no reason to expect this attitude to change in future.

True, but steemit.com is not the only interface to Steem blockchain, there are great options out there - steempeak, steeve, busy

True, and from none of that you can expect any cooperation for granted. That's why first thing I mentioned that you probably have to consider launching your own client prior to any other plans.

Why does it have to be native? Wouldn't it be much easier to do it on top using custom_json transactions?

It can be non-concensus up to a certain level, there's a few things which are better done natively as it has a much better user experience and less chance for errors.

In the example of steemmonsters, when a users A and B both simultaneously buy a card from user C, only one of them will receive the card, but both will pay.

This can be avoided by either locking the card for a certain time before allowing a purchase, or by implementing the marketplace and token tracking natively, which would not require any locking.

  ·  6 years ago (edited)

I don't think your specification involves any purchases using Steem -- that is where soft-consensus falls short, when transfers with Steem must be incorporated into the DApp (I do have a solution, though, but it is quite complex and involves pegging a token running using soft-consensus to STEEM). Anything other than incorporating STEEM transfers, though, can be done using soft-consensus.

But is there any part of your specification that actually requires native consensus? I haven't read through it all, so sorry if I am missing something.

I wonder if @aggroed @wehomen @clayboyn saw this about NFTs on steem 7 months ago

i feel like @upheaver you should come check out https://steem-engine.com