{"skills":[{"id":"osint_graph","name":"Public OSINT Graph","description":"Resolves one public name on Wikidata and returns a relationship graph from a fixed property list (instance of, country, headquarters, founder, chief executive, ownership, employer, education, membership, and similar), up to two hops. People include only notable public roles. If nothing matches, the graph is empty and reason explains why.","endpoint":"/api/skills/osint-graph","method":"POST","doc_slug":"osint-graph","category":"osint_graph","price_usd":0.01,"docs_url":"https://grokzilla.shop/docs/osint-graph","try_url":"https://grokzilla.shop/try/osint-graph","example_request":{"seed_entity":"OpenAI","max_depth":2},"example_response":{"skill":"osint_graph","seed_entity":"OpenAI","max_depth":2,"limit":25,"disclaimer":"Public data only. Not a substitute for licensed people search. Comply with privacy laws and platform ToS.","resolved":{"id":"Q21708200","name":"OpenAI","description":"American artificial intelligence research organization","url":"https://www.wikidata.org/wiki/Q21708200"},"alternatives":[{"id":"Q21708200","name":"OpenAI","description":"American artificial intelligence research organization","url":"https://www.wikidata.org/wiki/Q21708200"}],"graph":{"nodes":[{"id":"Q21708200","name":"OpenAI","type":"enterprise","kind":"organization","url":"https://www.wikidata.org/wiki/Q21708200"},{"id":"Q111759432","name":"Reddit Inc.","type":"dot-com company","kind":"organization","url":"https://www.wikidata.org/wiki/Q111759432"},{"id":"Q62","name":"San Francisco","type":"city in the United States","kind":"place","url":"https://www.wikidata.org/wiki/Q62"},{"id":"Q7407093","name":"Sam Altman","type":"human","kind":"person","url":"https://www.wikidata.org/wiki/Q7407093"}],"edges":[{"from":"Q21708200","to":"Q7407093","relation":"founder","pid":"P112"},{"from":"Q21708200","to":"Q62","relation":"headquarters location","pid":"P159"},{"from":"Q7407093","to":"Q111759432","relation":"employer","pid":"P108"}],"max_depth":2},"degrees_sample":[{"depth":1,"path":["OpenAI","San Francisco"]},{"depth":1,"path":["OpenAI","Sam Altman"]},{"depth":2,"path":["OpenAI","Sam Altman","Reddit Inc."]}],"sources":["https://www.wikidata.org/w/api.php","https://query.wikidata.org/sparql"]},"input_schema":{"type":"object","required":["seed_entity"],"properties":{"seed_entity":{"type":"string"},"max_depth":{"type":"integer","default":2,"maximum":4}}}},{"id":"seo","name":"SEO Optimizer","description":"Fetches a URL and returns an on-page SEO score from real checks (title, meta, headings, alt text, keywords, and more). If the page cannot be fetched, returns an error status (403/404/5xx), is a CDN/WAF challenge page, or times out (7 s cap), it answers 422 with score null, the reason, and charged:false; no payment is taken.","endpoint":"/api/skills/seo","method":"POST","doc_slug":"seo","category":"marketing","price_usd":0.012,"docs_url":"https://grokzilla.shop/docs/seo","try_url":"https://grokzilla.shop/try/seo","example_request":{"url":"https://example.com"},"example_response":{"skill":"seo","url":"https://example.com","final_url":"https://example.com/","score":28,"grade":"F","recommendations":["Add exactly one H1 heading.","Lengthen the title to 30-60 characters (currently 14).","Add a meta description of 70 to 160 characters."],"keywords":[],"stats":{"status_code":200,"word_count":25}},"input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}}}}},{"id":"ai_detector","name":"AI Content Detector","description":"Estimate whether text (or a web page's text) is AI-written using a trained classifier: about 78% accurate on a held-out benchmark (not a guarantee). Uncertain results suggest a rerun on a longer section (300+ words); tell phrases are only a secondary 'possible AI influence' signal.","endpoint":"/api/skills/ai-detector","method":"POST","doc_slug":"ai-detector","category":"ai_detection","price_usd":0.01,"docs_url":"https://grokzilla.shop/docs/ai-detector","try_url":"https://grokzilla.shop/try/ai-detector","example_request":{"text":"So I finally fixed the porch light on Saturday. It's worth noting that I'd tried twice before and gave up (the wiring is ancient). Honestly the whole thing was a testament to stubbornness. My brother Sam held the ladder and complained the entire time, which didn't help one bit. In conclusion, the bulb works, the switch clicks, and I only shocked myself once! Next up is the doorbell, if I can find the manual. I can't, probably. It's in a box somewhere in the garage behind 3 bikes and a broken lawnmower."},"example_response":{"skill":"ai_detector","verdict":"possible_ai_influence","classifier":{"verdict":"uncertain","probability_ai":0.362,"threshold_ai":0.585,"threshold_human":0.3233,"model_version":"2026-10-13","model_kind":"logistic_regression"},"content_type":"opinion","possible_ai_influence":true,"rubric_score":0.4,"sections":[{"section":"rhythm","section_weight":0.1,"result":"no_signal","evidence":["8 sentences, sentence-length CV 0.35 (AI <= 0.34, human >= 0.55)","rhythm is in the overlap range where human and prompted-AI text both sit"]},{"section":"vocabulary","section_weight":0.4,"result":"ai_sign","evidence":["tell-phrase weight 2.4 (2.64 per 100 words, 138-entry list)","tells: it's worth noting, a testament to, in conclusion","lexical diversity MTLD 105 (informational, not scored)","surprisal mean 3.21, variance 2.15, spike 0.40; rare-word share 0.033; MATTR 0.834; Zipf slope deviation 0.63","tell phrases are dense; possible AI influence (secondary signal)"]},{"section":"voice_structure","section_weight":0.3,"result":"no_signal","evidence":["ai cues: hedging (2 hedges)","human cues: none","first person, names, dialogue and sensory detail are not counted either way"]},{"section":"resolution","section_weight":0.2,"result":"no_signal","evidence":["rhythm vs vocabulary: no_overlap (no_signal / ai_sign)","vocabulary vs voice_structure: no_overlap (ai_sign / no_signal)","voice_structure vs rhythm: no_overlap (no_signal / no_signal)","tell phrases present but not confirmed by two sections; secondary signal only"]}],"tell_phrases":[{"phrase":"it's worth noting","tell_weight":0.9,"count":1},{"phrase":"a testament to","tell_weight":0.9,"count":1},{"phrase":"in conclusion","tell_weight":0.6,"count":1}],"ai_likelihood":0.7822,"band":[0.5334,1.0],"signals":{"sentence_length_mean":11.375,"sentence_length_variance":16.2344,"burstiness":0.3542,"type_token_ratio":0.7582,"hapax_ratio":0.8841,"punctuation_diversity":4,"repeated_ngram_rate":0.0,"stock_phrase_per_100":3.2967,"stock_phrase_hits":3,"stock_phrases_found":["it's worth noting","a testament to","in conclusion"],"contraction_rate":3.2967,"average_word_length":4.3846,"line_length_uniformity":null,"line_count":1,"verse_like":false,"sentence_count":8,"lexical_features_used":true},"method":"stylometry","word_count":91,"caveats":["Detection is probabilistic and should not be used as the only evidence that a text was or was not written by a person.","ai_likelihood is a stylometric score from 0 to 1, not a calibrated probability. The band widens when there is less text and is not a statistical confidence interval.","A low score means these surface patterns are weak. It does not prove a person wrote the text.","Weights were chosen on a small set of public-domain prose, poems, and synthetic assistant-style paragraphs. Fixture accuracy is not a field accuracy."]},"input_schema":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"}}}},{"id":"json_flatten","name":"JSON Flattener","description":"Deterministic nested JSON to flat path-value map. Arrays, custom separators, depth limits.","endpoint":"/api/skills/json-flatten","method":"POST","doc_slug":"json-flatten","category":"data_prep","price_usd":0.006,"docs_url":"https://grokzilla.shop/docs/json-flatten","try_url":"https://grokzilla.shop/try/json-flatten","example_request":{"data":{"a":{"b":1}}},"example_response":{"skill":"json_flatten","ok":true,"flat":{"a.b":1}},"input_schema":{"type":"object","required":["data"],"properties":{"data":{},"options":{"type":"object"}}}},{"id":"json_sort","name":"JSON Key Sorter","description":"Recursively sort object keys and return canonical compact JSON. Deterministic, no network.","endpoint":"/api/skills/json-sort","method":"POST","doc_slug":"json-sort","category":"data_prep","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/json-sort","try_url":"https://grokzilla.shop/try/json-sort","example_request":{"data":{"b":1,"a":{"d":2,"c":3}},"reverse":false},"example_response":{"skill":"json_sort","ok":true,"sorted":{"a":{"c":3,"d":2},"b":1},"canonical":"{\"a\":{\"c\":3,\"d\":2},\"b\":1}","bytes":25},"input_schema":{"type":"object","required":["data"],"properties":{"data":{},"reverse":{"type":"boolean","default":false}}}},{"id":"text_diff","name":"Text Diff","description":"Lightweight deterministic line/word/char diff. Structured ops plus a one-line delta summary.","endpoint":"/api/skills/text-diff","method":"POST","doc_slug":"text-diff","category":"text_ops","price_usd":0.006,"docs_url":"https://grokzilla.shop/docs/text-diff","try_url":"https://grokzilla.shop/try/text-diff","example_request":{"a":"hello","b":"hallo"},"example_response":{"skill":"text_diff","ok":true,"mode":"lines","ops":[{"op":"del","value":"hello"},{"op":"ins","value":"hallo"}],"inserted":1,"deleted":1,"equal":0},"input_schema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string"},"b":{"type":"string"}}}},{"id":"url_normalize","name":"URL Normalizer","description":"Canonicalize URLs: strip tracking params, force HTTPS, sort query, extract components.","endpoint":"/api/skills/url-normalize","method":"POST","doc_slug":"url-normalize","category":"web_utils","price_usd":0.005,"docs_url":"https://grokzilla.shop/docs/url-normalize","try_url":"https://grokzilla.shop/try/url-normalize","example_request":{"url":"http://example.com/?utm_source=x"},"example_response":{"skill":"url_normalize","ok":true,"canonical":"https://example.com/","scheme":"https","host":"example.com","path":"/","query":{},"stripped_tracking":true},"input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}}},{"id":"html_clean","name":"HTML Cleaner","description":"Strip scripts/styles and return readable text or markdown from HTML. mode normalized: text with NFKC and zero-width/bidi characters stripped.","endpoint":"/api/skills/html-clean","method":"POST","doc_slug":"html-clean","category":"data_prep","price_usd":0.008,"docs_url":"https://grokzilla.shop/docs/html-clean","try_url":"https://grokzilla.shop/try/html-clean","example_request":{"html":"<p>hi</p>","mode":"text"},"example_response":{"skill":"html_clean","ok":true,"mode":"text","chars":2,"output":"hi"},"input_schema":{"type":"object","required":["html"],"properties":{"html":{"type":"string"},"mode":{"type":"string","enum":["text","markdown","normalized"]}}}},{"id":"json_schema_validate","name":"JSON Schema Validator","description":"Cheap schema gate: type, required, properties, array items, plus format checks (email, date, date-time, uri, ipv4, ipv6, uuid, hostname).","endpoint":"/api/skills/json-schema-validate","method":"POST","doc_slug":"json-schema-validate","category":"data_prep","price_usd":0.006,"docs_url":"https://grokzilla.shop/docs/json-schema-validate","try_url":"https://grokzilla.shop/try/json-schema-validate","example_request":{"instance":{"n":1},"schema":{"type":"object","required":["n"]}},"example_response":{"skill":"json_schema_validate","ok":true,"valid":true,"errors":[],"checked":true},"input_schema":{"type":"object","required":["instance","schema"],"properties":{"instance":{},"schema":{"type":"object"}}}},{"id":"keyword_extract","name":"Keyword Extractor","description":"Deterministic term ranking from free text. Stopword-filtered. ngrams 2-3 adds scored multi-word phrases.","endpoint":"/api/skills/keyword-extract","method":"POST","doc_slug":"keyword-extract","category":"text_ops","price_usd":0.008,"docs_url":"https://grokzilla.shop/docs/keyword-extract","try_url":"https://grokzilla.shop/try/keyword-extract","example_request":{"text":"x402 micropay on Base USDC","limit":5},"example_response":{"skill":"keyword_extract","ok":true,"keywords":[{"term":"x402","count":1},{"term":"micropay","count":1},{"term":"base","count":1},{"term":"usdc","count":1}],"unique_terms":4,"tokens":4},"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"limit":{"type":"integer"},"ngrams":{"type":"integer","minimum":1,"maximum":3,"default":1}}}},{"id":"token_count","name":"Token Counter","description":"Approximate cl100k/o200k token counts for budget decisions.","endpoint":"/api/skills/token-count","method":"POST","doc_slug":"token-count","category":"text_ops","price_usd":0.004,"docs_url":"https://grokzilla.shop/docs/token-count","try_url":"https://grokzilla.shop/try/token-count","example_request":{"text":"hello agent","encoding":"cl100k_base"},"example_response":{"skill":"token_count","ok":true,"encoding":"cl100k_base","chars":11,"words":2,"approx_tokens":2,"usd_hint_gpt4o_mini":3e-07},"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"encoding":{"type":"string"}}}},{"id":"sha256","name":"SHA-256 Hash","description":"Hash a string (SHA-256 by default; algo: sha512, sha3_256 or blake2b_256) and return hex plus a short prefix. Deterministic, no network.","endpoint":"/api/skills/sha256","method":"POST","doc_slug":"sha256","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/sha256","try_url":"https://grokzilla.shop/try/sha256","example_request":{"text":"hello","encoding":"utf-8"},"example_response":{"skill":"sha256","ok":true,"algo":"sha256","bytes":5,"hex":"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824","hex_prefix":"2cf24dba5fb0a30e"},"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":400000},"encoding":{"type":"string","maxLength":16,"default":"utf-8"},"algo":{"type":"string","enum":["sha256","sha512","sha3_256","blake2b_256"],"default":"sha256"}}}},{"id":"uuid_mint","name":"UUID Minter","description":"Mint 1-32 IDs for agent job IDs and idempotency keys: UUID v4 (default), v7 or v1 (time-ordered), or ULID (format: ulid). v7 and ULID batches sort in mint order.","endpoint":"/api/skills/uuid-mint","method":"POST","doc_slug":"uuid-mint","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/uuid-mint","try_url":"https://grokzilla.shop/try/uuid-mint","example_request":{"count":2,"version":4},"example_response":{"skill":"uuid_mint","ok":true,"version":4,"count":2,"ids":["00000000-0000-4000-8000-000000000001","00000000-0000-4000-8000-000000000002"]},"input_schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":32,"default":1},"version":{"type":"integer","enum":[1,4,7],"default":4},"format":{"type":"string","enum":["uuid","ulid"],"default":"uuid"}}}},{"id":"slugify","name":"Slugify","description":"Turn free text into a URL-safe lowercase slug. Deterministic, no network.","endpoint":"/api/skills/slugify","method":"POST","doc_slug":"slugify","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/slugify","try_url":"https://grokzilla.shop/try/slugify","example_request":{"text":"Hello, Grokzilla Shop!","max_len":80},"example_response":{"skill":"slugify","ok":true,"slug":"hello-grokzilla-shop","chars":20,"empty":false},"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":4000},"max_len":{"type":"integer","minimum":1,"maximum":200,"default":80}}}},{"id":"pii_redact","name":"PII Redactor","description":"Redact emails, phone numbers, SSN-shaped strings, Luhn-valid card numbers and IPv4 addresses with typed placeholders. Deterministic, no network.","endpoint":"/api/skills/pii-redact","method":"POST","doc_slug":"pii-redact","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/pii-redact","try_url":"https://grokzilla.shop/try/pii-redact","example_request":{"text":"Mail jane@example.com or call 555-123-4567."},"example_response":{"skill":"pii_redact","ok":true,"redacted":"Mail [EMAIL] or call [PHONE].","counts_by_type":{"email":1,"ipv4":0,"card":0,"ssn":0,"phone":1},"total":2},"input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":400000}}}},{"id":"csv_normalize","name":"CSV Normalizer","description":"Parse CSV into JSON rows keyed by trimmed snake_case headers, plus a type hint per column (integer, number, boolean, date, datetime, string). Deterministic, no network.","endpoint":"/api/skills/csv-normalize","method":"POST","doc_slug":"csv-normalize","category":"data_prep","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/csv-normalize","try_url":"https://grokzilla.shop/try/csv-normalize","example_request":{"csv":"First Name,E-mail\nAda,ada@example.com\n","delimiter":","},"example_response":{"skill":"csv_normalize","ok":true,"headers":["first_name","e_mail"],"rows":[{"first_name":"Ada","e_mail":"ada@example.com"}],"row_count":1,"column_types":{"first_name":"string","e_mail":"string"}},"input_schema":{"type":"object","required":["csv"],"properties":{"csv":{"type":"string","minLength":1,"maxLength":400000},"delimiter":{"type":"string","enum":[",",";","\t","|"],"default":","}}}},{"id":"base64","name":"Base64 Encode/Decode","description":"Encode UTF-8 text or decode it back: base64 (default; standard or URL-safe), base32, base58 (Bitcoin alphabet), hex or URI percent-encoding (codec). Deterministic, no network.","endpoint":"/api/skills/base64","method":"POST","doc_slug":"base64","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/base64","try_url":"https://grokzilla.shop/try/base64","example_request":{"mode":"encode","text":"hello agent","url_safe":false},"example_response":{"skill":"base64","ok":true,"mode":"encode","url_safe":false,"output":"aGVsbG8gYWdlbnQ=","bytes":11},"input_schema":{"type":"object","required":["mode","text"],"properties":{"mode":{"type":"string","enum":["encode","decode"]},"text":{"type":"string","maxLength":400000},"url_safe":{"type":"boolean","default":false},"codec":{"type":"string","enum":["base64","base32","base58","hex","uri"],"default":"base64"}}}},{"id":"epoch_convert","name":"Epoch Converter","description":"Convert epoch seconds or milliseconds (detected by magnitude) or an ISO-8601 string into epoch_s, epoch_ms, UTC ISO and ISO in any IANA time zone. Deterministic, no network.","endpoint":"/api/skills/epoch-convert","method":"POST","doc_slug":"epoch-convert","category":"text_ops","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/epoch-convert","try_url":"https://grokzilla.shop/try/epoch-convert","example_request":{"value":1700000000,"tz":"America/Chicago"},"example_response":{"skill":"epoch_convert","ok":true,"input_kind":"epoch_s","epoch_s":1700000000,"epoch_ms":1700000000000,"iso_utc":"2023-11-14T22:13:20Z","iso_tz":"2023-11-14T16:13:20-06:00","tz":"America/Chicago","utc_offset":"-06:00"},"input_schema":{"type":"object","required":["value"],"properties":{"value":{"type":["integer","number","string"],"maxLength":64},"tz":{"type":"string","minLength":1,"maxLength":64,"default":"UTC"}}}},{"id":"url_to_markdown","name":"URL to Markdown","description":"Fetch one public web page and return its title and clean Markdown (headings, links, lists, code, tables). Honors robots.txt, SSRF-guarded, HTML only, 1 MB / 5 s caps. No JavaScript rendering.","endpoint":"/api/skills/url-to-markdown","method":"POST","doc_slug":"url-to-markdown","category":"data_prep","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/url-to-markdown","try_url":"https://grokzilla.shop/try/url-to-markdown","example_request":{"url":"https://example.com"},"example_response":{"skill":"url_to_markdown","ok":true,"url":"https://example.com","final_url":"https://example.com/","title":"Example Domain","markdown":"This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.","bytes":577,"truncated":false},"input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","minLength":8,"maxLength":2000,"pattern":"^[Hh][Tt][Tt][Pp][Ss]?://"}}}},{"id":"token_risk","name":"Token Risk (Base)","description":"Heuristic risk checks for a Base ERC-20: contract code, metadata, proxy, owner/renounced, mint/blacklist/pause/fee selectors, deepest Uniswap/Aerodrome pool, and simulated sell/buy transfers with measured tax. Read-only public RPC. Not financial advice.","endpoint":"/api/skills/token-risk","method":"POST","doc_slug":"token-risk","category":"onchain","price_usd":0.005,"docs_url":"https://grokzilla.shop/docs/token-risk","try_url":"https://grokzilla.shop/try/token-risk","example_request":{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"},"example_response":{"skill":"token_risk","ok":true,"token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","chain":"base","chain_id":8453,"block":52494540,"symbol":"USDC","risk_level":"medium","reasons":["proxy: warn","ownership: warn","privileged_functions: warn"],"checks":{"contract_code":{"result":"pass","evidence":{"bytecode_bytes":1852,"block":52494540}},"erc20_metadata":{"result":"pass","evidence":{"name":"USD Coin","symbol":"USDC","decimals":6,"total_supply":"4419304031200909","missing":[]}},"proxy":{"result":"warn","evidence":{"standard":"zeppelinos (legacy unstructured storage)","implementation":"0x2ce6311ddae708829bc0784c967b7d77d19fd779","admin":"0x4fc7850364958d97b4d3f5a08f79db2493f8ca44","note":"upgradeable: whoever controls the proxy can replace the token's code"}},"ownership":{"result":"warn","evidence":{"function":"owner()","owner":"0x3abd6f64a422225e61e435bae41db12096106df7","renounced":false}},"privileged_functions":{"result":"warn","evidence":{"found":{"mint":["configureMinter(address,uint256)","mint(address,uint256)"],"blacklist":["blacklist(address)","isBlacklisted(address)"],"pause":["pause()","unpause()"]},"scanned":["token","implementation"],"note":"selector presence only; who may call them is not checked"}},"liquidity_pool":{"result":"pass","evidence":{"dex":"uniswap_v3","variant":"fee 3000","pool":"0x6c561b446416e1a00e8e93e221854d6ea4171372","quote_token":"WETH","token_balance":"76072526114911","quote_balance":"29060996929756341666149","thin_liquidity":false,"pools_found":7}},"sell_simulation":{"result":"pass","evidence":{"pool":"0x6c561b446416e1a00e8e93e221854d6ea4171372","amount":"76072526114","balance_slot":"solidity:9","method":"eth_simulateV1 transfer leg","received":"76072526114"}},"buy_simulation":{"result":"pass","evidence":{"pool":"0x6c561b446416e1a00e8e93e221854d6ea4171372","amount":"76072526114","balance_slot":"solidity:9","method":"eth_simulateV1 transfer leg","received":"76072526114"}},"transfer_tax":{"result":"pass","evidence":{"sell_tax_pct":0.0,"buy_tax_pct":0.0,"note":"token-side transfer tax only; AMM/pool fees are not included"}}},"rpc":"mainnet.base.org","disclaimer":"Informational only, not financial advice. These are automated heuristics from public on-chain reads and simulations at a single block. They can miss risks (owner actions after this block, time-, amount- or wallet-specific traps, off-chain controls, other pools) and can flag legitimate tokens (for example regulated stablecoins with blacklist and pause functions). Do your own research."},"input_schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"chain":{"type":"string","enum":["base"],"default":"base"}}}},{"id":"json_repair","name":"JSON Repair","description":"Repair malformed or truncated JSON from LLMs, JS or Python: strips ```json fences and comments, fixes trailing commas, single quotes, unquoted keys, True/False/None, missing commas and unclosed strings/brackets. Returns the parsed JSON, a compact repaired JSON string and the list of fixes. Deterministic, no network.","endpoint":"/api/skills/json-repair","method":"POST","doc_slug":"json-repair","category":"data_prep","price_usd":0.0041,"docs_url":"https://grokzilla.shop/docs/json-repair","try_url":"https://grokzilla.shop/try/json-repair","example_request":{"text":"{name: 'Ada', tags: ['math', 'code',], active: True, // note\n}"},"example_response":{"skill":"json_repair","ok":true,"json":{"name":"Ada","tags":["math","code"],"active":true},"repaired":"{\"name\":\"Ada\",\"tags\":[\"math\",\"code\"],\"active\":true}","fixes":["unquoted_keys","single_quotes","trailing_commas","python_literals","removed_comments"],"changed":true},"input_schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":400000}},"required":["text"]}},{"id":"cron_next","name":"Cron Next Runs","description":"Validate a 5-field cron expression (lists, ranges, steps, JAN-DEC/SUN-SAT names, @daily/@hourly macros) and return its next 1-20 run times in any IANA time zone (DST-aware), as local ISO, UTC ISO and epoch seconds. Deterministic, no network.","endpoint":"/api/skills/cron-next","method":"POST","doc_slug":"cron-next","category":"text_ops","price_usd":0.0031,"docs_url":"https://grokzilla.shop/docs/cron-next","try_url":"https://grokzilla.shop/try/cron-next","example_request":{"expr":"*/15 9-17 * * MON-FRI","tz":"America/Chicago","count":3,"from":"2026-10-16T12:42:00-05:00"},"example_response":{"skill":"cron_next","ok":true,"expr":"*/15 9-17 * * MON-FRI","normalized":"*/15 9-17 * * MON-FRI","tz":"America/Chicago","from":"2026-10-16T12:42:00-05:00","count":3,"next":["2026-10-16T12:45:00-05:00","2026-10-16T13:00:00-05:00","2026-10-16T13:15:00-05:00"],"next_utc":["2026-10-16T17:45:00Z","2026-10-16T18:00:00Z","2026-10-16T18:15:00Z"],"next_epoch_s":[1792172700,1792173600,1792174500],"fields":{"minute":[0,15,30,45],"hour":[9,10,11,12,13,14,15,16,17],"day_of_month":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"month":[1,2,3,4,5,6,7,8,9,10,11,12],"day_of_week":[1,2,3,4,5]}},"input_schema":{"type":"object","properties":{"expr":{"type":"string","minLength":1,"maxLength":200},"tz":{"type":"string","minLength":1,"maxLength":64,"default":"UTC"},"count":{"type":"integer","minimum":1,"maximum":20,"default":5},"from":{"type":"string","minLength":1,"maxLength":64}},"required":["expr"]}},{"id":"token_price","name":"Verified Token Price (Base)","description":"Verified USD price for a Base ERC-20: DeFiLlama cross-checked against the deepest on-chain Uniswap/Aerodrome pool. Returns price, spread, staleness, confidence. Refused, not charged, if sources disagree over 2.5% or one is missing. Data only, not investment advice.","endpoint":"/api/skills/token-price","method":"POST","doc_slug":"token-price","category":"onchain","price_usd":0.002,"docs_url":"https://grokzilla.shop/docs/token-price","try_url":"https://grokzilla.shop/try/token-price","example_request":{"token":"0x4200000000000000000000000000000000000006"},"example_response":{"ok":true,"skill":"token_price","service":"token_price","version":"1.0.0","summary":"WETH $2433.056 (2 sources, spread 0.15%) - data only, not advice","data":{"token":"0x4200000000000000000000000000000000000006","chain":"base","symbol":"WETH","decimals":18,"price_usd":"2433.056","spread_pct":0.1524,"agree":true,"sources_agree_within_pct":2.5,"by_source":{"defillama":{"price_usd":"2434.91","confidence":0.99,"as_of":"2026-10-17T11:11:51Z","staleness_s":58},"onchain":{"price_usd":"2431.203","block":52723111,"pool":{"dex":"uniswap_v3","variant":"fee 3000","address":"0x6c561b446416e1a00e8e93e221854d6ea4171372","quote":"USDC","quote_side_usd":60045166.09},"weth_usd_onchain":2431.202812620857}},"disclaimer":"Data only, not investment advice. Spot prices from public sources at one point in time; they can be stale, manipulated in thin pools, or wrong. No buy/sell signal is given or implied."},"confidence":0.975,"sources":[{"name":"DeFiLlama coins API","url":"https://coins.llama.fi/prices/current/base:0x4200000000000000000000000000000000000006","fetched_at":"2026-10-17T11:12:48Z"},{"name":"Base on-chain pool (public RPC)","url":"https://basescan.org/address/0x6c561b446416e1a00e8e93e221854d6ea4171372","fetched_at":"2026-10-17T11:12:48Z","block":52723111}],"generated_at":"2026-10-17T11:12:49Z","data_as_of":"2026-10-17T11:11:51Z","charged":true,"warnings":[],"next":["token_risk"],"disclaimer":"Data only, not investment advice. Spot prices from public sources at one point in time; they can be stale, manipulated in thin pools, or wrong. No buy/sell signal is given or implied."},"input_schema":{"type":"object","additionalProperties":false,"properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Base ERC-20 contract address"},"chain":{"type":"string","enum":["base"],"default":"base"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["token"]}},{"id":"email_check","name":"Email Deliverability Check","description":"Check an email address for deliverability: syntax, canonical form, MX, SPF, DMARC, disposable domain. One verdict with reasons and sources. DNS-over-HTTPS only, no mailbox probing. Not charged if the DNS lookup fails.","endpoint":"/api/skills/email-check","method":"POST","doc_slug":"email-check","category":"data","price_usd":0.0032,"docs_url":"https://grokzilla.shop/docs/email-check","try_url":"https://grokzilla.shop/try/email-check","example_request":{"email":"jane.doe+news@gmail.com"},"example_response":{"ok":true,"skill":"email_check","service":"email_check","version":"1.0.0","summary":"deliverable: MX ok (gmail-smtp-in.l.google.com), SPF ok, DMARC p=none","data":{"email":"jane.doe+news@gmail.com","local":"jane.doe+news","domain":"gmail.com","verdict":"deliverable","reasons":["MX ok (gmail-smtp-in.l.google.com)","SPF ok","DMARC p=none"],"syntax_valid":true,"canonical":"janedoe@gmail.com","canonical_rule":"gmail: dots and +tag removed","plus_tag":"news","domain_exists":true,"mx":[{"priority":5,"host":"gmail-smtp-in.l.google.com"},{"priority":10,"host":"alt1.gmail-smtp-in.l.google.com"},{"priority":20,"host":"alt2.gmail-smtp-in.l.google.com"},{"priority":30,"host":"alt3.gmail-smtp-in.l.google.com"},{"priority":40,"host":"alt4.gmail-smtp-in.l.google.com"}],"null_mx":false,"implicit_mx":false,"mx_host_resolves":true,"spf":{"present":true,"record":"v=spf1 redirect=_spf.google.com","count":1},"dmarc":{"present":true,"record":"v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com","p":"none","sp":"quarantine","pct":null,"rua":true},"disposable":false,"role_account":false,"free_provider":true,"mailbox_checked":false},"confidence":0.85,"sources":[{"name":"Cloudflare DoH","url":"https://cloudflare-dns.com/dns-query?name=gmail.com","fetched_at":"2026-10-17T11:12:49Z"},{"name":"disposable-email-domains","url":"https://github.com/disposable-email-domains/disposable-email-domains (CC0-1.0)","fetched_at":"2026-10-17T11:12:49Z","list_date":"2026-10-16"}],"generated_at":"2026-10-17T11:12:49Z","data_as_of":"2026-10-17T11:12:49Z","charged":true,"warnings":["mailbox existence is not checked (no SMTP probing); a deliverable domain can still reject this mailbox"],"next":["ip_intel"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"email":{"type":"string","minLength":3,"maxLength":254},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["email"]}},{"id":"news_brief","name":"News Brief with Sources","description":"Topic in, deduplicated story clusters out: headline, every outlet URL and first-seen time, from GDELT and publisher RSS. Headlines and links only, no article text. Not charged when nothing matches or sources fail.","endpoint":"/api/skills/news-brief","method":"POST","doc_slug":"news-brief","category":"data","price_usd":0.0101,"docs_url":"https://grokzilla.shop/docs/news-brief","try_url":"https://grokzilla.shop/try/news-brief","example_request":{"topic":"bitcoin","timespan":"3d","max_clusters":2},"example_response":{"ok":true,"skill":"news_brief","service":"news_brief","version":"1.0.0","summary":"2 stories on 'bitcoin'; top: Don’t Let a Crypto Inheritance Get Stuck on the Blockchain","data":{"topic":"bitcoin","terms":["bitcoin"],"timespan":"3d","clusters":[{"headline":"Don’t Let a Crypto Inheritance Get Stuck on the Blockchain","first_seen":"2026-10-17T10:30:00Z","latest":"2026-10-17T10:30:00Z","outlet_count":1,"outlets":[{"outlet":"Wired","headline":"Don’t Let a Crypto Inheritance Get Stuck on the Blockchain","url":"https://www.wired.com/story/crypto-inheritance-how-to/","seen_at":"2026-10-17T10:30:00Z","via":"rss"}]},{"headline":"‘Wow, it’s a real discovery’: Claude cracks a 25-year NSA number mystery","first_seen":"2026-10-17T06:39:48Z","latest":"2026-10-17T06:39:48Z","outlet_count":1,"outlets":[{"outlet":"CoinDesk","headline":"‘Wow, it’s a real discovery’: Claude cracks a 25-year NSA number mystery","url":"https://www.coindesk.com/tech/2026/10/17/wow-it-s-a-real-discovery-claude-cracks-a-25-year-nsa-number-mystery","seen_at":"2026-10-17T06:39:48Z","via":"rss"}]}],"cluster_count":2,"headline_count":2,"searched":{"gdelt":false,"feeds_ok":22,"feeds_total":22}},"confidence":0.7,"sources":[{"name":"Wired","url":"https://www.wired.com/feed/rss","fetched_at":"2026-10-17T11:12:49Z"},{"name":"CoinDesk","url":"https://www.coindesk.com/arc/outboundfeeds/rss/","fetched_at":"2026-10-17T11:12:49Z"}],"generated_at":"2026-10-17T11:12:56Z","data_as_of":"2026-10-17T11:12:49Z","charged":true,"warnings":["headlines and links only; open the outlet URL for the article","GDELT did not answer in time (it rate-limits shared IPs); results come from publisher RSS only"],"next":["url_to_markdown"],"note":"Headlines and links only. No article text is republished."},"input_schema":{"type":"object","additionalProperties":false,"properties":{"topic":{"type":"string","minLength":2,"maxLength":100},"timespan":{"type":"string","enum":["24h","3d","7d"],"default":"24h"},"max_clusters":{"type":"integer","minimum":1,"maximum":20,"default":10},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["topic"]}},{"id":"ip_intel","name":"IP & CIDR Intel","description":"One public IP or CIDR in: normalized network, size, membership checks, plus holder, abuse contact and origin ASN from RIR RDAP and RIPEstat, and country from DB-IP Lite (CC BY 4.0, attributed). Private ranges refused before payment. Not charged if registries fail.","endpoint":"/api/skills/ip-intel","method":"POST","doc_slug":"ip-intel","category":"data","price_usd":0.0033,"docs_url":"https://grokzilla.shop/docs/ip-intel","try_url":"https://grokzilla.shop/try/ip-intel","example_request":{"query":"8.8.8.8"},"example_response":{"ok":true,"skill":"ip_intel","service":"ip_intel","version":"1.0.0","summary":"8.8.8.8/32: AS15169 GOOGLE - Google LLC, Google LLC, US","data":{"network":{"query":"8.8.8.8","version":4,"network":"8.8.8.8/32","prefix_length":32,"num_addresses":"1","first":"8.8.8.8","last":"8.8.8.8","is_single_address":true,"is_global":true,"reverse_pointer":"8.8.8.8.in-addr.arpa"},"registry":{"handle":"NET-8-8-8-0-2","name":"GOGL","holder":"Google LLC","type":"DIRECT ALLOCATION","start_address":"8.8.8.0","end_address":"8.8.8.255","cidrs":["8.8.8.0/24"],"registry_country":null,"abuse_email":"network-abuse@google.com","registered":"2023-12-28T17:24:33-05:00","last_changed":"2023-12-28T17:24:56-05:00","origin_asns_registered":null},"routing":{"asns":[15169],"routed_prefix":"8.8.8.0/24","as_holder":"GOOGLE - Google LLC"},"geo":{"country":"US","countries_at_edges":["US"],"dataset":"DB-IP IP-to-Country Lite 2026-10","attribution":{"text":"IP Geolocation by DB-IP","url":"https://db-ip.com","license":"CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)"}}},"confidence":0.9,"sources":[{"name":"RIR RDAP (via rdap.org bootstrap)","url":"https://rdap.arin.net/registry/ip/8.8.8.8","fetched_at":"2026-10-17T11:12:56Z"},{"name":"RIPEstat network-info / as-overview","url":"https://stat.ripe.net/data/network-info/data.json?resource=8.8.8.8","fetched_at":"2026-10-17T11:12:56Z"},{"name":"IP Geolocation by DB-IP","url":"https://db-ip.com","fetched_at":"2026-10-17T11:12:56Z","dataset_month":"2026-10","license":"CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)"}],"generated_at":"2026-10-17T11:12:56Z","data_as_of":"2026-10-17T11:12:56Z","charged":true,"warnings":["country is DB-IP Lite geolocation (country-level, monthly); it can differ from the registry country"],"next":["email_check"],"attribution":{"text":"IP Geolocation by DB-IP","url":"https://db-ip.com","license":"CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)"}},"input_schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":2,"maxLength":64,"description":"IPv4/IPv6 address or CIDR"},"check":{"type":"array","items":{"type":"string","maxLength":45},"maxItems":50,"description":"IPs to test for membership in the network"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["query"]}},{"id":"llm_cost_quote","name":"LLM Cost Quote","description":"Text or token counts in, cost per model out, cheapest first, from OpenRouter's public price list with a price-fetched-at timestamp. Applies time-of-day pricing. Not charged if the price list is unavailable or no model matches.","endpoint":"/api/skills/llm-cost-quote","method":"POST","doc_slug":"llm-cost-quote","category":"data","price_usd":0.0034,"docs_url":"https://grokzilla.shop/docs/llm-cost-quote","try_url":"https://grokzilla.shop/try/llm-cost-quote","example_request":{"input_tokens":3000,"output_tokens":400,"models":["openai/gpt-4o-mini","google/gemini-2.5-flash"]},"example_response":{"ok":true,"skill":"llm_cost_quote","service":"llm_cost_quote","version":"1.0.0","summary":"cheapest: openai/gpt-4o-mini $0.00069 for 3000 in + 400 out tokens","data":{"input_tokens":3000,"output_tokens":400,"token_source":"caller-supplied input_tokens","models_considered":2,"quotes":[{"model":"openai/gpt-4o-mini","name":"OpenAI: GPT-4o-mini","cost_usd":"0.00069","input_usd_per_mtok":"0.15","output_usd_per_mtok":"0.6","context_length":128000,"fits_context":true,"time_based_price":false},{"model":"google/gemini-2.5-flash","name":"Google: Gemini 2.5 Flash","cost_usd":"0.0019","input_usd_per_mtok":"0.3","output_usd_per_mtok":"2.5","context_length":1048576,"fits_context":true,"time_based_price":false}],"missing_models":[],"price_fetched_at":"2026-10-17T11:12:57Z","currency":"USD"},"confidence":0.97,"sources":[{"name":"OpenRouter public models list","url":"https://openrouter.ai/api/v1/models","fetched_at":"2026-10-17T11:12:57Z"}],"generated_at":"2026-10-17T11:12:57Z","data_as_of":"2026-10-17T11:12:57Z","charged":true,"warnings":[],"next":["token_count"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","maxLength":400000},"input_tokens":{"type":"integer","minimum":0,"maximum":10000000},"output_tokens":{"type":"integer","minimum":0,"maximum":1000000,"default":500},"models":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":25},"top":{"type":"integer","minimum":1,"maximum":50,"default":10},"include_free":{"type":"boolean","default":false},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}}}},{"id":"address_validate","name":"Address Validate","description":"Validate an EVM, Solana, or Bitcoin address locally (EIP-55 checksum, base58, bech32). Optional eth_getCode on Base to label eoa vs contract. No RPC required by default.","endpoint":"/api/skills/address-validate","method":"POST","doc_slug":"address-validate","category":"validation","price_usd":0.001,"docs_url":"https://grokzilla.shop/docs/address-validate","try_url":"https://grokzilla.shop/try/address-validate","example_request":{"address":"0x742d35cc6634c0532925a3b844bc9e7595f0beb0"},"example_response":{"ok":true,"skill":"address_validate","service":"address_validate","version":"1.0.0","summary":"valid evm checksummed=0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0","data":{"valid":true,"chain":"evm","checksum_ok":true,"checksummed":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0","is_zero":false,"type":"unknown","notes":["all-lowercase or all-uppercase: EIP-55 not asserted"]},"confidence":1.0,"sources":[{"name":"local","url":"eip-55+base58+bech32","fetched_at":"2026-10-24T14:00:00Z"}],"generated_at":"2026-10-24T14:00:00Z","data_as_of":"2026-10-24T14:00:00Z","charged":true,"warnings":[],"next":["erc20_meta","name_resolve","token_risk"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","minLength":1,"maxLength":128,"description":"Address to validate"},"chain":{"type":"string","enum":["evm","solana","bitcoin","auto"],"default":"auto"},"check_code":{"type":"boolean","default":false,"description":"When chain is evm, call eth_getCode on Base to set type eoa|contract"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["address"]}},{"id":"gas_price","name":"Gas Price","description":"EIP-1559 base fee and priority fee percentiles (p25/p50/p90) for Base and/or Ethereum via eth_feeHistory. Cached 10s. Optional eth-transfer USD estimate on Base.","endpoint":"/api/skills/gas-price","method":"POST","doc_slug":"gas-price","category":"onchain","price_usd":0.001,"docs_url":"https://grokzilla.shop/docs/gas-price","try_url":"https://grokzilla.shop/try/gas-price","example_request":{"chains":["base"]},"example_response":{"ok":true,"skill":"gas_price","service":"gas_price","version":"1.0.0","summary":"base base=0.012 tip~0.001 gwei","data":{"results":[{"chain":"base","chain_id":8453,"block":22000000,"base_fee_gwei":0.012,"priority_fee_gwei":{"p25":0.0,"p50":0.001,"p90":0.01},"suggested_max_fee_gwei":0.025,"eth_transfer_usd":1e-06}],"as_of":"2026-10-24T14:00:00Z"},"confidence":0.95,"sources":[{"name":"base eth_feeHistory","url":"chain:8453","fetched_at":"2026-10-24T14:00:00Z"}],"generated_at":"2026-10-24T14:00:00Z","data_as_of":"2026-10-24T14:00:00Z","charged":true,"warnings":[],"next":["erc20_meta","token_price"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"chains":{"type":"array","items":{"type":"string","enum":["base","ethereum"]},"minItems":1,"maxItems":2,"default":["base"],"uniqueItems":true},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}}}},{"id":"erc20_meta","name":"ERC-20 Metadata","description":"Read ERC-20 name, symbol, decimals, totalSupply (and optional holder balanceOf) via multicall3 on Base or Ethereum. 400 if the address is not a contract.","endpoint":"/api/skills/erc20-meta","method":"POST","doc_slug":"erc20-meta","category":"onchain","price_usd":0.002,"docs_url":"https://grokzilla.shop/docs/erc20-meta","try_url":"https://grokzilla.shop/try/erc20-meta","example_request":{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"example_response":{"ok":true,"skill":"erc20_meta","service":"erc20_meta","version":"1.0.0","summary":"USDC decimals=6 supply=…","data":{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain_id":8453,"name":"USD Coin","symbol":"USDC","decimals":6,"total_supply":"1000000000000000","total_supply_fmt":"1000000000","holder_balance":null,"holder_balance_fmt":null,"is_contract":true,"block":22000000},"confidence":0.95,"sources":[{"name":"base eth_call/multicall3","url":"https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","fetched_at":"2026-10-24T14:00:00Z","block":22000000}],"generated_at":"2026-10-24T14:00:00Z","data_as_of":"2026-10-24T14:00:00Z","charged":true,"warnings":[],"next":["token_price","token_risk"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 contract address"},"chain":{"type":"string","enum":["base","ethereum"],"default":"base"},"holder":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional holder for balanceOf"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["token"]}},{"id":"dns_lookup","name":"DNS Lookup","description":"DNS-over-HTTPS lookup (A/AAAA/MX/TXT/NS/CNAME/CAA) via Google Public DNS with Cloudflare fallback. Rejects IP literals and private names.","endpoint":"/api/skills/dns-lookup","method":"POST","doc_slug":"dns-lookup","category":"network","price_usd":0.002,"docs_url":"https://grokzilla.shop/docs/dns-lookup","try_url":"https://grokzilla.shop/try/dns-lookup","example_request":{"name":"example.com"},"example_response":{"ok":true,"skill":"dns_lookup","service":"dns_lookup","version":"1.0.0","summary":"example.com via dns.google (A:1, AAAA:1, MX:1, TXT:2)","data":{"name":"example.com","records":{"A":["93.184.215.14"],"AAAA":["2606:2800:21f:cb07:6820:80da:af6b:8b2c"],"MX":[{"priority":0,"host":""}],"TXT":["v=spf1 -all"]},"dnssec":true,"resolver":"dns.google","ttl_min":300,"as_of":"2026-10-24T14:00:00Z"},"confidence":0.95,"sources":[{"name":"dns.google DoH","url":"https://dns.google/resolve","fetched_at":"2026-10-24T14:00:00Z"}],"generated_at":"2026-10-24T14:00:00Z","data_as_of":"2026-10-24T14:00:00Z","charged":true,"warnings":[],"next":["email_check","ip_intel"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":253,"description":"Hostname to look up"},"types":{"type":"array","items":{"type":"string","enum":["A","AAAA","MX","TXT","NS","CNAME","CAA"]},"minItems":1,"maxItems":7,"default":["A","AAAA","MX","TXT"]},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["name"]}},{"id":"name_resolve","name":"Name Resolve (ENS + Basename)","description":"Resolve ENS (.eth) on Ethereum and Basenames (.base.eth) on Base, forward or reverse. Returns address, name, source, forward_verified, optional avatar.","endpoint":"/api/skills/name-resolve","method":"POST","doc_slug":"name-resolve","category":"identity","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/name-resolve","try_url":"https://grokzilla.shop/try/name-resolve","example_request":{"query":"vitalik.eth"},"example_response":{"ok":true,"skill":"name_resolve","service":"name_resolve","version":"1.0.0","summary":"vitalik.eth → vitalik.eth = 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (ens)","data":{"query":"vitalik.eth","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","name":"vitalik.eth","source":"ens","forward_verified":true,"avatar":null,"block":22000000},"confidence":0.95,"sources":[{"name":"ENS Registry","url":"https://etherscan.io/address/0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","fetched_at":"2026-10-24T14:00:00Z"},{"name":"Basename L2 Resolver","url":"https://basescan.org/address/0xc6d566a56a1aff6508b41f6c90ff131615583bcd","fetched_at":"2026-10-24T14:00:00Z"}],"generated_at":"2026-10-24T14:00:00Z","data_as_of":"2026-10-24T14:00:00Z","charged":true,"warnings":[],"next":["address_validate","erc20_meta"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":200,"description":"ENS/Basename or 0x address"},"direction":{"type":"string","enum":["auto","forward","reverse"],"default":"auto"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["query"]}},{"id":"tx_status","name":"TX Status","description":"Transaction receipt status, block, and confirmations on Base or Ethereum via eth_getTransactionReceipt. Validates 0x tx hash before payment. Short-cached.","endpoint":"/api/skills/tx-status","method":"POST","doc_slug":"tx-status","category":"onchain","price_usd":0.002,"docs_url":"https://grokzilla.shop/docs/tx-status","try_url":"https://grokzilla.shop/try/tx-status","example_request":{"tx_hash":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","chain":"base"},"example_response":{"ok":true,"skill":"tx_status","service":"tx_status","version":"1.0.0","summary":"base tx success block=22000000 conf=12","data":{"tx_hash":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","chain":"base","chain_id":8453,"found":true,"status":"success","block_number":22000000,"block_hash":"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","confirmations":12,"gas_used":21000,"effective_gas_price":1000000,"from":"0x1111111111111111111111111111111111111111","to":"0x2222222222222222222222222222222222222222","contract_address":null,"as_of":"2026-10-26T14:00:00Z"},"confidence":0.95,"sources":[{"name":"base eth_getTransactionReceipt","url":"https://basescan.org/tx/0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","fetched_at":"2026-10-26T14:00:00Z"}],"generated_at":"2026-10-26T14:00:00Z","data_as_of":"2026-10-26T14:00:00Z","charged":true,"warnings":[],"next":["block_number","gas_price","erc20_meta"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"tx_hash":{"type":"string","minLength":66,"maxLength":66,"pattern":"^0x[0-9a-fA-F]{64}$","description":"0x-prefixed 32-byte transaction hash"},"chain":{"type":"string","enum":["base","ethereum"],"default":"base"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["tx_hash"]}},{"id":"hex_decode","name":"Hex Decode","description":"Local-only hex decode to utf-8, bytes32, address, and 4-byte selector note. No network fetch (no 4byte.directory).","endpoint":"/api/skills/hex-decode","method":"POST","doc_slug":"hex-decode","category":"onchain","price_usd":0.001,"docs_url":"https://grokzilla.shop/docs/hex-decode","try_url":"https://grokzilla.shop/try/hex-decode","example_request":{"hex":"0x48656c6c6f"},"example_response":{"ok":true,"skill":"hex_decode","service":"hex_decode","version":"1.0.0","summary":"hex-decode: 5 bytes, utf8","data":{"byte_length":5,"hex":"0x48656c6c6f","utf8":"Hello","bytes32":"0x00000000000000000000000000000000000000000000000000000048656c6c6f","bytes32_utf8_stripped":"Hello","address":null,"address_ok":false,"selector":"0x48656c6c","selector_note":"4-byte function selector (local only; no 4byte.directory lookup)"},"confidence":1.0,"sources":[{"name":"local","url":"hex-decode","fetched_at":"2026-10-26T14:00:00Z"}],"generated_at":"2026-10-26T14:00:00Z","data_as_of":"2026-10-26T14:00:00Z","charged":true,"warnings":["left-padded to 32 bytes"],"next":["address_validate","tx_status"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"hex":{"type":"string","minLength":1,"maxLength":8194,"pattern":"^(?:0x)?[0-9a-fA-F]+$","description":"Hex string (0x optional), even length, max 4096 bytes"},"as":{"type":"array","items":{"type":"string","enum":["utf8","bytes32","address","selector","uint256","bytes"]},"minItems":1,"maxItems":8,"default":["utf8","bytes32","address","selector"],"uniqueItems":true},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["hex"]}},{"id":"block_number","name":"Block Number","description":"Latest eth_blockNumber for Base and/or Ethereum, optional block timestamp. Cached ~2s.","endpoint":"/api/skills/block-number","method":"POST","doc_slug":"block-number","category":"onchain","price_usd":0.001,"docs_url":"https://grokzilla.shop/docs/block-number","try_url":"https://grokzilla.shop/try/block-number","example_request":{"chains":["base"]},"example_response":{"ok":true,"skill":"block_number","service":"block_number","version":"1.0.0","summary":"base#22000000","data":{"results":[{"chain":"base","chain_id":8453,"block_number":22000000,"block_hex":"0x14fb180","timestamp":null,"timestamp_iso":null}],"as_of":"2026-10-26T14:00:00Z"},"confidence":0.95,"sources":[{"name":"base eth_blockNumber","url":"chain:8453","fetched_at":"2026-10-26T14:00:00Z"}],"generated_at":"2026-10-26T14:00:00Z","data_as_of":"2026-10-26T14:00:00Z","charged":true,"warnings":[],"next":["tx_status","gas_price"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"chains":{"type":"array","items":{"type":"string","enum":["base","ethereum"]},"minItems":1,"maxItems":2,"default":["base"],"uniqueItems":true},"include_timestamp":{"type":"boolean","default":false,"description":"When true, also fetch eth_getBlockByNumber for the tip timestamp"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}}}},{"id":"whois_rdap","name":"WHOIS / RDAP","description":"Domain registration lookup via IANA RDAP DNS bootstrap only (registrar, status, nameservers, events). Rejects IP literals and private names. Rate-limited, ~5s timeout, SSRF-safe (no private redirects).","endpoint":"/api/skills/whois-rdap","method":"POST","doc_slug":"whois-rdap","category":"network","price_usd":0.003,"docs_url":"https://grokzilla.shop/docs/whois-rdap","try_url":"https://grokzilla.shop/try/whois-rdap","example_request":{"domain":"example.com"},"example_response":{"ok":true,"skill":"whois_rdap","service":"whois_rdap","version":"1.0.0","summary":"example.com registrar=RESERVED-Internet Assigned Numbers Authority ns=2 status=client hold","data":{"domain":"example.com","handle":"example.com","ldh_name":"example.com","status":["client hold","server delete prohibited"],"registrar":"RESERVED-Internet Assigned Numbers Authority","registrant":null,"nameservers":["a.iana-servers.net","b.iana-servers.net"],"events":{"registration":"1995-08-14T04:00:00Z","last changed":"2024-08-14T07:01:38Z"},"secure_dns":false,"rdap_conformance":["rdap_level_0"],"as_of":"2026-10-26T14:00:00Z"},"confidence":0.9,"sources":[{"name":"IANA RDAP bootstrap","url":"https://data.iana.org/rdap/dns.json","fetched_at":"2026-10-26T14:00:00Z"},{"name":"RDAP","url":"https://rdap.verisign.com/com/v1/domain/example.com","fetched_at":"2026-10-26T14:00:00Z"}],"generated_at":"2026-10-26T14:00:00Z","data_as_of":"2026-10-26T14:00:00Z","charged":true,"warnings":[],"next":["dns_lookup","email_check"]},"input_schema":{"type":"object","additionalProperties":false,"properties":{"domain":{"type":"string","minLength":1,"maxLength":253,"description":"Domain name to look up (hostname, not an IP)"},"request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$","description":"Optional idempotency key. Echoed back; a credit-pack redemption with the same request_id and body is charged once."}},"required":["domain"]}}],"x402_enabled":true,"stripe_enabled":true,"free_beta":false,"hosted_partners":[]}