The Challenges of Building on Web3

Two common things I’ve heard blockchains are good at:

  1. Easy interoperability through a shared chain
  2. Guarantees through smart contracts

I’ve been building http://raremints.club and I wanted to share some challenges with these 2 claims.

Some background: I built http://raremints.club as a way for indie, non technical artists to create and sell NFTs. For a large number of creators to make thousands rather than small number of creators make millions.

It means that the $2000 Ethereum gas fees for deploying new contracts is out of the question, so I’m building on Polygon. (more on this later) It also means that I can’t expect people to understand how to deploy smart contracts, IPFS, bridge ERC20 MATIC to polygon, etc

Interoperability

Blockchains are supposed to be interoperable by default. But are they? I spent the past few weekends trying to integrate Raremints with Opensea. Problem is that the point of integration is the blockchain itself, which is expensive.

Opensea can only show what’s already on chain, so for the entire collection to show up, the artist would have to pay ~$0.10 in gas to mint every item in their collection. For a 10k collection, this would cost about ~$1000.

The other integration option is to deploy a Factory contract with a `mint` function that mints from the main ERC721 contract. This is outlined in their documentation. The issue is that this produces really weird looking buying experience on Opensea:

So now, I’m opting to create a marketplace for minting NFT’s in-house so that the gas fees can be pushed to buyers. Of course, once the NFT’s are minted, then they will show up on Opensea. This doesn’t feel super interoperable.

Guarantees

Blockchains are also “Computers that can make commitments”. This is true in the sense that a company can’t come along and turn off API’s. A commitment blockchains can’t make are stable gas prices, which has huge implications for what you’re building.

I picked Polygon for its low gas fees. I had originally planned to make contract deployments completely free for artists through http://raremints.club back when Polygon gas prices were 8Gwei. Now it’s 600 Gwei.

It was costing about $0.05 to deploy a new ERC721 contract. Now it costs $4.18. What’s worse: this is driven almost entirely by a single game.

Old fees

New fees

I loaded $500 worth of MATIC into an account that I thought could help tens of thousands of artists create new NFT collections. Now, it can only pay for about 100. So, I’ll have to build some kind of payment system into Raremints, which I didn’t really want to do.

Its true that no company can come and turn off API’s you rely on, but it seems right now a single company can make your business model unsustainable. Functionally, is this any different? Luckily, I’m building Raremints for fun Man shrugging, business model be damned.

But I’d imagine it would be frustrating to build a company on top of assumptions that can change wildly overnight, for a reason totally unrelated to what you do.

I considered just allowing artists to figure out how to load MATIC into their MetaMask and deploy contracts themselves, but the on ramps to purchase MATIC are insanely difficult, complex and expensive to use, so I’ll have to build in a way to collect payments via Stripe.

Tldr:

An app that relies on:

  1. Easy interoperability
  2. Low gas fees

Sees gas fees jump almost 100x over 3 months and interoperability is not as simple as promised.

I still believe in this space. That’s why I’m building here, but there are a ton of issues that need to be worked out. Excited to see what people much smarter than myself come up with!