Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@airstack/subgraph-generator

Package Overview
Dependencies
Maintainers
4
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@airstack/subgraph-generator

Integrate Airstack schemas in any subgraph.

  • 1.0.0-alpha.9
  • latest
  • npm
  • Socket score

Version published
Maintainers
4
Created
Source

Airstack Subgraphs

Introduction

Airstack is a web3 developer platform that provides powerful APIs for integrating on-chain and off-chain data into any application. With Airstack developers are able to easily connect their applications to the web3 ecosystem.

Airstack enables GraphQL queries that combine on-chain and off-chain data from multiple sources in a single response. Our goal is to enable developers to query and integrate relevant web3 data, and serve it up to users without requiring heavy infrastructure or even a back-end.

Airstack identity APIs map addresses and transactions across various sources, including: ENS, Farcaster, Lens, POAP, Dapps, and Marketplaces.

Airstack Substreams & Subgraphs

Airstack is a pioneer in utilizing Substreams to index on-chain transactions faster than RPC-based solutions. Substreams are used for real-time indexing of on-chain events and for high volume blockchains such as Polygon. Airstack Substreams are hosted in-house on our infra.

Airstack deploys Subgraphs with custom schemas for indexing historical events and sales data from specific dapps, marketplaces and protocols. Airstack subgraphs are hosted in-house on our infra.

Airstack schemas for Substreams and Subgraphs define how events and transactions are indexed, aggregated, and consumed across projects in standard formats, enabling seamless querying of like data across projects and chains. Example verticals: NFT Marketplace, Social, DAOs, DeFi.

Airstack augments on-chain data with off-chain metadata from IPFS, dapps and marketplaces (for example NFT images and descriptions). Wherever possible we default to on-chain data.

Data is stored in the Airstack backend and optimized with parallel processing for fast GraphQL querying.

Getting Started

1. Prerequisite:

You already have a subgraph for Dapp/Protocol. And you intend to integrate Airstack schemas into the project.

2. Install Airstack package:

npm install @airstack/subgraph-generator

3. Identify the vertical for the Dapp/Protocol:

We support

  • NFT Marketplace: nft-marketplace
  • Domain Name: domain-name
  • DEX: dex
  • Bridges: TBD
  • DAO: TBD
  • Defi: TBD
  • Games: TBD

Use the following command to add Airstack Schemas and Modules in your project

npx  @airstack/subgraph-generator <vertical>  --yaml <subgraph.yaml file path> --graphql <schema.graphql file path> --dataSourceNames <"name1, name2, ..."> --templates <"name1, name2">
  • npx airstack will add the required Airstack entities and the module files in your subgraph.yaml file
  • --yaml provide the location of your project's subgraph.yaml file. This is an optional parameter.
  • --graphql provide the location of your project's schema.graphql file. This is an optional parameter.
  • --dataSourceNames provide the dataSource name where Airstack entities will be added. This is an optional parameter. By default, the entities will be added in all the dataSource provided in the subgraph.yaml.
  • --templates provide the template name where Airstack entities will be added. This is an optional parameter. By default, the entities will be added in all the template provided in the subgraph.yaml.

Examples:

a. NFT Marketplace

npx @airstack/subgraph-generator nft-marketplace
Terminal will prompt these questions
Enter the name of the subgraph:
Enter the version of the subgraph:
Enter the slug of the subgraph:

Integration of the Airstack schemas is done. Now, move to the vertical-specific section for further integration.

3. Code integration

Example: NFT Marketplace
  1. Import airstack modules
import * as airstack from "../modules/airstack/nft-marketplace"
  1. Creation of NFT object
let nft = new airstack.nft.NFT(
    collectionAddress, // Address
    standard, // string "ERC721" or "ERC1155"
    tokenId, // BigInt
    amount // BigInt 1 for "ERC721" , n for "ERC1155"
)
  1. Creation of royalties array
let royalties = new Array<airstack.nft.CreatorRoyalty>()
let royalty = new airstack.nft.CreatorRoyalty(
    fee, // BigInt
    beneficiary // Address
)
royalties.push(royalty)
  1. Creation of NFT Sales array
let allSales = new Array<airstack.nft.Sale>()
let sale = new airstack.nft.Sale(
    buyer, // Address
    seller, // Address
    nft, // airstack.nft.NFT
    paymentAmount, // BigInt
    paymentToken, // Address
    protocolFees, // BigInt
    protocolFeesBeneficiary, // Address
    royalties // airstack.nft.CreatorRoyalty[]
)
allSales.push(sale)
  1. Use the trackNFTSaleTransactions function to process the data and store in Airstack schema
airstack.nft.trackNFTSaleTransactions(
    chainId, //  string eg: for mainnet: 1
    txHash, // string eg: event.transaction.hash.toHexString()
    txIndex, //string eg: event.transaction.index
    allSales, // airstack.nft.Sale[]
    isBundle, // boolean 
    protocolType, // string eg: "NFT_MARKET_PLACE"
    protocolActionType, //string eg: "SELL"
    timestamp, // BigInt eg: event.block.timestamp
    blockHeight, // BigInt eg: event.block.number
    blockHash // string eg: event.block.hash.toHexString()
)

Development status of each vertical

⌛ = Prioritized
💬 = In discussion
🔨 = In progress implementation
✅ = Completed

VerticalStatus
NFT Marketplace
Domain Name
DEX🔨
Bridges💬
DAO
Defi
Games

To build the module

If you want to build the module yourself, please follow there steps.

  1. Clone the repo
  2. Run commandnpx @airstack/subgraph-generator <vertical> --name <subgraph_name> --slug <subgraph_slug> --version <subgraph_version>
  3. Run the command npm run build

Keywords

FAQs

Package last updated on 31 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc