NFT Alchemy idea

NFTs are growing in popularity again, there are lots of conversations on how to create composability of NFTs across various apps and use cases.

People want to use the same NFT in multiple games or leverage a ticket for a concert to get some time based offering in a game.

The problem is that if you are a developer of a game - you are going to be issuing your NFTs. It’s both due to control and business model. Games have different worlds with different mechanics.

If you are organizing an event, you will have your own tickets as well. You are not going to use tickets from some other concert or a game items as tickets, even if you are interested in cross-promotion capabilities.

I believe this is the main reason we haven’t seen composability of NFTs at play just yet.

So instead of asking other people to reuse your NFTs in their applications, how about we allow to combine NFTs from different origins?

I call this “NFT Alchemy”: take a Paras card for it’s design and story, mix it with an epic sword from a game and add some POAP from a gaming conference and voila - you have a unique item that combines effects and may be even more expensive than original items.

When items get combined, they now behave as one item.
They change owner together, they show up in the NFT viewers as one item and still can be used in their original capacity.

How to implement this?

We will call one of the NFTs a “root”. All the other items now need to have “root” as an “owner”.
E.g. changing ownership of the NFT from direct ownership by account to potentially be owner by another NFT (for example by using nftContract/nftTokenId notation).

This way get_token_owner either returns directly the account owner or returns another token. Frontend code would need to resolve it back to original owner (because view calls are not composable currently on NEAR).

It’s important to agree to never attach items to items that are non-roots themself. This would make sure resolution and indexing will be easy.

If you want to sell the combined item - you can now list the “root” item for sale and transfer of it’s ownership will transfer ownership of the whole combination.

Indexers should create a reverse index, such that for a given item, one can find all the other “attached” items. This way explorers, wallets and marketplaces can just query for “root” item if there are any other items attached and display it.

One of the critical things here, is to decouple creators of items from combining.
This creates a new role - “alchemists”, people who would buy NFTs to combine them and sell them back in a combined effect.

Now it’s not required anymore that a [blockchain] game and event that uses blockchain tickets agree on something ahead of time - individuals can create some tickets for a concert with special effects inside a game by themself. Artists can add effects to their NFT art without needing to explicitly partner with game developers.

Even better, game devs can actually buy art and combine it with effects inside their games. Effects are still NFTs (like if you own this token you can run faster) but don’t need to have their own art anymore. Or devs can ‘airdrop’ effects to owners of some existing NFTs by setting ownership to some other “root”.

What do you think about modifying NFT standard to add ability one NFT to own another?

5 Likes

I like this idea. This feature will be great. Actually can it be done through the rainbow bridge? Say a user will send and freeze his CryptoKitty and some NFT-art in order to issue one composable NFT (fancy kitten) with indexing on NEAR. Merged token will be available to be used in dapps and to unpack into initial parts.

From my perspective we don’t see composability of NFTs because we don’t have a global platform based on NFT-economy. Platforms like roblox or steam may introduce amazing NFT tokens. NFTs need their products, otherwise token is a garbage “thing in itself”

1 Like

does it mean that the price of a new NFT will be a sum of its parts? trying to understand what economic sense does it make for a buyer to purchase such item instead of a single root item.

I actually tried experimenting with this using several popular projects (cryptokitties, 0xUniverse Planets) where users could deploy a contract that owns sets of NFTs.
It’s not currently running anymore, but the site is live still: https://gotchi.app/
The purpose was to test if composable NFTs would work, and have attributes similar to game development patterns (object has: data, ownership, actions, access abilities)

I like the approach of allowing indexers to register forward and reverse lookups.

I think there is a fundamental flaw of NFTs that needs to be addressed before NFT composable layers can exist:
NFT data is not wholly owned by the user. It is many times just a record of some “ownership” which is a pointer to a centralized digital asset.

Quick example:
Bob owns collectible “NEAR Narwhal Nick” which is a 3d digital representation of a unique Narwhal. The NFT contract on NEAR is a stored association like: “Map: <AccountId, u128>”.
The NFT data for the 3d representation lives on google drive in the original creators account by Alice.
Now, Alice could upload this data to a decentralized storage provider like IPFS, but still requires some additional work to change ownership and still maintain a level of use without a centralized way of serving the data…

What I think needs to happen is:

  1. Create a way that an NFT contract can grant wholly owned & provided unique data (3d .stl file, png blob, etc) per NFT asset.
  2. Allow contract NFT item to be owned by a single entity or parent NFT item
  3. Allow contract to wholly transfer NFT ownership and data to other contracts that support NFT standard

I realize that brings into question where the data is stored, as the entirety of a data blob living on-chain is a bad pattern for many reasons. But where else can it live such that an NFT owner is the true sole owner and if any external/centralized host goes away the asset is intact?
Could a NEAR + Storage shard exist that would back larger asset storage backed by contract rules?

I really love the idea of “alchemy” as it forces the developer to think in terms of atomic data objects being mutated or derived by other fluid objects on chain. The contract becomes less of the bucket of NFT entities and more of the facilitator of NFT interactivity and access.

Thoughts?

1 Like

Well, price will be defined by an auction / seller.
After combining items you can not separate them (at least in the proposal above), which means you can not purchase items separately.
I would assume that some combinations would actually be more valuable than sum of it’s parts - for example if the items combined are rare - the combination creates becomes unique as it’s really hard to replicate.

1 Like

RE: storage. I think there are few options right now like SkyNet and Arweave, that one can reasonably certain that data won’t go away. In case of Arweave there is no direct owner of data, so just link to it on the blockchain works.
In case of SkyNet (or Filecoin), indeed need to switch owners as well - I indeed haven’t thought of this before. Might be good to have convo with their teams what is the way to facilitate this.

Love the gotchi themed game. Want to launch this on NEAR? :slight_smile:

Yep, “alchemy” theme can also mean that when NFTs are combined, new things happen. Other apps might only work with some combinations or some frontends provide different interactions to these items.

Do I understand correctly that i’s basically like gems in Diablo?

So say as a non-artist user you can buy sword NFT and few gems with special abilities and then sell to the other peeps?

1 Like

Yes, this enables this as an option.

Or if you are a game developer, you can “airdrop” your game’s gems into some other items. For example you are building a card game, so you just airdrop effects of your game on holders of the Paras cards. This way you potentially get initial set of players who already have playable items and can even use the art of this cards in your game (as the art belongs to the user).

1 Like

Would love to launch gotchi again on NEAR! Im working on some critical pieces on NEAR currently, then i would be able to.

I need to further experiment with storage options again… been over 8mos since i tried sia, storj, ipfs, and arweave kinda was too slow.
I was hoping there would be a way to apply the same access key patterns to a storage blob directly, rather than using another provider. The more I think about it tho, that could take a considerable effort to achieve something I might be able to do client side signing.

I’d like to propose a nomenclature for this actually:
Term: NFA: Non-fungible Asset.
Definition: “A structure of data, wholly owned and transferable by a digital entity, consisting of a provably unique data packet, allowing for attributes or inheritance by other like-kind data structures, existing or stored in a decentralized manner such that no single point of failure makes packet data cease to exist, backed by a blockchain based ownership model.”

Thoughts?
Core goal is to possibly create a new standard that allows owners to know the difference between on-chain “NFT integers pattern” and a data pattern that is 100% provably owned.

Project doing this (even the name is the same): AlchemyNFT: Rise of Synthetic NFTs | by Victor Zhang | AlphaWallet and TokenScript | Apr, 2021 | Medium

https://medium.com/coinmonks/introducing-crypto-composables-ee5701fde217

Clearly I love this concept.

What I learned from trying to get this standardized in Ethereum 3 years ago:

  • You need a flagship project to drive the standard home
  • It’s actually a more complex topic than we all thing (for average users)
  • UI/UX nightmare for wallet support, bundling, unbundling etc…

Doesn’t mean it’s not viable in certain applications.

Charged Particles
Set Protocol

1 Like