addrbookFor publishers
← The evidence ledger

Evidence row 561499

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 28e8a7bc-ba61-46b2-a1a7-7a2ff9376816
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d6b529edab5780d1e4699a468d20d915a0bae6a77274df041292e9ea762c7c90
Leaf
0xba9b1e4eb1a3721f691a07363794cbf999cd8daf08ad8baad534f3c84f5d5a49

What was observed

{
  "count": 15,
  "tools": [
    {
      "description": "Check whether a name is free as a handle on GitHub, npm, PyPI, crates.io and YouTube, with links to check X, Instagram and TikTok by hand, plus links to the USPTO and WIPO trademark databases. Not legal advice.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "description": "The name to check, e.g. \"acme\".",
            "maxLength": 63,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9-]+$",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "brand_check"
    },
    {
      "description": "Live availability and price comparison for one exact domain (e.g. \"acme.io\") across registrars. Returns per-registrar registration, renewal and transfer prices, premium status, and a recommendation based on 2-year total cost.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "A single domain name with its TLD, e.g. \"acme.io\". No subdomains.",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          },
          "fresh": {
            "description": "Bypass the 10-minute cache and query every registrar live. Default false.",
            "type": "boolean"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "check_domain"
    },
    {
      "description": "Check one name (e.g. \"acme\") across several TLDs at once and return availability plus the best 2-year price for each. Defaults to .com, .net, .io, .ai, .dev, .app. Max 8 TLDs per call.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "name": {
            "description": "The name without a TLD, e.g. \"acme\".",
            "maxLength": 63,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9-]+$",
            "type": "string"
          },
          "tlds": {
            "description": "TLDs to check, without or with a leading dot. Default: com, net, io, ai, dev, app.",
            "items": {
              "pattern": "^\\.?[a-zA-Z]{2,24}$",
              "type": "string"
            },
            "maxItems": 8,
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "check_name_across_tlds"
    },
    {
      "description": "For domains the user already owns (up to 20): current registrar, expiry date, renewal price, and the cheapest registrar to transfer to, with the two-year saving. Registrar and expiry come from the public registry (RDAP); some TLDs such as .io have no RDAP. Suggests a free email reminder service at tldmath.com/watch.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domains": {
            "description": "Domains the user owns, e.g. [\"example.com\", \"acme.io\"].",
            "items": {
              "maxLength": 253,
              "minLength": 3,
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "domains"
        ],
        "type": "object"
      },
      "name": "check_renewals"
    },
    {
      "description": "Services an app sends email through (sign-in links, password resets, receipts) ranked by two-year cost at a monthly volume, with free-tier daily and monthly caps and overage prices. Prices are curated from each provider’s pricing page with a date. Follow with plan_dns_setup (sender) for the SPF, DKIM and DMARC records.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "emails_per_month": {
            "description": "How many emails the app sends a month. Default 10,000.",
            "maximum": 10000000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "compare_app_email"
    },
    {
      "description": "Custom-domain email providers ranked by two-year cost for a number of mailboxes: free forwarding (Cloudflare, ImprovMX), cheap mailboxes (Purelymail, Zoho, Migadu, iCloud+, Namecheap, Hostinger), office suites (Google Workspace, Microsoft 365, Zoho Workplace) and encrypted options (Proton). Includes intro-price traps and per-user vs flat pricing. Prices are curated from each provider’s pricing page with a date.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "mailboxes": {
            "description": "How many mailboxes/people. Default 1.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "need": {
            "description": "forward = forward to an existing inbox; mailbox = a real inbox (default); suite = mail + calendar + docs; private = end-to-end encrypted.",
            "enum": [
              "forward",
              "mailbox",
              "suite",
              "private"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "compare_email_hosting"
    },
    {
      "description": "Standard (non-premium) prices for one TLD across registrars, refreshed daily, sorted by 2-year cost. Use for general questions like \"how much is a .io domain\"; use check_domain for a specific name.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "tld": {
            "description": "A TLD such as \"com\", \".ai\" or \"dev\".",
            "pattern": "^\\.?[a-zA-Z]{2,24}$",
            "type": "string"
          }
        },
        "required": [
          "tld"
        ],
        "type": "object"
      },
      "name": "compare_tld_prices"
    },
    {
      "description": "TLDs with daily price tables, and the registrars TLDMath queries live.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "list_supported_tlds"
    },
    {
      "description": "Which companies a domain depends on, from public records only: registrar with expiry and renewal price (registry RDAP), DNS host (nameservers), website host (A/CNAME and builder verification records), inbox (MX), and services that send mail as the domain (SPF includes, DKIM and bounce records), plus the DMARC policy. Each line shows its evidence. Use for handoffs (“which accounts do I open when it breaks?”), before moving hosts, or to audit a setup. Read-only, no sign-in.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "The domain, e.g. \"acme.dev\".",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "ownership_card"
    },
    {
      "description": "An ordered, repeat-safe plan for moving an app built in an AI app builder (Lovable, Bolt, Replit, Base44…) to the user’s own host (Vercel, Netlify, Cloudflare Pages, GitHub Pages) on their domain: export the code, keep the data and sign-ins, deploy and copy environment variables, update auth redirect URLs, add the domain, switch DNS (the builder’s records still live that must go, and the new ones, checked against public DNS), verify, then disconnect the builder. If you can read the project, pass dependency names from package.json and variable NAMES from .env.example: never pass values or secrets. Read-only: it changes nothing. Show the steps and ask before running any command; commands prompt for secret values themselves. Call again after the DNS change to confirm, or use plan_dns_setup.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "dependencies": {
            "description": "Package names from package.json dependencies and devDependencies.",
            "items": {
              "maxLength": 214,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "domain": {
            "description": "The app’s custom domain, e.g. \"acme.dev\".",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          },
          "env_names": {
            "description": "Environment variable names only (from .env.example or the builder’s secrets list). Never values.",
            "items": {
              "maxLength": 100,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "from": {
            "description": "The builder the app runs on today.",
            "enum": [
              "lovable",
              "bolt",
              "replit",
              "base44"
            ],
            "type": "string"
          },
          "to": {
            "description": "Where it moves to.",
            "enum": [
              "vercel",
              "netlify",
              "github-pages",
              "cloudflare-pages"
            ],
            "type": "string"
          },
          "to_target": {
            "description": "Netlify site (x.netlify.app), GitHub user, or Cloudflare Pages project (x.pages.dev), when the host needs one.",
            "maxLength": 253,
            "type": "string"
          }
        },
        "required": [
          "domain",
          "from",
          "to"
        ],
        "type": "object"
      },
      "name": "plan_app_move"
    },
    {
      "description": "The DNS records a domain needs for a website host or AI app builder (Lovable, Bolt, v0, Replit, Base44, Framer, Webflow, Bubble), an inbox provider, and/or the service an app sends email through (SPF, DKIM, DMARC), each checked against live public DNS (in place, missing, or needs change), plus where the domain’s DNS is hosted and records to remove. SPF records from different providers are merged into one. Read-only: it never changes DNS. Use after the user buys a domain, or when their site or email on a custom domain isn’t working.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "The domain, e.g. \"acme.dev\".",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          },
          "email": {
            "description": "Inbox provider for people, or \"no-email\" to lock the domain against spoofing.",
            "enum": [
              "google-workspace",
              "microsoft-365",
              "zoho-mail",
              "fastmail",
              "proton-mail",
              "icloud",
              "purelymail",
              "migadu",
              "namecheap-email",
              "hostinger-email",
              "cloudflare-email",
              "no-email"
            ],
            "type": "string"
          },
          "host": {
            "description": "Where the website is built or hosted (an AI app builder like lovable or bolt, or a host like vercel).",
            "enum": [
              "lovable",
              "bolt",
              "v0",
              "replit",
              "base44",
              "framer",
              "webflow",
              "bubble",
              "vercel",
              "netlify",
              "github-pages",
              "cloudflare-pages"
            ],
            "type": "string"
          },
          "host_target": {
            "description": "Netlify site (x.netlify.app), GitHub user, or Cloudflare Pages project (x.pages.dev), when the host needs one.",
            "maxLength": 253,
            "type": "string"
          },
          "sender": {
            "description": "Transactional email service the app sends through (sign-in links, receipts).",
            "enum": [
              "resend",
              "postmark",
              "amazon-ses",
              "sendgrid",
              "mailgun",
              "mailersend"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "plan_dns_setup"
    },
    {
      "description": "The DNS plan for a domain (website host or AI app builder, inbox, app-email service) as ordered, repeat-safe steps with commands the user’s own tools can run: Vercel CLI, Cloudflare’s API with a token from the CLOUDFLARE_API_TOKEN environment variable, Resend’s API with RESEND_API_KEY; a manual list for other DNS hosts. Only records not yet in place get a command, so call it again after each change. Read-only: TLDMath runs nothing. Follow the guardrails in the result: show each change and ask first, never ask for keys in the chat, no deletes without the user naming the record.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "The domain, e.g. \"acme.dev\".",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          },
          "email": {
            "description": "Inbox provider, or \"no-email\".",
            "enum": [
              "google-workspace",
              "microsoft-365",
              "zoho-mail",
              "fastmail",
              "proton-mail",
              "icloud",
              "purelymail",
              "migadu",
              "namecheap-email",
              "hostinger-email",
              "cloudflare-email",
              "no-email"
            ],
            "type": "string"
          },
          "host": {
            "description": "Where the website is built or hosted.",
            "enum": [
              "lovable",
              "bolt",
              "v0",
              "replit",
              "base44",
              "framer",
              "webflow",
              "bubble",
              "vercel",
              "netlify",
              "github-pages",
              "cloudflare-pages"
            ],
            "type": "string"
          },
          "host_target": {
            "description": "Netlify site (x.netlify.app), GitHub user, or Cloudflare Pages project (x.pages.dev), when the host needs one.",
            "maxLength": 253,
            "type": "string"
          },
          "sender": {
            "description": "Transactional email service the app sends through.",
            "enum": [
              "resend",
              "postmark",
              "amazon-ses",
              "sendgrid",
              "mailgun",
              "mailersend"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "plan_launch_steps"
    },
    {
      "description": "Given a short project description, recommend 3-5 TLDs (best fit first, with reasons) and 10 brandable names, each screened for availability on the top 3 TLDs (or up to 3 the user picks) with the cheapest standard 2-year cost. Optional: a naming style, a word every name must contain (anywhere, at the start or at the end), and a maximum length. Nothing is stored. Run check_domain on a pick for live per-registrar prices.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "description": {
            "description": "What the project is, who it is for, and its tone. One to three sentences.",
            "maxLength": 600,
            "minLength": 10,
            "type": "string"
          },
          "include_word": {
            "description": "A word every name must contain, e.g. \"pay\".",
            "maxLength": 10,
            "minLength": 2,
            "type": "string"
          },
          "max_length": {
            "description": "Longest name allowed, in characters.",
            "maximum": 15,
            "minimum": 5,
            "type": "integer"
          },
          "style": {
            "description": "coined = invented words; evocative = real words that suggest the feeling; descriptive = says what it does; compound = two short words joined.",
            "enum": [
              "coined",
              "evocative",
              "descriptive",
              "compound"
            ],
            "type": "string"
          },
          "tlds": {
            "description": "Up to 3 extensions to check the names on, e.g. [\"com\",\"ai\"]. Default: the top 3 recommended.",
            "items": {
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "word_position": {
            "description": "Where include_word goes. Default anywhere.",
            "enum": [
              "anywhere",
              "start",
              "end"
            ],
            "type": "string"
          }
        },
        "required": [
          "description"
        ],
        "type": "object"
      },
      "name": "recommend_names"
    },
    {
      "description": "For a domain someone else owns: its registrar and expiry, where it is in the expiry-to-release cycle (active, expiring soon, expired, redemption, pending delete) with an estimated drop window, whether it is parked at a marketplace such as Afternic or Sedo (so possibly for sale), and backorder links. Also points to free email alerts at tldmath.com/watch for when it nears expiry or drops.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "domain": {
            "description": "The taken domain, e.g. \"acme.com\".",
            "maxLength": 253,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "taken_domain_options"
    },
    {
      "description": "Announced registry (wholesale) price increases, upcoming and from the past year, plus changes to registrar standard prices seen in TLDMath’s daily checks. Use for \"is .com going up?\" or \"should I renew early?\". Optionally filter by TLD.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days": {
            "description": "How far back to look for registrar price changes. Default 30.",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          },
          "tld": {
            "description": "Limit to one TLD, e.g. \"com\". Omit for all.",
            "pattern": "^\\.?[a-zA-Z]{2,24}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "tld_price_changes"
    }
  ]
}

What the leaf hashes

{"body":"d6b529edab5780d1e4699a468d20d915a0bae6a77274df041292e9ea762c7c90","id":561499,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793137156868814,"prev":null,"subject":"28e8a7bc-ba61-46b2-a1a7-7a2ff9376816","subject_kind":"endpoint"}

Proof

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

  1. 0xba9b61a787e8f6b896431f05b1353501b2e6283b2f31264ff5f6542e5c96e68b
  2. 0xa983d0b98647627bce5ff1a3e5912d67afcce18da80719cece2d5afe290c397a
  3. 0xa9760338a596335a27a0e08a44adf361c303e0965a263d421ce0e270d1bffc78
  4. 0x6f3e2f5491833bab833385598d9133ef1b81793f42bbe47e50b097a22f1b40cf
  5. 0xf3e982c54471bf93dbe0d0ca9eb148c0f54062f68fc77324e23da01ea45c16c6
  6. 0x99e02a074ea253e973ec166bb67898967845b5780299acee537ebdd3b413d4a6
  7. 0xbf1ae6529adde878a760448c7f668a9314d597324f6bcf4b040a8555e53ae034
  8. 0x64b630b6cc0194ee43f9ed31ee0db92f7b4fffd4c5fb4cda1865fc2b5e171c4f
  9. 0x2343db9755994e372893a4ee529ace14ae6ecff576ba1f0abdde24fac8cda26f
  10. 0x88a1fc810488bd97d036f401bd81e631052f2a6f4d824c68bb201c5326ddd5f0
  11. 0x93dab4db8f250e193cce0d5bacbda4b45df3b3ee694710f7912415742bb36e56
  12. 0x159edcfdd12b3eacd95b92f307695c8c00010beadbfcbf272edb59cfef54fb40
  13. 0xa4f69e2cf941a3f318d70734b59401dd27010a6bdffb5c32a28304db650a6f0b
  14. 0xa453d1738637a5c663802d07ce095aa340c80d53a4288ae277a72e265868ce4e
  15. 0x73341bb09dd901ca47f26173883431496e3d98d6b0fb5b89f36218126d46c5d4
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON