11 August 2022
11 minutes read

By Greg Poole

We created an NFT the hard way from scratch and in the process discovered an uncomfortable truth — they’re not really decentralised, they’re not really free from censorship and they’re not platform independent.

Don’t believe the hype

Early in 2022, during the peak of the NFT and crypto hype, the Paper Moose interactive team decided to invest in learning about this ‘web3’ we’d been hearing about. Web3 is the term used to describe a new ‘decentralised’ version of the internet, enabled and powered by crypto technology such as the blockchain. At the time we felt that web3 seemed to be an emerging vision of the future (we wrote a cool article about it), and we imagined a shiny new world of distributed systems, smart contracts, DAOs and NFTs — with us there to help our clients with all of it. I was also personally excited about the potential for disruption with new technology, shaking up stale industries and practices.

After trying it out for myself I’m a lot less optimistic that web3 is anything more than some neat ideas that don’t work that well in practice. In reality, I can see now that the hype about crypto and NFTs is being driven mostly by grifters with various degrees of self-awareness, who are using the complexity of crypto to bamboozle unsuspecting investors out of their money.
If you’re thinking about investing or doing some work around NFTs and crypto, I’d encourage you to make sure you understand exactly what it is and what it does first.

Let’s build a web shop with crypto and web3

Our web3 journey started out with a simple goal: experiment with some different frameworks and tech and see what, if anything, we could do with it. There was only really one rule I set for myself, which was that I wanted everything to be based on new technology and to avoid conventional web architecture wherever possible.

We had in mind a web app that was powered by crypto coins and NFTS, to run “dapps on the blockchain”. Even getting started in this space by choosing a platform was a bit of a challenge, because you’re immediately faced with a dizzying variety of options. There isn’t one ‘best’ or standard version of anything, and multiple platforms are competing to establish themselves as the leader in any given space, so you really are taking a gamble that whatever you pick isn’t going to fall out of favour and disappear in a year. We ended up picking a platform called Fleek to host our web app, the Solana blockchain as the base to build our coins and NFTs and Phantom wallet.

Once we started work on prototyping, the project naturally started developing into a shop. All the tools and design patterns of Solana are heavily weighted towards transacting with money, ownership and trading. Despite all the promises of a utopian future powered by crypto, this is the hyper-capitalist conceptual core to web3. We decided that we could create a custom crypto coin using Solana that we’d be able to run internally at Paper Moose, which we creatively dubbed Moose Coin. The plan was that we’d give out Moose Coins to Paper Moose employees as a kind of bonus system based on things like years of service and doing exceptional work, and the coins could be redeemed to buy different rewards in the shop or traded with other Meese.

We successfully completed our project and the oh-so-y2k web 3 webshop is now being used internally at Moose. We have real people making real purchases in our shop using Moose Coins and we even managed to mint and sell a rare NFT: the Weird Toaster.

The glorious Weird Toaster. A unique item indeed.

I ran into a lot of problems in the process of building the shop, especially with the crypto and NFT part. I also was very disappointed and a little surprised by the technical reality behind all the hype of NFTs. The main things I had trouble with were:

  • Byzantine processes and code needed to do everything.
  • Lots of features I assumed were built-in to NFTs are actually just optional things that marketplaces can choose to do if they feel like it (e.g. royalty payments when transferring ownership of a token).
  • Most marketplaces and systems rely heavily on conventional servers, systems and concepts to function and are not really ‘decentralised’ at all.
  • No good tools for normal people to interact with any of it, leaving only techies to really understand what’s happening and normal people to just trust it’s all correct.

After my experience I was left wondering what the point of all this was. Why are people excited about NFTs? What is the blockchain actually supposed to change about our lives or society? What actual value is any of this going to bring to our lives?

Creating and selling the Weird Toaster NFT

Because we were working on a crypto shop, we naturally liked the idea of creating an NFT and selling it there. I wanted to understand the principles at a low level, so instead of going with an established platform that lets you create NFTs via a friendly user interface like OpenSea, I went full ‘hard mode’ and decided to create my own from scratch using the programming tools Solana provides.

Doing-it-yourself in computing always comes with a lot of problems, especially in this case because it’s quite complicated and Solana’s documentation on NFTs at the time was almost nonexistent and full of gaps, but it also gave me a chance to look under the hood and see what was actually happening. People who know crypto well would argue that Solana wasn’t the right choice for a newbie, and that I probably should have used something like Ethereum, which is much better established and has better resources. It didn’t help that Ethereum gas fees were through the roof — meaning simply minting an NFT would have cost hundreds of dollars. Whilst the lack of documentation was a stumbling block, none of the fundamental problems I found with the concept of NFTs are unique to Solana itself.

Trying to create an NFT by hand also revealed something that in retrospect I had wrongly assumed: almost nobody else is doing any of this stuff themselves and very few people actually understand how NFTs work and use the tools to create or work with them directly.

I’m a technical person and I still found it hard to get the Solana tools set up and even harder to actually create and host my NFT. Because of how hard and technical it was I feel confident saying that regular people aren’t doing this at all and are instead just using online platforms like OpenSea that hide the complexity under the hood behind a slick web interface in exchange for scraping a tidy piece of the profits of any sales or purchases you make. This is concerning, because what it means is that NFTs are really just a trivial technical detail for what is, really, a completely conventional online marketplace selling digital certificates of ownership. There’s no significant difference to simply using web2 technology to achieve the same thing. The promise of NFTs is therefore bright in theory, but extremely disappointing in practice.

If people aren’t using the tools themselves, and are just trusting a third party to set up and verify everything for them, most of the benefits of crypto and the blockchain suddenly disappear.

I eventually bashed my way through the technical problems and successfully got set up to create my NFT. I decided to create my NFT using a placeholder image: a photo of an odd sci-fi looking toaster I had found in a Google image search I don’t remember. I called it The Weird Toaster NFT. This reveals an obvious problem immediately: I had created an NFT that claims ownership of a random image I found on Google. Anyone can create NFTs that say anyone owns anything; there’s nothing about NFTs that automatically makes sure only one person can own a given image, or that even requires them to refer to unique images.

As I set this up, I realised I had wrongly assumed another thing: NFTs don’t live entirely on the blockchain. What this means is that although some information describing the NFT, called metadata, is stored by Solana, larger assets related to NFTs like photos, videos or audio files are typically stored ‘off-chain’ in another unrelated system. You can actually store these files anywhere you like, including uploading them to a conventional website on the internet. Computer security expert Moxie Marlinspike goes into detail about why this is a problem in his excellent review of his own experiences with web3. Although you can technically store off-chain data anywhere, one of the recommended places is a distributed file hosting platform called IPFS. In theory the point of uploading these files to IPFS is that it’s supposed to give these files a permanent location on the internet, whereas regular websites come and go. In practice however, IPFS doesn’t actually do that at all, which we found out with our weird toaster NFT.

A big problem we had with selling the Weird Toaster NFT was that nobody actually understood it. Nobody understood what it was, why I made it, what they were getting if they bought it, what they could do with it. Eventually, a bold and visionary Moose decided to take the plunge and claim it for herself. I got the order through the web shop and excitedly cracked open my Phantom wallet to make the transfer and… The Weird Toaster failed to load. I was shocked; I’d uploaded the metadata and the image to IPFS at a permanent URL! It should be out there in the distributed web ready to go! After about 20 minutes of waiting I realised it wasn’t going to happen. I did some digging and realised that I had made another assumption that turned out to be wrong: stuff that you upload to IPFS is not permanent at all. If you want something to stay in the network you either need to front up the space to store it by keeping your computer online and hosting the file 24/7, or you need it to be popular enough for other people to have accessed it and stored it in their own IPFS nodes. It makes sense if you think about it, because otherwise the network would fill up with junk, but it also means that my Weird Toaster NFT went offline the moment I did.

What was I going to do? The toaster had been bought and I wasn’t going to spend $20 per month on AWS to run a server just to host an IPFS node with my Weird Toaster on it!

After a lot of frustrating messing around, I decided the simplest option was just to upload the photo to our regular static web hosting and update the NFT’s metadata to point to that image. To be honest I’ll never know if you can modify the metadata of an NFT after creating it (but feels like you shouldn’t be able to), because instead of doing that I just cheated and created a new NFT from scratch with the new metadata and sent that to the buyer instead. I didn’t explain that bit to her because it doesn’t actually matter, but it does seem like doing all that doesn’t really fit with the vibe of what NFTs are supposed to be. I sent the buyer my duplicate copy of an NFT I had originally created using someone else’s image I found on Google Images, and if I hadn’t said anything nobody would ever have known.

The problem with NFTs

With the massive amount of flux going on in the web3/crypto space at the moment and the fact that regular users are not empowered to use or even understand the raw tools and concepts, there’s no actual meaningful conceptual foundation or difference from any other conventional technology underpinning any of this.

There’s also no guarantee that NFTs you buy will increase in or even retain their value. That’s fair enough, it’s inherently speculative and this is also true of any art you might buy as an investment. But it’s actually worse than that, because there’s not even any guarantee that NFTs you buy will continue to work at all, depending on which companies go bust and which technologies fall in or out of favour. Beyond the meaninglessness and pointlessness of NFTs as an idea in principle, the truth is that if you create or buy an NFT on a platform like OpenSea and they go out of business and shut down their servers, your NFT is likely to evaporate instantly for all practical purposes. If you bought an artwork and didn’t download and save it somewhere on your computer you’ll probably find that even the artwork itself is gone forever, not just proof of your ownership of it. Even if the NFT’s assets and metadata stay online, most marketplaces including OpenSea keep important details like author names and profiles on their own servers and not on the blockchain, so essential contextual information will evaporate if the marketplace goes offline. It will be nearly impossible to make sense of what’s left. I’m using OpenSea as an example, but this is true of every single NFT marketplace online today.

The most important point I want to emphasise about everything I’ve said so far is how conceptually important it is that people are empowered to do things themselves in order for any of this to actually work. While in theory the data tied to NFTs is being stored on distributed, shared and decentralised networks that are cryptographically secured and architecturally sound, nobody is actually using the tools themselves or accessing this data directly and there’s a lot of essential information that’s stored on unrelated systems that needs proprietary tools and user interfaces to have any meaning.

These marketplaces act as the primary gateway and really the only practical way for most people to create, buy, sell, view and, maybe most importantly, validate the creators and ownership of NFTs. This means that you both rely on these marketplaces in order to keep being able to access your NFTs and that you need to trust them not to manipulate the data without you knowing. At best it means that the promises made by advocates about crypto don’t apply: they’re not really decentralised, they’re not really free from censorship, they’re not really platform independent. At worst it means that marketplaces could exploit your trust, or allow other people to do it, to steal your stuff or make money off you with fake NFTs. There has already been a lot of this in the news to show this is the case.

What I learned

I think NFTs are technically interesting but the way that they’re being used is pretty much nonsense. There is no practical difference for most people between a ‘traditional’ online marketplace that processes payments and generates a digital certificate of ownership that you can link to or print out and a website that uses NFTs and cryptocurrency.

In fact, the technology to power the traditional marketplace is better established, better understood and more likely to be stable for a long time into the future. If anyone wants to make the case that NFTs are actually significant and useful for ordinary people I’d challenge them to explain how and why.

The technology behind crypto and web3 itself is mostly truly interesting and has the potential to have major effects on the tech industry. Check out our write-up on the potential of web3 to learn more about what we think.

The reality? Most people won’t really need to know or care about the details of any of this and the real reason that it’s being talked about so much is that it’s being used to bamboozle people into thinking that they’re buying into the future. There’s very little substance to any of this stuff and the people who really understand the tech are either deliberately obscuring that in order to keep making money, or they’ve bought into the hype that eventually everyone else is going to see the light and jump on board.

I’m not angry, just disappointed.

Software Developer
Greg Poole is Lead Developer at Paper Moose. He is a software developer specialising in Unity and full-stack web building interactive experiences, apps and games for web, mobile, desktop, VR.

Paper Moose acknowledges the Traditional Custodians of country throughout Australia and their connections to land, sea and community. We pay our respect to their Elders past and present and extend that respect to all Aboriginal and Torres Strait Islander peoples today.
© Paper Moose 2022