Proposer: OnFinality is a SaaS platform providing infrastructure services for the Polkadot/Substrate community. Our mission is to support all blockchain developers in the world by providing core infrastructure so they can focus on building the next dApp.
Date: 18th July 2023
Requested: USD $74,983.97 (DOT value will be calculated using EMA7 rate here on day of lodging on-chain)
Short description: This proposal covers the first OnFinality Unified API, the Unified NFT API for support of ERC721, ERC1155, Uniques Pallet NFTs, and Substrate NFTs Pallet NFTs, as well as hosting costs for Q3 2023
Full Proposal: OnFinality NFT API Treasury Proposal
Developers in the Polkadot and Kusama ecosystem face unique challenges due to the size and flexibility of the ecosystem. To access the entire user base, application teams need to integrate with up to 80 separate networks, each potentially implementing similar functionality in different ways.
This leads to an increasing complexity for developers who build in the Polkadot ecosystem, where breadth of support is paramount to enjoying the network effect benefits that the parachain system brings. They are slowed down by the need to understand, implement and index the required data across parachains, each team reinventing the wheel and individually bearing the full infrastructure costs.
For example, tracking transactions and NFTs across the Polkadot and Kusama space are fragmented across a growing matrix of:
As XCM usage continues to grow, multi-chain use cases will become more compelling and could offer a real edge to Polkadot, but most applications will not want to deal with up to 640 different data sources (80 x 2 + 80 x 6) .
As a whole for the ecosystem this is highly inefficient and slows growth, and R&D cycles are slow as teams must invest heavily before being able to test their product with users. It puts Polkadot and its teams at a competitive disadvantage over larger networks which closely follow standards, such as EVM, and already have extensive tooling including Unified APIs for their community.
OnFinality is building a suite of fast and reliable Multi-Chain Unified APIs for the Polkadot ecosystem to help overcome the integration complexity that comes with 80+ parachains. These new Multi-Chain Unified APIs will include (among other things) transactions, staking, balances, and in this case, NFTs.
This model is well received in other ecosystems, where there is a proven value to multi-chain standardised use case APIs.
Barriers to entry of the Polkadot and Kusama ecosystem will be reduced, while existing teams will benefit from faster development and reduced costs - both in personnel and infrastructure, allowing them to focus their efforts on innovation and growth
It will be Polkadot’s first reliable, scalable, and complete NFT API.
OnFinality’s Unified NFT API will provide access to NFTs and their metadata for all popular standards across the Polkadot and Kusama ecosystems and beyond, in a single, simple request. The OnFinality NFT API will just be the first Unified API offered by OnFinality, with plans to expand to transactions, staking, and more.
We envisage that this project will support the following standards over the long term
Open-sourcing this project allows developers who prefer to run their own infrastructure to get value out of this proposal. The project code for the first milestone is here https://github.com/OnFinality-io/api-nft/tree/main and is open sourced under the GPLv3 licence.
This project indexes data to allow the following key use cases (but not limited to):
Important NFT information is often stored off-chain via metadata, usually in the JSON format on IPFS or an HTTP web service. We retrieve and store the entire raw metadata as well as the following parsed, queryable fields:
This removes the need for applications to load the metadata after retrieving an NFT, an often slow and complicated process.
OnFinality takes the above open-source NFT indexing project, and hosts a production level high performance public GraphQL endpoint available completely free to the community - up to reasonable rate limits.
This endpoint will be operated with a target uptime of 99.9% allowing wallets and other production applications to utilise this (OnFinality has a proven track record as the largest and most reliable infrastructure provider in the Polkadot and Kusama ecosystems). We will publicly share all daily response counts and uptime status of each Unified API.
GraphQL was chosen for its high flexibility compared to a REST or RPC endpoint, and was specifically requested by teams who provided feedback on this proposal. This common GraphQL API interface can be implemented and extended by each developer to make integration into various dApps or wallet applications easier and faster.
Additionally to the rate limited public endpoint, users will be able to sign up for private API keys to access all OnFinality services and benefits such as:
The OnFinality Unified NFT API has been 100% led and validated by the most successful application teams in Polkadot.
"The need for accurate, real-time multi-chain information is a top priority for our users. Dealing with the complexities of querying various chains and NFT standards is proving to be a performance hindrance, especially as the number of NFTs owned increases. OnFinality’s Unified NFT API solution comes as a game-changing opportunity for us to streamline our processes, saving us valuable development time while ensuring optimal performance." - Talisman
Examples of benefiting teams include
Wallets need to show a user their NFTs across the entire Polkadot ecosystem
NFT Marketplaces wishing to expand their support to more networks
Scanners will benefit from richer data such as NFT Name and Description which aren’t available on chain.
Data analytics providers will benefit from a off the shelf API that will allow them to expose Polkadot’s NFT ecosystem to a larger audience
View the complete proposal, as well as detailed milestones and costings for this proposal, here:
https://docs.google.com/document/d/1OvTGlRHnd4y3vQsr3_Xq-CfId2SycDDcKwiN5p5zJoc/edit?usp=sharing