Help: What are Banano NFTs?

If you've been following Banano news any time in the last few years, you may have heard about Banano NFTs. You might even own one! But in case you haven't looked into what they actually are, or how they work, we're here to help with a high level explanation.

Smart Contracts vs. Meta Protocols

First of all, let's clear up a common misconception. Yes, Banano does not have smart contracts, of any kind. Banano NFTs does not add a smart contract layer to Banano, and does not rely on smart contracts. Banano NFTs are actually native to the regular Banano network. It is a trustless, decentralized protocol - not just changing some numbers in a database (no shade, nanswap art). How is this possible without Banano having smart contracts?

Well, the Banano NFT protocol uses a meta protocol, created by the wonderful Airtune. A meta protocol is a set of rules we apply to data that is exchanged according to the rules of a different protocol. To simply explain a meta protocol runs on top of a different protocol (kind of like how the HTTP protocol runs on top of the TCP protocol), and so then benefits from all the strengths of the underlying protocol. We'll discuss this more in the next section.

A diagram showing the meta protocol

The meta protocol above. Don't worry, we'll explain it in the next next section. Diagram above made by Airtune.

Meta Protocols Benefits and Downsides

In the last section, we noted that meta protocols inherit all the strengths of it's underlying protocol. In our case, running a meta protocol on Banano means we get to automatically enjoy fast and feeless NFT transfers! In addition, we get a way to not only store data, but prove that the data came from a specific person (by making blocks on the Banano network).

Now that the strengths of the Banano NFT protocol running on Banano instead of a different cryptocurrency with smart contracts is clear, let's talk about the downsides. Or I guess, downside (singular). Unlike smart contracts, figuring out who knows what NFTs, or even what NFTs exist is not exactly trivial.

If you wanted to know whether some address owns a particular NFT, with smart contracts, it would be incredibly simple to find out: simply call that NFT's smart contract's balanceOf (for ERC721 or ERC1155) function, and it will tell you right away.

On the other hand, for Banano NFTs, one would need to crawl from the minter account, note all the NFTs minted made by that minter, then track each one's chain of ownership. This isn't "hard", but you can see how it isn't as simple as with smart contract NFTs. We here at Banfts run our own crawler, but as there are many, many, NFTs we must crawl, it can take some time after a transfer for it to reflect on our website, even though the NFTs are actually instantly transferred. We are actively working on improvements to our crawler, like adding websocket support, in order to listen to transactions as they come, and instantly update the chain of ownership if a NFT is transferred.

The Protocol Somewhat Hastily Explained

It's time for a very brief explanation of the Banano NFT meta protocol. First, we upload the image and some metadata onto IPFS (which by the way, is also how other NFTs, including Ethereum NFTs, do it). Then, we can publish a supply block by changing our representative to a special address with some data encoded into it. Immediately after in the next block, we can change our representative to another special address, called the metadata representative. The metadata representative has the IPFS CID of the metadata we uploaded earlier encoded into it. You will notice that the Banano NFT Protocol frequently uses the representative field of blocks to store data. Anyways, now a NFT has been minted. Hurrah!

Sending the NFT is much simpler, luckily. All we have to do is change the representative to an "asset representative". This is just the hash of the mint block we just made in the last paragraph, as a Banano address.

That may sound complicated, but don't worry! This is exactly what this site, Banfts.com, is around for. We make finding, sending, and trading NFTs very simple. For example, to figure out how to send a NFT, just navigate to your Accounts page, and click the "How To Send" button on any of your NFTs. Easy-to-follow instructions will pop up! You can watch Yusuf's video to learn more, and join our Discord if you have any questions.

The 'How To Send' popup

Related Links