https://github.com/developerfred/admanager-subgraph
https://github.com/developerfred/admanager-subgraph
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/developerfred/admanager-subgraph
- Owner: developerfred
- Created: 2024-09-26T02:57:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-16T20:09:12.000Z (about 1 year ago)
- Last Synced: 2025-04-15T19:53:19.935Z (9 months ago)
- Language: TypeScript
- Size: 283 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# 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
```graphql
{
globalStats(id: "1") {
totalAdvertisements
totalEngagements
totalUsers
totalRewardsMinted
}
}
```
### User Information
Get user details:
```graphql
{
user(id: "0x1234...") {
address
level
reputation
achievementsCount
engagementsCount
totalRewardsEarned
referrals {
id
}
referrer {
id
}
}
}
```
List top users by reputation:
```graphql
{
users(first: 10, orderBy: reputation, orderDirection: desc) {
id
address
reputation
level
}
}
```
### Advertisements
Get advertisement details:
```graphql
{
advertisement(id: "0x5678...") {
link
imageUrl
price
advertiser {
id
address
}
referrer {
id
address
}
engagementsCount
active
}
}
```
List recent active advertisements:
```graphql
{
advertisements(
first: 20,
orderBy: blockTimestamp,
orderDirection: desc,
where: { active: true }
) {
id
link
imageUrl
price
advertiser {
address
}
engagementsCount
}
}
```
### Engagements
Get recent engagements:
```graphql
{
engagementRecordeds(first: 100, orderBy: blockTimestamp, orderDirection: desc) {
adIndex
user
timestamp
}
}
```
### Achievements
List recent achievements:
```graphql
{
achievementUnlockeds(first: 50, orderBy: blockTimestamp, orderDirection: desc) {
user
achievementId
name
}
}
```
### Special Events
Get details of recent special events:
```graphql
{
specialEventStarteds(first: 10, orderBy: startTime, orderDirection: desc) {
name
startTime
endTime
rewardMultiplier
}
}
```
### Complex Queries
Get user with their advertisements and engagements:
```graphql
{
user(id: "0x1234...") {
address
level
reputation
advertisements {
id
link
engagementsCount
}
engagementRecordeds {
adIndex
timestamp
}
}
}
```
Get top advertisers by engagement count:
```graphql
{
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](https://thegraph.com/docs/en/querying/graphql-api/).