Walk the DNSSEC chain
dnssec_chainWalk the DNSSEC chain from the root to one answer: DS and DNSKEY at each signed zone cut, key tags, signers, signature windows, the first link that breaks or goes insecure, and whether the zone where it goes insecure is itself signed (an island of security). Not for one signed record: dig. Read through Cloudflare's resolver over DoH with CD=1 from the isitdns edge, and a key set a break would rest on again through Google's. Signature bytes are not verified, so a clean walk does not prove the answer validates. type (default A) is the record checked at the end, not OPT, RRSIG or a meta type such as ANY, and anchor (a DS or DNSKEY record, with anchor_zone) starts the walk at that zone instead of the root.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>"
},
"name": "dnssec_chain"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name, e.g. www.example.com. Also as "domain"; a URL is read as its host. | |
| type | No | The record type to check at the end of the chain | A |
| anchor | No | A trust anchor: "DS <key tag> <algorithm> <digest type> <digest>" or "DNSKEY <flags> <protocol> <algorithm> <key>", optionally led by its owner name | |
| anchor_zone | No | The zone the anchor belongs to: the name or a parent of it. Optional when the anchor record leads with its owner |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | The /api GET that asks it again, as a new reading | |
| links | Yes | One per zone cut: zone, DS, key tags and roles, signer, problems, readFrom | |
| anchor | No | The supplied anchor: zone, kind, record, keyTag, algorithm, match | |
| answer | No | The end: rcode, records, signatures, denial, problems | |
| readAt | Yes | When the walk began | |
| islandAt | No | insecureAt when that zone is itself signed: an island of security; null when it is not, or when that was not judged (notChecked says why) | |
| receipts | Yes | One per DNS read: what, of whom, from where, when, rcode, flags, EDE, ms, answer | |
| firstBreak | No | The first link that breaks: at, why, readFrom (the resolvers whose readings it rests on) | |
| insecureAt | No | The zone where it goes insecure | |
| signaturesVerified | Yes | Always false: signature bytes are not checked |