Subsquid and Enjin Expand Ecosystem of Dev Tooling on Efinity
After months of work behind the scenes, we are excited to finally announce our collaboration with Enjin, a core contributor to the Efinity blockchain. So far, incredible progress has been made in developing a squid indexer that extracts and transforms Efinity blockchain data into a GraphQL API readily available for game and dApp developers. As we move forward, we look forward to collaborating with the Enjin team to expand their growing ecosystem of tools, provide support to builders, and increase the adoption of blockchain games on Efinity and across Web3.
Subsquid is the team behind squid SDK, an open-source framework that enables Web3 builders to create scalable and performant custom indexers which extract, transform, and present blockchain data as GraphQL APIs or in virtually any other format. Squids can be hosted for free using Subsquid’s hosted service, the Aquarium, and receive pre-indexed data from what will soon be a decentralized network of Archives. Squids can be used to retrieve data from well over 70 EVM, Substrate, and WASM-based networks.
Enjin, the leading ecosystem for non-fungible tokens (NFTs), boasts an ecosystem of infrastructure, tools, and services comprised of the Enjin Platform, Enjin Marketplace, Enjin Wallet, Beam, and NFT.io for creating, trading, distributing, and integrating NFTs into virtual worlds. A leading innovator in NFTs, the Enjin team was responsible for the 2018 introduction of the ERC-1155 Multi-Token standard, enabling developers to manage multiple token types, all within the same transaction..
In 2021, Enjin helped launched Efinity, as an answer to a long list of Web3 builder pain points: high fees, inflexible smart contracts, and disjointed interoperability. A parachain that uses Polkadot validators for its consensus, Efinity delivers a modern, mainstream, and developer-friendly NFT experience. One major advantage of Efinity is that fees stay in the background, which allows end users to experience their favorite collectibles without worrying about how the network operates.
An expanding ecosystem of tools
The Enjin team has been hard at work expanding the developer tools for their ecosystem. Recently, they released the Open Platform, a package that allows developers to move faster when deploying games on the Efinity blockchain. The Open Platform allows developers to handle NFTs and tokens with ease by eliminating the need for blockchain knowledge or expertise.
The Open Platform from Enjin is an incredible tool for developers: it focuses on the current state of the blockchain, mutations, and transaction management. For games requiring historical data, Subsquid provides an ideal development framework. To simplify things for Efinity game and app developers, the Enjin team has built a squid, that can be used to access data for multiple use cases, such as marketplaces, analytics, governance, and blockchain-event-based gamification. Together, the Open Platform and this squid make a very powerful combo!
An example of best practices
The Subsquid team has been extremely impressed by the work done by the Enjin team in building their squid. It is quite sophisticated, incorporating a great deal of custom logic, and it is also exceptionally well organized. We have already begun recommending the Efinity squid and its GitHub Repo as an example of best practices to new Subsquid users.
The Efinity squid primarily serves as a data collection pipeline. First, it gathers and stores all the possible information and metadata about MultiTokens (ie. the Efinity token and NFTs on the chain), as well as token balances. Then, for good measure, it collects all the events and extrinsics as raw data in a kind of ‘mini-Archive,’ that developers can query for immediate access.
Interestingly, the squid currently includes three custom resolvers: token_sales_history, verify_message, and refresh_metadata. When given a token and an optional time period, the first resolver returns the token price and the sum value of trades on that day. The second interfaces with Polkadot.js to validate the signature of a given message. The third resolver allows users to refresh the metadata of an asset or collection if the data at the “URI” attribute has changed. While Subsquid has built its own codec for reasons of reliability and performance, this is a demonstration of how developers have the option to still utilize the continuously evolving Substrate-native solution if required.
Getting started with Subsquid on Efinity
The Efinity indexer is available in a public repository, and can be easily deployed locally. Instructions on this procedure can be found in the very clear README file. The squid (data presented as a GraphQL playground) is also hosted for public use in the Aquarium at this link.
Developers interested in building their own custom squids for the Efinity blockchain can get started by visiting Subsquid’s extensive documentation. It is also possible to ask questions directly to the Subsquid core team on Discord.