Developer Alternatives to the OpenSea API
On the same day Twitter announced NFT profile pictures as a new feature for its premium Twitter Blue users, they ran into a snag because the OpenSea NFT API was down. OpenSea is the largest Ethereum NFT marketplace by volume; and it also has an API that is universally implemented by many other services, like Twitter and cryptocurrency wallet MetaMask, to display NFT artwork to users in a variety of contexts. When the API goes down, those images become unavailable and many of the services lose functionality.
OpenSea has taken quite a bit of heat lately for frequent downtime, including this latest incident — not unlike the early days of Twitter, with its frequent “fail whale” sightings (where’s the NFT of that?). A number of its users are seeking other alternatives. One such user is the NFT Salesbot service, which is effectively dead in the water when OpenSea goes down.
2nd day in a row, but same story. OpenSea API is down so our bots are too 😞 Back soon https://t.co/lQrgKvcYVq
— NFT Sales Bots (@NFTSalesBots) January 20, 2022
Centralization in a Decentralized Ecosystem
One of the core criticisms of this downtime is that OpenSea built a marketplace for a decentralized ecosystem on the centralized cloud infrastructure of Web 2.0, instead of leveraging decentralized infrastructure. In many cases, the images served via the OpenSea API are hosted on Opensea.io, instead of being references to IPFS metadata that are included in the NFT smart contract.
I had conversations with OpenSea about IPFS metadata and using subgraphs instead of custom servers back in 2018. If we had fixed things back then, we wouldn’t be having these NFT issues today.
Hard engineering challenges? Maybe. But it’s really a protocols vs platforms problem.
— Yaniv Tal (@yanivgraph) January 18, 2022
For context on that tweet, Yaniv Tal is Project Lead for The Graph Protocol, a GraphQL-based method of indexing and querying blockchain data being developed by Edge & Node. Navigating the Ethereum blockchain and IPFS is complex business, which makes it both cost prohibitive and computationally slow to query. The Graph makes it possible to index data from the blockchain — including things like NFT smart contracts, characteristics of individual items within the NFT project, and sales history — and parse it in a way that is impossible via direct queries.
In an interview with The New Stack, Nader Dabit, Developer Relations for Edge & Node, expanded on Tal’s comments.
“OpenSea is a centralized service, with a single point of failure, and some other apps rely on it, so when it goes down it takes some other apps down,” said Dabit. “We are currently working on some improvements to the Graph Node to dramatically increase indexing performance. This will allow us to deploy an ERC721 subgraph that would serve as a decentralized alternative to something like the OpenSea API. [It] probably won’t be ready for a few more months, but we have a couple of teams working towards these improvements.”
Alternatives to OpenSea API
For an application like the MetaMask wallet, relying on the centralized API from OpenSea creates a potential customer service headache. What are users going to think when none of their NFTs are visible in their wallet? MetaMask caches data from OpenSea to prevent this, but in theory a decentralized infrastructure would make that caching unnecessary for anything other than a performance benefit. There may also be users who would prefer to choose which NFTs are visible in their wallet app vs. seeing every NFT that the OpenSea API is aware of.
Dan Finlay, a founder of MetaMask, lays out some alternatives to the centralized reliance on OpenSea in part of a Medium post that responded to feedback on Web3 from Signal founder, Moxie Marlinspike. For example, Finlay says, “A better solution is to make asset detection a client-centric act of consent. Most wallets allow adding custom tokens. Via EIP-747, MetaMask also allows a site to suggest a custom asset to the user’s wallet, and so the user’s wallet becomes the index of assets, no central server needed. We intend to do something similar for NFTs.”
Finlay also suggests Uniswap’s Token Lists as a kind of middle ground between the OpenSea level of centralization and hand-curated collections of NFTs input by individual users into wallets. The idea here is that the community can add NFT collections to lists and, through that curation, create some level of trust in the collection — which decentralizes the indexing of NFTs.
So far, there’s no indication from Twitter that it plans to adopt something other than the OpenSea API. For a company that emerged as one of the central platforms of Web 2.0, the OpenSea model is certainly familiar. For the Web3 companies that are looking at decentralizing, like wallets and services built around NFT indexing, there may be other alternatives. But in the short term, they require custom work to implement vs. leveraging an API that’s free to implement and ready for integration.