{"x402Version":1,"services":[{"resource":"https://onyx-actions.onrender.com/v1/onyx_agent_workflow","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"20000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_agent_workflow","description":"Run a multi-step workflow across Onyx tools in one paid call. Each step names a tool and its args; later steps can reference earlier outputs via {\"$ref\": \"step_N.field\"} or {\"$prev\": \"field\"}. Saves agents the round-trip + per-call gas of N separate x402 settles when they know the chain in advance — e.g. validate email → check domain DNS → solve captcha → fetch SMS OTP, all atomic. Stops on first step error and returns partial results. Cheaper than the unit-call sum because it bundles.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_agent_workflow","tier":"metered","price_usdc":"0.020","input_schema":{"type":"object","properties":{"steps":{"type":"array","description":"Ordered list of {tool, args}","items":{"type":"object","properties":{"tool":{"type":"string"},"args":{"type":"object"}},"required":["tool"]},"minItems":1,"maxItems":10}},"required":["steps"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_aml_screen","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"250000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_aml_screen","description":"KYC/AML sanctions + risk screen for any EVM address. Returns OFAC sanctions hit (via Chainalysis on-chain oracle), 0-100 risk score, verdict (sanctioned/safe/caution/high_risk/blocked), and ranked risk_factors (address age, transaction throughput, contract status, mixer interaction). Designed for Permitted Payment Stablecoin Issuers, agent-payment platforms, and any compliance gate forced by the GENIUS Act (July 2026). Sub-second latency. Coinbase's PROJECT-IDEAS.md explicitly calls for this primitive.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_aml_screen","tier":"premium","price_usdc":"0.25","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed EVM address to screen"},"chain":{"type":"string","description":"Chain to screen on: 'base' (default) or 'ethereum'. Both query the same OFAC oracle; chain affects the risk-factor heuristics only.","default":"base"}},"required":["address"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_token_risk_scan","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"250000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_base_token_risk_scan","description":"Risk-scan any ERC-20 token on Base mainnet. Returns ownership status (renounced or active owner address), mint authority (still mintable?), top-1 / top-10 holder concentration via balanceOf probes, contract age in days, basic honeypot signal (eth_call swapExactETHForTokens against Aerodrome to detect transfer blocks), and a 0-100 risk score with verdict (safe / caution / high_risk). Use before a trading agent buys a freshly minted token — saves blowing the entire position on a rug. Direct equivalent of OATP's Solana token_risk_scan ($0.50, 980 unique paying agents). Onyx ships at $0.25 — first on Base mainnet.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_base_token_risk_scan","tier":"metered","price_usdc":"0.25","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed ERC-20 contract address on Base"}},"required":["address"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_decode","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_decode","description":"Fetch a Base mainnet transaction by hash and return a human-readable summary: from/to, value (ETH + USD-est), gas used, status, block, input data length, and the function selector decoded if it matches a known signature. Use when a trading agent needs to inspect a tx before or after settlement — pairs with onyx_token_metadata for full context. Reads from Base's public RPC (no key needed). Demo mode returns a synthetic record.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_base_tx_decode","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"tx_hash":{"type":"string","description":"0x-prefixed Base tx hash"}},"required":["tx_hash"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_explainer","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"50000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_explainer","description":"Decode a Base mainnet transaction into a human-readable summary. Returns a one-line plain-English description of what happened (token transfers, swaps, approvals, contract deploys), ERC-20 transfer events with symbol resolution, balance changes per address, the function selector + decoded method name where it matches a known signature, gas used, fee in ETH, and tx status. Use when a trading agent needs to verify what a tx actually did before/after settlement, or when a wallet agent needs to explain a tx to its user. Direct equivalent of OATP's Solana tx_explainer ($0.10, 1,350 unique paying agents) — Onyx is the first to ship this on Base mainnet at $0.05.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_base_tx_explainer","tier":"metered","price_usdc":"0.05","input_schema":{"type":"object","properties":{"tx_hash":{"type":"string","description":"0x-prefixed Base tx hash"}},"required":["tx_hash"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_simulator","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"100000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_simulator","description":"Simulate a Base mainnet transaction before sending it. Returns success/revert prediction, the revert reason if any, decoded return data, and an estimated gas figure. Use as a pre-flight check inside a trading agent's tool-call dispatcher — agents should simulate before signing to avoid paying gas on a doomed tx. Direct equivalent of OATP's Solana tx_simulator ($0.20, 1,304 unique paying agents) — Onyx is the first to ship this on Base mainnet at $0.10. Read-only — never submits.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_base_tx_simulator","tier":"metered","price_usdc":"0.10","input_schema":{"type":"object","properties":{"from_address":{"type":"string","description":"0x-prefixed sender"},"to_address":{"type":"string","description":"0x-prefixed contract or wallet"},"data":{"type":"string","description":"Hex-encoded calldata (default 0x)"},"value_wei":{"type":"string","description":"ETH wei to send (default 0)"},"block":{"type":"string","description":"block tag (latest/pending/0x...) default latest"}},"required":["to_address"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_click","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"3000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_click","description":"Click the first visible button or link whose text matches the query (case-insensitive substring match). Returns whether a match was found and the matched element's text + href. Use after onyx_browser_extract to act on what the page advertised. Demo mode returns synthetic OK.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_click","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"text":{"type":"string","description":"Substring of the element's visible text"}},"required":["text"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_eval","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"4000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_eval","description":"Evaluate a JavaScript expression on the current CDP-controlled Chrome page and return the result by value. Use as a power-tool when the specific click/extract/type tools don't fit — pull deeply nested DOM data, dispatch synthetic events, read computed styles. Demo mode echoes the expression length without executing.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_eval","tier":"metered","price_usdc":"0.004","input_schema":{"type":"object","properties":{"expression":{"type":"string","description":"JavaScript expression. Last value is returned."},"await_promise":{"type":"boolean","default":false,"description":"If the expression returns a Promise, wait for it."}},"required":["expression"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_extract","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"3000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_extract","description":"Read the current CDP-controlled Chrome page and return the visible text content plus a structured summary of clickable elements: buttons, links (with hrefs), inputs (with names/placeholders/types). Use when an agent needs to plan its next action — list what's on the page without screenshotting + vision-modeling. Cheap, structured, deterministic. Demo mode returns a plausible synthetic page summary.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_extract","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"max_chars":{"type":"integer","default":4000,"description":"Cap on returned text length (max 80000)"}}}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_navigate","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"5000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_navigate","description":"Navigate a Chrome DevTools Protocol session to a target URL and wait for load. Returns the final URL after redirects, page title, and elapsed wait time. Use as the first step of a browser-agent workflow — screenshot/click/type tools below act on whatever page this lands on. Demo mode (default in cloud) returns a plausible synthetic result; self-host with ONYX_CDP_URL pointed at your Chrome (--remote-debugging-port=9222) for real navigation.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_navigate","tier":"metered","price_usdc":"0.005","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to navigate to"},"wait_seconds":{"type":"number","default":1.5,"description":"Settle time after navigation"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_screenshot","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"8000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_screenshot","description":"Capture a PNG screenshot of the current CDP-controlled Chrome page and return it as base64. Use to feed a vision-LLM (Claude / GPT-4V) for screen-understanding agents, or to archive an action's visual result. Returns also the page title, URL, and viewport dimensions. Cap of 1MB returned. Demo mode returns a synthetic 1×1 PNG; self-host with ONYX_CDP_URL for real captures.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_screenshot","tier":"metered","price_usdc":"0.008","input_schema":{"type":"object","properties":{"format":{"type":"string","enum":["png","jpeg"],"default":"png"},"full_page":{"type":"boolean","default":false,"description":"Capture full scrollable page or just viewport"}}}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_type","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_browser_type","description":"Find an input/textarea/select on the current CDP page by its name, id, or visible label, set its value via the React-safe native setter, and fire input + change events so frameworks like React/Vue see the update. Use after onyx_browser_navigate when an agent fills a form. Returns the field selector matched and the final value. Demo mode returns synthetic OK.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_browser_type","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"selector":{"type":"string","description":"Name, id (#foo), CSS selector, or visible label substring"},"value":{"type":"string","description":"Text to enter"}},"required":["selector","value"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_dns_lookup","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_dns_lookup","description":"Resolve a domain to its A/AAAA records, or reverse-resolve an IP to its hostname. Useful for validating a domain exists before scraping, checking if two domains share infrastructure, mapping CDN origins, or doing safety lookups before agents call third-party APIs. Returns IPv4, IPv6, canonical hostname, and resolution time. Powered by stdlib so results are whatever the host's DNS resolver returns — typically 20-100ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_dns_lookup","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"host":{"type":"string","description":"Domain (example.com) or IP address"}},"required":["host"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_email_validate","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_email_validate","description":"Validate an email address: RFC-5322 syntax check, domain DNS resolution (does the domain exist?), and disposable-provider detection (Mailinator, 10minutemail, GuerrillaMail, etc.). Returns a single confidence verdict plus the underlying signals so agents can decide whether to send. Use before mailing list signups, password-reset flows, or sales-lead capture to filter out trash addresses cheaply. ~30-80ms typical.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_email_validate","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"email":{"type":"string","description":"Address to validate"}},"required":["email"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_ens_resolve","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_ens_resolve","description":"Resolve an ENS name to its current Ethereum mainnet address (or vice versa). Returns the canonical address, avatar URL if set, and the resolver contract that returned it. Use when an agent encounters a human-readable name like 'vitalik.eth' and needs to send funds or validate identity. Reads via the public ensideas API (no key, no rate-limit pain for typical agent traffic). ~200-500ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_ens_resolve","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"ENS name (foo.eth) or 0x-address for reverse"}},"required":["name"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_fact_check","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"50000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_fact_check","description":"Fact-check any claim by fetching real-time web evidence. Returns supporting sources, contradicting sources, a 0-100 confidence score, and a short summary. Use for prediction-market resolvers, news-fact agents, journalist-bot pipelines, or any agent that needs to verify a statement before acting on it. Sub-second latency, no API key on the caller side. Coinbase PROJECT-IDEAS.md explicitly calls for this primitive.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_fact_check","tier":"premium","price_usdc":"0.05","input_schema":{"type":"object","properties":{"claim":{"type":"string","description":"The factual statement to verify. E.g. 'The 2026 G20 summit will be hosted in Cape Town' or 'USDC supply on Base mainnet exceeds $5B'."},"max_sources":{"type":"integer","description":"Maximum number of sources to return (1-15, default 8)","default":8}},"required":["claim"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_fx_convert","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_fx_convert","description":"Convert between any two fiat currencies (USD, EUR, GBP, JPY, BRL, USDC-equivalent, 160+ ISO-4217 codes) at the current mid-market rate. Returns both the rate and the converted amount, plus the rate's last update timestamp. Use when an agent needs to price a service in another currency, normalize multi-currency invoices, or convert x402 USDC amounts to local fiat for human-readable receipts. Powered by open.er-api.com (free tier, no key). ~150-400ms. Demo mode returns USD-EUR @ 0.92 for testing.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_fx_convert","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"from":{"type":"string","description":"ISO-4217 source currency code"},"to":{"type":"string","description":"ISO-4217 target currency code"},"amount":{"type":"number","default":1.0}},"required":["from","to"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_hash_compute","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_hash_compute","description":"Compute md5, sha1, sha256, sha512, and sha3-256 of any text or base64-encoded bytes. Returns each digest as both hex and base64. Use for content-addressed lookups, dedupe keys, signature verification support, or fingerprinting. Stdlib-only — runs locally, never logs input. <2ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_hash_compute","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"text":{"type":"string","description":"UTF-8 string to hash"},"b64":{"type":"string","description":"Or: base64-encoded bytes"}}}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_html_meta","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_html_meta","description":"Fetch a URL and extract OpenGraph + Twitter Card + standard meta tags: og:title, og:description, og:image, og:type, twitter:card, twitter:image, canonical link, favicon, JSON-LD blocks. Use when an agent needs to preview a link before sharing, build a citation card, or detect spam/ads via meta-tag fingerprints. Stripped of HTML noise. ~150-500ms typical.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_html_meta","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to inspect"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_ip_geolocate","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_ip_geolocate","description":"Geolocate any public IPv4/IPv6 address — country, region, city, lat/lon, timezone, ISP, ASN, mobile/proxy/hosting flags. Useful for filtering traffic by country, detecting datacenter/VPN egress, fraud scoring, or deciding which regional endpoint to route an agent through. Backed by ip-api.com (free tier, ~1k requests/min). ~80-200ms typical. Demo mode returns a plausible US record so the payment loop can be tested without burning the upstream rate limit.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_ip_geolocate","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address"}},"required":["ip"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_jwt_decode","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_jwt_decode","description":"Decode a JWT (header + payload) without verifying the signature. Returns the algorithm, key id, all claims (iss, sub, aud, exp, iat, nbf, custom), expiry status, and any structural anomalies. Use when an agent receives a token from an external API and needs to inspect it for routing, expiry, or audit logging. Stdlib-only — runs locally, never sends the token anywhere.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_jwt_decode","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"token":{"type":"string","description":"JWT (three base64url segments separated by .)"}},"required":["token"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_password_strength","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_password_strength","description":"Score password strength on a 0-100 scale. Returns Shannon entropy (bits), character-class diversity, length, common-pattern detection (sequences, repeats, dictionary-likeness), and a verdict (very_weak / weak / fair / strong / very_strong). Use when an agent generates passwords for accounts it creates, or when validating user-supplied credentials. Stdlib-only — runs locally, never sends the password anywhere. <5ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_password_strength","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"password":{"type":"string","description":"Password to score"}},"required":["password"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_pm_settlement_watch","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"5000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_pm_settlement_watch","description":"Prediction-market state lookup — current odds, volume, liquidity, resolution state, and anomaly flags for any market on Polymarket or Manifold. Pass a market slug or full URL. Use for arb agents watching for mispriced events, copy-trading agents tracking whales, or settlement-resolver agents that pay only on a final outcome. Coinbase PROJECT-IDEAS.md explicitly calls for this primitive.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_pm_settlement_watch","tier":"metered","price_usdc":"0.005","input_schema":{"type":"object","properties":{"slug_or_url":{"type":"string","description":"Polymarket slug ('will-trump-win-2024'), Manifold slug, or full https URL to either platform"},"venue":{"type":"string","description":"Force a specific venue: 'polymarket' or 'manifold'. Auto-detected if omitted."}},"required":["slug_or_url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_robots_check","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_robots_check","description":"Fetch a domain's robots.txt and report whether a given path is allowed for a given user-agent. Returns the raw robots.txt text, the matched rule, the crawl-delay if specified, and a clean allow/disallow verdict. Use when an agent does web scraping and wants to be polite — saves bans, saves CAPTCHAs, saves drama. ~50-200ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_robots_check","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Any URL on the target domain"},"user_agent":{"type":"string","description":"UA string to test","default":"*"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_jupiter_quote","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solana_jupiter_quote","description":"Best-route swap quote on Solana via Jupiter aggregator. Pass inputMint + outputMint + amount (in input mint's smallest units) and get the best route across all Solana DEXes (Orca, Raydium, Meteora, Phoenix, Lifinity, etc.) with price impact, expected output, intermediate hops, and slippage. Use BEFORE every Solana swap to lock execution price. Cheaper than every alternative — Jupiter's API is free but requires no API key tracking; we charge $0.001 USDC per quote with no signup.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solana_jupiter_quote","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"input_mint":{"type":"string","description":"Input token SPL mint (base58)"},"output_mint":{"type":"string","description":"Output token SPL mint (base58)"},"amount":{"type":"string","description":"Amount in smallest units of input_mint (string to avoid float precision)"},"slippage_bps":{"type":"integer","description":"Max slippage in basis points (50 = 0.5%, default 50)","default":50}},"required":["input_mint","output_mint","amount"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_metadata","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_metadata","description":"Resolve name + symbol + decimals + total supply for any SPL token on Solana mainnet. Reads the SPL Mint account directly + derives the Metaplex metadata PDA for human-readable name/symbol. Pairs with onyx_solana_token_risk_scan for full pre-trade safety. Cheaper than OATP ($0.001) and Helius ($0.001 + API key) — Onyx uses free public RPC and bills only the agent's wallet.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solana_token_metadata","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"base58-encoded SPL mint address"}},"required":["mint"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_risk_scan","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"250000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_risk_scan","description":"Rug-vector risk scan for any SPL token on Solana mainnet. Checks mint authority (active = can mint unlimited supply), freeze authority (active = can freeze any holder's wallet), top-10 holder concentration (whale risk), supply rationality, and pump.fun bonded/unbonded state. Returns 0-100 risk score + verdict (safe/caution/high_risk/likely_rug) + ranked risk_factors. Designed for memecoin/sniper/MEV agents that need a sub-second pre-trade gate. OATP charges $0.50 for the same primitive — Onyx is half-price, no API key, USDC-direct.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solana_token_risk_scan","tier":"metered","price_usdc":"0.25","input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"base58-encoded SPL mint address"}},"required":["mint"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_tx_explainer","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"50000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solana_tx_explainer","description":"Decode a Solana mainnet transaction into a human-readable summary. Returns a one-line plain-English description (SPL transfers, swaps, stake ops, NFT moves), parsed token-balance pre/post per account, SOL-balance deltas, programs invoked, compute units used, and fee. Use when a trading agent needs to verify a Solana tx actually did what it claims, or when a wallet agent needs to explain an action to its user. Direct equivalent of OATP's $0.10 service (1,350+ unique paying agents) at half the price, no API key, x402-native.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solana_tx_explainer","tier":"metered","price_usdc":"0.05","input_schema":{"type":"object","properties":{"signature":{"type":"string","description":"base58-encoded Solana tx signature (~88 chars)"}},"required":["signature"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_wallet_activity","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"2000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solana_wallet_activity","description":"Recent on-chain activity for any Solana wallet. Returns the last N signatures (default 25, max 100) with slot, block_time, status, fee, and best-effort program/action classification (swap, transfer, stake, NFT). Designed for whale-watching, copy-trading, and risk-monitoring agents that need a sub-second feed without managing their own RPC. Cheaper than Helius webhooks ($25/mo) and Birdeye wallet-portfolio ($0.002 + API key). x402-direct, no signup.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solana_wallet_activity","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"base58-encoded Solana wallet address"},"limit":{"type":"integer","description":"Number of recent signatures (1-100, default 25)","default":25}},"required":["wallet"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solve_captcha","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"3000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_solve_captcha","description":"Solve an image-based text captcha and return the recognized text. Works on standard alphanumeric captchas (web signup forms, login walls, scraping checkpoints). OCR via ddddocr — typical p50 latency 30-80ms, 70-90% accuracy on common captcha fonts. Provide either an image URL we fetch on your behalf, or raw base64 image bytes if you already have them. Use when an agent encounters a captcha mid-task and needs to continue without human intervention. Cheaper and faster than 2captcha for simple image captchas; not designed for reCAPTCHA v2/v3 or hCaptcha (those are interaction-based).","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_solve_captcha","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"image_url":{"type":"string","description":"URL to fetch"},"image_b64":{"type":"string","description":"Base64-encoded image bytes"}},"anyOf":[{"required":["image_url"]},{"required":["image_b64"]}]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_token_metadata","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_token_metadata","description":"ERC-20 token metadata lookup on Base mainnet: name, symbol, decimals, and total supply for any contract address. Use before transacting with a token agents discover at runtime — confirms the contract is a real ERC-20 and resolves human-readable identity. Reads via Base public RPC, ~150-300ms typical. Pairs with onyx_base_tx_decode for full token-flow context. No vendor key needed.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_token_metadata","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed ERC-20 contract address on Base"}},"required":["address"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_parse","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_url_parse","description":"Parse any URL into structured components: scheme, host, port, path, query params (as both raw and decoded list), fragment, userinfo. Use when an agent needs to inspect, modify, or validate a URL — change a query param, strip tracking, normalize for caching. Stdlib only, no network calls, <1ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_url_parse","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to parse"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_text","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_url_text","description":"Fetch any public URL and return the readable text content stripped of HTML/scripts/styles. Use when an agent needs to reason over a web page without rendering a browser — docs pages, articles, search-result snippets, GitHub READMEs. Returns plain text + page title + word count + final URL after redirects. Capped at 200kB output to keep token costs predictable. ~150-800ms typical depending on origin server.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_url_text","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"HTTPS URL to fetch"},"max_chars":{"type":"integer","default":50000,"description":"Truncate output (max 200000)"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_unshorten","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_url_unshorten","description":"Follow HTTP redirects on any URL and return the final destination + the full redirect chain. Use when an agent encounters a bit.ly/t.co/lnkd.in/ shortened link and needs to know where it actually goes before clicking. Returns each hop's status code, location, and final URL with status. Cap of 10 hops to prevent loops. ~100-400ms typical.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_url_unshorten","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to unshorten"}},"required":["url"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_user_agent_parse","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_user_agent_parse","description":"Parse any HTTP User-Agent string into a structured record: browser name/version, OS name/version, device type (desktop/mobile/tablet/bot), rendering engine. Use for analytics, fraud scoring, or routing logic based on client capabilities. Stdlib regex only — works offline, no external lookups. <2ms.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_user_agent_parse","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"user_agent":{"type":"string","description":"User-Agent header value"}},"required":["user_agent"]}}}]},{"resource":"https://onyx-actions.onrender.com/v1/onyx_whois","type":"http","x402Version":1,"accepts":[{"scheme":"exact","network":"eip155:84532","maxAmountRequired":"1000","asset":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","payTo":"0x4326acB1A35e6B744BaAeA850c702Ca71dF86Cd5","resource":"https://onyx-actions.onrender.com/v1/onyx_whois","description":"Domain whois via the modern RDAP protocol — registrar, creation/expiry dates, nameservers, registrant country, status flags. Use to vet a domain before agents transact with it (newly registered = higher fraud risk), check trademark conflicts, or confirm ownership transfer. Powered by rdap.org (no API key, free tier). ~200-500ms typical.","mimeType":"application/json","outputSchema":{"type":"object"},"extra":{"name":"onyx_whois","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name, e.g. example.com"}},"required":["domain"]}}}]}],"facilitator":"https://x402.org/facilitator"}