Subgraph queries
The Boson subgraph (one deployment per chain × env) indexes on-chain events into a GraphQL schema. The SDK and MCP both speak this schema; you can also query it directly with any GraphQL client.
For the endpoints, see Networks → Subgraph endpoints. For the eventing / indexing-lag model, see Concepts → Eventing & indexing.
Health-check
{
_meta {
block { number, hash }
hasIndexingErrors
}
}Treat the subgraph as degraded if _meta.block.number falls more than ~20 blocks behind chain head, or if hasIndexingErrors == true.
Per-domain catalogue
accounts
Source: accounts/queries.graphql
| Name | Variables |
|---|---|
getAuthTokenIds | ($tokenIdSkip: Int $tokenIdFirst: Int $authTokenType: Int) |
getBuyerByIdQuery | ($buyerId: ID! $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeExchanges: Boolean = false $includeFunds: Boolean = false $includeLogs: Boolean = false) |
getBuyersQuery | ($buyersSkip: Int $buyersFirst: Int $buyersOrderBy: Buyer_orderBy $buyersOrderDirection: OrderDirection $buyersFilter: Buyer_filter $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeExchanges: Boolean = false $includeOffers: Boolean = false $includeFunds: Boolean = false $includeLogs: Boolean = false) |
getConditionalCommitAuthorizedEventLogsQuery | ($conditionalCommitAuthorizedLogsSkip: Int $conditionalCommitAuthorizedLogsFirst: Int $conditionalCommitAuthorizedLogsOrderBy: ConditionalCommitAuthorizedEventLog_orderBy $conditionalCommitAuthorizedLogsOrderDirection: OrderDirection $conditionalCommitAuthorizedLogsFilter: ConditionalCommitAuthorizedEventLog_filter) |
getDisputeResolverByIdQuery | ($disputeResolverId: ID! $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeOffers: Boolean = false $includeLogs: Boolean = false) |
getDisputeResolversQuery | ($disputeResolversSkip: Int $disputeResolversFirst: Int $disputeResolversOrderBy: DisputeResolver_orderBy $disputeResolversOrderDirection: OrderDirection $disputeResolversFilter: DisputeResolver_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeOffers: Boolean = false $includeLogs: Boolean = false) |
getOfferCollectionsQuery | ($offerCollectionsSkip: Int $offerCollectionsFirst: Int $offerCollectionsOrderBy: OfferCollection_orderBy $offerCollectionsOrderDirection: OrderDirection $offerCollectionsFilter: OfferCollection_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $includeOffers: Boolean = false) |
getSellerByIdQuery | ($sellerId: ID! $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeExchanges: Boolean = false $includeOffers: Boolean = false $includeFunds: Boolean = false $includeLogs: Boolean = false) |
getSellersQuery | ($sellersSkip: Int $sellersFirst: Int $sellersOrderBy: Seller_orderBy $sellersOrderDirection: OrderDirection $sellersFilter: Seller_filter $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter $includeExchanges: Boolean = false $includeOffers: Boolean = false $includeFunds: Boolean = false $includeLogs: Boolean = false) |
Fragments (18): AuthTokenIdFields, BaseBuyerFields, BaseConditionalCommitAuthorizedEventLogsFields, BaseDisputeResolutionTermsEntityFields, BaseDisputeResolverFeeFields, BaseDisputeResolverFields, BaseOfferCollectionFields, BaseSellerFields, BuyerFields, DisputeResolverFields, OfferCollectionFields, PendingDisputeResolverFields, PendingSellerFields, SalesChannelFields, SellerContactLinkFields, SellerFields, SellerMetadataMediaFields, SellerSocialLinkFields
disputes
Source: disputes/queries.graphql
| Name | Variables |
|---|---|
getDisputeByIdQuery | ($disputeId: ID! $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $includeOffers: Boolean = false) |
getDisputesQuery | ($disputesSkip: Int $disputesFirst: Int $disputesOrderBy: Dispute_orderBy $disputesOrderDirection: OrderDirection $disputesFilter: Dispute_filter) |
Fragments (2): BaseDisputeFields, DisputeFields
erc20
Source: erc20/queries.graphql
| Name | Variables |
|---|---|
getExchangeTokenByIdQuery | ($exchangeTokenId: ID! $exchangeTokensSkip: Int $exchangeTokensFirst: Int $exchangeTokensOrderBy: ExchangeToken_orderBy $exchangeTokensOrderDirection: OrderDirection $exchangeTokensFilter: ExchangeToken_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $includeOffers: Boolean = false $includeFunds: Boolean = false) |
getExchangeTokensQuery | ($exchangeTokensSkip: Int $exchangeTokensFirst: Int $exchangeTokensOrderBy: ExchangeToken_orderBy $exchangeTokensOrderDirection: OrderDirection $exchangeTokensFilter: ExchangeToken_filter $offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $includeOffers: Boolean = false $fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter $includeFunds: Boolean = false) |
Fragments (2): BaseExchangeTokenFields, ExchangeTokenFields
event-logs
Source: event-logs/queries.graphql
| Name | Variables |
|---|---|
getEventLogsQuery | ($logsSkip: Int $logsFirst: Int $logsOrderBy: EventLog_orderBy $logsOrderDirection: OrderDirection $logsFilter: EventLog_filter) |
Fragments (1): BaseEventLogFields
exchanges
Source: exchanges/queries.graphql
| Name | Variables |
|---|---|
getExchangeByIdQuery | ($exchangeId: ID!) |
getExchangesQuery | ($exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter) |
getNonListedOfferVoidedQuery | ($nonListedOfferVoidedsSkip: Int $nonListedOfferVoidedsFirst: Int $nonListedOfferVoidedsOrderBy: NonListedOfferVoided_orderBy $nonListedOfferVoidedsOrderDirection: OrderDirection $nonListedOfferVoidedsFilter: NonListedOfferVoided_filter) |
Fragments (3): BaseExchangeFields, ExchangeFields, NonListedOfferVoidedFields
funds
Source: funds/queries.graphql
| Name | Variables |
|---|---|
getFunds | ($fundsSkip: Int $fundsFirst: Int $fundsOrderBy: FundsEntity_orderBy $fundsOrderDirection: OrderDirection $fundsFilter: FundsEntity_filter) |
getFundsById | ($fundsId: ID!) |
Fragments (2): BaseFundsEntityFields, FundsEntityFields
groups
Source: groups/queries.graphql
No queries.
Fragments (1): BaseConditionFields
metadata
Source: metadata/queries.graphql
| Name | Variables |
|---|---|
getAllProductsWithNotVoidedVariantsQuery | ($productsSkip: Int $productsFirst: Int $productsOrderBy: ProductV1Product_orderBy $productsOrderDirection: OrderDirection $productsFilter: ProductV1Product_filter) |
getBaseMetadataEntitiesQuery | ($metadataSkip: Int $metadataFirst: Int $metadataOrderBy: BaseMetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: BaseMetadataEntity_filter) |
getBaseMetadataEntityByIdQuery | ($metadataId: ID! $metadataSkip: Int $metadataFirst: Int $metadataOrderBy: BaseMetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: BaseMetadataEntity_filter) |
getBundleMetadataEntitiesQuery | ($metadataSkip: Int $metadataFirst: Int $metadataOrderBy: BundleMetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: BundleMetadataEntity_filter) |
getBundleMetadataEntityByIdQuery | ($metadataId: ID! $metadataSkip: Int $metadataFirst: Int $metadataOrderBy: BundleMetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: BundleMetadataEntity_filter) |
getProductV1BrandsQuery | ($brandsSkip: Int $brandsFirst: Int $brandsOrderBy: ProductV1Brand_orderBy $brandsOrderDirection: OrderDirection $brandsFilter: ProductV1Brand_filter) |
getProductV1CategoriesQuery | ($categoriesSkip: Int $categoriesFirst: Int $categoriesOrderBy: ProductV1Category_orderBy $categoriesOrderDirection: OrderDirection $categoriesFilter: ProductV1Category_filter) |
getProductV1MetadataEntitiesQuery | ($metadataSkip: Int $metadataFirst: Int $metadataOrderBy: ProductV1MetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: ProductV1MetadataEntity_filter) |
getProductV1MetadataEntityByIdQuery | ($metadataId: ID! $metadataSkip: Int $metadataFirst: Int $metadataOrderBy: ProductV1MetadataEntity_orderBy $metadataOrderDirection: OrderDirection $metadataFilter: ProductV1MetadataEntity_filter) |
getProductV1ProductsQuery | ($productsSkip: Int $productsFirst: Int $productsOrderBy: ProductV1Product_orderBy $productsOrderDirection: OrderDirection $productsFilter: ProductV1Product_filter) |
getProductV1ProductsWithVariantsQuery | ($productsSkip: Int $productsFirst: Int $productsOrderBy: ProductV1Product_orderBy $productsOrderDirection: OrderDirection $productsFilter: ProductV1Product_filter) |
Fragments (23): BaseAnimationMetadataFields, BaseBaseMetadataEntityFields, BaseBundleMetadataEntityFields, BaseMetadataEntityFields, BaseProductV1BrandFields, BaseProductV1CategoryFields, BaseProductV1ExchangePolicyFields, BaseProductV1MediaFields, BaseProductV1MetadataEntityFields, BaseProductV1PersonalisationFields, BaseProductV1ProductFields, BaseProductV1ProductOverridesFields, BaseProductV1ProductWithNotVoidedVariantsFields, BaseProductV1ProductWithVariantsFields, BaseProductV1SectionFields, BaseProductV1SellerContactLinkFields, BaseProductV1SellerFields, BaseProductV1ShippingJurisdictionFields, BaseProductV1ShippingOptionFields, BaseProductV1TagFields, BaseProductV1VariationFields, BundleMetadataEntityFields, ProductV1MetadataEntityFields
offers
Source: offers/queries.graphql
| Name | Variables |
|---|---|
getOfferByIdQuery | ($offerId: ID! $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $includeExchanges: Boolean = false) |
getOffersMediaQuery | ($offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $includeExchanges: Boolean = false) |
getOffersQuery | ($offersSkip: Int $offersFirst: Int $offersOrderBy: Offer_orderBy $offersOrderDirection: OrderDirection $offersFilter: Offer_filter $exchangesSkip: Int $exchangesFirst: Int $exchangesOrderBy: Exchange_orderBy $exchangesOrderDirection: OrderDirection $exchangesFilter: Exchange_filter $includeExchanges: Boolean = false) |
Fragments (3): BaseOfferFields, BaseRangeFields, OfferFields
search
Source: search/queries.graphql
| Name | Variables |
|---|---|
searchProductsQuery | ($productsSkip: Int $productsFirst: Int $productsOrderBy: ProductV1Product_orderBy $productsOrderDirection: OrderDirection $productsFilter: ProductV1Product_filter) |
Fragments (1): ProductSearchResultFields
Source
- SDK queries:
packages/core-sdk/src/**/queries.graphql - Subgraph mappings & schema:
@bosonprotocol/subgraph