NanoTools
nano.stacknodehost.com
· NanoTools
44 pay-per-call x402 tools for AI agents: Google Trends, Google & Yandex SERP, SEO audits, screenshots/PDF via headless Chromium, OG images, weather, FX, whois, RSS, and 25+ utilities. $0.001-$0.03 per call, USDC on Base, no signup.
nano.stacknodehost.com via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
F
Conformance score: 37/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-10-02 11:25:30 current | 1d3f4c407fae… |
view → |
Endpoints
| Agent card | https://nano.stacknodehost.com/.well-known/agent-card.json |
| Provider | https://nano.stacknodehost.com |
Skills · 45 declared · mapped to canonical taxonomy
Base64 encode or decode. ?op=enc|dec&data=... Tolerant to missing padding.
Convert colors between hex, rgb, hsl. ?color=#ff0000 or rgb(255,0,0)
Explain a cron expression: next 3 run times in UTC. ?expr=*/5 * * * *
Convert CSV to JSON array. ?data=<csv urlencoded>&delim=,
Unified diff of two texts with changed line count. ?a=<text>&b=<text>
DNS lookup: A, AAAA, MX, TXT, NS, CNAME records for a domain. ?name=example.com&type=A
MD5, SHA-1, SHA-256, SHA-512 in one call. ?text=...
Escape or unescape HTML entities. ?op=enc|dec&data=<text>
Validate + pretty-print JSON. ?data={...} (urlencoded).
Decode a JWT header and payload WITHOUT signature verification. ?token=<jwt>
Lorem ipsum placeholder generator. ?paras=3 or ?words=50
Convert Markdown to HTML (tables, fenced code). ?text=<markdown urlencoded>
Secure random password. ?len=16&symbols=1
QR code generator. ?data=<text>&size=256 -> PNG as base64 in JSON.
Cryptographically secure random number. ?min=&max= (ints, default 0..100).
Test a regex against text: matches with groups and positions. ?pattern=<re>&text=<text>&flags=i
SHA-256 and SHA-512 digests for any text (?text=). Deterministic, local, stable JSON.
URL slug from any text. ?text=Hello%20World -> hello-world
Text statistics: words, chars, sentences, reading time. ?text=...
Unix timestamp <-> ISO8601 both ways. ?ts=1690000000 or ?iso=2026-01-01T00:00:00Z
Convert TOML to JSON. ?data=<toml urlencoded>
Convert units: length, weight, volume, data size, temperature. ?value=100&from=cm&to=inch
URL encode/decode. ?op=enc|dec&data=...
Generate UUIDv4 (and optional count ?n= up to 100).
Convert YAML to JSON. ?data=<yaml urlencoded>
ECB reference currency exchange rates. ?base=USD&symbols=EUR,GBP or ?date=2026-01-15
IP geolocation and network info: country, city, ASN/org, timezone. ?ip=1.2.3.4
Parse any RSS or Atom feed into clean JSON items. ?url=<feed>&limit=10
Google web search. ?q=query&num=5 returns organic results with title, link, snippet.
Current weather + 7-day forecast by city name or lat/lon (open-meteo, no key needed). ?city=Moscow
Text readability: Flesch score, level, avg sentence length, keyword density, top words. ?text=<text>&keyword=
Fetch a web page and return clean readable text. ?url=https://example.com
Domain registration data via RDAP: registrar, created/updated/expires, status, nameservers. ?domain=example.com
Audit robots.txt + sitemap.xml of a site: rules, sitemaps listed, sitemap reachable, URL counts. ?url=<site root>
SEO snapshot of a page: title, description, OG/Twitter meta, h1s, h2 count, canonical, robots meta, lang, word count. ?url=
Google SERP: organic results with position, ads count, related searches. ?q=&num=5&gl=us
Yandex SERP for RU-market keyword research (region by ?lr=). ?q=&lr=213
Generate an Open Graph image 1200x630 from title/subtitle/theme. ?title=&subtitle=&theme=indigo|dark|green|red|blue
Render a JS-heavy page in a real browser and return the visible text. ?url=
Render any page to PDF (A4, print background) via headless Chrome. ?url=
Real browser screenshot of any page as PNG (base64), JS rendered. ?url=&width=1280&height=800&full=0|1
Google Trends interest over time for a keyword (weekly points, peak). ?q=casino&geo=US&time=12-m|5-y
Google Trends interest by region/country for a keyword. ?q=casino&geo=&time=12-m
Google Trends related queries: top and rising search terms for a keyword. ?q=casino&geo=&time=12-m
Full SEO audit report of a domain: health score 0-100, prioritized issues list, title/description/H1/canonical, robots.txt review, word count. Returns ready mar…
Health · last 1 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/nano.stacknodehost.com) [](https://agenstry.com/agents/nano.stacknodehost.com) [](https://agenstry.com/agents/nano.stacknodehost.com) [](https://agenstry.com/agents/nano.stacknodehost.com)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"capabilities": {
"streaming": false,
"x402": true
},
"defaultInputModes": [
"text"
],
"defaultOutputModes": [
"application/json"
],
"description": "44 pay-per-call x402 tools for AI agents: Google Trends, Google & Yandex SERP, SEO audits, screenshots/PDF via headless Chromium, OG images, weather, FX, whois, RSS, and 25+ utilities. $0.001-$0.03 per call, USDC on Base, no signup.",
"name": "NanoTools",
"preferredTransport": "HTTP",
"protocolVersion": "0.2.9",
"provider": {
"organization": "NanoTools",
"url": "https://nano.stacknodehost.com"
},
"skills": [
{
"description": "Base64 encode or decode. ?op=enc|dec&data=... Tolerant to missing padding.",
"id": "base64",
"name": "base64",
"tags": [
"base64",
"encode",
"decode",
"encoding"
]
},
{
"description": "Convert colors between hex, rgb, hsl. ?color=#ff0000 or rgb(255,0,0)",
"id": "color-convert",
"name": "color convert",
"tags": [
"color",
"hex",
"rgb",
"hsl",
"convert"
]
},
{
"description": "Explain a cron expression: next 3 run times in UTC. ?expr=*/5 * * * *",
"id": "cron-parse",
"name": "cron parse",
"tags": [
"cron",
"schedule",
"crontab",
"parser"
]
},
{
"description": "Convert CSV to JSON array. ?data=<csv urlencoded>&delim=,",
"id": "csv2json",
"name": "csv2json",
"tags": [
"csv",
"json",
"convert",
"data"
]
},
{
"description": "Unified diff of two texts with changed line count. ?a=<text>&b=<text>",
"id": "diff",
"name": "diff",
"tags": [
"diff",
"compare",
"texts",
"changes"
]
},
{
"description": "DNS lookup: A, AAAA, MX, TXT, NS, CNAME records for a domain. ?name=example.com&type=A",
"id": "dns",
"name": "dns",
"tags": [
"dns",
"lookup",
"domain",
"mx",
"nameserver"
]
},
{
"description": "MD5, SHA-1, SHA-256, SHA-512 in one call. ?text=...",
"id": "hash-multi",
"name": "hash multi",
"tags": [
"hash",
"md5",
"sha1",
"sha256",
"checksum"
]
},
{
"description": "Escape or unescape HTML entities. ?op=enc|dec&data=<text>",
"id": "html-entities",
"name": "html entities",
"tags": [
"html",
"entities",
"escape",
"unescape"
]
},
{
"description": "Validate + pretty-print JSON. ?data={...} (urlencoded).",
"id": "json",
"name": "json",
"tags": [
"json",
"validate",
"format",
"pretty"
]
},
{
"description": "Decode a JWT header and payload WITHOUT signature verification. ?token=<jwt>",
"id": "jwt-decode",
"name": "jwt decode",
"tags": [
"jwt",
"token",
"decode",
"auth",
"claims"
]
},
{
"description": "Lorem ipsum placeholder generator. ?paras=3 or ?words=50",
"id": "lorem",
"name": "lorem",
"tags": [
"lorem",
"ipsum",
"placeholder",
"text generator"
]
},
{
"description": "Convert Markdown to HTML (tables, fenced code). ?text=<markdown urlencoded>",
"id": "markdown2html",
"name": "markdown2html",
"tags": [
"markdown",
"html",
"convert",
"md"
]
},
{
"description": "Secure random password. ?len=16&symbols=1",
"id": "password",
"name": "password",
"tags": [
"password",
"generator",
"secure",
"random"
]
},
{
"description": "QR code generator. ?data=<text>&size=256 -> PNG as base64 in JSON.",
"id": "qr",
"name": "qr",
"tags": [
"qr",
"qrcode",
"generator",
"image",
"encode"
]
},
{
"description": "Cryptographically secure random number. ?min=&max= (ints, default 0..100).",
"id": "random",
"name": "random",
"tags": [
"random",
"rng",
"number",
"dice",
"lottery"
]
},
{
"description": "Test a regex against text: matches with groups and positions. ?pattern=<re>&text=<text>&flags=i",
"id": "regex",
"name": "regex",
"tags": [
"regex",
"regexp",
"match",
"test",
"pattern"
]
},
{
"description": "SHA-256 and SHA-512 digests for any text (?text=). Deterministic, local, stable JSON.",
"id": "sha256",
"name": "sha256",
"tags": [
"hash",
"sha256",
"sha512",
"checksum",
"digest"
]
},
{
"description": "URL slug from any text. ?text=Hello%20World -> hello-world",
"id": "slug",
"name": "slug",
"tags": [
"slug",
"url",
"seo",
"text"
]
},
{
"description": "Text statistics: words, chars, sentences, reading time. ?text=...",
"id": "text-stats",
"name": "text stats",
"tags": [
"text",
"words",
"count",
"statistics",
"seo"
]
},
{
"description": "Unix timestamp <-> ISO8601 both ways. ?ts=1690000000 or ?iso=2026-01-01T00:00:00Z",
"id": "timestamp",
"name": "timestamp",
"tags": [
"timestamp",
"unix",
"epoch",
"date",
"time"
]
},
{
"description": "Convert TOML to JSON. ?data=<toml urlencoded>",
"id": "toml2json",
"name": "toml2json",
"tags": [
"toml",
"json",
"convert",
"config"
]
},
{
"description": "Convert units: length, weight, volume, data size, temperature. ?value=100&from=cm&to=inch",
"id": "unit-convert",
"name": "unit convert",
"tags": [
"unit",
"convert",
"length",
"weight",
"temperature"
]
},
{
"description": "URL encode/decode. ?op=enc|dec&data=...",
"id": "urlcode",
"name": "urlcode",
"tags": [
"url",
"encode",
"decode",
"percent"
]
},
{
"description": "Generate UUIDv4 (and optional count ?n= up to 100).",
"id": "uuid",
"name": "uuid",
"tags": [
"uuid",
"guid",
"identifier",
"unique id"
]
},
{
"description": "Convert YAML to JSON. ?data=<yaml urlencoded>",
"id": "yaml2json",
"name": "yaml2json",
"tags": [
"yaml",
"json",
"convert",
"config"
]
},
{
"description": "ECB reference currency exchange rates. ?base=USD&symbols=EUR,GBP or ?date=2026-01-15",
"id": "fx-rates",
"name": "fx rates",
"tags": [
"currency",
"exchange rate",
"fx",
"forex",
"ecb"
]
},
{
"description": "IP geolocation and network info: country, city, ASN/org, timezone. ?ip=1.2.3.4",
"id": "ip-info",
"name": "ip info",
"tags": [
"ip",
"geolocation",
"asn",
"network",
"lookup"
]
},
{
"description": "Parse any RSS or Atom feed into clean JSON items. ?url=<feed>&limit=10",
"id": "rss",
"name": "rss",
"tags": [
"rss",
"atom",
"feed",
"news",
"parse"
]
},
{
"description": "Google web search. ?q=query&num=5 returns organic results with title, link, snippet.",
"id": "search",
"name": "search",
"tags": [
"search",
"google",
"web",
"serp",
"find"
]
},
{
"description": "Current weather + 7-day forecast by city name or lat/lon (open-meteo, no key needed). ?city=Moscow",
"id": "weather",
"name": "weather",
"tags": [
"weather",
"forecast",
"temperature",
"climate"
]
},
{
"description": "Text readability: Flesch score, level, avg sentence length, keyword density, top words. ?text=<text>&keyword=",
"id": "readability",
"name": "readability",
"tags": [
"readability",
"flesch",
"seo",
"content",
"keyword density"
]
},
{
"description": "Fetch a web page and return clean readable text. ?url=https://example.com",
"id": "scrape",
"name": "scrape",
"tags": [
"scrape",
"extract",
"web page",
"reader",
"crawl"
]
},
{
"description": "Domain registration data via RDAP: registrar, created/updated/expires, status, nameservers. ?domain=example.com",
"id": "whois",
"name": "whois",
"tags": [
"whois",
"domain",
"rdap",
"registrar",
"expiry"
]
},
{
"description": "Audit robots.txt + sitemap.xml of a site: rules, sitemaps listed, sitemap reachable, URL counts. ?url=<site root>",
"id": "robots-audit",
"name": "robots audit",
"tags": [
"robots",
"sitemap",
"seo",
"audit",
"crawl"
]
},
{
"description": "SEO snapshot of a page: title, description, OG/Twitter meta, h1s, h2 count, canonical, robots meta, lang, word count. ?url=",
"id": "seo-meta",
"name": "seo meta",
"tags": [
"seo",
"meta",
"opengraph",
"title",
"description"
]
},
{
"description": "Google SERP: organic results with position, ads count, related searches. ?q=&num=5&gl=us",
"id": "serp-google",
"name": "serp google",
"tags": [
"serp",
"google",
"search",
"ranking",
"keywords"
]
},
{
"description": "Yandex SERP for RU-market keyword research (region by ?lr=). ?q=&lr=213",
"id": "serp-yandex",
"name": "serp yandex",
"tags": [
"yandex",
"serp",
"search",
"russian",
"ranking"
]
},
{
"description": "Generate an Open Graph image 1200x630 from title/subtitle/theme. ?title=&subtitle=&theme=indigo|dark|green|red|blue",
"id": "og-image",
"name": "og image",
"tags": [
"og image",
"open graph",
"social preview",
"banner generator",
"image"
]
},
{
"description": "Render a JS-heavy page in a real browser and return the visible text. ?url=",
"id": "render-text",
"name": "render text",
"tags": [
"render",
"javascript",
"spa",
"scrape",
"browser"
]
},
{
"description": "Render any page to PDF (A4, print background) via headless Chrome. ?url=",
"id": "pdf",
"name": "pdf",
"tags": [
"pdf",
"convert",
"print",
"browser",
"render"
]
},
{
"description": "Real browser screenshot of any page as PNG (base64), JS rendered. ?url=&width=1280&height=800&full=0|1",
"id": "screenshot",
"name": "screenshot",
"tags": [
"screenshot",
"capture",
"browser",
"render",
"image"
]
},
{
"description": "Google Trends interest over time for a keyword (weekly points, peak). ?q=casino&geo=US&time=12-m|5-y",
"id": "trends",
"name": "trends",
"tags": [
"google trends",
"interest over time",
"keyword research",
"search trends",
"seo"
]
},
{
"description": "Google Trends interest by region/country for a keyword. ?q=casino&geo=&time=12-m",
"id": "trends-region",
"name": "trends region",
"tags": [
"google trends",
"interest by region",
"geo",
"keyword research",
"seo"
]
},
{
"description": "Google Trends related queries: top and rising search terms for a keyword. ?q=casino&geo=&time=12-m",
"id": "trends-related",
"name": "trends related",
"tags": [
"google trends",
"related queries",
"keyword ideas",
"search trends",
"seo"
]
},
{
"description": "Full SEO audit report of a domain: health score 0-100, prioritized issues list, title/description/H1/canonical, robots.txt review, word count. Returns ready markdown report. ?url=https://example.com",
"id": "seo-report",
"name": "seo report",
"tags": [
"seo report",
"site audit",
"seo audit",
"on-page seo",
"domain analysis"
]
}
],
"url": "https://nano.stacknodehost.com"
}