Updated 446 days ago

NFTokenizer

Tokenize anything into an NFT - cross chain

  • Crypto / Web3
  • CosmosHub
  • NFT
  • Crosschain Infrastructure
  • Stargaze
  • Neutron

Tokenize any asset, cross-chain, into an NFT use it in any way you could an NFT (DeFi, games, access control, etc).

This project is built on Neutron as a dApp and utilizes Interchain Security implicitly by getting the whole Cosmos Hub security behind the minted NFTs! It combines NFTs, ICA, ICS and ICS721, to tokenize any asset (including accounts) without implementing another standard.

Read more details in the README and see the code on: https://github.com/gjermundgaraba/nftokenizer

The repo contains both the CosmWasm smart contract and the frontend

The idea is to utilize the Interchain acocunt standard to create NFTs that are effectively the ownership of an asset on another chain. This is done by creating an interchain account that is owned by the NFTokenizer contract and deposited into by the creator of the NFT.

high-level-concept.png

screenshot-2.png

Flow

high-level-concept-flow.png

  1. The user creates an "NFT Slot" which represents the NFT to be created
  2. The smart contract, as part of creating the NFT slot, creates an interchain account on the counterparty chain
  3. The user deposits any assets they want to tokenize into the interchain account
    • Since the holder is just an account this can be anything that is transferable such as tokens, nfts, contract admin privileges, non-standardizes assets, etc.
  4. The user mints an NFT which is effectively the ownership of the interchain account

Future work

The main missing feature is the redeem functionality. This would allow the user to burn the NFT and withdraw the assets from the interchain account.

This should not be a big deal since Neutron supports ICA transactions. There was just not enough time to finish all of this by the end of the deadline.

Other smaller things that will be fixed later:

  • Support other chain assets (on any chain that supports IBC)
  • Generic flow that allows the user to deposit any asset into the interchain account
  • Combine NFT Slot creation with NFT minting action (so the user doesn't have to make two transactions to create an NFT)
  • Allow transfer of NFT from the UI itself (it is supported from any other NFT UI since the NFTs are standard CW721)