## 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 } ```