## Show tokens w/objectives (protocol usage)
```
with
$selectedCommunityId as selectedCommunity
match
(t:Token)-[:_HAS_MEMBERSHIP_REQUIREMENT]-(e:_Element {_communityId: selectedCommunity})
optional match
(e:_Element)-[r:_HAS_OBJECTIVE]-(obj:_Objective)
optional match
(w:Wallet)-[:HOLDS|HAS_BALANCE]->(t:Token)
with
t.name as name,
t.symbol as symbol,
t.name + " (" + t.symbol + ") " as nameSymbol,
t.address as address,
"https://etherscan.com/token/" + t.address as etherscanLink,
count(distinct(w)) as holders,
collect(distinct(obj._displayName)) as objectives,
with
collect(distinct({
tokenName: name,
tokenSymbol: symbol,
displayName: nameSymbol,
etherscanLink: etherscanLink,
objectives,
holders: holders
})) as data
return
{
token_data: data
}
```