addrbookFor publishers
← The evidence ledger

Evidence row 300587

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 95e407a5-08e1-4fcf-95e4-f66f39a321ae
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
edf4d8e3807fa54e9f74a9ed29efdf3cdb8e4629b4d6fa228b46a6c08d2a62c3
Leaf
0x465004f9393923fe1c6b7699a987b215f111696071d72b76a8d8328f25a841bd

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "WRITE: create ONE new RRset (a set of DNS records of one type at one name) in a domain. It goes live in DNS immediately and a wrong record can take a site or mail offline. Fails if an RRset with this subname and type already exists (use desec_replace_rrset for that) or if a CNAME would conflict with other records. Never touches the apex NS or DNSSEC records and cannot delete anything. Subject to deSEC's write limits (15/min, 300/day per domain). POST /domains/{name}/rrsets/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "records": {
            "description": "Record contents in zone-file format, at least one (an empty list would delete the RRset and is refused). Names need a trailing dot (\"10 mx.example.com.\"), TXT needs quotes (\"\\\"v=spf1 -all\\\"\").",
            "items": {
              "maxLength": 4000,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "subname": {
            "description": "Subname relative to the domain: \"www\", \"_443._tcp.www\", \"*\" for a wildcard. Empty or \"@\" = the zone apex. Never the full name.",
            "maxLength": 178,
            "type": "string"
          },
          "ttl": {
            "description": "TTL in seconds, at most 86400. Not below the domain's minimum_ttl (usually 3600): deSEC rejects lower values.",
            "maximum": 86400,
            "minimum": 1,
            "type": "integer"
          },
          "type": {
            "description": "Record type (uppercase). DNSSEC types and SOA are managed by deSEC and cannot be written.",
            "enum": [
              "A",
              "AAAA",
              "CAA",
              "CNAME",
              "HTTPS",
              "LOC",
              "MX",
              "NAPTR",
              "NS",
              "OPENPGPKEY",
              "PTR",
              "SMIMEA",
              "SPF",
              "SRV",
              "SSHFP",
              "SVCB",
              "TLSA",
              "TXT",
              "URI"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain",
          "type",
          "ttl",
          "records"
        ],
        "type": "object"
      },
      "name": "desec_create_rrset"
    },
    {
      "description": "The whole zone as a plain-text BIND-format zonefile (all RRsets except DNSSEC types). Handy as a backup before changing records. Counts as an expensive deSEC operation (300/min). GET /domains/{name}/zonefile/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "desec_export_zonefile"
    },
    {
      "description": "One domain with its DNSSEC key material: the DNSKEY and the DS records to publish at the registrar for the chain of trust, plus minimum TTL and publication times. GET /domains/{name}/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "desec_get_domain"
    },
    {
      "description": "One RRset by subname and type, e.g. the A records of \"www\" or the MX records of the apex. GET /domains/{name}/rrsets/{subname}/{type}/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "subname": {
            "description": "Subname relative to the domain: \"www\", \"_443._tcp.www\", \"*\" for a wildcard. Empty or \"@\" = the zone apex. Never the full name.",
            "maxLength": 178,
            "type": "string"
          },
          "type": {
            "description": "Record type, e.g. A, AAAA, CNAME, MX, TXT, CAA, SRV, TLSA.",
            "pattern": "^[A-Za-z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "domain",
          "type"
        ],
        "type": "object"
      },
      "name": "desec_get_rrset"
    },
    {
      "description": "List the DNS domains (zones) in this deSEC account, newest first, with creation and last-published times and minimum TTL. DNSSEC keys are omitted here (see desec_get_domain). Use owns_qname to find which of your domains is responsible for a DNS name (for example before adding a record for www.dev.example.net). Up to 500 per page. GET /domains/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cursor": {
            "description": "Opaque cursor from a previous reply's next_cursor. Omit for the first page.",
            "maxLength": 500,
            "type": "string"
          },
          "owns_qname": {
            "description": "Only the domain that is authoritative for this DNS name (the longest matching zone you own).",
            "maxLength": 253,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "desec_list_domains"
    },
    {
      "description": "List the DNS records of a domain as RRsets (all records of one name and type, sharing one TTL), newest first. Filter by type and/or subname. Up to 500 per page. GET /domains/{name}/rrsets/.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "cursor": {
            "description": "Opaque cursor from a previous reply's next_cursor. Omit for the first page.",
            "maxLength": 500,
            "type": "string"
          },
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "subname": {
            "description": "Only RRsets at this subname (\"\" or \"@\" = the zone apex). Omit to include every subname.",
            "maxLength": 178,
            "type": "string"
          },
          "type": {
            "description": "Only RRsets of this type, e.g. A, MX, TXT.",
            "pattern": "^[A-Za-z0-9]{1,20}$",
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "desec_list_rrsets"
    },
    {
      "description": "WRITE (overwrites): set ONE RRset to exactly the given TTL and records, creating it if it does not exist and REPLACING all its current records if it does. It goes live in DNS immediately; a wrong value can take a site or mail offline. The previous RRset is read first and returned as `previous` so the change can be undone with another call. An empty record list is refused (this tool never deletes), and the apex NS and DNSSEC records cannot be changed. Subject to deSEC's write limits (15/min, 300/day per domain). PUT /domains/{name}/rrsets/ with a one-element array.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "Domain name in this deSEC account, e.g. example.com (see desec_list_domains).",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "records": {
            "description": "Record contents in zone-file format, at least one (an empty list would delete the RRset and is refused). Names need a trailing dot (\"10 mx.example.com.\"), TXT needs quotes (\"\\\"v=spf1 -all\\\"\").",
            "items": {
              "maxLength": 4000,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          },
          "subname": {
            "description": "Subname relative to the domain: \"www\", \"_443._tcp.www\", \"*\" for a wildcard. Empty or \"@\" = the zone apex. Never the full name.",
            "maxLength": 178,
            "type": "string"
          },
          "ttl": {
            "description": "TTL in seconds, at most 86400. Not below the domain's minimum_ttl (usually 3600): deSEC rejects lower values.",
            "maximum": 86400,
            "minimum": 1,
            "type": "integer"
          },
          "type": {
            "description": "Record type (uppercase). DNSSEC types and SOA are managed by deSEC and cannot be written.",
            "enum": [
              "A",
              "AAAA",
              "CAA",
              "CNAME",
              "HTTPS",
              "LOC",
              "MX",
              "NAPTR",
              "NS",
              "OPENPGPKEY",
              "PTR",
              "SMIMEA",
              "SPF",
              "SRV",
              "SSHFP",
              "SVCB",
              "TLSA",
              "TXT",
              "URI"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain",
          "type",
          "ttl",
          "records"
        ],
        "type": "object"
      },
      "name": "desec_replace_rrset"
    }
  ]
}

What the leaf hashes

{"body":"edf4d8e3807fa54e9f74a9ed29efdf3cdb8e4629b4d6fa228b46a6c08d2a62c3","id":300587,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053544664918,"prev":null,"subject":"95e407a5-08e1-4fcf-95e4-f66f39a321ae","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x464fb1e474698d6064792d95d7c898d86ca495b9dc2b81380755c0eec196f3bb
  2. 0xa673d85860cd65a430c208edaa82fc69e3395a523c7b37be1dcc1cbcfcb2bff1
  3. 0xc4b384b8206a52c73ff45bbe67537d73e4a252fbc6251b517959f5078cbcd06a
  4. 0x1dd87cdde902d7bfee8ee9ff597d32085b0622c11f9c0d17e969229ca717d27b
  5. 0x4c5bce306098419a6e60fd82d30464e788cc813e871eb871e1d697ccbcdd5d10
  6. 0x6d385259e7b759db751a29fb9a2a73969e3616f80394f846465b7828247ffa53
  7. 0x9939002559c56bd3be33db7bbdfbfcfc476766e57275f7aee71c21224d9e653b
  8. 0xa13b41488a2b4541fcfab0117846d806882c8497ff693ef2de9e44e29ea4cb4c
  9. 0xeb38a5e2da16a7d388e436006d1d5479bf4c5da0d5433050999b57caf7a002d5
  10. 0xdc7dda1200bf02188f12be23ee59ca8c8b9224b74d678936dffe5bc067401e58
  11. 0xdbfd78a5599cc272407d120acb838567e0679d241216572c603e875a5947fb2e
  12. 0x804dd9d5afe0f1a780e24099fb6b21f5f20545893ea0eeddf5fb9114e2f3edd5
  13. 0x54b29089c0a3cbbd6ddbe58944696110984dd5f418275cb1b77f957c56da8eab
  14. 0x8b27a4c21bf4ba962fd008c8f4300bc6953764a5032b9ab0cfe696b318c45326
  15. 0x4b52a97f7a80ff7778a702b85267b8d2e5c93ce160942656435c29ae7be68bf4
  16. 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON