Graph Schema Reference

Node labels, edge types, multi-hop patterns, and the ER diagram for WhisperGraph. Used by every Cypher query.

Updated May 2026

Graph Schema Reference Documentation

Reference for the WhisperGraph schema: every node label, every edge type, and the multi-hop patterns that connect them. Use this alongside the Cypher syntax reference when writing queries.

Schema guide

WhisperGraph has two kinds of structure. Most nodes and edges are stored directly. A second set — the virtual infrastructure and threat-intelligence layers — is synthesized at query time from live data. Virtual edges behave like stored edges in almost every way, with one rule that matters: you must anchor the source node before traversing a virtual edge. More on that under Edge types.

There is no DOMAIN or FQDN label. Every DNS name — including nameservers and mail servers — is a HOSTNAME.

Node labels

LabelDescriptionExample values
HOSTNAMEFully-qualified domain names, subdomains, mail server nameswww.google.com, ns1.cloudflare.com
IPV4IPv4 addresses1.1.1.1, 142.250.64.100
IPV6IPv6 addresses2606:4700::6810:84e5
PREFIXIP CIDR blocks from DNS and RIR imports142.250.64.0/24
REGISTERED_PREFIXRIR-allocated IP blocks (virtual, resolved at query time)1.1.1.0/24
ANNOUNCED_PREFIXBGP-announced prefixes (virtual, resolved at query time)104.16.128.0/20
ASNAutonomous system numbersAS13335, AS15169
ASN_NAMEHuman-readable AS organization namesCLOUDFLARENET - Cloudflare, Inc.
TLDTop-level domainscom, net, org, io
TLD_OPERATORTLD registry operatorsVeriSign Global Registry Services
REGISTRARDomain registrars (IANA ID format)iana:292 (MarkMonitor)
EMAILWHOIS contact email addressesdomains@cloudflare.com
PHONEWHOIS contact phone numbers (E.164)+14158675825
ORGANIZATIONOrganizations from WHOIS or RIR recordscloudflare hostmaster
CITYGeoIP city with country codeMountain View, US
COUNTRYISO 3166-1 alpha-2 country codesUS, DE, AU
RIRRegional Internet RegistriesARIN, RIPENCC, APNIC, LACNIC, AFRINIC
DNSSEC_ALGORITHMDNSSEC signing algorithmsECDSAP256SHA256, RSASHA256
FEED_SOURCEThreat intelligence feed sources (virtual)Spamhaus DROP, Feodo Tracker
CATEGORYThreat feed categories (virtual)C2 Servers, Phishing

CALL db.labels() returns all 20 labels with live row counts.

Edge types

Edges have a direction. A wrong-direction traversal returns zero rows with no error, so direction matters — you can always traverse an edge backwards by writing <-[:TYPE]-. The tables below give the storage direction.

DNS resolution

Edge typeFromToDescription
RESOLVES_TOHOSTNAMEIPV4/IPV6DNS A/AAAA records
CHILD_OFHOSTNAMEHOSTNAME/TLDDomain hierarchy (sub.example.com → example.com → com)
ALIAS_OFHOSTNAMEHOSTNAMECNAME records
NAMESERVER_FORHOSTNAMEHOSTNAMENS delegation (the nameserver serves the target domain)
MAIL_FORHOSTNAMEHOSTNAMEMX records (the mail server handles mail for the target domain)
SIGNED_WITHHOSTNAMEDNSSEC_ALGORITHMDNSSEC signing algorithm

BGP and routing

Edge typeFromToDescription
ANNOUNCED_BYIPV4/IPV6ANNOUNCED_PREFIXThe IP falls inside a BGP-announced prefix (virtual)
ROUTESASNPREFIX/ANNOUNCED_PREFIXThe ASN routes the prefix (virtual)
BELONGS_TOIPV4/IPV6PREFIX/REGISTERED_PREFIXThe IP belongs to an allocation block
PEERS_WITHASNASNBGP peering relationship (virtual)
HAS_NAMEASNASN_NAMENetwork operator name (virtual)
CONFLICTS_WITHPREFIXASNA multi-origin AS (MOAS) conflict — the same prefix announced by more than one ASN (virtual)

WHOIS and registration

Edge typeFromToDescription
HAS_REGISTRARHOSTNAMEREGISTRARCurrent domain registrar
PREV_REGISTRARHOSTNAMEREGISTRARA historical, superseded registrar
REGISTERED_BYHOSTNAME/ASN/PREFIXORGANIZATIONWHOIS / RIR registrant organization
HAS_EMAILHOSTNAMEEMAILWHOIS contact email
HAS_PHONEHOSTNAMEPHONEWHOIS contact phone

Geo

Edge typeFromToDescription
LOCATED_INIPV4/IPV6CITYGeoIP city for the IP. LOCATED_IN never targets COUNTRY — chain through HAS_COUNTRY to reach a country
HAS_COUNTRYASN/CITY/IPV4/HOSTNAME/PHONE/ANNOUNCED_PREFIX/REGISTERED_PREFIXCOUNTRYThe entity's country

Threat intelligence

Edge typeFromToDescription
LISTED_INIPV4/IPV6/HOSTNAMEFEED_SOURCEThe indicator appears in this threat feed (virtual)
BELONGS_TOFEED_SOURCECATEGORYThe feed is classified under this category

Web

Edge typeFromToDescription
LINKS_TOHOSTNAMEHOSTNAMEA web hyperlink from one site to another (from web crawl data)

SPF

Edge typeFromToDescription
SPF_INCLUDEHOSTNAMEHOSTNAMESPF include: mechanism
SPF_IPHOSTNAMEIPV4/IPV6/PREFIXSPF ip4: / ip6: mechanism
SPF_AHOSTNAMEHOSTNAMESPF a: mechanism
SPF_MXHOSTNAMEHOSTNAMESPF mx: mechanism
SPF_REDIRECTHOSTNAMEHOSTNAMESPF redirect= modifier
SPF_EXISTSHOSTNAMEHOSTNAMESPF exists: mechanism

Registry

Edge typeFromToDescription
OPERATESTLD_OPERATORTLDThe registry operator runs the top-level domain (virtual)

Virtual edges must be anchored

Some edges are physical (stored directly), some are virtual (synthesized at query time), and a few are a mix. The virtual and mixed edges — ANNOUNCED_BY, ROUTES into ANNOUNCED_PREFIX, HAS_NAME, BELONGS_TO into REGISTERED_PREFIX, LISTED_IN, CONFLICTS_WITH, and OPERATES — are only produced when the source node of the traversal is anchored. An unanchored probe like MATCH (a:ASN)-[:HAS_NAME]->(n) returns nothing; the anchored form MATCH (a:ASN {name: "AS13335"})-[:HAS_NAME]->(n) returns CLOUDFLARENET - Cloudflare, Inc. Always anchor before traversing a virtual edge, and never put a virtual edge inside a variable-length pattern. To chain two virtual edges (for example LISTED_IN into BELONGS_TO), insert a WITH between them so the intermediate node is materialised before the second hop.

Entity relationship diagram

Entity Relationship Diagram

Solid lines are physical edges stored on disk. Dashed lines are virtual edges computed at query time from live infrastructure and threat intelligence data.

Multi-hop path patterns

These are the most common traversal chains through the graph.

Domain to network owner:

HOSTNAME -[:RESOLVES_TO]-> IPV4 -[:ANNOUNCED_BY]-> ANNOUNCED_PREFIX -[:ROUTES]-> ASN -[:HAS_NAME]-> ASN_NAME

Domain to nameservers:

HOSTNAME(ns) -[:NAMESERVER_FOR]-> HOSTNAME(domain)

Domain to mail servers:

HOSTNAME(mx) -[:MAIL_FOR]-> HOSTNAME(domain)

IP to GeoIP location:

IPV4 -[:LOCATED_IN]-> CITY -[:HAS_COUNTRY]-> COUNTRY

IP to threat feeds:

IPV4 -[:LISTED_IN]-> FEED_SOURCE -[:BELONGS_TO]-> CATEGORY

Domain WHOIS chain:

HOSTNAME -[:HAS_REGISTRAR]-> REGISTRAR
HOSTNAME -[:HAS_EMAIL]-> EMAIL
HOSTNAME -[:REGISTERED_BY]-> ORGANIZATION

DNS hierarchy:

HOSTNAME -[:CHILD_OF]-> HOSTNAME(parent) -[:CHILD_OF]-> TLD

RIR allocation chain:

IPV4 -[:BELONGS_TO]-> REGISTERED_PREFIX -[:REGISTERED_BY]-> ORGANIZATION

Registry operator:

TLD_OPERATOR -[:OPERATES]-> TLD