Data Providers
In a
GroupGenerator
, the most interesting part is to query data. We have developed dataProviders
for that. We currently support:GraphQLProvider
: allows to launch arbitrary graphQL queriesBigQueryProvider
: allows to launch arbitrary BigQuery queries on the ethereum mainnet and polygon datasetSnapshotProvider
: allows to query all voters for a proposal or for an entire spaceSubgraphHostedServiceProvider
: allows to launch arbitrary queries on any subGraph.PoapSubgraphProvider
: allows to retrieve all attenders of any events.LensProvider
: allows to retrieve social informations on Lens Protocol (profiles, followers...)GithubProvider
: allows you to easily retrieve user informations from Github (commiters, organization members, stargazers...)HiveProvider
: allows you to easily retrieve data about Twitter influencersTransposeProvider
: allows you to launch arbitrary SQL request on the ethereum mainnet with Transpose (token holders, smart contracts interactions...)
You are very welcomed to modify or add your own provider by making a PR.
Let's use the
SnapshotProvider
provider to create your group:
const generator: GroupGenerator = {
generationFrequency: GenerationFrequency.Weekly,
generate: async (context: GenerationContext): Promise<GroupWithData[]> => {
// Instantiate your snapshot provider
const snapshotProvider = new dataProviders.SnapshotProvider();
// Query all voters
const voters = await snapshotProvider.queryAllVoters({
space: "ens.eth",
});
return [
{
name: "ens-voters",
timestamp: context.timestamp,
data: voters,
accountSources: [AccountSource.ETHEREUM],
valueType: ValueType.Info,
tags: [Tags.Mainnet, Tags.Vote, Tags.User],
},
];
},
};
export default generator;
You saw how you could use data from the "outside" (through API) now see how you could combine groups with each others using Data Operators.
Last modified 2mo ago