Skip to content

Latest commit

 

History

History
193 lines (161 loc) · 3 KB

Readme.md

File metadata and controls

193 lines (161 loc) · 3 KB

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.