create account

NFTs on Steem Engine: A Technical Overview by cryptomancer

View this thread on: hive.blogpeakd.comecency.com
· @cryptomancer · (edited)
$41.58
NFTs on Steem Engine: A Technical Overview
![Steem Engine Logo.JPG](https://files.steempeak.com/file/steempeak/cryptomancer/f4ky248f-Steem20Engine20Logo.JPG)

Change is coming. Radical, next level, out of this world, mind blowing change. As the developer in charge of building out back-end support for NFTs on Steem Engine, I'm incredibly excited to be one of the agents of this change. I've been busily churning out code for the past couple months, getting everything ready. Now it's finally time to reveal some of the details many of you have been waiting for!

This post covers things from a technical perspective, so will be most useful to programmers and people looking to take advantage of NFTs in their applications.

**TL;DR:** everything you need to know to work with Steem Engine NFTs is documented here:

[NFT Reference Manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md)
[NFT Market Reference Manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Market-Contract.md)

### NFT... what is it and why should I care?

NFT stands for **N**on-**F**ungible **T**oken. It's a whole new type of token, very different from, say, Bitcoin or Ether or Steem, or anything currently on Steem Engine (those are technically known as fungible tokens). Unlike regular cryptocurrencies, NFTs allow each individual token to be unique. This is accomplished by means of special data properties that are attached to each token. The values of the data properties can vary from token to token, making each one different from all the others.

Splinterlands cards are a perfect example of an NFT. The data properties for Splinterlands cards are the card type, rarity, level, edition (Alpha, Beta, Promo, Reward, or Untamed), and whether the card is gold foil or not. If I want to sell one of my cards, if matters very much if I'm selling a mundane common or a much sought after legendary card. The details of the data properties distinguish the cards from each other in a big way.

NFTs are a great way to manage game assets, but that's just the tip of the iceberg. Imagine using NFTs to put physical, real-world assets on the blockchain. You could have an NFT that represents a property deed for real estate, or ownership of fine artwork. Investments that are normally illiquid and difficult to trade make perfect candidates for NFTs. Once digitized in such a way, they can be easily traded on Steem Engine's upcoming NFT marketplace (think a generalized version of the popular PeakMonsters market for Splinterlands).

The sky is the limit really, NFTs are still in their infancy and companies are just starting to explore their many potential uses.

![](https://i.imgur.com/iUk7quT.png)

### So how do NFTs work on Steem Engine?

Steem Engine is a smart contracts platform. Smart contracts are basically pieces of code, small computer programs, that get executed by the blockchain in response to certain kinds of transactions. Everything you do on Steem Engine, from transferring tokens to placing market orders, is actually handled by smart contracts behind the scenes.

To interact with a smart contract, you post a custom json transaction on the Steem blockchain. The Steem Engine node software detects the transaction, parses its contents, and triggers an action in the relevant smart contract.

Each smart contract exposes a range of actions to the public, a type of API for providing some service. For example, the tokens smart contract provides actions such as transfer, stake, delegate, issue, etc. Similarly, there is an nft smart contract that provides analogous actions for NFTs.

### All I have to do to use smart contracts is post custom json?

That's right! This means you can call smart contract actions from pretty much any programming language. Python and Javascript are popular choices.

You can even broadcast a custom json transaction directly from the SteemConnect web site. Go to https://v2.steemconnect.com/sign/ and select the **Custom Json** operation.

Most basic operations with NFTs (such as creating new ones, transferring them, trading them, and examining data properties) will be possible through the Steem Engine web site for non-technical users. However some programming skill will be required for more complex issuance & management mechanisms.

### Can I go start playing with NFTs right now?

NFT support has not yet been enabled on the Steem Engine mainnet, however they are fully functional on the testnet so developers can try them out there first.

The Steem Engine testnet web site is: https://qa.steem-engine.com/

Keep in mind this web site is experimental and not all features may be working properly at any given time.

To do anything on the testnet you will need to get some SSC (the testnet equivalent of ENG). SSC is just a play token for testing, it has no actual worth.

### To build a planet

![](https://i.imgur.com/J2bSfBQ.png)

The [comprehensive NFT reference manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md) details all the actions provided for NFTs and how to use them. You can go read it at your leisure. I'm not going to rehash all that documentation here, but I do want to provide a short quickstart example of how to make a new NFT.

Let's say I developed a nifty space exploration game that allows players to discover new planets. I want my players to be able to name their planets and trade them with each other. Sounds like a perfect job for NFTs!

Let's make a new NFT called PLANET on the Steem Engine testnet. We want to support the following features:

1. A planet has a location (x, y coordinates)
2. A planet has a name
3. Players should be able to rename planets

The first step is to create the PLANET NFT. We do this by broadcasting custom json for the nft smart contract's create action (you will be able to do this directly through the Steem Engine web site as well).

One easy way to do this is by using Python with the [Beem library](https://github.com/holgern/beem) for working with Steem. Here's a snippet of Beem-based Python code for broadcasting the create action for our new NFT:

    stm = Steem()
    set_shared_steem_instance(stm)
    stm.wallet.unlock("my password")
    
    src = "my Steem account name"
    tx = TransactionBuilder()
    op = operations.Custom_json(**{"required_auths": [ src ],
                        "required_posting_auths": [],
                        "id": "ssc-testnet1",
                        "json": {
                           "contractName": "nft",
                           "contractAction": "create",
                           "contractPayload": {
                              "symbol": "PLANET",
                              "name": "Galactic Planets",
                              "url": "https://mynft.com",
                              "maxSupply": "10000"
                           }
                        } })
    tx.appendOps(op)
    tx.appendSigner(src, 'active')

    print("broadcasting custom json transaction for", src, ":", tx)
    try:
        tx.sign()
        tx.broadcast()
        print("SUCCESS")
    except Exception as e:
        print("FAILED:", e)

A few things to notice about this:

1. The create action requires active key authority, so we sign the transaction with our active key instead of posting key.
2. The custom json ID is **ssc-testnet1**, because we are working on the Steem Engine testnet rather than the mainnet.
3. There are various parameters for the create action, here we just give a simple example. Again, consult the [NFT reference manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md) for full details.
4. Creating an NFT requires a 100 SSC (or 100 ENG for the mainnet) fee, which is paid automatically when you call the create action. If your account doesn't have enough to pay the fee, the action will fail.

### Adding data properties

Okay, we've got our PLANET NFT. But as it stands, there's not much we can do with it yet. Now we need to give it data properties to support our desired features.

It's important to note that an NFT can have as many data properties as you need, but only the first 3 are free. You'll have to pay a 100 SSC (or 100 ENG on the mainnet) fee for every additional data property beyond the third. Fortunately we only need 3 data properties for PLANET, so we won't have to pay any more fees.

Let's add the following data properties: x, y, and name

We will broadcast a separate custom json transaction for each data property we want to add (I'm not going to bother reproducing the Python program again here, you get the idea). With your active key, the transactions are:
 
    { 
      "contractName": "nft",
      "contractAction": "addProperty",
      "contractPayload": {
          "symbol": "PLANET",
          "name": "x",
          "type": "number",
          "isReadOnly": true
      }
    }
 
    { 
      "contractName": "nft",
      "contractAction": "addProperty",
      "contractPayload": {
          "symbol": "PLANET",
          "name": "y",
          "type": "number",
          "isReadOnly": true
      }
    }
 
    { 
      "contractName": "nft",
      "contractAction": "addProperty",
      "contractPayload": {
          "symbol": "PLANET",
          "name": "name",
          "type": "string"
      }
    }
    
Note that x and y are numbers, and we indicate they should be read-only (a planet's location can only be set once, it never changes). Whereas name is a string which the player will be able to edit.

### Issuing tokens

In my space game, when players discover a new planet, the game has to issue them a PLANET token to represent that discovery. Issuing new tokens is simply a matter of broadcasting yet another custom json, specifying the data properties to assign to the new token and which account it should go to.

Note that by default, only the Steem account that created the NFT with the create action is able to issue new tokens. However, there is a way you can specify a list of accounts to be granted issuance authority, as well as separate lists of accounts that are authorized to edit data properties on issued tokens. Go read the [NFT reference manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md) for more details on that.

Also, there is a small fee per token issued, which varies according to the number of data properties an NFT has. For a token with 3 data properties, like our PLANET, the fee will be 0.004 ENG per token. So the game owner needs to make sure the game account stays stocked with enough ENG to cover expected token issuance.

Here is the custom json for issuing a PLANET token with a random location and no default name set (this also requires active key authority):

    { 
      "contractName": "nft",
      "contractAction": "issue",
      "contractPayload": {
          "symbol": "PLANET",
          "to": "playeraccount",
          "feeSymbol": "SSC",
          "properties": {
              "x": 57,
              "y": -489
          }
      }
    }
    
Note the fee symbol is set to SSC for the testnet. You would use ENG for the mainnet. It's also possible to pay issuance fees with PAL, and potentially other tokens in the future.
    
### What's in a name

Once players have found a planet, they'll want to give it a name. Players can't edit NFT data properties directly. Instead, the space game should allow them to type in a name and then issue the corresponding custom json command on the player's behalf.

Here's the custom json for editing the name data property, which by default can only be done by the same account that created the NFT. Unlike our earlier actions, this can be done using only the posting key:

    { 
      "contractName": "nft",
      "contractAction": "setProperties",
      "contractPayload": {
          "symbol": "PLANET",
          "nfts": [
            { "id":"1284", "properties": {
                "name": "Coruscant"
               }
            }
          ]
      }
    }
    
The id field identifies which particular token to edit (in this case token #1284). The space game itself will need to keep track of which token IDs belong to which players. Once PLANET tokens are issued, the [JSON RPC server query API](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/JSON-RPC-server.md) can be used to look up this information from the blockchain database. How to do so is beyond the scope of this tutorial. I may write a follow-up post about queries at a later date.
    
### Where to go from here?

![](https://i.imgur.com/MEc8QWM.png)

We've barely scratched the surface of NFTs in this post. They have some other useful features, such as delegation and the ability to lock regular Steem Engine tokens within an NFT to give the NFT built-in intrinsic value.

A more fleshed out example of a Splinterlands style NFT pack issuance mechanism is available here:

[Critter Manager smart contract source code](https://github.com/harpagon210/steemsmartcontracts/blob/witnesses/contracts/crittermanager.js)

Everything done in the critter manager contract can be done just as well from Python or Javascript. It's worth repeating that all NFT interactions can be boiled down to simply broadcasting the appropriate custom json commands. It demonstrates the following features:

* allow NFT owner to configure different editions (think Splinterlands ALPHA, BETA, and UNTAMED)
* programmatically create the CRITTER NFT through a contract action
* open a "pack" to generate critters by randomly varying properties such as critter type, rarity, and whether the critter is a gold foil or not.
* allow different pack tokens for each edition - the contract gives users a way to exchange pack tokens for newly issued critters
* update data properties - a user can call a contract action to set a name for critters that he/she owns

The CRITTER token is live on the testnet, as is the critter manager contract, so you can try it out by hatching some CRITTERs with SSC right now.

### Give me more documentation!

If this post has whetted your appetite for NFTs and you're chomping at the bit for more, here's links to all the official and quite exhaustive documentation:

[NFT Reference Manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md)
[NFT Market Reference Manual](https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Market-Contract.md)
[Steem Smart Contracts Wiki](https://github.com/harpagon210/steemsmartcontracts-wiki)

If you have questions or need help getting started, visit the [Steem Engine Discord](https://discord.gg/VuQ3Uzw) and ask for @cryptomancer in the #developers channel.

I'm greatly looking forward to seeing all the creative ways that NFTs get put to use. Keep calm and Steem on!
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 241 others
👎  , ,
properties (23)
authorcryptomancer
permlinknfts-on-steem-engine-a-technical-overview
categorysteem-eng
json_metadata{"app":"steempeak/2.2.6","format":"markdown","tags":["steem-eng","nfts","steemdev","palnet","steem"],"users":["cryptomancer"],"links":["https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md","https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Market-Contract.md","https://v2.steemconnect.com/sign/","https://qa.steem-engine.com/","https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md","https://github.com/holgern/beem","https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md","https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/NFT-Contracts.md","https://github.com/harpagon210/steemsmartcontracts-wiki/blob/master/JSON-RPC-server.md","https://github.com/harpagon210/steemsmartcontracts/blob/witnesses/contracts/crittermanager.js"],"image":["https://files.steempeak.com/file/steempeak/cryptomancer/f4ky248f-Steem20Engine20Logo.JPG","https://i.imgur.com/iUk7quT.png","https://i.imgur.com/J2bSfBQ.png","https://i.imgur.com/MEc8QWM.png"]}
created2019-12-23 07:39:45
last_update2019-12-28 02:13:21
depth0
children36
last_payout2019-12-30 07:39:45
cashout_time1969-12-31 23:59:59
total_payout_value20.922 HBD
curator_payout_value20.660 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length14,819
author_reputation27,995,620,368,012
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,660,903
net_rshares127,877,308,587,838
author_curate_reward""
vote details (308)
@aaronsuncamacho · (edited)
Is all of Steem Engine also available on Hive Engine? If not, will it be?

Thanks
properties (22)
authoraaronsuncamacho
permlinkre-cryptomancer-2020521t151014619z
categorysteem-eng
json_metadata{"tags":[],"app":"esteem/2.2.5-mobile","format":"markdown+html","community":"hive-125125"}
created2020-05-21 22:10:15
last_update2020-05-21 22:10:51
depth1
children2
last_payout2020-05-28 22:10:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length81
author_reputation890,017,104,474
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries
0.
accountesteemapp
weight300
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,511,821
net_rshares0
@cryptomancer ·
Hive Engine is a copy of Steem Engine so supports all the same functionality on the back-end. That said, the Hive Engine version of https://next.steem-engine.com/ is not yet available, so there's no web site interface for working with NFTs. This will be coming at some point.
properties (22)
authorcryptomancer
permlinkre-aaronsuncamacho-qaq34y
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"peakd/2020.05.4"}
created2020-05-22 07:51:03
last_update2020-05-22 07:51:03
depth2
children1
last_payout2020-05-29 07:51:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length275
author_reputation27,995,620,368,012
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,518,086
net_rshares0
@aaronsuncamacho ·
That sounds great!

I an very interested in this technology.

Love and Respect to All Contributors to this Project ♥️🙏
properties (22)
authoraaronsuncamacho
permlinkre-cryptomancer-2020523t02225707z
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"esteem/2.2.5-mobile","format":"markdown+html","community":"hive-125125"}
created2020-05-23 07:22:24
last_update2020-05-23 07:22:24
depth3
children0
last_payout2020-05-30 07:22:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length118
author_reputation890,017,104,474
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries
0.
accountesteemapp
weight300
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,536,247
net_rshares0
@cardboard ·
Awesome work, really appreciate what you guys are doing for the steem ecosystem :)
properties (22)
authorcardboard
permlinkre-cryptomancer-q2yxua
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-23 14:06:12
last_update2019-12-23 14:06:12
depth1
children0
last_payout2019-12-30 14:06:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length82
author_reputation31,522,757,177,122
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,669,537
net_rshares0
@chireerocks ·
@cryptomancer, First of all congratulations for being a part of this huge upcoming change.

For sure this was and is not a easy job because in a way you are creating a whole new world and we can imagine or may be not, how much efforts you've put into this work.

Hope that this will going to turnout into something huge and will bring huge success to this project and to you.

Good wishes from my side and stay blessed.

Posted using [Partiko Android](https://partiko.app/referral/chireerocks)
👍  
properties (23)
authorchireerocks
permlinkchireerocks-re-cryptomancer-nfts-on-steem-engine-a-technical-overview-20191226t021339734z
categorysteem-eng
json_metadata{"app":"partiko","client":"android"}
created2019-12-26 02:13:39
last_update2019-12-26 02:13:39
depth1
children0
last_payout2020-01-02 02:13:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length493
author_reputation327,821,690,945,691
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,735,749
net_rshares65,308,906,843
author_curate_reward""
vote details (1)
@clm ·
You are truly building something here. It's super interesting to read the posts from the team, makes me wanna learn phyton.
Amazing to see what is possible.
Greets :)
👍  ,
properties (23)
authorclm
permlinkre-cryptomancer-q2ymq8
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-23 10:06:09
last_update2019-12-23 10:06:09
depth1
children2
last_payout2019-12-30 10:06:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length166
author_reputation3,730,641,212,351
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,663,853
net_rshares84,672,538,958
author_curate_reward""
vote details (2)
@cryptomancer ·
Thanks for your support!  Glad you enjoy our posts.  Python's not too hard to learn if you want to give it a try.  :-)
👍  
properties (23)
authorcryptomancer
permlinkq2yn0f
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 10:12:18
last_update2019-12-23 10:12:18
depth2
children1
last_payout2019-12-30 10:12:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length118
author_reputation27,995,620,368,012
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,663,986
net_rshares17,375,715,819
author_curate_reward""
vote details (1)
@clm ·
I have started a course already, let's see how far I get ;)
👍  
properties (23)
authorclm
permlinkre-cryptomancer-q2yop7
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-23 10:48:45
last_update2019-12-23 10:48:45
depth3
children0
last_payout2019-12-30 10:48:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length60
author_reputation3,730,641,212,351
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,664,738
net_rshares64,330,706,418
author_curate_reward""
vote details (1)
@ew-and-patterns · (edited)
$0.58
Holy shit.
If we will see Art and real estate linked to non-fungible tokens in the future, this will change everything. People have no idea.
👍  , ,
properties (23)
authorew-and-patterns
permlinkq2yrri
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 11:54:57
last_update2019-12-23 11:55:48
depth1
children2
last_payout2019-12-30 11:54:57
cashout_time1969-12-31 23:59:59
total_payout_value0.292 HBD
curator_payout_value0.292 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length140
author_reputation138,703,829,387,626
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,666,216
net_rshares2,765,304,302,685
author_curate_reward""
vote details (3)
@cryptomancer ·
I agree!  NFTs are going to be the next big wave in the blockchain technology revolution.  I've seen at least one company in Japan that is looking into setting up a legal framework for tokenizing real estate.  The idea they have is crowdfunding the purchase of a large apartment building, with tokens to represent ownership shares of the building.  Owning the tokens would entitle you to a proportional share of rental income from the building's tenants.
properties (22)
authorcryptomancer
permlinkq2yspn
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 12:15:27
last_update2019-12-23 12:15:27
depth2
children1
last_payout2019-12-30 12:15:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length454
author_reputation27,995,620,368,012
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,666,728
net_rshares0
@ew-and-patterns ·
$0.57
That's freaking nuts! I love this.
Looking forward to investing in theese kind of NFTs.
👍  ,
properties (23)
authorew-and-patterns
permlinkq2yt9h
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 12:27:18
last_update2019-12-23 12:27:18
depth3
children0
last_payout2019-12-30 12:27:18
cashout_time1969-12-31 23:59:59
total_payout_value0.283 HBD
curator_payout_value0.282 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length87
author_reputation138,703,829,387,626
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,666,991
net_rshares2,689,714,679,532
author_curate_reward""
vote details (2)
@fallfromdisgrace · (edited)
Hi. Could you tell me if it is possible to embed/attach a wallet in/to an NFT, whereby only the owner of said NFT would have access to the wallet? I have some really great ideas I would like to explore, but a few of them rely on this function. It seems to me that such a thing could only safely be achieved if a new key to the wallet was generated for each new purchaser of the NFT, but I know almost nothing about coding so I am not sure about that.

But my question is not how to do it. It is, if I pay someone who does know how to code, is this something they could do making use solely of preexisting blockchain infrastructure?
properties (22)
authorfallfromdisgrace
permlinkqqy72k
categorysteem-eng
json_metadata{"app":"hiveblog/0.1"}
created2021-04-02 11:54:39
last_update2021-04-02 11:56:39
depth1
children0
last_payout2021-04-09 11:54:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length631
author_reputation1,232,563,964,573
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id102,766,782
net_rshares0
@freddio ·
every day on Steem something new comes up :)
properties (22)
authorfreddio
permlinkre-cryptomancer-q2zl0i
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-23 22:26:33
last_update2019-12-23 22:26:33
depth1
children10
last_payout2019-12-30 22:26:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length44
author_reputation7,719,090,707,167
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,679,994
net_rshares0
@dw-ahjba5e081eb ·
properties (23)
authordw-ahjba5e081eb
permlinkq3992h
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-29 03:44:45
last_update2019-12-29 03:44:45
depth2
children9
last_payout2020-01-05 03:44:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2
author_reputation4,251,630
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,824,328
net_rshares65,651,843
author_curate_reward""
vote details (1)
@dw-ahjba5e081eb ·
properties (23)
authordw-ahjba5e081eb
permlinkq3992w
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-29 03:45:03
last_update2019-12-29 03:45:03
depth3
children8
last_payout2020-01-05 03:45:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2
author_reputation4,251,630
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,824,331
net_rshares68,011,231
author_curate_reward""
vote details (1)
@gniksivart ·
I appreciate the explanation and it definitely gives me a better understanding what an NFT is, now I'm just thinking about all the different ways someone my implement them and why that might matter to me.
👍  
properties (23)
authorgniksivart
permlinkre-cryptomancer-q3031e
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-24 04:56:03
last_update2019-12-24 04:56:03
depth1
children0
last_payout2019-12-31 04:56:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length204
author_reputation74,197,147,678,652
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,686,286
net_rshares70,400,000
author_curate_reward""
vote details (1)
@hivebuzz ·
Congratulations @cryptomancer! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

<table><tr><td><img src="https://images.hive.blog/60x70/http://hivebuzz.me/@cryptomancer/replies.png?202008140453"></td><td>You got more than 1500 replies. Your next target is to reach 1750 replies.</td></tr>
</table>

<sub>_You can view [your badges on your board](https://hivebuzz.me/@cryptomancer) And compare to others on the [Ranking](https://hivebuzz.me/ranking)_</sub>
<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>

properties (22)
authorhivebuzz
permlinkhivebuzz-notify-cryptomancer-20200814t051847000z
categorysteem-eng
json_metadata{"image":["http://hivebuzz.me/notify.t6.png"]}
created2020-08-14 05:18:48
last_update2020-08-14 05:18:48
depth1
children0
last_payout2020-08-21 05:18:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length624
author_reputation369,391,402,547,769
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id99,061,138
net_rshares0
@holybread ·
Thank you for the detailed guide. 
This is exciting and a perfect use case for our game. We will work on implementing it.
👍  
properties (23)
authorholybread
permlinkq2yoob
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 10:48:03
last_update2019-12-23 10:48:03
depth1
children1
last_payout2019-12-30 10:48:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length121
author_reputation11,886,070,775,640
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,664,713
net_rshares62,796,657,054
author_curate_reward""
vote details (1)
@cryptomancer ·
You're quite welcome, and I hope NFTs will be useful for your game.  I checked out your blog; the game looks fun and I like the concept of using bread as a currency.  It's a really fresh idea, if you'll pardon the pun!
properties (22)
authorcryptomancer
permlinkq2yqpg
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 11:32:06
last_update2019-12-23 11:32:06
depth2
children0
last_payout2019-12-30 11:32:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length218
author_reputation27,995,620,368,012
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,665,717
net_rshares0
@kus-knee · (edited)
Steem-engine has done so much for the Steem ecosystem! Most impressive!
properties (22)
authorkus-knee
permlinkq2yzcw
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 14:38:57
last_update2019-12-23 14:39:24
depth1
children0
last_payout2019-12-30 14:38:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length71
author_reputation307,925,583,264,282
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,670,352
net_rshares0
@oliverschmid ·
This is amazing!
properties (22)
authoroliverschmid
permlinkq2ytri
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 12:38:06
last_update2019-12-23 12:38:06
depth1
children0
last_payout2019-12-30 12:38:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length16
author_reputation108,456,372,075,578
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,667,292
net_rshares0
@simplegame ·
So not sure how the 100 eng fee is working. We want to put up 100 different items are players are using in SteemQuest, do we have to pay 100 eng for each item ??
And with our chestbot we need the intrinsic value out of the gate.
👍  
properties (23)
authorsimplegame
permlinkq2z271
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 15:40:12
last_update2019-12-23 15:40:12
depth1
children2
last_payout2019-12-30 15:40:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length228
author_reputation129,352,084,855,679
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,671,945
net_rshares64,020,593,873
author_curate_reward""
vote details (1)
@beggars · (edited)
No. You could have one NFT and use data properties to specify what type of item it is. So you could call your token QUEST or some other name, then in the properties when you issue have a property called `name` which specifies what the name of the item is. To save money on additional properties, you could have a custom ID and keep track of items in your own DB.

```
{ 
  "contractName": "nft",
  "contractAction": "issue",
  "contractPayload": {
      "symbol": "QUEST",
      "to": "playeraccount",
      "feeSymbol": "SSC",
      "properties": {
          "name": "item",
          "itemId": 2
      }
  }
}
```

You would then reference `itemId` in your own table when dealing with the NFT to determine what it corresponds to. If managing your own database for items is not ideal, just pay to have additional fields for your token at 100 ENG a piece. So, you could easily have an NFT with 10 additional fields for info at a one-off cost of 1000 ENG.
properties (22)
authorbeggars
permlinkre-simplegame-q2zl71
categorysteem-eng
json_metadata{"tags":["steem-eng"],"app":"steempeak/2.2.6"}
created2019-12-23 22:30:36
last_update2019-12-24 00:28:21
depth2
children1
last_payout2019-12-30 22:30:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length954
author_reputation75,322,612,974,570
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,680,090
net_rshares0
@simplegame ·
No the Databse is Ideal for me. Working on that right now.
So if I issue say  a Quest Token with name Gobln Sword and ID#201
The player issued the token see’s just the name in the wallet ??
I would like them to see the image.  

Thanks for the response it made things so much clearer for me
properties (22)
authorsimplegame
permlinkq2zo8o
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 23:36:24
last_update2019-12-23 23:36:24
depth3
children0
last_payout2019-12-30 23:36:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length290
author_reputation129,352,084,855,679
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,681,260
net_rshares0
@steemitboard ·
Congratulations @cryptomancer! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

<table><tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@cryptomancer/votes.png?201912230354"></td><td>You distributed more than 37000 upvotes. Your next target is to reach 38000 upvotes.</td></tr>
</table>

<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@cryptomancer) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=cryptomancer)_</sub>
<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>


To support your work, I also upvoted your post!


###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-cryptomancer-20191223t082114000z
categorysteem-eng
json_metadata{"image":["https://steemitboard.com/img/notify.png"]}
created2019-12-23 08:21:15
last_update2019-12-23 08:21:15
depth1
children0
last_payout2019-12-30 08:21:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length915
author_reputation38,975,615,169,260
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,661,777
net_rshares0
@steemitqa ·
I'm witnessing the future right here.
properties (22)
authorsteemitqa
permlinkq2za0i
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-23 18:29:06
last_update2019-12-23 18:29:06
depth1
children1
last_payout2019-12-30 18:29:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length37
author_reputation22,135,803,163,402
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,675,336
net_rshares0
@dw-ahjba5e081eb ·
Hello
properties (22)
authordw-ahjba5e081eb
permlinkq3991x
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-29 03:44:27
last_update2019-12-29 03:44:27
depth2
children0
last_payout2020-01-05 03:44:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5
author_reputation4,251,630
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,824,320
net_rshares0
@theabsolute ·
We saw with cryptokitties that this type of thing could be popular. Hopefully things catch on and more use-cases will follow
👍  ,
properties (23)
authortheabsolute
permlinkq30x19
categorysteem-eng
json_metadata{"app":"steemit/0.1"}
created2019-12-24 15:44:00
last_update2019-12-24 15:44:00
depth1
children0
last_payout2019-12-31 15:44:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length124
author_reputation30,582,991,953,296
root_title"NFTs on Steem Engine: A Technical Overview"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id93,700,291
net_rshares67,496,339,769
author_curate_reward""
vote details (2)