Methodology & Ethics

Facts you can check.
Here's how we check them.

Every label, bloc and finding on ICPulse comes out of a documented process with a human decision at the end. This page describes that process — including what we refuse to publish, and the mistakes our method is built to catch.

Address labels Deterministic sources Voting blocs ⚠ Address-poisoning warning Ethics & privacy

Part 1

Address labels — four steps, no exceptions

243 labels are live on ICPulse. Every single one went through the same pipeline. Nothing ships on an algorithm's word alone.

1

Machine discovery

An indexer samples the ICP ledger and NNS governance every 60 seconds, around the clock. A discovery engine surfaces high-volume addresses, and an automated crawler produces a behavioral report for each: volume in and out, distinct counterparties, contact with already-verified anchors, and activity rhythm. The machine proposes — it never decides.

2

Pattern analysis

Each candidate runs through a published decision tree. A clean consolidation pattern (many depositors, one verified destination, near-zero balance) becomes a label candidate. An address touching multiple exchanges is never labeled — that shape belongs to users, services and third parties, not to the exchange. Dust-level "patterns" are discarded as spray artifacts.

3

Human verification

A human reviews the full report and decides. Labels carry one of two confidence tiers — and if ownership can't be attributed with confidence, the address stays an internal lead no matter how perfect the pattern looks. We have rejected million-ICP addresses on exactly this rule.

4

Publication & re-verification

Labels are published to a machine-readable registry that feeds every ICPulse feature, and are re-checked against each new deterministic source we open. When a re-check contradicts an old inference, the label is corrected publicly — that has already happened, and catching it is the point.

verified

Proven by a controlled on-chain transfer executed through the address, or derived deterministically from protocol data. Not an opinion — a checkable fact.

inferred

A clean behavioral pattern cross-checked against independent external anchors. High confidence, honestly marked as inference — never dressed up as proof.

Rules we never break

  • Deposit addresses belong to their users, not to the exchange — even heavy ones. We label infrastructure, never individuals.
  • A label is a public ownership claim. Pattern without attribution = internal lead, not a label.
  • Facts, not accusations. We record flows, directions and amounts. We do not attribute intent, and we do not link on-chain activity to identities without on-chain proof.

Part 2

Deterministic sources beat clever guesses

Wherever the protocol itself can tell us an address, we take it from the protocol — certainty instead of trust.

Large parts of the label map are derived, not discovered: SNS DAO treasury accounts, DEX liquidity-pool accounts (derived from each pool's canister and re-verified against live ledger balances), node-provider reward accounts straight from the NNS registry, and named neurons that identified themselves publicly in governance. Anyone can reproduce these derivations independently — that's what makes them verified.

Third-party attributions (external explorers, clustering lists) are treated as leads only. They enter the pipeline at step 2 like any other candidate and earn a label only by passing steps 3–4. Promoting someone else's inference straight to a label is precisely the failure mode this method exists to prevent.

Example of the method catching itself: an address long inferred as an exchange reserve turned out, under deterministic derivation, to be a DEX liquidity pool. The label was corrected the same day and the correction published. Old inferences are re-tested against every new source of certainty.

Part 3

Voting blocs — measured from timing, marked unknown where honest

ICPulse detects coordination in NNS governance from observable behavior only.

Voting blocs are measured from the ballot-arrival timing of known NNS neurons, sampled every 60 seconds. A bloc is a set of neurons that repeatedly cast matching votes within the same mid-stream sampling window across many proposals. Opening-burst co-arrival is excluded — many neurons voting seconds after a proposal opens reflects shared scheduling, not coordination.

ParameterValue
Sampling interval60 seconds, 24/7
Co-arrival window300 seconds, mid-stream only
Minimum shared proposals5
Minimum co-arrival rate50%
Proposals analyzed to date224

The underlying mechanism — following configuration, shared hotkey control, or external automation — is not observable on-chain, and we report it as unknown. Every bloc is reviewed and approved by a human before publication.

The method destroys its own findings when the data says so: a re-run over 224 proposals with stricter mid-stream rules dissolved a previously published 27-member bloc — 24 of its members had only ever co-arrived in opening bursts, and were reclassified independent. We published that too.

Part 4

Address-poisoning: a live threat we track

⚠ Never copy an ICP address out of a transaction list.

ICPulse has documented an ongoing address-poisoning campaign on the ICP ledger: attacker-generated look-alike addresses that mimic heavily used wallets, planted via zero-amount and dust transfers so they appear in transaction histories next to the real address.

The mimics we've caught match the real address's first 4–5 characters — and sometimes the suffix too. Eyeballing the start and end of an address is not a defense. Copy addresses only from a source you control or a verified registry, and verify the entire string before funds move.

The campaign is systematic: new mimics appear within a day for addresses under active public scrutiny, including labeled infrastructure and DEX settlement accounts. ICPulse's crawler detects mimic candidates automatically by prefix-matching against the verified label map, flags zero-amount spray patterns, and logs the funding addresses behind the campaign. Mimic addresses are never eligible for labels and are excluded from all flow statistics.

Part 5

Ethics & privacy

Three commitments shape everything ICPulse publishes.

1 — The data is public by birth. Everything on ICPulse comes from the public ICP ledger and NNS governance. We organize what is already visible to anyone; we expose nothing that wasn't. This is the same standard the wider industry applies to public blockchains.

2 — We label infrastructure, not people. The deposit-address rule is structural protection for individuals: exchange-owned plumbing gets labeled, the wallets of the users behind it never do. An individual's address can't end up labeled on ICPulse by pattern-matching, because patterns alone are never enough.

3 — Facts, not accusations. Labels are behavioral categories, not identity claims. Findings record direction and magnitude, never intent. Where a mechanism isn't observable on-chain, it is reported as unknown — and the SCAM ledger exists to protect users, not to name suspects.

Challenge us.

Every claim on ICPulse is verifiable against the public ledger. If you find one that isn't — we want to know.

Open ICPulse

hello@icpulse.io