## Engagement query
### Summary
Identify community members who display patterns of authentic and meaningful engagement.
### Visual aid

### Query
```
with
["GitcoinGrantDonor", "GitcoinGrantAdmin", "IncubatorMember", "IncubatorParticipant", "Web3Citizen", "DaoAdmin", "DaoSummoner", "NftSubscriptionAdmin", "EarlyDaoHaus", "EarlySnapshot", "EngagedVoter", "ProposalAuthor", "BlueChipGeneric", "MirrorAuthor"] as eligibleContexts
match
(total:Wallet)-[:HOLDS]->(token:Token)-[:_HAS_MEMBERSHIP_TOKEN]-(element:_Element {communityId: $communityId})
with
count(distinct(total)) as total_wallets, eligibleContexts
match
(farmer:Wallet)-[:HOLDS]->(token:Token)-[:_HAS_MEMBERSHIP_TOKEN]-(element:_Element {communityId: $communityId})
match
(farmer)-[:_HAS_CONTEXT]->(:_IncentiveFarming)
with
total_wallets, count(distinct(farmer)) as farmers, eligibleContexts
match
(eligible:Wallet)-[r:HOLDS]->(token:Token)-[:_HAS_MEMBERSHIP_TOKEN]-(element:_Element {communityId: $communityId})
match
(eligible)-[r:_HAS_CONTEXT]->(context:_Context)
where
context._displayName in eligibleContexts
and not
(eligible)-[:_HAS_CONTEXT]->(:_Context:_IncentiveFarming)
with
count(distinct(eligible)) as eligibleWallets, total_wallets,farmers
return
{
total: total_wallets,
allstars: eligibleWallets,
farmers: farmers,
awaiting_activation: total_wallets - (eligibleWallets + farmers)
} as response
```