with one click
check-stablecoins
// Check all stablecoin YAML files for Twitter activity and domain availability, adding a checks section to each file
// Check all stablecoin YAML files for Twitter activity and domain availability, adding a checks section to each file
| name | check-stablecoins |
| description | Check all stablecoin YAML files for Twitter activity and domain availability, adding a checks section to each file |
This skill audits all stablecoin YAML files in eth_defi/data/stablecoins/ for liveness — checking whether their Twitter/X accounts are active and homepage domains are reachable. It adds a checks section to each file and attempts to fill in missing information. If wind-down news is found, it updates long_description.
None. The skill operates on the full set of stablecoin YAML files automatically. Optionally the user may specify:
checks sections (default: skip files that already have checks)*.yaml in the stablecoins directory)Each YAML file receives a checks mapping with these keys:
checks:
twitter_last_post_at: '2026-03-10'
domain_up_at: '2026-03-17'
marked_dead_at: ''
information_found_missing_at: ''
twitter_last_post_at - Date (YYYY-MM-DD) of the most recent Twitter/X post. Empty string if the account is deleted, suspended, missing, or if no twitter link exists and none could be found.domain_up_at - Date (YYYY-MM-DD) when the homepage was confirmed reachable. Empty string if the homepage is down, unreachable, or if no homepage link exists and none could be found.marked_dead_at - Date (YYYY-MM-DD, set to today) only with strong evidence: a known-good domain is down, OR a known-good Twitter account's last post is more than 6 months ago. Never set just because information is missing. Empty string if the stablecoin appears alive or if evidence is insufficient.information_found_missing_at - Date (YYYY-MM-DD, set to today) if we could not determine liveness: no twitter AND no homepage links exist (even after searching), or all checks returned inconclusive results. This flags files needing manual review. Empty string if at least one check succeeded.name and links): Add checks at the top level, as the last key.entries: list): Add checks inside each entry, after that entry's other keys. Each entry has its own twitter/homepage and must be checked independently.*.yaml files in eth_defi/data/stablecoins/.checks section (skip unless recheck mode)links.twitter and links.homepage URLsSpawn 8 subagents using the Agent tool in a single message (all 8 in parallel). Each subagent receives:
For each YAML file in your batch, perform these steps:
Read the YAML file with the Read tool. Identify whether it is single-entry (top-level links) or multi-entry (entries: list). For multi-entry files, process each entry separately. Extract the name, links.twitter, and links.homepage values.
If links.twitter is empty (''):
"{stablecoin name}" stablecoin twitter site:x.com to try to find the project's Twitter/X account.twitter field in the YAML file's links section using the Edit tool.If links.homepage is empty (''):
"{stablecoin name}" stablecoin official website to try to find the project's homepage.homepage field in the YAML file's links section using the Edit tool.For each links.twitter URL (including any newly found ones):
twitter_last_post_at: ''.site:x.com "{handle}" latest to find recent activityhttps://nitter.net/{handle} as an alternative Twitter frontendtwitter_last_post_at: ''.For each links.homepage URL (including any newly found ones):
domain_up_at: ''.domain_up_at to today's date.domain_up_at: ''.domain_up_at to today's date.domain_up_at: ''.Use WebSearch with query "{stablecoin name}" stablecoin shutdown OR "wind down" OR abandoned OR depeg to check if the project has been discontinued.
If clear wind-down news is found (project shutting down, permanently depegged, team abandoned):
long_description value.long_description is empty (''), create a new value. If it already has content, append to it.## Status section with a brief summary of the situation and source links. Example:long_description: |
...existing content if any...
## Status
The project announced wind-down in January 2026. The team ceased operations and
the token depegged permanently. [Source](https://example.com/article).
long_description in the YAML file.Important: Only add status information that is clearly documented. Do not fabricate or speculate. If unsure, skip this step.
marked_dead_at — set to today's date only if:
links.homepage before step 2b, or clearly found via search) AND domain_up_at is empty (domain is confirmed down), ORtwitter_last_post_at is non-empty AND the date is more than 6 months before todayNever set marked_dead_at just because information is missing. A deleted/suspended Twitter alone (with homepage up) does NOT trigger dead. Missing links that couldn't be found do NOT trigger dead.
information_found_missing_at — set to today's date if:
links.twitter and links.homepage are still empty (no way to check liveness), ORIf at least one check succeeded (domain confirmed up, or twitter date extracted), leave information_found_missing_at as empty string.
Use the Edit tool to add the checks section to the YAML file.
For single-entry files, append as the last key at top level:
checks:
twitter_last_post_at: '2026-03-10'
domain_up_at: '2026-03-17'
marked_dead_at: ''
information_found_missing_at: ''
For multi-entry files, add checks: as the last key within each entry block, indented at the entry level (2 spaces):
entries:
- name: Example Token
short_description: ...
links:
homepage: https://example.com
twitter: https://x.com/example
contract_addresses:
- chain: ethereum
address: '0x...'
checks:
twitter_last_post_at: '2026-03-10'
domain_up_at: '2026-03-17'
marked_dead_at: ''
information_found_missing_at: ''
- name: Another Token
...
checks:
twitter_last_post_at: ''
domain_up_at: ''
marked_dead_at: ''
information_found_missing_at: '2026-03-17'
YAML formatting rules:
'2026-03-17'''checks as the last key at its levelAfter all 8 subagents complete:
checks: across all YAML files — confirm all files were updated.marked_dead_at: entries that are non-empty (confirmed dead stablecoins)information_found_missing_at: entries that are non-empty (needing manual review)domain_up_at: entries that are non-empty (confirmed live domains)twitter_last_post_at: entries that are non-empty (confirmed twitter activity)| Metric | Count |
|---|---|
| Total files checked | 188 |
| Active twitter found | N |
| Domain confirmed up | N |
| Marked dead (strong evidence) | N |
| Information missing (needs review) | N |
| Links filled in (twitter/homepage found) | N |
| Long descriptions updated (wind-down news) | N |
If WebFetch consistently returns 403 or empty content for X.com URLs:
"{twitter_handle}" latest tweet to find cached or third-party reports of activityhttps://nitter.net/{handle} or https://nitter.privacydev.net/{handle}This is common. If the WebFetch response contains "Cloudflare" or "checking your browser", the domain IS up. Set domain_up_at to today.
If WebFetch starts failing due to rate limits, the subagent should note which files were not fully checked. These files should get information_found_missing_at set so they can be retried later.
If a file already has a checks: section and recheck mode is off, skip it entirely. If recheck mode is on, replace the existing checks block with freshly computed values using the Edit tool.
Identify missing vault curators from vault databases and suggest curator feeder YAML entries
Add a new vault curator to feed metadata and curator detection. Use when the user wants to add a verified curator, protocol-managed curator, or curator alias discovered from vault data.
Add a note to specific vault
Prepare a new release by updating version, changelog, and building the package
Extract raw price dataframe for a test case
Add support for a new ERC-4626 vault protocol. Use when the user wants to integrate a new vault protocol like IPOR, Plutus, Morpho, etc. Requires vault smart contract address, protocol name, and protocol slug as inputs.