Entities

Every node label in WhisperGraph — what it represents, its count, and the queryable properties on threat-listed indicators, prefixes, ASNs, and ROAs.

Updated July 2026Graph Schema

Entities Documentation

Every entity in WhisperGraph is a node with a label and a name. This page lists all 39 node labels — what each represents, roughly how many exist, and the properties you can filter and return. For the edges that join them, see Connection Types; for the chains that cross layers, see Pivoting Examples.

There is no Domain or FQDN label — every name is a HOSTNAME. Counts are a snapshot and drift with each refresh; CALL db.labels() returns the live set.

Node labels

Core DNS & addressing

LabelCountDescription
HOSTNAME~2.6BA fully qualified domain name (google.com, mail.google.com).
IPV4~619MAn IPv4 address.
IPV6~820KAn IPv6 address.
PREFIX~2.5MA CIDR block an IP belongs to.
ANNOUNCED_PREFIX~1.4MA prefix actually announced in BGP.
REGISTERED_PREFIX~326KA prefix allocated by a regional registry.
TLD~1.7KA top-level domain (com, nissan).

Routing & organization

LabelCountDescription
ASN~116KAn autonomous system, named AS + number (AS13335).
ASN_NAME~108KThe registered name of an autonomous system.
ORGANIZATION~119MA registrant or network organization.
RIR5A regional internet registry.
TLD_OPERATOR~737A registry that operates one or more TLDs.

WHOIS & registration

LabelCountDescription
REGISTRAR~51KA domain registrar.
EMAIL~237MA WHOIS contact email.
PHONE~60MA WHOIS contact phone.
RDAP_ENTITY~355KAn RDAP registration entity (id-only terminal node).

Geo & DNSSEC

LabelCountDescription
CITY~54KA GeoIP city (New York, US).
COUNTRY424A country.
DNSSEC_ALGORITHM8A DNSSEC signing algorithm.

Threat intelligence

LabelCountDescription
FEED_SOURCE43A threat-intelligence feed (Spamhaus DROP, Feodo Tracker).
CATEGORY25A threat or reference category (C2 Servers, TOR Network).
THREAT_TAG~12KA MISP-galaxy threat tag.
THREAT_SIGNAL_TYPE11A threat-signal taxonomy entry (bulletproof-hosting, c2-hosting).
ACTOR~1.2KA named threat actor (APT28). Case-sensitive.
ATTACK_PATTERN712A MITRE ATT&CK technique or tactic.

RPKI & routing observations

LabelCountDescription
ROA~966KAn RPKI Route Origin Authorization.
BGP_PATH_OBSERVATION~2.9MAn observed AS-path (id-only terminal node).

Physical infrastructure

LabelCountDescription
FACILITY~5.9KA datacenter or carrier-hotel building (Equinix DA1 - Dallas).
INTERNET_EXCHANGE~1.3KAn internet exchange point (LINX LON1).
SUBMARINE_CABLE694A subsea cable (2Africa).
CABLE_LANDING~1.9KA landing point for a subsea cable.
CDN_POP~1.7KA CDN point of presence (operator-prefixed id).
DNS_ROOT_INSTANCE~1.3KA root-server instance.
CLOUD_REGION91A cloud-provider region (aws:eu-west-1).

Egress, fingerprint & transparency

LabelCountDescription
VENDOR53A cloud or SaaS vendor that operates address space (cloudflare).
TOR_RELAY~2.6KA Tor relay, keyed by fingerprint.
TLS_FINGERPRINT324A JA3 or JARM TLS fingerprint.
CT_OBSERVATION~15KA Certificate Transparency observation.
DMARC_RECIPIENT7An address a domain sends DMARC reports to.

Every node has a name property, and {name: "value"} lookups are indexed. FEED_SOURCE, CATEGORY, ANNOUNCED_PREFIX, and REGISTERED_PREFIX are virtual labels synthesized at query time. The small ones (FEED_SOURCE, CATEGORY) can be listed directly; reach the prefix labels through an edge (ANNOUNCED_BY, BELONGS_TO) rather than scanning them. BGP_PATH_OBSERVATION and RDAP_ENTITY are id-only terminal nodes: they exist to be reached, and carry no further hops.

Node properties

Most labels carry only name. Threat-listed indicators, announced prefixes, ASNs, and ROAs carry richer, queryable properties.

Threat & verdict (on threat-listed IPV4 / IPV6 / HOSTNAME)

PropertyTypeNotes
verdictScoreDoubleReconciled triage score — prefer this over threatScore.
verdictLevelStringReconciled level: NONECRITICAL.
verdictBlockingBooleanWhether the reconciled verdict recommends blocking.
threatScoreDoubleRaw feed-weighted score. Never clamped, so it keeps the full feed evidence.
threatLevelStringNONE / INFO / LOW / MEDIUM / HIGH / CRITICAL.
threatSourcesListThe feed names that flagged the indicator.
threatFirstSeen / threatLastSeenepoch msFirst/last time the indicator was seen on a feed.

Boolean flags (also on threat-listed nodes): isThreat, isAnonymizer, isC2, isMalware, isPhishing, isSpam, isBruteforce, isScanner, isBlacklist, isTor, isProxy, isVpn, isWhitelist, isReputation, isBotnet, isDga, isStateActor, isExfilDestination, isOfacSanctioned.

Curated well-known infrastructure (public resolvers like 8.8.8.8) carries an allowlisted flag, and its verdict surfaces (verdictLevel, threatLevel, isThreat) are clamped to benign. The raw threatScore is never clamped, so WHERE ip.threatScore > 5 still matches an allowlisted resolver.

// Triage an IP on the reconciled verdict (preferred over raw threatScore)
MATCH (ip:IPV4 {name: "185.220.101.1"})
RETURN ip.name, ip.verdictScore, ip.verdictLevel, ip.verdictBlocking, ip.isTor, ip.isAnonymizer
LIMIT 1

BGP enrichment (on ANNOUNCED_PREFIX)

PropertyTypeNotes
isMoasBooleanCurrently announced by more than one origin AS (MOAS).
isAnycastBooleanAnnounced from multiple locations.
isWithdrawnBooleanCurrently withdrawn from the routing table.
threatScore / threatLevel / threatSourcesDouble / String / ListAggregate threat across the prefix.
rirStringThe allocating regional registry.
registrationDate / lastChangedDatedateAllocation and last-change dates.

ASN aggregate threat (on ASN)

PropertyTypeNotes
maxThreatScore / avgThreatScoreDoubleMax / average threat across the AS's routed prefixes.
overallThreatLevelStringRolled-up level for the AS.
hasThreateningPrefixesBooleanWhether any routed prefix is threat-listed.
rirStringThe allocating regional registry.
registrationDate / lastChangedDatedateAllocation and last-change dates.

RPKI (on ROA)

PropertyTypeNotes
asnStringThe authorized origin AS.
maxLengthIntMaximum prefix length the ROA authorizes.
authSourceStringrpki or irr.
trustAnchorStringThe RPKI trust anchor.
validFrom / validUntiltimestampROA validity window.

Other enriched labels

LabelNotable properties
TOR_RELAYname (fingerprint), fingerprint, exitAddressCount, source.
CT_OBSERVATIONname (the observed cert name), certCount, firstSeen, lastSeen, wildcard.
VENDORname (lowercase slug), displayName, category (saas, cloud), confidence.
TLS_FINGERPRINTname (jarm:/ja3:-prefixed hash), hash, kind, family, firstSeen, lastSeen, sourceCount.
THREAT_SIGNAL_TYPEname — one of 11 signal kinds, e.g. bulletproof-hosting, c2-hosting, toxic-neighborhood, coordinated-campaign.

LISTED_IN edges carry no queryable properties. The per-feed evidence behind a verdict (each feed's weight and first/last-seen timestamps) comes from explain(), which returns it as an inspectable sources array.

Confirm a label before you anchor

CALL db.labels() YIELD label RETURN label ORDER BY label

db.labels() lists every node label with its count and does not count against your quota. Checking it first is the fastest cure for the most common mistake — anchoring on a label that doesn't exist and getting silent empty results. The full property set is available live via CALL db.propertyKeys() and CALL db.schema.nodeTypeProperties().