Methodology
How a contact gets into this database, what is checked, what is inferred, and where the method has measured limits.
Sourcing
Every contact begins as a self-supplied professional record: a name and the social handles the person chose to publish about themselves. That record is the seed; nothing is inferred until it has been matched to a live public profile.
This has a specific consequence worth stating: the population is people who maintain an active, public professional presence in the Web3 industry. That is a real selection effect. It biases the database toward active, employed practitioners and away from anonymous or purely pseudonymous participants. For business development that bias is usually an advantage, but it is a bias.
Contacts are deduplicated on X handle. The master list contains zero duplicate handles.
Enrichment pipeline
- Extract the X handle from the source record and normalise it.
- Fetch the public X profile — display name, biography, follower count, location, website, verification badge. Nothing private is accessed.
- Test for a Telegram account with the same username, and pull that profile's public title and biography if one exists.
- Adjudicate the Telegram match through the identity gate described below. Matches that fail are discarded, not stored.
- Categorise — a language model reads the X biography and derives role, primary and secondary company, and vertical assignment.
- Publish into the master list and the relevant vertical lists.
Enrichment is re-run periodically, not continuously. A person's company and role reflect their public profile when they were last enriched, so someone who has changed jobs since may show a previous employer.
The Telegram identity gate
This is the part of the method most worth understanding, because it is where the data is weakest and where most vendors say nothing at all.
How a Telegram handle is found
The pipeline checks whether an account with the same username as the contact's X handle exists on Telegram and belongs to a person rather than a group. If it does, that username is recorded along with the account's public title and biography.
That is the entire match. The handle is the X handle. This is not a search for someone's Telegram account; it is a test of whether their X username is also taken on Telegram. A shared username is weak evidence — usernames collide, and popular ones are frequently taken by different people on different platforms.
What the gate does about it
Since August 2026, every candidate match is evaluated before it can be stored. The evaluator compares the X display name and biography against the Telegram title and biography and returns one of four outcomes — accepted, rejected, risky, or unscored. Only accepted can be written to a contact record.
The evaluator is instructed that a matching username is worth nothing:
Exact or similar usernames are zero evidence. Accept only when specific public name, company, role, project, website, or bio evidence connects the identities with no material contradiction.
An acceptance is downgraded to risky if no independent cross-profile signal exists, or if the evaluator reported any contradiction. Any provider error, timeout or malformed response produces unscored. The gate fails closed: when it cannot decide, nothing is saved.
The honest limitation
The gate governs new data. It does not retroactively reclassify Telegram handles collected before it existed, and the outcome is not currently stored alongside the handle. So the 31.5% Telegram coverage figure should be read as a handle is present, not this handle is confirmed.
An audit of a 300-contact random sample found:
- Roughly two thirds of matched Telegram accounts have an empty public profile — no display name beyond a first name, no biography. There is nothing to corroborate the match against, so the gate correctly refuses to accept them.
- Among matches that could be evaluated, about 6% were demonstrably the wrong person. In one case the contact's own X biography named a different Telegram handle than the one held.
- Applying the gate's full logic to that sample leaves roughly 9% of contacts with a Telegram handle that carries positive identity evidence.
The practical guidance: use Telegram handles as a lead to confirm, not an address to trust. Read the telegramTitle and telegramBio fields alongside the handle — a Telegram profile whose bio names the same employer as the X bio is strong corroboration, and an empty profile is none.
Why the field is published at all
Because for a portion of contacts it is correct and useful, and because a handle with a stated reliability is more valuable than no handle. The alternative — publishing the number without the caveat, as is common in this category — would be worth less to a buyer, not more.
Which channels to rely on
| Channel | Coverage | Reliability |
|---|---|---|
| X (Twitter) | 98.9% | Self-supplied by the person and confirmed to resolve to a live public profile during enrichment. The strongest channel in the dataset. |
| 70.4% | Self-supplied by the person. Not cross-checked against the person's name. | |
| Telegram | 31.5% | Inferred from username collision. Confirm before relying on it — see above. |
99.5% of contacts are reachable on at least one of these, and 83.2% on two or more.
Categorisation
Role, company and vertical are produced by a language model reading the public X biography. This is inference, not self-report, and it inherits the bio's own staleness and ambiguity. Two known artefacts: 1.6% of records have a role that merely restates the vertical, and company affiliations frequently appear only inside the biography text as an @mention rather than in the company column — so a search across company alone will under-count genuine affiliations.
Known data quality issues
| Issue | Records | Status |
|---|---|---|
| Name is the X handle rather than a real name | 834 | Recoverable from the public profile; not yet re-enriched |
| Single-word name, no surname | 2,311 | As entered by the person |
| No biography text, limiting role and company inference | 1,865 | Profile had no bio at enrichment |
| Name and handle only — no company, role or bio | 595 | Thinnest records in the set |
| Stored profile URL disagrees with the handle | 57 | Known, low impact |
| LinkedIn URLs misfiled into the Telegram title column | 2,530 | Fixed 5 September 2026 |
| Duplicate contacts | 0 | Deduplicated on X handle |
Privacy and provenance
All enrichment draws on public profile data. No private accounts, no scraped message content, no member lists, and no email addresses or phone numbers are collected or sold. Every record starts from social profiles the individual published themselves.
Removal requests are honoured. Contact @catamountdata.