Skip to content

developerfred/admanager-subgraph

Repository files navigation

AdvertisementManager Subgraph

This subgraph indexes events from the AdvertisementManager contract on the Base network. It provides a comprehensive view of advertisements, user activities, and system statistics.

Queries

Here are some example queries you can use to interact with the subgraph:

Global Statistics

{
  globalStats(id: "1") {
    totalAdvertisements
    totalEngagements
    totalUsers
    totalRewardsMinted
  }
}

User Information

Get user details:

{
  user(id: "0x1234...") {
    address
    level
    reputation
    achievementsCount
    engagementsCount
    totalRewardsEarned
    referrals {
      id
    }
    referrer {
      id
    }
  }
}

List top users by reputation:

{
  users(first: 10, orderBy: reputation, orderDirection: desc) {
    id
    address
    reputation
    level
  }
}

Advertisements

Get advertisement details:

{
  advertisement(id: "0x5678...") {
    link
    imageUrl
    price
    advertiser {
      id
      address
    }
    referrer {
      id
      address
    }
    engagementsCount
    active
  }
}

List recent active advertisements:

{
  advertisements(
    first: 20,
    orderBy: blockTimestamp,
    orderDirection: desc,
    where: { active: true }
  ) {
    id
    link
    imageUrl
    price
    advertiser {
      address
    }
    engagementsCount
  }
}

Engagements

Get recent engagements:

{
  engagementRecordeds(first: 100, orderBy: blockTimestamp, orderDirection: desc) {
    adIndex
    user
    timestamp
  }
}

Achievements

List recent achievements:

{
  achievementUnlockeds(first: 50, orderBy: blockTimestamp, orderDirection: desc) {
    user
    achievementId
    name
  }
}

Special Events

Get details of recent special events:

{
  specialEventStarteds(first: 10, orderBy: startTime, orderDirection: desc) {
    name
    startTime
    endTime
    rewardMultiplier
  }
}

Complex Queries

Get user with their advertisements and engagements:

{
  user(id: "0x1234...") {
    address
    level
    reputation
    advertisements {
      id
      link
      engagementsCount
    }
    engagementRecordeds {
      adIndex
      timestamp
    }
  }
}

Get top advertisers by engagement count:

{
  advertisements(first: 10, orderBy: engagementsCount, orderDirection: desc) {
    advertiser {
      address
      level
      reputation
    }
    link
    engagementsCount
  }
}

Notes

  • Replace "0x1234..." and "0x5678..." with actual entity IDs when querying.
  • The first parameter in list queries can be adjusted to retrieve more or fewer results.
  • Use skip parameter for pagination, e.g., (first: 20, skip: 20) for the second page.
  • Combine where conditions for more specific queries, e.g., where: { active: true, price_gt: "1000000000000000000" }.

For more information on how to build queries, refer to The Graph's query API documentation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published