@rkenmi - NFT from a Software Developer's perspective

NFT from a Software Developer's perspective


A software developer's POV to understanding what a NFT is and how to stay safe.

NFT from a Software Developer's perspective


Back to Top

Updated on December 28, 2021

What is a NFT?

A NFT (non-fungible token) is:

  • A unit of data for blockchains with smart contracts functionality (i.e. Ethereum, Cardano)
  • Uniquely represents one entity
    • One non-fungible token cannot be equivalent to another non-fungible token

What does it contain?

It contains these three bare essentials:

  • An ID that guarantees uniqueness
  • An owner
    • The owner may change over time when NFTs are exchanged with buyers
  • A link to the digital asset metadata
    • Can be untrustworthy and centralized http links, or a link to darknet services / P2P distributed storages (i.e. IPFS).

What is it not?

There are some misconceptions about NFTs. NFTs are...

  • NOT smart contracts
    • NFTs do not handle transactions or allow itself to be auctioned at X price and whatnot. It is a simple, basic blockchain unit (token) with metadata that can be tracked by the public. These tokens are instead managed by smart contracts to handle auctioneering, but are not smart contracts themselves.
  • NOT scam-free
    • Since NFTs can point to invalid metadata links (HTTP 404), the digital asset metadata should be tracked before purchasing.
    • Even if NFTs point to valid HTTP links, it is very easy for the link to be manipulated. For example, the original asset at https://www.foo.com/bar can be replaced with a different, fake asset by whoever that owns the domain name.
    • If NFTs point to centralized hosts like Dropbox and their file servers, then your NFT loses all its value if Dropbox ever goes out of business.
    • NFTs should have a one-way hash of the digital asset in the metadata, which proves validity. Theoretically a hashing algorithm should be non-reversible and represents the output of a single unique input (this would be the digital asset for trade).
  • NOT just on Ethereum
    • Although it is most popular on Ethereum, other blockchains have NFTs. Trading between different blockchains is typically not feasible at this time, although this may change in the future with more interoperability in blockchains.
  • NOT technically owning the digital asset
    • You own the token that allows you to control the digital asset in the blockchain. However you don't actually own the digital asset itself. NFT/blockchains are still mostly unregulated, and there is no legal binding that you "own" the digital asset.

Article Tags:
unlistedsoftware engineerethereumcryptocurrencynftcardanoblockchain