{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_tnsajfyhw3tq","handle":"satsdns","url":"https://wellknown.network/agents/satsdns","links":{"self":"https://wellknown.network/agents/satsdns/record.json","html":"https://wellknown.network/agents/satsdns","markdown":"https://wellknown.network/agents/satsdns/record.md","api":"https://wellknown.network/api/v1/agents/satsdns","status":"https://wellknown.network/api/v1/agents/satsdns/status","claim":"https://wellknown.network/agents/satsdns/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/satsdns/claim.json","badge":"https://wellknown.network/agents/satsdns/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/satsdns/history","tools":"https://wellknown.network/api/v1/agents/satsdns/tools"},"ard":{"identifier":"urn:air:api.satsdns.com:server:satsdns","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"SatsDNS","summary":"DNS hosting, secondary DNS and dynamic DNS paid per call in sats; optional Nostr account tools.","description":"DNS hosting, secondary DNS and dynamic DNS paid per call in sats; optional Nostr account tools.","publisher":{"name":"com.satsdns","url":null},"homepage":"https://satsdns.com/docs#mcp","repository":null,"version":"0.2.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.satsdns.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-28T03:29:00.30807Z","publishedAt":"2026-10-28T03:29:00.30807Z","registryName":"com.satsdns/satsdns"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":0.554,"provenance":"derived"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":0.54,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"}],"categories":["automation","commerce","documents","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-11-01T23:23:00.149Z","lastProbedAt":"2026-11-01T23:23:00.149Z","statusComputedAt":"2026-11-01T23:26:05.848Z","reliability30d":{"probes":14,"successRate":1,"p50Ms":11,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":14,"ok":14,"authBoundaryOk":0,"serviceOk":14,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-01T23:23:00.149Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T15:29:05.541Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":6,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T08:27:45.612Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":6,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T00:26:51.837Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T16:30:31.554Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T09:30:55.666Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":9,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T01:29:05.261Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":22,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T17:27:18.157Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":9,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T09:30:43.848Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":8,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T02:24:24.815Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":10,"error":null,"detail":{"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"toolCount":20,"toolsHash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","serverName":"satsdns","capabilities":["tools"],"serverVersion":"0.2.3","protocolVersion":"2025-06-18"}}],"tools":[{"name":"info","description":"Free: prices in sats per product and period, nameservers, limits, record types, accepted Cashu mints, how paying works, and the steps to host a zone."},{"name":"check","description":"Free: runs the checks a paid call runs before payment (name rules, availability, delegation, limits) without creating an invoice, and returns the price. For zon"},{"name":"domain_check","description":"Free: whether a .com, .net or .org name is available and its price in sats. Tightly rate-limited. Registration itself is not offered through this server."},{"name":"zone_create","description":"Creates a hosted, DNSSEC-signed zone on our nameservers. First call check (tool zone_create): a new zone gets its own nameserver pair, which must be set at the "},{"name":"secondary_create","description":"We serve your zone as secondaries, transferred from your primaries (public IPv4) with a TSIG key that the answer gives once. The same nameserver-pair step as zo"},{"name":"hostname_create","description":"Creates a dynamic hostname such as myhome.dynkite.com. The answer gives the hostname token once (keep it: hostname_update and routers use it). Paid, no account."},{"name":"renew","description":"Extends a hosted zone, secondary zone or dynamic hostname by 30d or 1y from its current expiry. Needs no token: anyone may pay to extend any name. Paid, no acco"},{"name":"zone_add_queries","description":"Adds 1 million queries to a hosted zone's monthly allowance. Paid, no account. Without payment the call returns payment_required with the price, a Lightning inv"},{"name":"zone_status","description":"Free: state, expiry, nameservers, delegation and usage of a hosted zone. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_"},{"name":"records_list","description":"Free: the zone's rrsets, optionally only one owner name and/or type. Pass the zone token (jdz_...) from the create answer, or a scoped account API key (jdk_...)"},{"name":"records_change","description":"Free: applies up to 100 rrset changes at once, all or none. Each item REPLACEs one rrset (name and type) with the given records, or DELETEs it. Deleting records"},{"name":"dnssec_info","description":"Free: the DS record(s) to enter at the registrar, and what the parent zone publishes now. Pass the zone token (jdz_...) from the create answer, or a scoped acco"},{"name":"hostname_status","description":"Free: state, expiry and current records of a dynamic hostname. Pass the hostname token (jdh_...) from the create answer, or a scoped account API key (jdk_...) m"},{"name":"hostname_update","description":"Free: sets the hostname's A, AAAA, TXT, ACME TXT or HTTPS records; fields left out stay as they are, [] deletes. Give explicit public addresses: the caller's ow"},{"name":"renewal_address","description":"Free: the Lightning address and LNURL that extend this zone or hostname pro rata when anyone pays it (no token needed to pay). Made once, then the same address "},{"name":"account_objects","description":"Free, read-only: the account's state and limits, or the zones, hostnames or invoices it owns. With api_key, only the objects the key's scope covers and only the"},{"name":"account_order","description":"Orders a product into your account, paid by its own invoice: Lightning (15 min) or a new on-chain address (orders of 5,000 sats and up). Prices as in info. pay="},{"name":"order_status","description":"Free: the invoice's state (paid, fulfilled, expired, ...) and, after fulfilment, the result. A new object's token (and TSIG key) is shown once, only to a nip98 "},{"name":"claim","description":"Free: puts a zone or hostname bought with a token into your Nostr account, so you get expiry reminders by DM and can manage it with API keys. If another account"},{"name":"token_rotate","description":"Free: makes a new token for a zone or hostname; the old one stops working at once. Use it when a token may have leaked (tokens pass through model context). Auth"}],"package":null,"toolSurface":{"id":"ts_5y26rr3upe9x","endpointId":"ep_zupnm9satq8c","hash":"6199e66d43d523a77f2ef3803a51a6708c2a87ef46e4eedc263829d850b1b645","toolCount":20,"serverName":"satsdns","serverVersion":"0.2.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-28T21:32:25.354Z","lastSeenAt":"2026-11-01T23:23:00.143Z","observations":14,"toolNames":["info","check","domain_check","zone_create","secondary_create","hostname_create","renew","zone_add_queries","zone_status","records_list","records_change","dnssec_info","hostname_status","hostname_update","renewal_address","account_objects","account_order","order_status","claim","token_rotate"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_zupnm9satq8c","url":"https://api.satsdns.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-31T01:29:05.277Z","auth":{"observedAt":"2026-10-31T01:29:05.284Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-31T01:29:05.295Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.satsdns.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-10-21T16:48:57.000Z","validTo":"2027-01-19T16:48:56.000Z","daysToExpiry":78,"sanCount":1,"fingerprint256":"62:92:2A:BA:98:34:FD:DD:78:7B:08:DE:E9:B4:F1:34:CB:7B:3F:4B:A9:6C:47:33:FA:2E:EA:36:D4:24:88:7C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.satsdns/satsdns","url":"https://registry.modelcontextprotocol.io/v0/servers/com.satsdns%2Fsatsdns","firstSeenAt":"2026-10-28T20:18:38.308Z","fetchedAt":"2026-11-01T10:22:36.092Z","normalizedAt":"2026-11-01T10:22:36.092Z"}]},"firstSeenAt":"2026-10-28T20:18:38.308Z","updatedAt":"2026-11-01T23:27:23.699Z"}