What are good options for storage of NFT assets?

15
0

IPFS? Arweave? AWS? How does one go about picking where to put stuff since onchain is so expensive?


To post an answer, please !

2 answers

1080 views

Really great question as always :).

In short, definitely Arweave or IPFS are the best solutions.

If I had to rank options in order, it would go like this:

On-chain -> Arweave -> IPFS -> AWS/cloud storage -> self hosted server

When it comes to NFT digital asset storage, typically what people care most about is permanence - a guarantee that the digital asset the NFT represents will not someday disappear without warning.

On-chain on the blockchain where the NFT metadata itself resides is by far the best solution, because it means that you have a strict guarantee that as long as the NFT itself exists on the blockchain, so too will the digital asset it represents.

Unfortunately, just as you said, this is a super expensive solution because blockchains are so limited in size since it's a single shared ledger/database used by everyone in the world and thousands of computers around the world have to be able to store a record of every single transaction ever made on this shared ledger by anyone ever in order to keep the system secure and robust, so naturally storage space is precious :).

Because of this, only simple SVG vector images are typically cost effective enough to store on-chain for NFTs, and even then it costs a ton of money for the developer of the NFT to store all the upfront SVG vector assets to generate NFTs with.

Because of this, if someone wants to create an NFT representing anything other than a simple SVG image, such as a 3D asset, a video, music, a photograph, and so on, they'll have to explore using some other storage solution.

So let's start in reverse order here: A self hosted web server is the worst option by far, because there's a single point of failure - if that web server crashes or the people running it stop supporting it, the asset is gone forever. So that's pretty risky.

The next best solution is centralized cloud storage on a platform like AWS, which makes it far less likely that any technical downtime will occur because a single server goes down somewhere, but ultimately doesn't remove the same centralized single point of failure issue of the fact that if the person paying to host the asset on AWS ever stops paying, the asset will disappear all the same even if the solution is more technically robust.

So IPFS was created as a peer to peer file sharing and storage solution to address exactly this problem, and help make everything on the internet more permanent. IPFS creates a system where files uploaded are stored redundantly on many different computers across the world, in a manner very similar to torrenting - a very similar peer to peer file sharing solution more people may be familiar with. This ensures that even if one computer goes down, files are still available from all the other computers hosting a redundant copy of that data.

However, IPFS isn't also immune from the same issues as a centralized hosting solution like AWS, and actually requires someone to explicitly pin content in order to guarantee it will always be available: https://docs.ipfs.io/concepts/persistence/.

Unless a file is explicitly pinned by an IPFS node (an individual computer server supporting the IPFS system and helping store/transfer data on the protocol), there is no guarantee that that file will be stored by any other servers in the IPFS system, and it could very likely end up permanently deleted and lost, just like a torrent where there are no seeders left.

To solve this issue, there are pinning services available like https://pinata.cloud/, which will guarantee pinning your data on IPFS so it will be indefinitely available - for a price.

And so we see with IPFS we ultimately arrive at not necessarily too much of a better place than AWS - if we stop paying someone to pin our data, it too could be permanently lost, just like if we stopped paying AWS.

There is, however, for the time being, a free solution that offers to indefinitely pin your data specifically for NFTs on IPFS - subsidized by IPFS itself to help kickstart and support the ecosystem. I personally use this service all the time: https://nft.storage/

As NFT Storage says in their FAQ - they will try to store data indefinitely in IPFS: https://nft.storage/faq/#how-long-will-data-be-stored-on-nft-storage

But they also give themselves an out and disclaim that they don't promise to do this forever, and could at some point stop working in the future!

And so this is where Arweave comes in - Arweave tries to solve this problem of data impermanence even on IPFS by being basically IPFS, but with the guarantee, using clever economic incentive models, that your data will in fact be stored forever. You can read more about how Arweave does this here: https://ardrive.io/can-data-really-be-stored-forever/

Only time will tell if these claims will actually stand the test of...time :), but at least they're actively trying to solve this problem!

So with Arweave, you pay one upfront cost, and that one upfront cost is used to essentially incentivize people to store your data permanently in a decentralized, distributed peer to peer fashion.

However, thanks to heavy subsidies all around these days with Arweave and IPFS trying to compete for market share, you can host NFT asset data on Arweave with redundant pins on IPFS entirely for free!

Here's how :)

First, upload your data for free to IPFS with NFT.storage as mentioned above.

Then, go to IPFS2Arweave to store your IPFS data onto Arweave and permanently pin it onto IPFS!!!

How awesome is that? Now, you've got all your major bases covered - your data is stored supposedly permanently on Arweave and indefinitely on IPFS all at the same time, all for free :).

Hope that helps!

17
0

The best way to store your NFTs is a hard wallet. For eg - Ledger

0
7

Not the answer you're looking for? Browse other questions tagged #NFTs or ask your own question.