{
  "$schema": "./RESOLVER-REGISTRY.schema.md",
  "registryVersion": "2.0.0",
  "generatedOn": "2026-08-15",
  "maintainer": "Genext Information Systems",
  "readme": [
    "Single source of truth for every resolver this site describes or measures.",
    "The site's visible provider counts, benchmark set and setup addresses are all generated",
    "from this file. Nothing about a provider is hard-coded in a template.",
    "",
    "status:",
    "  active                — configuration verified against the provider's own documentation",
    "                          on the date in verification.lastVerified. Included in the benchmark.",
    "  pending-verification  — carried over from an earlier release. The configuration has NOT been",
    "                          re-checked against a primary source, so it is NOT benchmarked and NOT",
    "                          presented as verified fact. Move to 'active' only after fetching the",
    "                          provider's official documentation and recording the URL and date.",
    "  retired               — the service no longer exists. Kept for the historical record so the",
    "                          removal is auditable.",
    "",
    "browserMeasurable is determined at RUNTIME, not asserted here. No provider in this list",
    "documents whether its DoH endpoint sends Access-Control-Allow-Origin, so the engine",
    "classifies each endpoint on the evidence of the actual response and excludes anything it",
    "cannot read. See BENCHMARK-METHODOLOGY.md section 4."
  ],
  "protocolReferences": {
    "rfc8484": "https://www.rfc-editor.org/rfc/rfc8484",
    "googleJson": "https://developers.google.com/speed/public-dns/docs/doh/json",
    "cloudflareJson": "https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/",
    "cloudflareWire": "https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-wireformat/"
  },
  "resolvers": [
    {
      "id": "cloudflare",
      "provider": "Cloudflare",
      "name": "Cloudflare",
      "variant": "Standard",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": {
        "wire": "https://cloudflare-dns.com/dns-query",
        "json": "https://cloudflare-dns.com/dns-query"
      },
      "ipv4": ["1.1.1.1", "1.0.0.1"],
      "ipv6": ["2606:4700:4700::1111", "2606:4700:4700::1001"],
      "brand": { "color": "#F38020", "letter": "C" },
      "docsUrl": "https://developers.cloudflare.com/1.1.1.1/setup/",
      "privacyPolicyUrl": "https://www.cloudflare.com/privacypolicy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": [
          "https://developers.cloudflare.com/1.1.1.1/setup/",
          "https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/"
        ],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "cloudflare-security",
      "provider": "Cloudflare",
      "name": "Cloudflare Security",
      "variant": "1.1.1.1 for Families — malware blocking",
      "filtering": "malware",
      "filteringLabel": "Blocks malware and phishing",
      "doh": {
        "wire": "https://security.cloudflare-dns.com/dns-query",
        "json": "https://security.cloudflare-dns.com/dns-query"
      },
      "ipv4": ["1.1.1.2", "1.0.0.2"],
      "ipv6": ["2606:4700:4700::1112", "2606:4700:4700::1002"],
      "brand": { "color": "#F38020", "letter": "C" },
      "docsUrl": "https://developers.cloudflare.com/1.1.1.1/setup/",
      "privacyPolicyUrl": "https://www.cloudflare.com/privacypolicy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://developers.cloudflare.com/1.1.1.1/setup/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "cloudflare-family",
      "provider": "Cloudflare",
      "name": "Cloudflare Family",
      "variant": "1.1.1.1 for Families — malware + adult content",
      "filtering": "family",
      "filteringLabel": "Blocks malware and adult content",
      "doh": {
        "wire": "https://family.cloudflare-dns.com/dns-query",
        "json": "https://family.cloudflare-dns.com/dns-query"
      },
      "ipv4": ["1.1.1.3", "1.0.0.3"],
      "ipv6": ["2606:4700:4700::1113", "2606:4700:4700::1003"],
      "brand": { "color": "#F38020", "letter": "C" },
      "docsUrl": "https://developers.cloudflare.com/1.1.1.1/setup/",
      "privacyPolicyUrl": "https://www.cloudflare.com/privacypolicy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://developers.cloudflare.com/1.1.1.1/setup/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "google",
      "provider": "Google",
      "name": "Google Public DNS",
      "variant": "Standard",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": {
        "wire": "https://dns.google/dns-query",
        "json": "https://dns.google/resolve"
      },
      "ipv4": ["8.8.8.8", "8.8.4.4"],
      "ipv6": ["2001:4860:4860::8888", "2001:4860:4860::8844"],
      "brand": { "color": "#4285F4", "letter": "G" },
      "docsUrl": "https://developers.google.com/speed/public-dns/docs/doh",
      "privacyPolicyUrl": "https://developers.google.com/speed/public-dns/privacy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": [
          "https://developers.google.com/speed/public-dns/docs/doh",
          "https://developers.google.com/speed/public-dns/docs/doh/json"
        ],
        "privacyPolicyReviewed": false
      },
      "notes": "The JSON API lives at /resolve; the RFC 8484 wire endpoint is /dns-query. They are not interchangeable — this is exactly the assumption that broke v1."
    },
    {
      "id": "quad9",
      "provider": "Quad9",
      "name": "Quad9",
      "variant": "Recommended — malware blocking + DNSSEC validation",
      "filtering": "malware",
      "filteringLabel": "Blocks malware, validates DNSSEC",
      "doh": { "wire": "https://dns.quad9.net/dns-query", "json": null },
      "ipv4": ["9.9.9.9", "149.112.112.112"],
      "ipv6": ["2620:fe::fe", "2620:fe::9"],
      "brand": { "color": "#9C27B0", "letter": "Q" },
      "docsUrl": "https://www.quad9.net/service/service-addresses-and-features/",
      "privacyPolicyUrl": "https://quad9.net/privacy/policy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://www.quad9.net/service/service-addresses-and-features/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "quad9-unsecured",
      "provider": "Quad9",
      "name": "Quad9 Unsecured",
      "variant": "Unsecured — no malware blocking",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": { "wire": "https://dns10.quad9.net/dns-query", "json": null },
      "ipv4": ["9.9.9.10", "149.112.112.10"],
      "ipv6": ["2620:fe::10", "2620:fe::fe:10"],
      "brand": { "color": "#9C27B0", "letter": "Q" },
      "docsUrl": "https://www.quad9.net/service/service-addresses-and-features/",
      "privacyPolicyUrl": "https://quad9.net/privacy/policy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://www.quad9.net/service/service-addresses-and-features/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "quad9-ecs",
      "provider": "Quad9",
      "name": "Quad9 with ECS",
      "variant": "Secured with EDNS Client Subnet",
      "filtering": "malware",
      "filteringLabel": "Blocks malware, DNSSEC, sends client subnet",
      "doh": { "wire": "https://dns11.quad9.net/dns-query", "json": null },
      "ipv4": ["9.9.9.11", "149.112.112.11"],
      "ipv6": ["2620:fe::11", "2620:fe::fe:11"],
      "brand": { "color": "#9C27B0", "letter": "Q" },
      "docsUrl": "https://www.quad9.net/service/service-addresses-and-features/",
      "privacyPolicyUrl": "https://quad9.net/privacy/policy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://www.quad9.net/service/service-addresses-and-features/"],
        "privacyPolicyReviewed": false
      },
      "notes": "ECS forwards a truncated form of the client's network to authoritative servers. Faster CDN answers, less query privacy — a trade-off, not a bug."
    },
    {
      "id": "adguard",
      "provider": "AdGuard",
      "name": "AdGuard DNS",
      "variant": "Default — ad and tracker blocking",
      "filtering": "ads",
      "filteringLabel": "Blocks ads and trackers",
      "doh": { "wire": "https://dns.adguard-dns.com/dns-query", "json": null },
      "ipv4": ["94.140.14.14", "94.140.15.15"],
      "ipv6": ["2a10:50c0::ad1:ff", "2a10:50c0::ad2:ff"],
      "brand": { "color": "#67B279", "letter": "A" },
      "docsUrl": "https://adguard-dns.io/en/public-dns.html",
      "privacyPolicyUrl": "https://adguard-dns.io/en/privacy.html",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://adguard-dns.io/en/public-dns.html"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "adguard-family",
      "provider": "AdGuard",
      "name": "AdGuard Family",
      "variant": "Family protection",
      "filtering": "family",
      "filteringLabel": "Blocks ads, trackers and adult content",
      "doh": { "wire": "https://family.adguard-dns.com/dns-query", "json": null },
      "ipv4": ["94.140.14.15", "94.140.15.16"],
      "ipv6": ["2a10:50c0::bad1:ff", "2a10:50c0::bad2:ff"],
      "brand": { "color": "#67B279", "letter": "A" },
      "docsUrl": "https://adguard-dns.io/en/public-dns.html",
      "privacyPolicyUrl": "https://adguard-dns.io/en/privacy.html",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://adguard-dns.io/en/public-dns.html"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "adguard-unfiltered",
      "provider": "AdGuard",
      "name": "AdGuard Non-filtering",
      "variant": "Non-filtering",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": { "wire": "https://unfiltered.adguard-dns.com/dns-query", "json": null },
      "ipv4": ["94.140.14.140", "94.140.14.141"],
      "ipv6": ["2a10:50c0::1:ff", "2a10:50c0::2:ff"],
      "brand": { "color": "#67B279", "letter": "A" },
      "docsUrl": "https://adguard-dns.io/en/public-dns.html",
      "privacyPolicyUrl": "https://adguard-dns.io/en/privacy.html",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://adguard-dns.io/en/public-dns.html"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "mullvad",
      "provider": "Mullvad",
      "name": "Mullvad DNS",
      "variant": "Unfiltered",
      "filtering": "none",
      "filteringLabel": "No filtering, no logs claimed",
      "doh": { "wire": "https://dns.mullvad.net/dns-query", "json": null },
      "ipv4": ["194.242.2.2"],
      "ipv6": ["2a07:e340::2"],
      "brand": { "color": "#FFD43B", "letter": "M" },
      "docsUrl": "https://mullvad.net/en/help/dns-over-https-and-dns-over-tls",
      "privacyPolicyUrl": "https://mullvad.net/en/help/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://mullvad.net/en/help/dns-over-https-and-dns-over-tls"],
        "privacyPolicyReviewed": false
      },
      "notes": "Mullvad documents one IPv4 and one IPv6 address per variant. The previous release listed 193.19.108.2 as a secondary; that address is not in Mullvad's published table and has been removed."
    },
    {
      "id": "mullvad-adblock",
      "provider": "Mullvad",
      "name": "Mullvad Ad-blocking",
      "variant": "Ads and trackers",
      "filtering": "ads",
      "filteringLabel": "Blocks ads and trackers",
      "doh": { "wire": "https://adblock.dns.mullvad.net/dns-query", "json": null },
      "ipv4": ["194.242.2.3"],
      "ipv6": ["2a07:e340::3"],
      "brand": { "color": "#FFD43B", "letter": "M" },
      "docsUrl": "https://mullvad.net/en/help/dns-over-https-and-dns-over-tls",
      "privacyPolicyUrl": "https://mullvad.net/en/help/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://mullvad.net/en/help/dns-over-https-and-dns-over-tls"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "mullvad-base",
      "provider": "Mullvad",
      "name": "Mullvad Base",
      "variant": "Ads, trackers and malware",
      "filtering": "malware",
      "filteringLabel": "Blocks ads, trackers and malware",
      "doh": { "wire": "https://base.dns.mullvad.net/dns-query", "json": null },
      "ipv4": ["194.242.2.4"],
      "ipv6": ["2a07:e340::4"],
      "brand": { "color": "#FFD43B", "letter": "M" },
      "docsUrl": "https://mullvad.net/en/help/dns-over-https-and-dns-over-tls",
      "privacyPolicyUrl": "https://mullvad.net/en/help/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://mullvad.net/en/help/dns-over-https-and-dns-over-tls"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "mullvad-family",
      "provider": "Mullvad",
      "name": "Mullvad Family",
      "variant": "Ads, trackers, malware, adult, gambling",
      "filtering": "family",
      "filteringLabel": "Blocks ads, malware, adult content and gambling",
      "doh": { "wire": "https://family.dns.mullvad.net/dns-query", "json": null },
      "ipv4": ["194.242.2.6"],
      "ipv6": ["2a07:e340::6"],
      "brand": { "color": "#FFD43B", "letter": "M" },
      "docsUrl": "https://mullvad.net/en/help/dns-over-https-and-dns-over-tls",
      "privacyPolicyUrl": "https://mullvad.net/en/help/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://mullvad.net/en/help/dns-over-https-and-dns-over-tls"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "cleanbrowsing-security",
      "provider": "CleanBrowsing",
      "name": "CleanBrowsing Security",
      "variant": "Security filter",
      "filtering": "malware",
      "filteringLabel": "Blocks phishing, spam and malware",
      "doh": { "wire": "https://doh.cleanbrowsing.org/doh/security-filter/", "json": null },
      "ipv4": ["185.228.168.9", "185.228.169.9"],
      "ipv6": ["2a0d:2a00:1::2", "2a0d:2a00:2::2"],
      "brand": { "color": "#3B82F6", "letter": "B" },
      "docsUrl": "https://cleanbrowsing.org/filters/",
      "privacyPolicyUrl": "https://cleanbrowsing.org/privacy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://cleanbrowsing.org/filters/"],
        "privacyPolicyReviewed": false
      },
      "notes": "CleanBrowsing documents the DoH path with a trailing slash. The previous release omitted it."
    },
    {
      "id": "cleanbrowsing-family",
      "provider": "CleanBrowsing",
      "name": "CleanBrowsing Family",
      "variant": "Family filter",
      "filtering": "family",
      "filteringLabel": "Blocks adult content, proxies and VPNs",
      "doh": { "wire": "https://doh.cleanbrowsing.org/doh/family-filter/", "json": null },
      "ipv4": ["185.228.168.168", "185.228.169.168"],
      "ipv6": ["2a0d:2a00:1::", "2a0d:2a00:2::"],
      "brand": { "color": "#3B82F6", "letter": "B" },
      "docsUrl": "https://cleanbrowsing.org/filters/",
      "privacyPolicyUrl": "https://cleanbrowsing.org/privacy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://cleanbrowsing.org/filters/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "cleanbrowsing-adult",
      "provider": "CleanBrowsing",
      "name": "CleanBrowsing Adult",
      "variant": "Adult filter",
      "filtering": "adult",
      "filteringLabel": "Blocks adult content only",
      "doh": { "wire": "https://doh.cleanbrowsing.org/doh/adult-filter/", "json": null },
      "ipv4": ["185.228.168.10", "185.228.169.11"],
      "ipv6": ["2a0d:2a00:1::1", "2a0d:2a00:2::1"],
      "brand": { "color": "#3B82F6", "letter": "B" },
      "docsUrl": "https://cleanbrowsing.org/filters/",
      "privacyPolicyUrl": "https://cleanbrowsing.org/privacy/",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://cleanbrowsing.org/filters/"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "dns4eu-protective",
      "provider": "DNS4EU",
      "name": "DNS4EU Protective",
      "variant": "Protective resolution",
      "filtering": "malware",
      "filteringLabel": "EU-operated, blocks malicious domains",
      "doh": { "wire": "https://protective.joindns4.eu/dns-query", "json": null },
      "ipv4": ["86.54.11.1", "86.54.11.201"],
      "ipv6": ["2a13:1001::86:54:11:1", "2a13:1001::86:54:11:201"],
      "brand": { "color": "#00E5FF", "letter": "E" },
      "docsUrl": "https://joindns4.eu/for-public",
      "privacyPolicyUrl": "https://joindns4.eu/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://joindns4.eu/for-public"],
        "privacyPolicyReviewed": false
      },
      "notes": "Added in this release as the EU-operated option after dns0.eu was discontinued."
    },
    {
      "id": "dns4eu-unfiltered",
      "provider": "DNS4EU",
      "name": "DNS4EU Unfiltered",
      "variant": "Unfiltered resolution",
      "filtering": "none",
      "filteringLabel": "EU-operated, no filtering",
      "doh": { "wire": "https://unfiltered.joindns4.eu/dns-query", "json": null },
      "ipv4": ["86.54.11.100", "86.54.11.200"],
      "ipv6": ["2a13:1001::86:54:11:100", "2a13:1001::86:54:11:200"],
      "brand": { "color": "#00E5FF", "letter": "E" },
      "docsUrl": "https://joindns4.eu/for-public",
      "privacyPolicyUrl": "https://joindns4.eu/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://joindns4.eu/for-public"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "dns4eu-child",
      "provider": "DNS4EU",
      "name": "DNS4EU Child Protection",
      "variant": "Protective + child protection",
      "filtering": "family",
      "filteringLabel": "EU-operated, blocks malicious and adult content",
      "doh": { "wire": "https://child.joindns4.eu/dns-query", "json": null },
      "ipv4": ["86.54.11.12", "86.54.11.212"],
      "ipv6": ["2a13:1001::86:54:11:12", "2a13:1001::86:54:11:212"],
      "brand": { "color": "#00E5FF", "letter": "E" },
      "docsUrl": "https://joindns4.eu/for-public",
      "privacyPolicyUrl": "https://joindns4.eu/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://joindns4.eu/for-public"],
        "privacyPolicyReviewed": false
      }
    },
    {
      "id": "dns4eu-noads",
      "provider": "DNS4EU",
      "name": "DNS4EU Ad Blocking",
      "variant": "Protective + ad blocking",
      "filtering": "ads",
      "filteringLabel": "EU-operated, blocks malicious domains and ads",
      "doh": { "wire": "https://noads.joindns4.eu/dns-query", "json": null },
      "ipv4": ["86.54.11.13", "86.54.11.213"],
      "ipv6": ["2a13:1001::86:54:11:13", "2a13:1001::86:54:11:213"],
      "brand": { "color": "#00E5FF", "letter": "E" },
      "docsUrl": "https://joindns4.eu/for-public",
      "privacyPolicyUrl": "https://joindns4.eu/privacy-policy",
      "status": "active",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://joindns4.eu/for-public"],
        "privacyPolicyReviewed": false
      }
    },

    {
      "id": "opendns",
      "provider": "Cisco",
      "name": "OpenDNS Home",
      "variant": "Home",
      "filtering": "configurable",
      "filteringLabel": "Configurable filtering",
      "doh": { "wire": "https://doh.opendns.com/dns-query", "json": null },
      "ipv4": ["208.67.222.222", "208.67.220.220"],
      "ipv6": [],
      "brand": { "color": "#EF4444", "letter": "O" },
      "docsUrl": null,
      "privacyPolicyUrl": "https://www.cisco.com/c/en/us/about/legal/privacy-full.html",
      "status": "pending-verification",
      "verification": {
        "lastVerified": null,
        "sources": [],
        "privacyPolicyReviewed": false,
        "blocker": "Cisco retired the OpenDNS support article that documented the DoH endpoint; the URL now redirects to a community forum. Needs a current primary source before this entry can be marked active."
      }
    },
    {
      "id": "controld-unfiltered",
      "provider": "Control D",
      "name": "Control D Unfiltered",
      "variant": "Free profile p0",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": { "wire": "https://freedns.controld.com/p0", "json": null },
      "ipv4": ["76.76.2.0", "76.76.10.0"],
      "ipv6": [],
      "brand": { "color": "#22D3EE", "letter": "D" },
      "docsUrl": "https://controld.com/free-dns",
      "privacyPolicyUrl": "https://controld.com/privacy",
      "status": "pending-verification",
      "verification": {
        "lastVerified": null,
        "sources": [],
        "privacyPolicyReviewed": false,
        "blocker": "Control D's free-DNS page describes the p0-p3 profiles but the IP addresses are rendered client-side and were not readable from the fetched document. Confirm addresses from the provider before activating."
      }
    },
    {
      "id": "controld-malware",
      "provider": "Control D",
      "name": "Control D Malware",
      "variant": "Free profile p1",
      "filtering": "malware",
      "filteringLabel": "Blocks malware",
      "doh": { "wire": "https://freedns.controld.com/p1", "json": null },
      "ipv4": ["76.76.2.1", "76.76.10.1"],
      "ipv6": [],
      "brand": { "color": "#22D3EE", "letter": "D" },
      "docsUrl": "https://controld.com/free-dns",
      "privacyPolicyUrl": "https://controld.com/privacy",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "See controld-unfiltered." }
    },
    {
      "id": "controld-ads",
      "provider": "Control D",
      "name": "Control D Ad Blocking",
      "variant": "Free profile p2",
      "filtering": "ads",
      "filteringLabel": "Blocks malware, ads and trackers",
      "doh": { "wire": "https://freedns.controld.com/p2", "json": null },
      "ipv4": ["76.76.2.2", "76.76.10.2"],
      "ipv6": [],
      "brand": { "color": "#22D3EE", "letter": "D" },
      "docsUrl": "https://controld.com/free-dns",
      "privacyPolicyUrl": "https://controld.com/privacy",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "See controld-unfiltered." }
    },
    {
      "id": "controld-social",
      "provider": "Control D",
      "name": "Control D Social",
      "variant": "Free profile p3",
      "filtering": "social",
      "filteringLabel": "Blocks malware, ads and social platforms",
      "doh": { "wire": "https://freedns.controld.com/p3", "json": null },
      "ipv4": ["76.76.2.3", "76.76.10.3"],
      "ipv6": [],
      "brand": { "color": "#22D3EE", "letter": "D" },
      "docsUrl": "https://controld.com/free-dns",
      "privacyPolicyUrl": "https://controld.com/privacy",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "See controld-unfiltered." }
    },
    {
      "id": "nextdns",
      "provider": "NextDNS",
      "name": "NextDNS",
      "variant": "Anycast (no configuration profile)",
      "filtering": "configurable",
      "filteringLabel": "Configurable per account",
      "doh": { "wire": "https://dns.nextdns.io", "json": null },
      "ipv4": ["45.90.28.0", "45.90.30.0"],
      "ipv6": [],
      "brand": { "color": "#2EC4B6", "letter": "N" },
      "docsUrl": "https://nextdns.io/",
      "privacyPolicyUrl": "https://nextdns.io/privacy",
      "status": "pending-verification",
      "verification": {
        "lastVerified": null,
        "sources": [],
        "privacyPolicyReviewed": false,
        "blocker": "NextDNS is normally used with a per-account profile ID in the endpoint path. Benchmarking the profile-less endpoint does not represent what a NextDNS user actually runs, and the setup page requires JavaScript to read. Needs a decision on what to present before activating."
      }
    },
    {
      "id": "cira-private",
      "provider": "CIRA",
      "name": "CIRA Canadian Shield Private",
      "variant": "Private",
      "filtering": "none",
      "filteringLabel": "Canada, no filtering",
      "doh": { "wire": "https://private.canadianshield.cira.ca/dns-query", "json": null },
      "ipv4": ["149.112.121.10", "149.112.122.10"],
      "ipv6": [],
      "brand": { "color": "#E11D48", "letter": "S" },
      "docsUrl": "https://www.canadianshield.cira.ca/",
      "privacyPolicyUrl": "https://www.cira.ca/en/canadian-shield-privacy-policy/",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "CIRA's setup page could not be fetched during this pass (DNS resolution failure from the audit environment). Re-check before activating." }
    },
    {
      "id": "cira-protected",
      "provider": "CIRA",
      "name": "CIRA Canadian Shield Protected",
      "variant": "Protected",
      "filtering": "malware",
      "filteringLabel": "Canada, blocks malware",
      "doh": { "wire": "https://protected.canadianshield.cira.ca/dns-query", "json": null },
      "ipv4": ["149.112.121.20", "149.112.122.20"],
      "ipv6": [],
      "brand": { "color": "#E11D48", "letter": "S" },
      "docsUrl": "https://www.canadianshield.cira.ca/",
      "privacyPolicyUrl": "https://www.cira.ca/en/canadian-shield-privacy-policy/",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "See cira-private." }
    },
    {
      "id": "cira-family",
      "provider": "CIRA",
      "name": "CIRA Canadian Shield Family",
      "variant": "Family",
      "filtering": "family",
      "filteringLabel": "Canada, blocks malware and adult content",
      "doh": { "wire": "https://family.canadianshield.cira.ca/dns-query", "json": null },
      "ipv4": ["149.112.121.30", "149.112.122.30"],
      "ipv6": [],
      "brand": { "color": "#E11D48", "letter": "S" },
      "docsUrl": "https://www.canadianshield.cira.ca/",
      "privacyPolicyUrl": "https://www.cira.ca/en/canadian-shield-privacy-policy/",
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "See cira-private." }
    },
    {
      "id": "dnssb",
      "provider": "DNS.SB",
      "name": "DNS.SB",
      "variant": "Standard",
      "filtering": "none",
      "filteringLabel": "No filtering, no logs claimed",
      "doh": { "wire": "https://doh.dns.sb/dns-query", "json": null },
      "ipv4": ["185.222.222.222", "45.11.45.11"],
      "ipv6": [],
      "brand": { "color": "#A78BFA", "letter": "S" },
      "docsUrl": "https://dns.sb/doh/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass. A 'no logs' claim in particular must not be repeated without reading the operator's current policy." }
    },
    {
      "id": "alidns",
      "provider": "Alibaba",
      "name": "AliDNS",
      "variant": "Public",
      "filtering": "malware",
      "filteringLabel": "Asia-Pacific, blocks malicious domains",
      "doh": { "wire": "https://dns.alidns.com/dns-query", "json": null },
      "ipv4": ["223.5.5.5", "223.6.6.6"],
      "ipv6": [],
      "brand": { "color": "#F59E0B", "letter": "A" },
      "docsUrl": "https://alidns.com/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "dnspod",
      "provider": "Tencent",
      "name": "DNSPod Public DNS",
      "variant": "Public",
      "filtering": "none",
      "filteringLabel": "Asia-Pacific, no filtering",
      "doh": { "wire": "https://doh.pub/dns-query", "json": null },
      "ipv4": ["119.29.29.29", "182.254.116.116"],
      "ipv6": [],
      "brand": { "color": "#10B981", "letter": "P" },
      "docsUrl": "https://doh.pub/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "gcore",
      "provider": "Gcore",
      "name": "Gcore DNS",
      "variant": "Public",
      "filtering": "none",
      "filteringLabel": "No filtering",
      "doh": { "wire": "https://dns.gcore.com/dns-query", "json": null },
      "ipv4": ["95.85.95.85", "2.56.220.2"],
      "ipv6": [],
      "brand": { "color": "#F97316", "letter": "G" },
      "docsUrl": "https://gcore.com/public-dns",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "digitale-gesellschaft",
      "provider": "Digitale Gesellschaft",
      "name": "Digitale Gesellschaft",
      "variant": "Public",
      "filtering": "none",
      "filteringLabel": "Switzerland, no logging claimed",
      "doh": { "wire": "https://dns.digitale-gesellschaft.ch/dns-query", "json": null },
      "ipv4": ["185.95.218.42", "185.95.218.43"],
      "ipv6": [],
      "brand": { "color": "#94A3B8", "letter": "D" },
      "docsUrl": "https://www.digitale-gesellschaft.ch/dns/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "quad101",
      "provider": "TWNIC",
      "name": "Quad101",
      "variant": "Public",
      "filtering": "none",
      "filteringLabel": "Taiwan, no logging claimed",
      "doh": { "wire": "https://dns.twnic.tw/dns-query", "json": null },
      "ipv4": ["101.101.101.101", "101.102.103.104"],
      "ipv6": [],
      "brand": { "color": "#38BDF8", "letter": "1" },
      "docsUrl": "https://101.101.101.101/index_en.html",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "ffmuc",
      "provider": "Freifunk München",
      "name": "ffmuc.net",
      "variant": "Public",
      "filtering": "none",
      "filteringLabel": "Germany, community operated, no filtering",
      "doh": { "wire": "https://doh.ffmuc.net/dns-query", "json": null },
      "ipv4": ["5.1.66.255", "185.150.99.255"],
      "ipv6": [],
      "brand": { "color": "#FB7185", "letter": "F" },
      "docsUrl": "https://ffmuc.net/wiki/doku.php?id=knb:dns",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass. Volunteer-operated services change addresses more often than commercial ones." }
    },
    {
      "id": "switch",
      "provider": "SWITCH",
      "name": "SWITCH DNS",
      "variant": "Public",
      "filtering": "malware",
      "filteringLabel": "Switzerland, blocks malicious domains",
      "doh": { "wire": "https://dns.switch.ch/dns-query", "json": null },
      "ipv4": ["130.59.31.248", "130.59.31.251"],
      "ipv6": [],
      "brand": { "color": "#FACC15", "letter": "W" },
      "docsUrl": "https://www.switch.ch/security/info/public-dns/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },
    {
      "id": "dnsforfamily",
      "provider": "DNS for Family",
      "name": "DNS for Family",
      "variant": "Public",
      "filtering": "family",
      "filteringLabel": "Blocks adult content",
      "doh": { "wire": "https://dns-doh.dnsforfamily.com/dns-query", "json": null },
      "ipv4": ["94.130.180.225", "78.47.64.161"],
      "ipv6": [],
      "brand": { "color": "#C084FC", "letter": "F" },
      "docsUrl": "https://dnsforfamily.com/",
      "privacyPolicyUrl": null,
      "status": "pending-verification",
      "verification": { "lastVerified": null, "sources": [], "privacyPolicyReviewed": false, "blocker": "Not re-verified in this pass." }
    },

    {
      "id": "dns0-zero",
      "provider": "dns0.eu",
      "name": "dns0.eu",
      "variant": "Default",
      "filtering": "malware",
      "filteringLabel": "EU, blocked malicious domains",
      "doh": { "wire": "https://zero.dns0.eu", "json": null },
      "ipv4": ["193.110.81.0", "185.253.5.0"],
      "ipv6": [],
      "brand": { "color": "#64748B", "letter": "0" },
      "docsUrl": "https://www.dns0.eu/",
      "privacyPolicyUrl": null,
      "status": "retired",
      "retiredOn": "2026-08-15",
      "verification": {
        "lastVerified": "2026-08-15",
        "sources": ["https://www.dns0.eu/"],
        "privacyPolicyReviewed": false
      },
      "notes": "dns0.eu states the service has been discontinued and points users to DNS4EU or NextDNS. Removed from the site. This entry is retained so the removal is auditable."
    },
    {
      "id": "dns0-kids",
      "provider": "dns0.eu",
      "name": "dns0.eu Kids",
      "variant": "Kids",
      "filtering": "family",
      "filteringLabel": "EU, family filter",
      "doh": { "wire": "https://kids.dns0.eu", "json": null },
      "ipv4": ["193.110.81.1", "185.253.5.1"],
      "ipv6": [],
      "brand": { "color": "#64748B", "letter": "0" },
      "docsUrl": "https://www.dns0.eu/",
      "privacyPolicyUrl": null,
      "status": "retired",
      "retiredOn": "2026-08-15",
      "verification": { "lastVerified": "2026-08-15", "sources": ["https://www.dns0.eu/"], "privacyPolicyReviewed": false },
      "notes": "Service discontinued. See dns0-zero."
    },
    {
      "id": "dns0-open",
      "provider": "dns0.eu",
      "name": "dns0.eu Open",
      "variant": "Open",
      "filtering": "none",
      "filteringLabel": "EU, no filtering",
      "doh": { "wire": "https://open.dns0.eu", "json": null },
      "ipv4": ["193.110.81.9", "185.253.5.9"],
      "ipv6": [],
      "brand": { "color": "#64748B", "letter": "0" },
      "docsUrl": "https://www.dns0.eu/",
      "privacyPolicyUrl": null,
      "status": "retired",
      "retiredOn": "2026-08-15",
      "verification": { "lastVerified": "2026-08-15", "sources": ["https://www.dns0.eu/"], "privacyPolicyReviewed": false },
      "notes": "Service discontinued. See dns0-zero."
    }
  ]
}
