All on-chain data and events from HyperVIBES are indexed via TheGraph.
You can build HyperVIBES-based applications without ever having to deploy a smart contract by creating a realm and building a web3 dapp frontend.
A unique subgraph is deployed for each blockchain network HyperVIBES is on.
Examples Queries
Like all GraphQL APIs, you can use introspection to explore the schema, types, and queries available in the subgraph. Below are a few possible ways of using the subgraph:
List all realms
{ realms(orderBy: createdAtTimestamp, orderDirection: desc) { id name description token { address symbol name decimals } createdAtTimestamp }}
Get infusion info for an NFT across all realms
{ nfts(where: { collection: "0xc0877d217b1b83a3347c1703032ae1e013a8fd9f"tokenId: "11" }) { tokenId collection { address } owner { address } # there will be 1 Infusion entity for-each Realm this NFT is infused in infusions { realm { id name token { symbol } } balance lastClaimAtTimestamp # all discrete infusion and claim events will be here events { eventType amount msgSender { address } target { address } createdAtTimestamp } } }}
Get details about a specific account (wallet / agent)
{ account(id:"0xa34c3476ae0c4863fc39e32c0e666219503bed9f") { address # realms this account is admin for realmAdmins { realm { id name } } # realms this account is an infuser for realmInfusers { realm { id name } } # realms this account is a claimer for realmClaimers { realm { id name } } # realms this account has created createdRealms {id name} # any accounts this account can infuse/claim on behalf of proxiesAsProxy { realm { id name } delegator { address } } # any accounts that can infuse/claim on behalf of this account proxiesAsDelegator { realm { id name } proxy { address } } # all nfts owned by this account that have been infused across all realms ownedNFTs { tokenId collection { address } infusions { realm { id name } balance } } # find all discrete infusions this account has executed infusionEventsAsTarget(where:{ eventType: INFUSE }) { amount infusion { realm { id name } nft { tokenId collection {address} owner { address } } } } }}