Skip to content
Notis

Count unique wallets from Telegram

When you need to know how broad on-chain participation is, ask in Telegram. Notis queries Bitquery's count distinct metric and explains the network, activity, and period covered.

Trigger

New Message Received

Triggered when your bot receives a new message in a private chat, group, or supergroup. To receive every message in a group, Privacy Mode must be disabled for the bot in BotFather.

Action

Count Distinct Metric

Tool to use the count distinct metric to aggregate unique values for a field. use when you need to count the number of unique occurrences in a dataset.

Why this helps

Estimating participation from a stream of transactions is easy to get wrong and difficult to repeat consistently.

  • Distinguish the number of unique participants from total transactions.
  • Make ad hoc community and token activity checks easier to repeat.
  • Get the scope of each count alongside the answer.

Setup

Build it in a few focused steps.

  • 1Connect Telegram and Bitquery to Notis once in the portal.
  • 2Create an automation and instruct Notis in plain language to count distinct addresses matching Telegram requests.
  • 3Select Telegram New Message Received as the trigger, then choose the run-report channel.
  • 4Test a request with a known token, network, and time window.

Questions about this workflow

Does a distinct wallet count equal token holders?

Not necessarily. It counts unique addresses in the matching dataset and timeframe; it does not establish current token ownership unless the query specifically supports that definition.

Can the query cover one transaction type?

Describe the token, activity, network, and timeframe in your Telegram message so Notis can narrow the Bitquery query.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Telegram to Bitquery. A trigger fires from one place; an action lands in another.

Telegram triggers

Bitquery actions

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Aliases Metric

Tool to use graphql aliases to rename fields in the response for clarity and disambiguation. use when you need to query multiple metrics with identical field names in one call.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

Archive Database Query

Tool to query the archive database. use when you need full historical blockchain data (delayed by tens of minutes to hours).

ActionInstant

New Message Received

Triggered when your bot receives a new message in a private chat, group, or supergroup. To receive every message in a group, Privacy Mode must be disabled for the bot in BotFather.

TriggerInstant

Combined Database Query

Tool to query the combined database, which merges archive and real-time databases. use when you need both historical and up-to-the-second blockchain data in one request.

ActionInstant

New Channel Post

Triggered when a new post is published to a channel where your bot is an administrator.

TriggerInstant

Conditional Metrics Snippet

Tool to generate a graphql metric snippet with conditional logic. use when you need to apply filters directly on metric calculations via the `if` attribute.

ActionInstant

Callback Query Received

Triggered when a user taps an inline keyboard button attached to one of your bot's messages.

TriggerInstant

Count Distinct Metric

Tool to use the count distinct metric to aggregate unique values for a field. use when you need to count the number of unique occurrences in a dataset.

ActionInstant

Message Edited

Triggered when a message in a chat your bot can see is edited by its sender.

TriggerInstant

Count Metric

Tool to use the count metric to aggregate the number of records matching a graphql query. use when you need simple record counts.

ActionInstant

New Chat Member

Triggered when a new member joins a group or supergroup the bot belongs to, including when the bot itself is added.

TriggerInstant

Database Selection

Tool to select the database (archive, realtime, combined) to query at the top level of a graphql request. use after determining whether you need live, historical, or combined blockchain data.

ActionInstant

Early Access Program Query

Tool to access streaming data across various blockchain networks for evaluation purposes. use when querying chains not available via the v2 endpoint; limited to real-time data only.

ActionInstant

Connect any two apps with Notis in the middle.

Telegram and Bitquery, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Bitquery.