Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Chain Daddy

REMOTE · API.CHAINDADDY.IO · 2 COMPONENTS

Search tokens, check registrations, and run a Chain Daddy creator store from your agent.

+3 this week 77 Trust /100

Last scanned (12 minutes ago)

Scores higher than 74% of remote servers

Reachable. Last reached 24 Oct 2026.

Category Crypto and Web3

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9823 tokens (~223/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 83% of tool parameters carry a description.Partial
  • Structured output schemas are declared (77% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 0
    • Tool “read_doc” rewrote its description, which is the text the model reads security
    • Server version: 0.1.0-c1f6fdc3 → 0.1.0-eff6e934 functional
  • 22 Oct 26 +1
    • Server version: 0.1.0-817d3ecd → 0.1.0-c1f6fdc3 functional
  • 21 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “list_holder_broadcast_history” rewrote its description, which is the text the model reads security
    • Server version: 0.1.0-be18a4bd → 0.1.0-817d3ecd functional
    • Server version: 0.1.0-c3521136 → 0.1.0-be18a4bd functional
    • “create_alert_rule” added an optional parameter “idempotency_key” cosmetic
    • “create_oauth_client” added an optional parameter “idempotency_key” cosmetic
    • “send_holder_broadcast” added an optional parameter “idempotency_key” cosmetic
  • 20 Oct 26 +1
    • Server version: 0.1.0-5378613f → 0.1.0-c3521136 functional
  • 19 Oct 26 0
    • Server version: 0.1.0-eeb2b884 → 0.1.0-5378613f functional
  • 18 Oct 26 0
    • Server version: 0.1.0-cf6179fc → 0.1.0-eeb2b884 functional
  • 17 Oct 26 +1
    • Server version: 0.1.0-5c79d893 → 0.1.0-cf6179fc functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Probed https://api.chaindaddy.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.chaindaddy.io CN=Amazon RSA 2048 M01,O=Amazon,C=US 18 Feb 2026 19 Mar 2027 RSA 2048 SHA256-RSA 4ff633c2c640076fb5a1785c08c7d76
SANs: api.chaindaddy.io
CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 77312380b9d6688a33b1ed9bf9ccda68e0e0f
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.chaindaddy.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690, 57355 8, 8 Verified
chaindaddy.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), payment=(self)

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.chaindaddy.io/mcp Verified 200
http (plaintext) http://api.chaindaddy.io/mcp HTTPS enforced 301 https://api.chaindaddy.io/mcp
MCP tools · 44 exposed · ~9,358 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
call_read_operation ~135

Runs one read-only operation of the Chain Daddy REST API, documented at https://docs.chaindaddy.io/api-reference/explorer (OpenAPI: https://docs.chaindaddy.io/openapi.yaml), by its tool name and arguments, and returns the API's JSON answer. An operation marked as needing sign-in requires Sign in with Chain Daddy and reads only the signed-in user's own data.

NameTypeReqDescription
argumentsobject–The operation's arguments, matching its input schema. Omit or {} when it takes none.
toolstringyesThe read-only operation's tool name, as the operation search lists it.

No output schema declared.

No examples provided.

call_write_operation ~182

Makes one change through the Chain Daddy REST API, documented at https://docs.chaindaddy.io/api-reference/explorer (OpenAPI: https://docs.chaindaddy.io/openapi.yaml), by the operation's tool name and arguments: for example editing a token page, an alert rule or a holder group, or sending holders a message. Acts as the signed-in user and needs Sign in with Chain Daddy allowing changes (scope api:write). Some changes notify people or cannot be undone. It does not pay, mint, launch, claim or trade. Needs Sign in with Chain Daddy, allowing changes (scope api:write).

NameTypeReqDescription
argumentsobject–The operation's arguments, matching its input schema. Omit or {} when it takes none.
toolstringyesThe changing operation's tool name, as the operation search lists it.

No output schema declared.

No examples provided.

check_heartbeat ~166

Get heartbeat score for a registration A registered token's health on one chain: its heartbeat score (0-100), the status derived from it, and the three parts it is built from (recent on-chain activity, DEX volume, holder health). A registration whose heartbeat stays low can lapse and become claimable again, so the score tells a live token page from a dormant one. Answers 404 for a symbol that has no registration on that chain.

NameTypeReqDescription
chainstringyesChain key (e.g. `arbitrum`, `base`). EVM chains only; a Solana chain answers 400.
symbolstringyesToken symbol
tokenAddressstring–The token's contract address, when several tokens on the chain share the ticker.
NameTypeReqDescription
chainIdinteger|null––
componentsobject|null––
lastUpdatedstring|null––
scorenumber|null–Composite heartbeat score (0-100). Weighted sum of timestamp + volume + holder-health.
statusstring|null–Heartbeat status derived from the score: `grace_period`, `healthy`, `moderate`, `at_risk` or `inactive`
symbolstring|null––

No examples provided.

create_alert_rule ~635

Create an alert rule on a token Creates one threshold alert on one token for the signed-in wallet and returns it (201). When the rule's condition is met, an alert fires and is delivered on the wallet's notification channels; it does not fire again for `cooldownMinutes` (default 60). `alertType` picks the metric, and `thresholdOperator` + `thresholdValue` the condition: `gt`/`lt` compare the metric to the value, `pct_drop`/`pct_spike` compare its percentage change (over `timeWindowMinutes` when set) to the value. Types and the lowest plan that may create them: `heartbeat_score` (Free; EVM tokens only; needs a token page), `copycat_detected` (Free; needs a token page), `holder_count_drop`, `liquidity_drop`, `volume_anomaly`, `price_change` (Pro), `top10_concentration` (Pro+; operator `gt` or `pct_spike` only). Free accounts hold up to 3 rules, paid plans 50, Enterprise unlimited. The token is named by `chainId` + `tokenAddress`; a ticker is not accepted. A type above the caller's plan is 403, naming the plan, with `upgrade_url`; a token-page type on a token with no page is 400 `crown_required`. Each call creates a new rule, so the same request twice makes two rules. Needs Sign in with Chain Daddy, allowing changes (scope api:write).

NameTypeReqDescription
alertTypestringyesWhat the rule watches, and the lowest plan that may create it: `heartbeat_score` (Free, EVM only, needs a token page), `copycat_detected` (Free, needs a token page), `holder_count_drop`, `liquidity_d…
chainIdstringyesChain key (`base`), numeric id or CAIP-2 id (`eip155:8453`)
cooldownMinutesinteger––
enabledboolean––
idempotency_keystring–Optional. A key chosen for this one change, such as a UUID. Sent again with the same key and the same arguments within 24 hours, it returns the earlier answer instead of making the change again.
thresholdOperatorstringyes`gt` / `lt`: the metric is above / below `thresholdValue`. `pct_drop` / `pct_spike`: the metric fell / rose by at least `thresholdValue` percent. `top10_concentration` accepts only `gt` and `pct_spik…
thresholdValuenumberyesMust be greater than 0. A percentage for `pct_drop`/`pct_spike`.
timeWindowMinutesinteger––
tokenAddressstringyes0x token address on EVM; the mint address on Solana (case-sensitive)
NameTypeReqDescription
messagestring|null––
ruleobject|null––
successboolean|null––

No examples provided.

create_oauth_client ~350

Register a sign-in client Registers a site or app that can send people to Sign in with Chain Daddy. Needs Developer Beta Program membership (the current agreement signed); registering is free. - `redirectUris`: 1 to 10, matched exactly (no wildcards, no fragments, no credentials). `https` only, except `http://localhost` and `http://127.0.0.1` for development. - `confidential: true` is for a server that can keep a secret: the response carries `clientSecret` (`cd_oauth_` + 64 hex) once, and it is not shown again and cannot be rotated here. `false` suits a single-page app, a game or a native app, which use PKCE with no secret. - `name`: 1 to 40 characters; it may not contain "Chain Daddy", "official", "support" or "wallet" (checked ignoring case, spaces and punctuation). - `crown` (optional): a token page the caller holds or manages. It earns the consent screen's Verified mark for redirect hosts on that page's DNS-verified domains; without it the screen says "Unverified site". Needs Sign in with Chain Daddy, allowing changes (scope api:write).

NameTypeReqDescription
confidentialboolean––
crownobject––
idempotency_keystring–Optional. A key chosen for this one change, such as a UUID. Sent again with the same key and the same arguments within 24 hours, it returns the earlier answer instead of making the change again.
namestringyes–
redirectUrisarrayyes–
NameTypeReqDescription
clientSecretstring|null–`cd_oauth_` + 64 hex. Only in the create response, and only for a confidential client.
confidentialboolean|null––
createdAtstring|null––
crown–––
idstring|null––
namestring|null––
redirectUrisarray|null––
secretPrefixstring|null–First characters of a confidential client's secret (`cd_oauth_` + 6)
suspendedboolean|null–Support turned the client off; it signs nobody in until support lifts it
updatedAtstring|null––
verifiedHostsarray|null–Redirect hosts the consent screen marks Verified right now

No examples provided.

find_api_operations ~207

Searches the operations of the Chain Daddy REST API, documented at https://docs.chaindaddy.io/api-reference/explorer (OpenAPI: https://docs.chaindaddy.io/openapi.yaml) that an AI app may use, beyond the tools listed here: token pages, holders and community, broadcasts, alerts, deals, airdrop drafts, polls, Crown Apps, the developer program, Sign in with Chain Daddy, notifications, listings and more. Returns each match's tool name, what it does, whether it reads or changes something (`callWith`), whether it needs sign-in, and its input schema. No operation here moves money or tokens: paying, launching, claiming and trading happen on chaindaddy.io.

NameTypeReqDescription
limitinteger–How many operations to return (1-25, default 8).
querystringyesWhat to do or read, in plain words (e.g. "holder segments", "alert rules", "my deals").

No output schema declared.

No examples provided.

find_store ~252

Find a store A token's creator store and the items it sells (active ones only): each item's name, type, price and currency, stock, and per-wallet limit. It looks the store up by `symbol`, or by token page (`chainKey` and `crownId`) when a ticker is registered on several chains. 404 means the token has no store. Buying happens on the token's page on chaindaddy.io.

NameTypeReqDescription
chainKeystring–The registration's chain key, e.g. base. With crownId.
crownIdinteger–The registration's token ID on that chain. With chainKey.
operatorstring–An operator store's slug, e.g. chaindaddy: a store the operator owns rather than a coin (its shop). With chainKey, it answers only on that chain. Available where operator stores are switched on.
symbolstring–The token's ticker. A ticker can name several coins; this answers the store of the coin chaindaddy.io/{symbol} shows when that coin has one, else the newest live store with the ticker. To name one co…
NameTypeReqDescription
skusarray|null–Active SKUs only
storeobject|null––

No examples provided.

get_deal ~158

Get one deal with its history Returns one deal with its event history, attestations and payment records; `stage`, `deadline` and `deadline_kind` say where it stands and which clock is running. Public: anyone with the id can read it. With a wallet session the answer also carries `actions` (what that wallet may do now); anonymously `actions` is null, a collab's agreed terms are removed from its events, and signatures on attestations are blanked. `terms` is never on this read; it is only on the parties' own list of their deals.

NameTypeReqDescription
dealIdstringyesThe deal's id (a UUID, as returned in `deal.id` / `dealId`).
NameTypeReqDescription
deal–––
successboolean|null––

No examples provided.

get_developer_app ~112

Get one of your apps One app the signed-in developer owns, with its full store listing (subtitle, description, category, tags, links, icon and screenshots) and status. Someone else's app answers 404, the same as one that does not exist. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
appIdstringyesThe app's id (a UUID), as the developer's app list gives it. Not the app's slug, and not the manifest `id`.
NameTypeReqDescription
bundle_urlstring|null––
categorystring|null––
created_atstring|null––
descriptionstring|null––
developer_walletstring|null––
download_countinteger|null––
enabled_countinteger|null–How many token pages have it switched on
icon_urlstring|null––
idstring|null––
is_ossboolean|null––
manifest_urlstring|null––
namestring|null––
privacy_policy_urlstring|null––
published_atstring|null––
repository_urlstring|null––
screenshotsarray|null––
slugstring|null––
statusstring|null–`draft`, `submitted`, `in_review`, `approved`, `published`, `suspended` or `removed`
subtitlestring|null––
support_urlstring|null––
suspended_atstring|null––
tagsarray|null––
updated_atstring|null––
versionstring|null––
website_urlstring|null––

No examples provided.

get_developer_program_status ~149

Your developer program status Everything that decides what the signed-in wallet can do in the developer program: `stage` (`subscribe` = no account and no paid plan, `agreement` = the current agreement is not signed yet, `portal` = a member in good standing, `suspended`), whether the current agreement is signed, the wallet's own plan, and its developer account (with `can_publish`). It explains a developer route's `DEVELOPER_AGREEMENT_REQUIRED` or `PAID_PLAN_REQUIRED` refusal. A trial plan reads `paid: false`: it does not count for joining or publishing. Needs Sign in with Chain Daddy (scope api:read).

Input schema present but exposes no named parameters.

NameTypeReqDescription
account––Null when the wallet has no developer account
agreementobject|null––
developer_plan_betaobject|null–The Developer plan in beta, for this wallet
planobject|null–The wallet's own Chain Daddy plan, as the program's gates read it
stagestring|null–`subscribe`: no developer account and no paid plan. `agreement`: sign the current agreement. `portal`: a member in good standing. `suspended`: program access is suspended.
walletstring|null––

No examples provided.

get_fees ~116

Get all current fees Chain Daddy's current prices in US dollars: `crownFee` to register an existing token's ticker on one chain, `createFee` to create a token with Chain Daddy's token factory, multi-chain `bundles`, and plan prices per month and per year (`subscriptionTiers`). A token launched through Chain Daddy is registered free, and some tokens qualify for a free claim, so one token's own price can be lower than `crownFee`. Launchpad trading fees are not listed here.

Input schema present but exposes no named parameters.

NameTypeReqDescription
bundlesobject|null––
createFeenumber|null–Token creation fee in USD
crownFeenumber|null–Claim fee in USD
expiredClaimPricenumber|null–Legacy field, not charged. An expired ticker is registered again at the standard price.
linkPricenumber|null–Cross-chain link fee in USD
subscriptionTiersobject|null–Per-tier monthly and yearly prices in USD
whaleMultipliernumber|null–Ethereum mainnet fee multiplier

No examples provided.

get_holder_segments ~273

Size your holder segments How many reachable subscribers (verified, not opted out) are in each holder segment, and the size of the audience selected: `all`, `new_7d` (joined in the last 7 days), `churned` (sold everything), `reduced_50` (cut their position by half or more), `whales` (top 1% or $10k+), `top_10`, `top_25`, `top_50`, `top_100`. `audience.reachableByDM` is how many of those the bot can DM on Telegram or Discord. Owner or manager; wallet session only. The audience size is who a broadcast or a reward to that selection would reach. A token page id repeats across chains, so `chain` decides which token's ownership is checked. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
chainstring–Chain key, `^[a-z0-9-]{1,32}$`
idintegeryesThe token page's id (the registration's numeric token id)
segmentsstring–Comma-separated segments to size as one audience. An unknown name is 400.
tierIdstring–Narrow everything to one holder group
NameTypeReqDescription
audienceobject|null––
segmentsarray|null––

No examples provided.

get_my_account ~310

Your account at a glance, and what needs you Returns the signed-in account's wallet, every wallet on the account and its linked wallets, its plan, and two lists of plain sentences addressed to the person. `must_act` is what only the person can do: answer a deal offer (or deposit, consent or launch for one already agreed), register a token page they launched, a token page whose health is falling toward expiry, a pending CLI sign request, the updated Developer Program agreement to sign. `warnings` is what is close to going wrong: the API key's daily quota nearly used, a failing or disabled webhook (store webhooks included), a trial or cancelled plan about to end. Each item ends with the chaindaddy.io link where the person acts, in their own wallet. `token_pages` lists the token pages the account runs and its `role` on each: `owner` (a wallet on the account holds the registration), `manager` (the holder made one of its wallets the page's manager on chain, who can edit the page and publish on chain) or `maintainer` (can edit the page's details). Managers and maintainers are read on chain, on EVM chains; a Solana page is listed when held. At most 50, owners first. `unchecked` names any source that could not be read this time; when it is empty, everything was checked. Needs Sign in with Chain Daddy (scope api:read).

Input schema present but exposes no named parameters.

NameTypeReqDescription
linked_walletsarray|null––
must_actarray|null––
planobject|null–The account's plan; null when it could not be read
token_pagesarray|null–The token pages the account runs, owners first, then managers, then maintainers
uncheckedarray|null–Sources that could not be read this time (plan, deals, token_page_health, ...)
walletstring|null–The wallet the person is signed in with
walletsarray|null–Every wallet on the account, the signed-in one first
warningsarray|null––

No examples provided.

get_registration ~143

Get a ticker's registration status Whether a ticker has a registration, and if so who holds it: `status` is `confirmed` (a registration exists on chain), `pending` or `confirming` (a token launched through Chain Daddy whose registration is still being written; `owner` is its creator) or `available` (none). It answers with ONE registration, the first found; a ticker can be registered on several chains, each by the holder of its own token, and the others are not in this answer. `available` here does not mean every chain is free.

NameTypeReqDescription
symbolstringyesToken ticker, e.g. DOGE.
NameTypeReqDescription
chainIdinteger|null––
isPendingboolean|null––
ownerstring|null–The holder; for a pending registration, the token's creator
primaryClaimedAtstring|null––
primaryTypestring|null––
statusstring|null––
symbolstring|null––
tierCountinteger|null–How many holder tiers the token page has set up
tokenIdinteger|null––
txHashstring|null–Pending transaction hash (only when isPending is true)

No examples provided.

get_store ~65

A store's public catalog A creator store and its active items, by store ID (`store.id` in a store lookup's answer). The same answer as looking the store up by ticker or token page.

NameTypeReqDescription
storeIdstringyesThe store's ID (a UUID)
NameTypeReqDescription
skusarray|null–Active SKUs only
storeobject|null––

No examples provided.

get_store_config ~102

Store configuration How creator stores work right now: whether they are switched on, the chains a store can run on, what an item on each chain can be priced in besides the store's own token (the chain's coin, a dollar stablecoin), and where the receipt signing keys are published. It also says whether test stores are available here (`testMode`) and whether checkout sessions are (`checkoutSessions`, with the limits on how long one may stay open).

Input schema present but exposes no named parameters.

NameTypeReqDescription
chainsarray|null––
checkoutSessionsobject|null–Present only where checkout sessions are switched on
demoKeyboolean|null–Present and true when the demo test key printed in the developer guide works here. Absent, that key answers 401 like an unknown key
enabledboolean|null––
jwksUrlstring|null––
paidAppsobject|null–The limits on what an app can make a buyer pay (paid apps). Chain Daddy may change them at any time. Amounts are in millionths of a dollar.
solanaStaticKeystring|null–The read-only account every Solana store payment references
testModeboolean|null–Whether test stores are available here: a store's test store, its `cd_iap_test_` keys, and paying a test order with no money

No examples provided.

get_token ~179

Get a token by ticker on one chain The leading token with this ticker on one chain: market data (price, market cap, liquidity, holders), links, and its registration if it has one (`hasCrown`, `registration.owner`). When several tokens share a ticker on a chain, this returns the one the ticker's page shows: the registration ranked first on that chain (the oldest live one until it is ranked), else the largest unregistered token; `tokenAddress` names the exact contract. Other tokens with the same ticker are not in this answer.

NameTypeReqDescription
chainstringyesChain key identifier
symbolstringyesToken ticker, e.g. PEPE (case-insensitive).
tokenAddressstring–The token's contract address (or Solana mint), when the chain has several tokens with this ticker.
NameTypeReqDescription
chainId––The EVM chain ID, or `solana:mainnet`
chainKeystring|null––
chainNamestring|null––
hasCrownboolean|null––
launchpadOriginboolean|null–The token was launched through Chain Daddy
registration–––
sourcestring|null––
tokenobject|null––

No examples provided.

get_token_holder_snapshot ~157

Get a token's holder snapshot How concentrated a token's holders are: the total holder count, the share of supply held by the top 10/50/100/200 wallets, how many wallets hold half the supply, and counts of snipers, bundlers, insiders and sandwich traders. Refreshed about daily from a market-data vendor; `fetchedAt` says when. It lists no wallet addresses. A token page id is unique per chain, not across chains; `symbol` and `chainId` in the answer say which token it describes. `404` means no token page, or no snapshot yet.

NameTypeReqDescription
idintegeryesThe token page's id (the registration's numeric token id)
NameTypeReqDescription
chainCAIP2string|null––
chainIdinteger|null––
concentrationobject|null––
fetchedAtstring|null––
qualityobject|null––
sourcestring|null–The data vendor
successboolean|null––
symbolstring|null––
tokenIdinteger|null––
totalHoldersinteger|null––

No examples provided.

get_token_metrics_summary ~162

How a token's metrics moved this period The latest snapshot plus, for holders, volume, liquidity, concentration, heartbeat, price and market cap, the average over the last `period` days against the `period` before it, with the change and percentage change. Public. A metric with no data in either period is left out, and `change`/`pctChange` appear only when both periods have data. The id is `<symbol>.<chainKey>`; an unknown id answers 200 with nothing in it.

NameTypeReqDescription
idstringyesThe token as `<symbol>.<chainKey>` in lower case, e.g. `pepe.base` (not the numeric token id)
periodinteger–Days per period
NameTypeReqDescription
concentrationobject|null––
heartbeatobject|null––
holdersobject|null––
latestobject|null––
liquidityobject|null––
marketCapobject|null––
periodinteger|null––
priceobject|null––
successboolean|null––
tokenIdstring|null––
volumeobject|null––

No examples provided.

list_active_alerts ~164

List your open alerts Returns the alerts the signed-in wallet's rules have fired that are still open, status `triggered` (new) or `acknowledged` (seen, not yet resolved), newest first. Narrows to one token with BOTH `chainId` and `tokenAddress` (a `symbol` is not accepted). Resolved alerts are not included. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
chainIdstring–Narrow to one token. Chain key (`base`), numeric id or CAIP-2 id. Send together with `tokenAddress`.
tokenAddressstring–Narrow to one token (0x address on EVM, mint on Solana). Send together with `chainId`.
NameTypeReqDescription
alertsarray|null––

No examples provided.

list_alert_rules ~209

List your alert rules Returns the alert rules owned by the signed-in wallet, newest first, each with its token, alert type, threshold, cooldown and whether it is enabled. A rule's `id` is what update, toggle and delete take. Narrows to one token with BOTH `chainId` and `tokenAddress`; a `symbol` is refused with 400 `invalid_filter` (one ticker can name several tokens), and narrowing needs both of the pair. Rules belong to the wallet signed in with, not to the whole account: a rule made from another linked wallet is not listed here. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
chainIdstring–Narrow to one token. Chain key (`base`), numeric id or CAIP-2 id. Send together with `tokenAddress`.
tokenAddressstring–Narrow to one token (0x address on EVM, mint on Solana). Send together with `chainId`.
NameTypeReqDescription
rulesarray|null––

No examples provided.

list_community_members ~205

List your community members The wallets in the token's community, with email, holder group, verification time and any handles they shared (X, Discord, Telegram, ENS, SNS). The token page's owner is listed first on page one. Owner or manager; wallet session only. Returns personal contact data of community members. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
chainstringyesThe token page's chain: a key (`base`, `arbitrum`, `solana`), a numeric chain id or CAIP-2. Required because a token id names a different token page on every chain; the role check and the data both s…
idintegeryesThe token page's id (the registration's numeric token id)
limitinteger––
offsetinteger––
statusstring––
tierstring–A holder group id, or `all`
NameTypeReqDescription
membersarray|null––
totalinteger|null––

No examples provided.

list_developer_apps ~157

List your apps Every app the developer owns, whatever its status (draft, in review, published, suspended, removed), newest change first, each with its latest build's submission state and how many violations are open. Each `id` is the app's id in every other developer app operation. `wallet` is required and must be the signed-in wallet. The public Apps directory is not part of this list. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
walletstringyesYour EVM wallet address (`0x` + 40 hex). Must be the signed-in wallet; any other wallet is refused with 403. It selects nothing: the route only ever reads the caller's own data.

No output schema declared.

No examples provided.

list_holder_broadcast_history ~200

A token's past broadcasts The broadcasts a token page has sent, newest first, with `total` for paging. Anyone gets the public record: sent, not limited to a holder group. A signed-in member of a holder group also gets the sends to that group (with `crownChain`; the answer is then `Cache-Control: private, no-store`). The page's owner or a manager, signed in, also gets every holder-group and segment send and unsent scheduled drafts. When the token id exists on more than one chain, `crownChain` picks the token; without it the answer can be another token's messages.

NameTypeReqDescription
crownChainstring–Chain key of the token (e.g. `base`)
idintegeryesThe token page's id (the registration's numeric token id)
limitinteger––
offsetinteger––
typestring––
NameTypeReqDescription
notificationsarray|null––
totalinteger|null––

No examples provided.

list_launch_venues ~243

Chain Daddy's launchpad and what it pays, per chain. The launchpad (`chaindaddy-launchpad`) creates the token together with its own locked trading pool, on EVM chains and on Solana (Meteora DBC): nothing up front, and the token's registration is free. For each chain: whether it can launch now (`launchable`), the contract the token ends up in, and the trading-fee economics in basis points of volume (`traderFeeBps` what traders pay, `creatorBps` what reaches the creator, `chainDaddyBps`). Chain Daddy's cut is set by the creator's plan when the token launches and fixed for that token (20% free, 15% annual Pro/Pro+/Developer, 5% annual Partner/Enterprise); these figures are the free plan's. For a plain token with no pool, Chain Daddy's token factory (`chaindaddy-classic`, a one-time fee with the registration included) is the other option.

NameTypeReqDescription
chainIdinteger–Narrow to one chain (numeric EVM id, or 900900 for Solana mainnet)
NameTypeReqDescription
generatedAtstring|null––
sortstring|null––
venuesarray|null––

No examples provided.

list_my_deals ~170

Your deals, with their agreed terms Lists every deal the signed-in account is a party to, across all its linked wallets: offers it made, deals it accepted, and offers waiting for its answer as a registration holder. This is the only list that includes each deal's agreed `terms`, and each row carries `actions` (what the account may do now) and `stage`. `deal_type` and `status` filter it; an unknown value is a 400, not an empty list. `limit`/`offset` page through `total`. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
deal_typestring––
limitinteger–Page size.
offsetinteger–Rows to skip.
statusstring––

No output schema declared.

No examples provided.

list_oauth_clients ~127

List your sign-in clients The Sign in with Chain Daddy clients you registered as a developer, newest first, deleted ones left out. Each shows its redirect URIs, whether it is confidential (and the first characters of its secret), the token page it is bound to, which redirect hosts the consent screen marks Verified right now, and whether support has suspended it. The secret itself is never shown again after creation. Needs a developer account (403 `DEVELOPER_AGREEMENT_REQUIRED` without one), not current membership. Needs Sign in with Chain Daddy (scope api:read).

Input schema present but exposes no named parameters.

NameTypeReqDescription
entriesarray|null––

No examples provided.

list_registrations ~131

List a ticker's registrations on every chain Every registration of a ticker, on every chain, including ones still pending: for each, the chain (`primaryChainId`), the token contract it covers (`tokenAddress`), the holder (`owner`), whether it is active, and its heartbeat. One ticker can carry several registrations because each covers one token contract on one chain; an empty `tokens` list means the ticker has none.

NameTypeReqDescription
excludeEvmstring–Leave out registrations held by this EVM address.
symbolstringyesToken ticker, e.g. DOGE.
NameTypeReqDescription
symbolstring|null––
tokensarray|null–One entry per registration; empty when the ticker has none

No examples provided.

list_skills ~67

Lists Chain Daddy's step-by-step guides: launching or finding a token, checking its health, exporting a listing, selling items for it, signing users in, verifying receipts and building Crown Apps. Returns each guide's name, title and description. The same guides are this server's prompts.

Input schema present but exposes no named parameters.

NameTypeReqDescription
skillsarray––

No examples provided.

list_supported_chains ~46

List the supported chains The chains a token can be registered on, each with its ID, name and type (evm or solana), and the registry protocol in use.

Input schema present but exposes no named parameters.

NameTypeReqDescription
isOpenCrownboolean|null––
protocolstring|null–Registry protocol identifier
protocolVersionstring|null–Registry protocol version
successboolean|null––
supportedChainsarray|null–Chains supported by the registry

No examples provided.

list_wallet_registrations ~206

List the registrations a wallet holds The registrations held by a wallet, without signing in. Only the wallet's 100 most recently minted registrations are considered; `limit`/`offset` page within those and `total` never exceeds 100. Each row has a v3 `id` (`crown-{symbol}-{chainKey}-{tokenId}`), `chainId`, `tokenId`, `tokenAddress` and `isActive`. Caveats: `mintTimestamp` is the time of your request, not the mint; `caip2` is always written `eip155:{chainId}`, even for Solana (chain id 900900/900901); `owner` echoes the address you sent. Response is wrapped in `{success, data, timestamp}`.

NameTypeReqDescription
addressstringyesEVM address (`0x` + 40 hex) or Solana address
limitinteger––
offsetinteger––
NameTypeReqDescription
dataobject|null––
successboolean|null––
timestampinteger|null––

No examples provided.

prepare_token_launch ~761

Get a link that opens a token launch on chaindaddy.io, filled in Returns only a chaindaddy.io `url` that opens the launch form with the token's name, ticker, chain and launch contract filled in, and a one-line `summary` of it. It creates nothing: nothing is launched, stored, paid for or signed by this call. The person reviews every field on the page and confirms the launch in their own wallet there. `venue` is `chaindaddy-launchpad`, the default: Chain Daddy's launchpad, which launches the token with its own locked trading pool, nothing up front and its registration free, on EVM chains and Solana. Or `chaindaddy-classic`: a plain token from Chain Daddy's factory (no pool, a one-time fee, registration included). Any other venue is refused (400). A launchpad launch on an EVM chain can keep part of the supply for a team, locked: `teamPercent` (up to 20), split with other people (`teamMember`), on one schedule or up to four (`teamSchedule`). The link fills the form's team row in, and the person checks every wallet and schedule there before confirming; none of it can be changed once the token is created. One the launch would refuse is refused here (400). Solana's team share and schedule are fixed, and a plain token has none at launch, so both refuse these three.

NameTypeReqDescription
chainstring–The chain to launch on, as a key (base, ethereum, solana, ...) or chain id; the person can add more on the page
namestring–The token's name (default the ticker)
symbolstringyesThe ticker, up to 16 characters (a leading $ is dropped)
teamMemberarray–People the team's tokens are split with, up to 9, each as `<wallet or handle>:<percent of the team's tokens>`: `0xabc…:30`, `@name:20`, `discord:name:10`. The launching wallet keeps the rest. A handl…
teamPercentnumber–Percent of supply kept for the team, locked, from 0.01 to 20. Alone, all of it goes to the launching wallet, a part every month for 6 months
teamSchedulearray–When the team's tokens unlock, up to 4 schedules. Each is `week:<weeks>` (a part every week, 4 weeks or more), `month:<months>` (a part every 30 days, 2 months or more) or `days:<wait>:<last day>` (n…
venuestring–chaindaddy-launchpad (the default, Chain Daddy's launchpad) or chaindaddy-classic (a plain token from Chain Daddy's factory)
NameTypeReqDescription
summarystring|null–One line saying what the link opens
urlstring|null–The chaindaddy.io page to open, filled in. Nothing has been created.

No examples provided.

prepare_token_registration ~190

Get a link that opens registering an existing token on chaindaddy.io For a token that already exists, launched anywhere: returns only a chaindaddy.io `url` that opens its registration, and a one-line `summary` of it. With `symbol` the link opens the token's own page with its registration ready; without it, Add a token, which indexes the token first. It creates, stores, pays and signs nothing: the person opens the link, signs in with the wallet that deployed or owns the token, and confirms in their own wallet on the page.

NameTypeReqDescription
chainstringyesThe token's chain, as a key (base, ethereum, solana, ...) or chain id
symbolstring–The token's ticker, when known
tokenAddressstringyesThe token's contract address (EVM) or mint (Solana)
NameTypeReqDescription
summarystring|null–One line saying what the link opens
urlstring|null–The chaindaddy.io page to open, filled in. Nothing has been created.

No examples provided.

read_doc ~84

Returns one page of Chain Daddy's documentation as Markdown, by its path in the docs (e.g. "developer/sign-in-with-chain-daddy.md") or its docs.chaindaddy.io URL. Only pages listed in the docs index can be read.

NameTypeReqDescription
pathstringyesA page's path in the docs, or its docs.chaindaddy.io URL.

No output schema declared.

No examples provided.

read_skill ~54

Returns one of Chain Daddy's step-by-step guides in full, as Markdown: its steps, the tools it uses and the rules it keeps, by the guide's name.

NameTypeReqDescription
namestringyesThe guide's name.

No output schema declared.

No examples provided.

resolve_token_page ~301

Resolve a ticker to its token page The token page's own lookup (it backs `{symbol}.crown.info` and `chaindaddy.io/{symbol}`): the one registration that page shows for a ticker, with its profile metadata, market data, DEX pair and on-chain trust row (LP lock or burn, authorities). `chain` (a chain key such as `base`, a chain name, or a CAIP-2 id) and `idx` narrow it. When nothing is registered it may still return an unregistered token for the ticker (`crown.status: unclaimed`). A 200 with no `crown` object at all means there is no token page for the ticker. `canonicalPath` is the URL path (`/{chain}`) the page lives at. `totalCrowns` / `chainCrowns` count the ticker's registrations overall and on the chain. Cached up to 30 minutes; `cached: true` marks a cached answer. Needs an API key unless called from the Chain Daddy website.

NameTypeReqDescription
chainstring–Chain key (`base`), chain name, or CAIP-2 id (`eip155:8453`).
idxinteger–1-based position among the ticker's registrations (within `chain` when given), to pick one peer.
symbolstringyesToken ticker, case-insensitive (e.g. `PEPE`).
NameTypeReqDescription
cachedboolean|null––
canonicalPathstring|null–`/{chainKey}` of the resolved page.
chainCrownsinteger|null––
crownobject|null––
defaultChainstring|null––
prominenceShiftobject|null–Present while the ticker's most prominent page recently moved to another chain.
resolvedAtstring|null––
successboolean|null––
symbolstring|null––
totalCrownsinteger|null––

No examples provided.

search_docs ~119

Searches Chain Daddy's documentation (docs.chaindaddy.io): guides for launching and running a token, token pages, alerts, creator stores, Crown Apps, and the developer API, CLI and SDKs. Returns the best-matching pages, each with its title, a one-line summary, its path and its URL.

NameTypeReqDescription
limitinteger–How many pages to return (1-20, default 5).
querystringyesWhat to look for, in plain words (e.g. "store keys", "launch fees").
NameTypeReqDescription
querystring––
resultsarray––

No examples provided.

search_tokens ~693

Search tokens across all chains Finds tokens by ticker, name or contract address on every supported chain, ranked by relevance, with live market data. A result whose `type` is `crown` has a registration: its creator proved control of it on Chain Daddy, and `crown.owner` is the wallet holding it. A ticker is not unique: one symbol usually matches several unrelated tokens on different chains, which `chainKey` and `token.address` tell apart, and a `token.copycat` block marks a token that imitates a better-known one. Without `q` it lists the newest tokens, on one chain with `chain`.

NameTypeReqDescription
chainstring–Only results on this chain.
claimedAfterstring–Registered (`crown.mintTimestamp`) on or after this time (ISO 8601, or `YYYY-MM-DD`).
claimedBeforestring–Registered on or before this time.
createdAfterstring–`token.createdAt` on or after this time (ISO 8601, or `YYYY-MM-DD`).
createdBeforestring–`token.createdAt` on or before this time.
crownsOnlyboolean–Only tokens that have a registration.
deployedAfterstring–`token.deployedAt` on or after this time (ISO 8601, or `YYYY-MM-DD`).
deployedBeforestring–`token.deployedAt` on or before this time.
exactboolean–Only exact ticker matches, without fuzzy expansion (PEPE but not PEPE2). Ignored for an address.
includestring–`apps` attaches the apps installed on each result's token page.
includeInactiveboolean–Also return results normally hidden for low quality or inactivity.
maxHoldersinteger–At most this many holders.
maxLiquiditynumber–Liquidity at most this, in USD.
maxMarketCapnumber–Market cap at most this, in USD.
maxVolumenumber–24-hour volume at most this, in USD.
minHoldersinteger–At least this many holders.
minLiquiditynumber–Liquidity at least this, in USD.
minMarketCapnumber–Market cap at least this, in USD.
minVolumenumber–24-hour volume at least this, in USD.
orderstring––
pageinteger–Page number, from 1.
pageSizeinteger–Results per page.
qstring–A ticker (PEPE), a token name, or a contract address (an EVM 0x address or a Solana mint). Up to 64 characters.
refreshboolean–Skip cached results, so a token created or registered a moment ago is found.
sortstring–Sort key, case-insensitive. Defaults to `relevance` with a query and `createdat` (newest first) when browsing. An unknown key falls back to the default.
statusstring–Only results with this registration status: `registered` (any registration), `unregistered`, or one status value (`claimed`, `grace_period`, `inactive`, `unclaimed`, `available`).
NameTypeReqDescription
facetsobject|null–Counts across the whole result set, by chain (`chains`), status and type
filtersobject|null–The filters applied, echoed back. Present when any filter was sent.
pageinteger|null––
pageSizeinteger|null––
querystring|null–The query as searched (a ticker or name upper-cased, an address as given)
resultsarray|null––
searchModestring|null–How the query was read
sortstring|null––
successboolean|null––
totalPagesinteger|null––
totalResultsinteger|null––

No examples provided.

send_holder_broadcast ~727

Send a message to your token's holders Sends a message from the token page `id` to its subscribed holders: in-app always, plus whichever of `push`, `email`, `sms`, `telegram`, `discord` and `xmtp` are listed and each holder has turned on. It goes out at once unless `scheduledAt` is set. A sent message cannot be recalled. Only the page's owner or a manager can send; there is nothing to sign. With no holder group and no segment, `telegram`/`discord` also post once in the token's public community room and Discord webhook; with either, they are DMs only. Limits: the Free plan sends 1 per rolling 7 days per token; paid plans have no plan limit, but every token is held to a safety ceiling (3 an hour and 10 a day by default, 1 a day in a token's first week), and both answer 429 with `resetsAt`. Up to 50,000 recipients per send, largest holders first. A new token's first send to more than 500 holders is held for review: it answers 200 with `recipientCount: 0` and goes out once released. `wallet` must be one of the caller's signed-in wallets (it is recorded as the sender), and `channels` must include `inapp`. When the same token id exists on more than one chain, `crownChain` picks the token; without it the message can reach the wrong token's holders or none. Every link and image is screened: links on a blocklist and images not on IPFS or Arweave answer 422. Needs Sign in with Chain Daddy, allowing changes (scope api:write).

NameTypeReqDescription
accessTierIdstring|null–Make the message holders-only for this holder group on the token page's feed. Needs the page owner's paid plan.
bodystringyes–
chainScopestring–Chain key the broadcast is anchored on; omit for off-chain
channelsarray–Must include `inapp`. Defaults to `["inapp"]`.
crownChainstring–Chain key of the token page. Needed whenever the token id exists on more than one chain.
idintegeryesThe token page's id (the registration's numeric token id)
idempotency_keystring–Optional. A key chosen for this one change, such as a UUID. Sent again with the same key and the same arguments within 24 hours, it returns the earlier answer instead of making the change again.
imageUrlstring–HTTPS, on IPFS or Arweave
linkUrlstring–HTTPS
richContentobject–Rich-text body as the composer produces it
scheduledAtstring–Send later instead of now; at least 5 minutes ahead
segmentsarray–Narrow to holders in ANY of these segments (within the holder group, if one is set)
signaturestring–Ignored
sourceTypestring––
tierIdsarray–Holder groups to send to (any of them). Omit for every subscribed holder; an empty list is refused. Needs the page owner's paid plan.
timestampinteger–Ignored
titlestringyes–
typestringyes–
walletstringyesThe sender; must be one of the caller's signed-in wallets
NameTypeReqDescription
broadcastIdstring|null––
recipientCountinteger|null–Holders queued now. 0 when scheduled, or when the send is held for review.
scheduledboolean|null––
successboolean|null––

No examples provided.

shop_checkout_link ~151

Opens a checkout for a quote and returns payUrl, the link the PERSON opens to pay on Chain Daddy's pay page from their own wallet, and orderUrl, their order page (status and tracking). It moves no money, and an agent never pays. The name, email and shipping address go only to the store's server. Ask the person for them; never guess. Sold by Chain Daddy, ships in the US only.

NameTypeReqDescription
addressobjectyes–
emailstringyesWhere the order's notices go.
namestringyesThe recipient's full name.
phonestring–Optional, for the carrier.
quoteIdstringyesFrom shop_quote.

No output schema declared.

No examples provided.

shop_list_products ~66

Lists what the Chain Daddy Store (chaindaddy.store) sells: each product's slug, title, description, images, page URL and variants (id, title, USD price). Whether prices include shipping is in shippingIncluded. Sold by Chain Daddy, ships in the US only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

shop_quote ~156

Prices one product variant, in a quantity, for a US destination: items, shipping, sales tax and total in USD, with a quoteId to open a pay link with (shop_checkout_link) before expiresAt. One item (any quantity) per order. Tax may be null until a street address is given; the pay link's total is final. Sold by Chain Daddy, ships in the US only.

NameTypeReqDescription
quantityinteger––
slugstringyesThe product's slug, from shop_list_products.
statestring–The US state's two-letter code.
variantstringyesThe variant's id (e.g. "11oz").
zipstring–The US ZIP code.

No output schema declared.

No examples provided.

validate_app_manifest ~100

Validate an app manifest Checks a `capp.json` manifest against the manifest schema and the platform's rules and returns every problem by field, without submitting anything. An invalid manifest still answers 200, with `is_valid: false` in the body. Errors block a submission; warnings do not. Needs Sign in with Chain Daddy (scope api:read).

NameTypeReqDescription
manifestobjectyesThe manifest object (the contents of `capp.json`)
NameTypeReqDescription
errorsarray|null––
is_validboolean|null––

No examples provided.

verify_receipt ~178

Verify a receipt online Checks a creator store receipt's signature and returns what it records (the item, quantity, wallet, amount paid, when) with its current status. A refunded order's receipt reads `revoked`: offline verification proves a receipt was issued, this proves it still stands. The receipt is the compact JWS exactly as issued (three base64url parts joined by dots). The answer is `200` whatever the receipt is. Act on `valid`, which is true only for status `valid`. A string that is not a receipt Chain Daddy signed (a bad signature, a changed payload, an unknown key, not a JWS at all) answers `{"valid": false, "status": "invalid", "error": "…"}` with no `payload`.

NameTypeReqDescription
receiptstringyesThe receipt JWS
NameTypeReqDescription
errorstring|null–Why the receipt is `invalid`. Absent otherwise
payloadobject|null–The receipt's decoded claims. Absent when `status` is `invalid`
statusstring|null–`valid`: the receipt is ours and its order stands. `revoked`: a refund was recorded since. `invalid`: not a receipt Chain Daddy signed; `error` says why and there is no `payload`. `unknown`: the sign…
validboolean|null–True only when `status` is `valid`. Deliver on this

No examples provided.

Install

How do I install the Chain Daddy MCP server?

Chain Daddy is a hosted endpoint at https://api.chaindaddy.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.chaindaddy.io

# add to Claude Code
claude mcp add --transport http io-chaindaddy-mcp 'https://api.chaindaddy.io/mcp'
Common questions

What is the Chain Daddy MCP server?

Chain Daddy is an MCP server listed in the public MCP registry as io.chaindaddy/mcp. Search tokens, check registrations, and run a Chain Daddy creator store from your agent. This page covers its hosted endpoint (https://api.chaindaddy.io/mcp).

Is the Chain Daddy MCP server safe to use?

Chain Daddy scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Chain Daddy MCP server expose?

Chain Daddy exposes 44 tools: call_read_operation, call_write_operation, check_heartbeat, create_alert_rule, create_oauth_client, and 39 more. Their descriptions and schemas cost roughly 9,358 tokens of context every time the server is loaded.

Does the Chain Daddy MCP server require authentication?

No. We connected to Chain Daddy without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Chain Daddy MCP server still maintained?

Chain Daddy is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.