{"x402Version":2,"services":[{"resource":"https://onyx-actions.onrender.com/v1/onyx_agent_audit_trail","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"50000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_agent_audit_trail","description":"Full payment + action audit trail for any agent wallet on Base. Returns every USDC outflow with resolved x402 destination, tool name where known, timestamp, tx hash, cumulative spend, velocity, and behavioral risk flags. The audit log every agent operator needs — what has my agent actually been paying for and when. Powers compliance, ops review, anomaly detect.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_agent_audit_trail","tier":"metered","price_usdc":"0.05","input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Agent wallet address on Base (0x... 20-byte hex)."},"lookback_blocks":{"type":"integer","minimum":100,"maximum":50000,"default":5000,"description":"Block range to scan (Base is ~2s/block → 5000 blocks ≈ 2.8h, 10000 ≈ 5.5h, 50000 ≈ 28h)."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":30,"description":"Max events to return (truncated newest-first)."}},"required":["wallet"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"wallet":{"type":"string","description":"Agent wallet address on Base (0x... 20-byte hex)."},"lookback_blocks":{"type":"integer","minimum":100,"maximum":50000,"default":5000,"description":"Block range to scan (Base is ~2s/block → 5000 blocks ≈ 2.8h, 10000 ≈ 5.5h, 50000 ≈ 28h)."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":30,"description":"Max events to return (truncated newest-first)."}},"required":["wallet"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_agent_reputation","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_agent_reputation","description":"Vet another AI agent before you trust it — via the live ERC-8004 registries on Base. Give an agent's ERC-8004 id; get its on-chain identity (is it registered? owner), its verified receiving wallet, its AgentCard URI, and its reputation summary (feedback count + aggregate score) — Ed25519-signed. Onyx ATTESTS the on-chain facts; the TRUSTED / NEW / CAUTION / UNKNOWN rating + 0-100 score are Onyx's OPINION over those facts via a disclosed methodology (Moody's-style), not an objective ruling. The check an agent runs on a counterparty agent before paying, delegating, or accepting its output. Unregistered = unverifiable.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_agent_reputation","tier":"metered","price_usdc":"0.25","input_schema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's ERC-8004 identity id (the ERC-721 tokenId in the IdentityRegistry)."}},"required":["agent_id"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's ERC-8004 identity id (the ERC-721 tokenId in the IdentityRegistry)."}},"required":["agent_id"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_agent_workflow","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"20000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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 → submit form, 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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_ai_visibility","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"200000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_ai_visibility","description":"AI answer-engine visibility (GEO) oracle. Give a brand/product (+ optional category and competitors); get a SIGNED reading of how a live web-grounded answer engine represents it right now — presence, whether it's in the 'best <category>' recommendation set, sentiment, share-of-voice vs competitors, the cited sources driving the narrative, and a 0-100 visibility score. The new SEO, as one per-call x402 tool. Never fabricated.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_ai_visibility","tier":"premium","price_usdc":"0.20","input_schema":{"type":"object","properties":{"brand":{"type":"string","description":"Brand, product, company, or entity to measure (e.g. 'Onyx Protocol', 'Stripe')."},"category":{"type":"string","description":"Optional product category for the recommendation-set probe (e.g. 'AI agent payment rails', 'running shoes'). Drives the 'best <category>' query."},"competitors":{"type":"array","items":{"type":"string"},"description":"Optional competitor names to compute share-of-voice against."}},"required":["brand"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"brand":{"type":"string","description":"Brand, product, company, or entity to measure (e.g. 'Onyx Protocol', 'Stripe')."},"category":{"type":"string","description":"Optional product category for the recommendation-set probe (e.g. 'AI agent payment rails', 'running shoes'). Drives the 'best <category>' query."},"competitors":{"type":"array","items":{"type":"string"},"description":"Optional competitor names to compute share-of-voice against."}},"required":["brand"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_aml_screen","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_approval_guard","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"100000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_approval_guard","description":"Pre-approval firewall — the safety check before your agent signs a token approve(). Give the spender (and optionally the amount + token); get a SIGNED ALLOW/REVIEW/BLOCK verdict: is the amount unlimited (the #1 drain vector — we recommend a finite amount instead)? is the spender a plain EOA (almost always a drainer)? is it a verified, established contract? Catches the malicious/unlimited approval that empties a wallet BEFORE the agent signs it. Every verdict Ed25519-signed. The highest-frequency safety call an on-chain agent makes.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_approval_guard","tier":"metered","price_usdc":"0.10","input_schema":{"type":"object","properties":{"spender":{"type":"string","description":"0x address that will receive spend approval (the `spender` arg of approve()). Required."},"amount_raw":{"type":"string","description":"Optional. The raw approval amount as a base-10 integer string (the uint the agent is about to approve). Pass it to detect unlimited/max approvals. Omit to assess the spender only."},"token":{"type":"string","description":"Optional. The ERC-20 token address being approved, for context."}},"required":["spender"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"spender":{"type":"string","description":"0x address that will receive spend approval (the `spender` arg of approve()). Required."},"amount_raw":{"type":"string","description":"Optional. The raw approval amount as a base-10 integer string (the uint the agent is about to approve). Pass it to detect unlimited/max approvals. Omit to assess the spender only."},"token":{"type":"string","description":"Optional. The ERC-20 token address being approved, for context."}},"required":["spender"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_arb_finder","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"3000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_arb_finder","description":"Price arbitrage between Onyx Actions and peer x402 services. For any capability (e.g. 'tx_explainer', 'captcha'), queries the full CDP discovery corpus, identifies matching peer endpoints, computes price delta vs the Onyx native tool, and produces a one-line competitive pitch ('Onyx is 50% cheaper than OATP at $0.05 vs $0.10'). Use for competitive intel, marketing copy, or pricing decisions.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_arb_finder","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"capability":{"type":"string","description":"Capability keyword to compare. E.g. 'tx_explainer', 'token_risk', 'captcha', 'swap_quote'."},"onyx_price_usdc":{"type":"number","description":"Onyx's price for this capability. Used as the comparison anchor. Default 0 = treat Onyx as if-we-shipped-free."},"network":{"type":"string","description":"Optional network filter: 'base', 'solana', 'eip155:8453'. Empty = all."},"max_peers":{"type":"integer","minimum":1,"maximum":30,"default":8}},"required":["capability"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"capability":{"type":"string","description":"Capability keyword to compare. E.g. 'tx_explainer', 'token_risk', 'captcha', 'swap_quote'."},"onyx_price_usdc":{"type":"number","description":"Onyx's price for this capability. Used as the comparison anchor. Default 0 = treat Onyx as if-we-shipped-free."},"network":{"type":"string","description":"Optional network filter: 'base', 'solana', 'eip155:8453'. Empty = all."},"max_peers":{"type":"integer","minimum":1,"maximum":30,"default":8}},"required":["capability"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_bridge_quote","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"3000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_base_bridge_quote","description":"Cross-chain bridge quote starting from Base. Best-route across ~30 bridges (Across, Hop, Stargate, cBridge, Connext, Hyphen, Mayan, ...) via LI.FI aggregator. Returns toAmount, fee breakdown, gas cost, estimated bridge tool, approval address, ETA. Use when an agent on Base needs USDC/ETH/etc. on another chain.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_base_bridge_quote","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"to_chain_id":{"type":"integer","description":"Destination chain ID. 1=Ethereum, 10=Optimism, 42161=Arbitrum, 137=Polygon, 56=BSC, 43114=Avalanche, 250=Fantom, 8453=Base (same chain - use swap_quote instead)."},"from_token":{"type":"string","description":"Source token address on Base (0x...). Use 0x0000000000000000000000000000000000000000 for native ETH."},"to_token":{"type":"string","description":"Destination token address on destination chain (0x...)."},"from_amount":{"type":"string","description":"Atomic amount on source side (decimal string). E.g. 100 USDC = '100000000'."},"from_address":{"type":"string","description":"Optional: sender address for routes that need it. Default = 0x...0001 (LI.FI accepts any for quote)."}},"required":["to_chain_id","from_token","to_token","from_amount"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"to_chain_id":{"type":"integer","description":"Destination chain ID. 1=Ethereum, 10=Optimism, 42161=Arbitrum, 137=Polygon, 56=BSC, 43114=Avalanche, 250=Fantom, 8453=Base (same chain - use swap_quote instead)."},"from_token":{"type":"string","description":"Source token address on Base (0x...). Use 0x0000000000000000000000000000000000000000 for native ETH."},"to_token":{"type":"string","description":"Destination token address on destination chain (0x...)."},"from_amount":{"type":"string","description":"Atomic amount on source side (decimal string). E.g. 100 USDC = '100000000'."},"from_address":{"type":"string","description":"Optional: sender address for routes that need it. Default = 0x...0001 (LI.FI accepts any for quote)."}},"required":["to_chain_id","from_token","to_token","from_amount"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_contract_verify","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_base_contract_verify","description":"Contract verification + ABI metadata for any Base address. Returns is_verified, contract name, compiler version, language, optimization, ABI entry count, license, source code size. Auto-detects EIP-1967/OZ/UUPS proxies and resolves to the implementation contract. Backed by Blockscout (free, no auth). Use before any swap or interaction — unverified contracts are an instant red flag.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_base_contract_verify","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Contract address on Base mainnet (0x... 20-byte hex)."},"include_full_abi":{"type":"boolean","default":false,"description":"If true, return the full ABI array (can be large). Otherwise just the entry count + function/event name list."},"include_source":{"type":"boolean","default":false,"description":"If true, return full source code (can be 10s of KB). Otherwise just the byte length."},"resolve_proxy":{"type":"boolean","default":true,"description":"If true and address is a proxy, also fetch the implementation contract's metadata."}},"required":["address"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"Contract address on Base mainnet (0x... 20-byte hex)."},"include_full_abi":{"type":"boolean","default":false,"description":"If true, return the full ABI array (can be large). Otherwise just the entry count + function/event name list."},"include_source":{"type":"boolean","default":false,"description":"If true, return full source code (can be 10s of KB). Otherwise just the byte length."},"resolve_proxy":{"type":"boolean","default":true,"description":"If true and address is a proxy, also fetch the implementation contract's metadata."}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_dex_pair_lookup","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1500","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_base_dex_pair_lookup","description":"Every DEX pair for a Base token: DEX name, price USD, 24h volume, liquidity USD, price-change percentages (5m/1h/6h/24h), pool fees. Sorted by liquidity. Backed by DexScreener (free). Use to find where a token is actually trading before routing a swap or assessing rug risk via volume/liquidity ratios.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_base_dex_pair_lookup","tier":"metered","price_usdc":"0.0015","input_schema":{"type":"object","properties":{"token_address":{"type":"string","description":"Token contract address on Base mainnet (0x...)."},"limit":{"type":"integer","minimum":1,"maximum":30,"default":10,"description":"Max pairs to return (sorted by liquidity desc)."}},"required":["token_address"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"token_address":{"type":"string","description":"Token contract address on Base mainnet (0x...)."},"limit":{"type":"integer","minimum":1,"maximum":30,"default":10,"description":"Max pairs to return (sorted by liquidity desc)."}},"required":["token_address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_event_logs","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"3000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_base_event_logs","description":"Fetch contract event logs from Base mainnet via eth_getLogs. Returns structured logs with topics, raw data, block+tx info, plus optional event-signature decode for common ERC-20/721/1155 events (Transfer, Approval, OwnershipTransferred). Supports block range filter (default last 100 blocks) and topic-0 filter for narrowing to specific events.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_base_event_logs","tier":"metered","price_usdc":"0.003","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Contract address (0x... 20-byte hex) to fetch logs for."},"from_block":{"type":"string","description":"Start block: hex ('0x12345'), decimal ('1234567'), or 'latest'. Default = latest - 100."},"to_block":{"type":"string","description":"End block. Default = 'latest'."},"topic0":{"type":"string","description":"Optional event signature hash (32-byte hex) to filter on. E.g. Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef."},"limit":{"type":"integer","minimum":1,"maximum":500,"default":50,"description":"Max log entries to return."}},"required":["address"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"Contract address (0x... 20-byte hex) to fetch logs for."},"from_block":{"type":"string","description":"Start block: hex ('0x12345'), decimal ('1234567'), or 'latest'. Default = latest - 100."},"to_block":{"type":"string","description":"End block. Default = 'latest'."},"topic0":{"type":"string","description":"Optional event signature hash (32-byte hex) to filter on. E.g. Transfer = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef."},"limit":{"type":"integer","minimum":1,"maximum":500,"default":50,"description":"Max log entries to return."}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_swap_quote","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_base_swap_quote","description":"Best-route swap quote on Base across all major DEXes (Uniswap V2/V3, Aerodrome, BaseSwap, PancakeSwap, plus ~12 others) via KyberSwap aggregator. Returns amountOut, USD value, gas estimate, route hops, price impact. Same role as Jupiter on Solana — most agents need this before any on-chain swap.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_base_swap_quote","tier":"metered","price_usdc":"0.002","input_schema":{"type":"object","properties":{"token_in":{"type":"string","description":"Address of input token (0x... on Base mainnet). Use 0x4200000000000000000000000000000000000006 for WETH."},"token_out":{"type":"string","description":"Address of output token (0x... on Base mainnet)."},"amount_in":{"type":"string","description":"Atomic input amount (decimal string). E.g. 1 ETH = '1000000000000000000'; 100 USDC = '100000000'."}},"required":["token_in","token_out","amount_in"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"token_in":{"type":"string","description":"Address of input token (0x... on Base mainnet). Use 0x4200000000000000000000000000000000000006 for WETH."},"token_out":{"type":"string","description":"Address of output token (0x... on Base mainnet)."},"amount_in":{"type":"string","description":"Atomic input amount (decimal string). E.g. 1 ETH = '1000000000000000000'; 100 USDC = '100000000'."}},"required":["token_in","token_out","amount_in"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_token_risk_scan","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed ERC-20 contract address on Base"}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_decode","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"tx_hash":{"type":"string","description":"0x-prefixed Base tx hash"}},"required":["tx_hash"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_explainer","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"50000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"tx_hash":{"type":"string","description":"0x-prefixed Base tx hash"}},"required":["tx_hash"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_base_tx_simulator","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"100000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_bazaar_blue_ocean","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"10000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_bazaar_blue_ocean","description":"Find empty niches in the x402 paid-MCP market. Reads CDP discovery (1000+ live services), clusters by keyword, surfaces categories with 0-1 services. Use to position a new paid tool in an uncontested slot. Returns: empty_niches (no services), thin_niches (1-2 services), saturated (5+ services to avoid), plus a recommended build target.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_bazaar_blue_ocean","tier":"metered","price_usdc":"0.01","input_schema":{"type":"object","properties":{"seed_keywords":{"type":"array","items":{"type":"string"},"description":"Optional list of candidate niche keywords to check. Empty = auto-mine from CDP data.","default":[]},"network":{"type":"string","enum":["base","solana","all"],"default":"all","description":"Filter CDP corpus by network. 'base' counts both eip155:8453 and 'base' string variants."},"max_niches":{"type":"integer","minimum":5,"maximum":50,"default":15}}}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"seed_keywords":{"type":"array","items":{"type":"string"},"description":"Optional list of candidate niche keywords to check. Empty = auto-mine from CDP data.","default":[]},"network":{"type":"string","enum":["base","solana","all"],"default":"all","description":"Filter CDP corpus by network. 'base' counts both eip155:8453 and 'base' string variants."},"max_niches":{"type":"integer","minimum":5,"maximum":50,"default":15}}}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_click","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"3000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"text":{"type":"string","description":"Substring of the element's visible text"}},"required":["text"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_eval","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"4000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_extract","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"3000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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)"}}}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"max_chars":{"type":"integer","default":4000,"description":"Cap on returned text length (max 80000)"}}}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_navigate","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"5000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_screenshot","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"8000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"}}}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"}}}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_browser_type","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_capability_bundle","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"20000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_capability_bundle","description":"Bundle 3-5 Onyx tools into one paid call at a discount. Atomic delivery (all-or-none), one AR-1 receipt for the whole chain, single x402 settlement vs N separate. Predefined bundles for proven workflows: safety_check_base (verify + risk_scan + audit), tx_full_inspect (explainer + simulator + decode), swap_prep (risk + dex_pair + quote), cross_chain (swap + bridge + chain_picker), agent_kyc (id + kya + oai).","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_capability_bundle","tier":"metered","price_usdc":"0.02","input_schema":{"type":"object","properties":{"bundle":{"type":"string","enum":["safety_check_base","tx_full_inspect","swap_prep","cross_chain","agent_kyc"],"description":"Which predefined bundle to execute."},"args":{"type":"object","description":"Shared input args for all tools in the bundle. Required keys per bundle: safety_check_base=[address], tx_full_inspect=[tx_hash], swap_prep=[token_in,token_out,amount_in], cross_chain=[token_in,token_out,amount_in,to_chain_id], agent_kyc=[wallet_or_did]."},"stop_on_error":{"type":"boolean","default":true,"description":"If true, halts on first tool error and returns partial results. If false, continues all tools."}},"required":["bundle","args"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"bundle":{"type":"string","enum":["safety_check_base","tx_full_inspect","swap_prep","cross_chain","agent_kyc"],"description":"Which predefined bundle to execute."},"args":{"type":"object","description":"Shared input args for all tools in the bundle. Required keys per bundle: safety_check_base=[address], tx_full_inspect=[tx_hash], swap_prep=[token_in,token_out,amount_in], cross_chain=[token_in,token_out,amount_in,to_chain_id], agent_kyc=[wallet_or_did]."},"stop_on_error":{"type":"boolean","default":true,"description":"If true, halts on first tool error and returns partial results. If false, continues all tools."}},"required":["bundle","args"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_contract_audit","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"500000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_contract_audit","description":"Full smart-contract security audit for any Base address — source + DEPLOYED reality + AI, SIGNED. Fetches verified source, runs curated static vuln detectors (tx.origin auth, delegatecall, selfdestruct, unchecked calls, unprotected init, owner mint/pause/blacklist, mutable fees), AND flags the live on-chain risks a static audit misses — upgradeable proxies (owner can swap logic post-audit) and self-destructed contracts. Optional Claude deep-pass for novel bugs. Returns ALLOW/REVIEW/BLOCK + 0-100 risk score, every finding Ed25519-signed. Cheaper than a manual audit, and unlike one it audits the contract as actually deployed.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_contract_audit","tier":"metered","price_usdc":"0.50","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Contract address on Base mainnet (0x... 20-byte hex)."},"deep":{"type":"boolean","default":true,"description":"Run the optional AI deep-pass for novel/business-logic bugs (only fires if the server has an AI key configured; degrades gracefully otherwise)."}},"required":["address"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"Contract address on Base mainnet (0x... 20-byte hex)."},"deep":{"type":"boolean","default":true,"description":"Run the optional AI deep-pass for novel/business-logic bugs (only fires if the server has an AI key configured; degrades gracefully otherwise)."}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_dns_lookup","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"host":{"type":"string","description":"Domain (example.com) or IP address"}},"required":["host"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_email_validate","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"email":{"type":"string","description":"Address to validate"}},"required":["email"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_ens_resolve","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"name":{"type":"string","description":"ENS name (foo.eth) or 0x-address for reverse"}},"required":["name"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_fact_check","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"50000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_fx_convert","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_geo_verify","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_geo_verify","description":"Geo ground-truth oracle. Give a URL (optionally an expected price / currency / keyword); get what a real regional vantage actually sees — final URL after geo-redirects, region price + currency, geo-block / 'not available in your country' walls, page language — plus explicit divergence flags vs your expectation. Catches region-gating a datacenter-IP agent silently misses. Never guesses.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_geo_verify","tier":"metered","price_usdc":"0.25","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Full URL (http/https) to observe from the in-region vantage."},"expect_currency":{"type":"string","description":"Optional ISO currency you expect (e.g. 'USD'). If the in-region view shows a different currency, it's flagged as divergence."},"expect_keyword":{"type":"string","description":"Optional text you expect present on the page. If absent in the in-region view (e.g. geo-gated content), it's flagged."}},"required":["url"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"Full URL (http/https) to observe from the in-region vantage."},"expect_currency":{"type":"string","description":"Optional ISO currency you expect (e.g. 'USD'). If the in-region view shows a different currency, it's flagged as divergence."},"expect_keyword":{"type":"string","description":"Optional text you expect present on the page. If absent in the in-region view (e.g. geo-gated content), it's flagged."}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_hash_compute","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"}}}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"text":{"type":"string","description":"UTF-8 string to hash"},"b64":{"type":"string","description":"Or: base64-encoded bytes"}}}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_html_meta","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"URL to inspect"}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_ip_geolocate","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address"}},"required":["ip"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_jwt_decode","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"token":{"type":"string","description":"JWT (three base64url segments separated by .)"}},"required":["token"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_market_pulse","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"20000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_market_pulse","description":"One-call market snapshot of the paid x402 MCP economy. Returns top services by CDP visibility, blue-ocean niches with zero peers, saturated niches (5+ peers), Onyx pricing audit (over/under market by tool), and per-network split. Bloomberg-terminal for the agentic economy. Use for competitive intel, pricing decisions, niche selection.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_market_pulse","tier":"metered","price_usdc":"0.02","input_schema":{"type":"object","properties":{"compare_onyx_prices":{"type":"boolean","default":true,"description":"If true, include the Onyx pricing audit (our prices vs market median for matching capabilities)."},"blue_ocean_keywords":{"type":"array","items":{"type":"string"},"description":"Optional candidate capability tokens to check for blue-ocean status. Default = curated baseline of ~30 high-frequency agent capabilities."}}}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"compare_onyx_prices":{"type":"boolean","default":true,"description":"If true, include the Onyx pricing audit (our prices vs market median for matching capabilities)."},"blue_ocean_keywords":{"type":"array","items":{"type":"string"},"description":"Optional candidate capability tokens to check for blue-ocean status. Default = curated baseline of ~30 high-frequency agent capabilities."}}}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_mcp_router","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"10000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_mcp_router","description":"FIRST MCP meta-router. Describe a capability in plain English ('Base tx explainer', 'captcha OCR', 'DEX swap quote'); the router queries the entire CDP x402 discovery corpus, scores every candidate by price + freshness + schema match + network preference, and returns the top N ranked routes with full call templates (URL, method, body schema, expected price, payTo, asset, network). The agent calls the top route directly. Onyx is the aggregator; every other paid MCP is the supply.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_mcp_router","tier":"metered","price_usdc":"0.01","input_schema":{"type":"object","properties":{"capability":{"type":"string","description":"Plain-English description of what the agent needs. E.g. 'Base transaction explainer', 'swap quote Solana', 'captcha OCR'."},"max_price_usdc":{"type":"number","description":"Cap on per-call price. Omit for no cap. Use 0.01 for cheap-only."},"preferred_network":{"type":"string","description":"Preferred network: 'eip155:8453' (Base), 'eip155:84532' (Base Sepolia), 'solana', etc. Sorted higher when present."},"top_n":{"type":"integer","minimum":1,"maximum":10,"default":3,"description":"Number of route candidates to return."},"include_onyx_routes":{"type":"boolean","default":true,"description":"If false, exclude Onyx Actions endpoints from the comparison (e.g. for independent third-party benchmark)."}},"required":["capability"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"capability":{"type":"string","description":"Plain-English description of what the agent needs. E.g. 'Base transaction explainer', 'swap quote Solana', 'captcha OCR'."},"max_price_usdc":{"type":"number","description":"Cap on per-call price. Omit for no cap. Use 0.01 for cheap-only."},"preferred_network":{"type":"string","description":"Preferred network: 'eip155:8453' (Base), 'eip155:84532' (Base Sepolia), 'solana', etc. Sorted higher when present."},"top_n":{"type":"integer","minimum":1,"maximum":10,"default":3,"description":"Number of route candidates to return."},"include_onyx_routes":{"type":"boolean","default":true,"description":"If false, exclude Onyx Actions endpoints from the comparison (e.g. for independent third-party benchmark)."}},"required":["capability"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_merchant_fact_check","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_merchant_fact_check","description":"Pre-checkout merchant fact oracle. Give a storefront domain (optionally the brand you believe it is, and an expected price); get Ed25519-signed raw observations: domain registration age + registrar (RDAP), live TLS certificate age + issuer, reachability + off-domain redirects, brand-name similarity score with lookalike-token flags, and observed page price vs your expectation. Facts only, method disclosed per field — Onyx never asserts 'legit' or 'scam'; the signature proves the observation is genuine and untampered.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_merchant_fact_check","tier":"premium","price_usdc":"0.25","input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Storefront domain or URL, e.g. brand-outlet-sale.com or https://shop.example.com/p/1"},"brand":{"type":"string","description":"Optional brand name you believe this storefront represents (e.g. 'Russell & Bromley'). Enables the brand-similarity observation."},"expected_price":{"type":"number","description":"Optional price you were quoted/expect. If the page shows a price, the deviation percentage is reported as a fact."},"product_url":{"type":"string","description":"Optional specific product URL to extract the observed price from (defaults to the domain root)."}},"required":["domain"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"domain":{"type":"string","description":"Storefront domain or URL, e.g. brand-outlet-sale.com or https://shop.example.com/p/1"},"brand":{"type":"string","description":"Optional brand name you believe this storefront represents (e.g. 'Russell & Bromley'). Enables the brand-similarity observation."},"expected_price":{"type":"number","description":"Optional price you were quoted/expect. If the page shows a price, the deviation percentage is reported as a fact."},"product_url":{"type":"string","description":"Optional specific product URL to extract the observed price from (defaults to the domain root)."}},"required":["domain"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_kya_verify","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_kya_verify","description":"Verify an Onyx Protocol KYA (Know Your Agent) credential. Pass a credential id (e.g. 'kya_01KSHZ...'); returns ok + scope + spend cap + issuer + revocation status. Use to gate paid tool access, audit agent operations, or compose with x402 settlement for trust-tier routing. Calls Onyx Protocol verifier.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_kya_verify","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"credential_id":{"type":"string","description":"KYA credential id (kya_*)."}},"required":["credential_id"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"credential_id":{"type":"string","description":"KYA credential id (kya_*)."}},"required":["credential_id"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_oai_lookup","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_oai_lookup","description":"Look up the Onyx Agentic Index (OAI) score for an agent identity. Input a DID (did:web:..., did:eth:0x...) or wallet address; returns composite 0-1000 score + per-signal breakdown + last-updated timestamp. Use for trust-tier gating, routing decisions, partnership vetting.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_oai_lookup","tier":"metered","price_usdc":"0.001","input_schema":{"type":"object","properties":{"identity":{"type":"string","description":"Agent DID (did:web:..., did:eth:0x...) or raw 0x... wallet address."}},"required":["identity"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"identity":{"type":"string","description":"Agent DID (did:web:..., did:eth:0x...) or raw 0x... wallet address."}},"required":["identity"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_paper_synthesis","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"30000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_paper_synthesis","description":"Structured synthesis across N academic papers. Input: 2-10 OpenAlex IDs or DOIs. Output: per-paper metadata (title, year, citations, abstract), thematic overlap (shared keywords across abstracts), citation co-graph (papers that cite multiple inputs), and an agent-actionable summary stating what's converged vs contested. Composes after onyx_research_intel.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_paper_synthesis","tier":"metered","price_usdc":"0.03","input_schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":10,"description":"OpenAlex work IDs (W123..., or full URL) or DOIs (10.xxxx/...)."}},"required":["ids"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":10,"description":"OpenAlex work IDs (W123..., or full URL) or DOIs (10.xxxx/...)."}},"required":["ids"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_partnership_check","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"20000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_partnership_check","description":"Where does Onyx plug into Company X's stack? Probes their domain + CDP discovery + awesome-x402/awesome-mcp + GitHub for MCP/x402 footprint. Returns gap analysis: which of Onyx's 64+ tools complement what they already ship. Plus a suggested integration angle and signal strength. Built for outbound partnership / merger / B2B sales conversations.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_partnership_check","tier":"metered","price_usdc":"0.02","input_schema":{"type":"object","properties":{"company":{"type":"string","description":"Company name (e.g. 'Catena Labs') or root domain (e.g. 'catena.xyz')."},"github_org":{"type":"string","description":"Optional GitHub org slug. If known, narrows the repo probe."}},"required":["company"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"company":{"type":"string","description":"Company name (e.g. 'Catena Labs') or root domain (e.g. 'catena.xyz')."},"github_org":{"type":"string","description":"Optional GitHub org slug. If known, narrows the repo probe."}},"required":["company"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_password_strength","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"password":{"type":"string","description":"Password to score"}},"required":["password"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_pm_settlement_watch","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"5000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_research_intel","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"50000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_research_intel","description":"Research intel — has someone solved X already? Queries 240M+ academic works via OpenAlex (includes arXiv preprints, conference papers, journal articles), ranks by citation count + recency + relevance, returns top N papers with one-line abstract excerpts, citation counts, and author names. Built for autonomous agents that need to check prior art before burning cycles re-deriving a known result. Fallback to Semantic Scholar.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_research_intel","tier":"metered","price_usdc":"0.05","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Research question or keyword string. Plain English works; OpenAlex handles tokenization."},"top_n":{"type":"integer","minimum":1,"maximum":20,"default":5,"description":"How many papers to return."},"min_citations":{"type":"integer","minimum":0,"default":0,"description":"Filter out papers with fewer than this many citations. Use 50+ to surface only well-known work."},"year_from":{"type":"integer","minimum":1900,"maximum":2100,"description":"Optional: only return papers from this year onward."},"sort_by":{"type":"string","enum":["relevance","citations","recency"],"default":"relevance","description":"Ranking. citations = highest cited first; recency = newest first; relevance = OpenAlex semantic match."}},"required":["query"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"query":{"type":"string","description":"Research question or keyword string. Plain English works; OpenAlex handles tokenization."},"top_n":{"type":"integer","minimum":1,"maximum":20,"default":5,"description":"How many papers to return."},"min_citations":{"type":"integer","minimum":0,"default":0,"description":"Filter out papers with fewer than this many citations. Use 50+ to surface only well-known work."},"year_from":{"type":"integer","minimum":1900,"maximum":2100,"description":"Optional: only return papers from this year onward."},"sort_by":{"type":"string","enum":["relevance","citations","recency"],"default":"relevance","description":"Ranking. citations = highest cited first; recency = newest first; relevance = OpenAlex semantic match."}},"required":["query"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_retail_price_check","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"20000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_retail_price_check","description":"Ground-truth retail oracle. Give a product URL; get the real current price, currency, and in-stock state as actually fetched now — with the extraction source (JSON-LD / OpenGraph / microdata) as evidence. Covers the long tail of no-API shops where agents otherwise hallucinate prices. Never guesses: returns price=None with confidence='none' when the page exposes no machine-readable price. Use before an agent quotes, compares, or transacts on a price it would otherwise invent.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_retail_price_check","tier":"metered","price_usdc":"0.02","input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Full product page URL (http/https). The exact page whose price + availability you want observed."},"expect_price":{"type":"number","description":"Optional. A price you believe is current. If given, the result includes matches_expected:bool + drift so a caller can detect a stale/hallucinated quote."}},"required":["url"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"Full product page URL (http/https). The exact page whose price + availability you want observed."},"expect_price":{"type":"number","description":"Optional. A price you believe is current. If given, the result includes matches_expected:bool + drift so a caller can detect a stale/hallucinated quote."}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_review_truth","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"150000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_review_truth","description":"Reputation ground-truth oracle. Give a product/business/service (+ optional aspect like 'shipping' or 'support'); get a SIGNED, web-grounded read of what real customers say right now — the aggregated public sentiment and the cited sources, as actually observed. Onyx attests WHAT WAS OBSERVED, not a trust ruling: the agent forms its own judgment from the signed evidence. For an agent about to recommend, buy from, or partner with an entity. Never fabricated.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_review_truth","tier":"premium","price_usdc":"0.15","input_schema":{"type":"object","properties":{"entity":{"type":"string","description":"Product, business, service, or seller to check the live reputation of."},"aspect":{"type":"string","description":"Optional specific aspect to focus on (e.g. 'shipping speed', 'customer support', 'refunds')."}},"required":["entity"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"entity":{"type":"string","description":"Product, business, service, or seller to check the live reputation of."},"aspect":{"type":"string","description":"Optional specific aspect to focus on (e.g. 'shipping speed', 'customer support', 'refunds')."}},"required":["entity"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_robots_check","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_secure_payment","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_secure_payment","description":"Secure-transaction RAIL: one signed clearance before an agent sends funds. Give recipient + amount (and optionally a contract address or counterparty ERC-8004 agent id); Onyx runs the full security stack — recipient firewall, contract audit, counterparty reputation — and returns a single PASS / REVIEW / FAIL verdict + risk score, plus the Onyx take-rate quote (bps of value secured). Ed25519-signed so the clearance is provable. The check a serious agent runs before moving real money. Onyx never takes custody.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_secure_payment","tier":"premium","price_usdc":"0.25","input_schema":{"type":"object","properties":{"recipient":{"type":"string","description":"0x recipient address the agent is about to pay (Base)."},"amount_usdc":{"type":"number","description":"Amount about to be sent, in USDC. Drives both the risk threshold and the take-rate quote."},"contract_address":{"type":"string","description":"Optional. If the payment interacts with a contract, its 0x address — triggers a full contract audit."},"counterparty_agent_id":{"type":"integer","description":"Optional. If paying another AI agent, its ERC-8004 id — triggers a reputation check."}},"required":["recipient","amount_usdc"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"recipient":{"type":"string","description":"0x recipient address the agent is about to pay (Base)."},"amount_usdc":{"type":"number","description":"Amount about to be sent, in USDC. Drives both the risk threshold and the take-rate quote."},"contract_address":{"type":"string","description":"Optional. If the payment interacts with a contract, its 0x address — triggers a full contract audit."},"counterparty_agent_id":{"type":"integer","description":"Optional. If paying another AI agent, its ERC-8004 id — triggers a reputation check."}},"required":["recipient","amount_usdc"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_signature_guard","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"30000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_signature_guard","description":"Pre-signature firewall for OFF-CHAIN drains — the check before your agent signs an EIP-712 typed-data message (Permit, Permit2, Seaport order). These drain a wallet with no on-chain approval: the signature itself is the authorization. Give the typed-data; Onyx identifies what it authorizes, flags unlimited token-permit values, EOA/unverified spenders, NFT-order signatures, and bad deadlines, and returns a SIGNED ALLOW/REVIEW/BLOCK + plain-English explanation. Covers the #2 wallet-drain vector that on-chain tx checks miss entirely.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_signature_guard","tier":"metered","price_usdc":"0.03","input_schema":{"type":"object","properties":{"typed_data":{"type":"object","description":"The full EIP-712 typed-data object the agent is about to sign: {domain, primaryType, types, message}."}},"required":["typed_data"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"typed_data":{"type":"object","description":"The full EIP-712 typed-data object the agent is about to sign: {domain, primaryType, types, message}."}},"required":["typed_data"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_jupiter_quote","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_metadata","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"mint":{"type":"string","description":"base58-encoded SPL mint address"}},"required":["mint"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_token_risk_scan","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"250000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"mint":{"type":"string","description":"base58-encoded SPL mint address"}},"required":["mint"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_tx_explainer","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"50000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"signature":{"type":"string","description":"base58-encoded Solana tx signature (~88 chars)"}},"required":["signature"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_solana_wallet_activity","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"2000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"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"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_token_metadata","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed ERC-20 contract address on Base"}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_token_risk","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"100000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_token_risk","description":"Signed token-security oracle. Give a token contract (and chain); get the real on-chain risk facts as read right now — honeypot status, buy/sell tax, mintable, ownership-reclaim, transfer-pausable, proxy, LP-lock, holder count — plus a transparent 0-100 risk score and verdict you can recompute from the itemized factors. Ed25519-signed + timestamped so an agent can PROVE it screened a token before buying. Use before any agent swaps into or quotes an ERC-20 it didn't issue.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_token_risk","tier":"metered","price_usdc":"0.10","input_schema":{"type":"object","properties":{"contract":{"type":"string","description":"Token contract address (0x… 20-byte hex) to screen."},"chain":{"type":"string","description":"Chain the token lives on. Name ('base','ethereum','bsc','polygon','arbitrum','optimism','avalanche') or numeric chain id. Default 'base'.","default":"base"}},"required":["contract"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"contract":{"type":"string","description":"Token contract address (0x… 20-byte hex) to screen."},"chain":{"type":"string","description":"Chain the token lives on. Name ('base','ethereum','bsc','polygon','arbitrum','optimism','avalanche') or numeric chain id. Default 'base'.","default":"base"}},"required":["contract"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_tx_guard","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"100000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_tx_guard","description":"Pre-payment security firewall. Give the recipient address your agent is about to pay (Base); get a SIGNED ALLOW/REVIEW/BLOCK verdict + risk score from real on-chain checks: EOA-vs-contract, contract code/verification, account age (tx count), funding history, burn/null-address guard, and sink/honeypot heuristics. Catches paying a brand-new, unverified, or drain-shaped recipient BEFORE the money leaves. Never guesses — every field is observed on-chain and Ed25519-signed.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_tx_guard","tier":"metered","price_usdc":"0.10","input_schema":{"type":"object","properties":{"address":{"type":"string","description":"0x recipient address your agent is about to send funds to (Base mainnet)."},"amount_usdc":{"type":"number","description":"Optional amount about to be sent (USDC). Larger amounts raise the review threshold."}},"required":["address"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"address":{"type":"string","description":"0x recipient address your agent is about to send funds to (Base mainnet)."},"amount_usdc":{"type":"number","description":"Optional amount about to be sent (USDC). Larger amounts raise the review threshold."}},"required":["address"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_tx_preflight","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"100000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_tx_preflight","description":"Universal pre-sign firewall — the check before your agent signs ANY transaction. Give the tx (to, data, value); Onyx decodes the 4-byte selector + args, tells you in plain terms what it does, and flags the wallet-drain patterns: unlimited approve(), setApprovalForAll (blanket NFT approval), transfers to fresh/EOA recipients, raw ETH sends to unknown addresses, and calls to unverified targets. Returns a SIGNED ALLOW/REVIEW/BLOCK + human explanation. The single highest-frequency safety gate an on-chain agent has — every signed tx should pass through it.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_tx_preflight","tier":"metered","price_usdc":"0.10","input_schema":{"type":"object","properties":{"to":{"type":"string","description":"The transaction's `to` address (target contract or recipient). Required."},"data":{"type":"string","description":"The transaction calldata (0x-hex). Omit/empty for a plain ETH transfer."},"value_wei":{"type":"string","description":"Optional. ETH value being sent, in wei (base-10 string)."}},"required":["to"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"to":{"type":"string","description":"The transaction's `to` address (target contract or recipient). Required."},"data":{"type":"string","description":"The transaction calldata (0x-hex). Omit/empty for a plain ETH transfer."},"value_wei":{"type":"string","description":"Optional. ETH value being sent, in wei (base-10 string)."}},"required":["to"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_parse","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"URL to parse"}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_text","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"HTTPS URL to fetch"},"max_chars":{"type":"integer","default":50000,"description":"Truncate output (max 200000)"}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_url_unshorten","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"url":{"type":"string","description":"URL to unshorten"}},"required":["url"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_usage_rights","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"10000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","resource":"https://onyx-actions.onrender.com/v1/onyx_usage_rights","description":"Mint a signed Output Usage-Rights Envelope for an agent-produced artifact: a portable, Ed25519-signed declaration of what the buyer may do with it (resale, redistribution, derivatives, model training, cache TTL). Bind it to the artifact by hash and optionally to an x402 payment. Verify free with onyx_attestation_verify. Rights travel with the data — any downstream holder can check the terms offline.","mimeType":"application/json","outputSchema":{"type":"object"},"maxTimeoutSeconds":60,"extra":{"name":"onyx_usage_rights","tier":"metered","price_usdc":"0.01","input_schema":{"type":"object","properties":{"output_hash":{"type":"string","description":"sha256:<hex> of the artifact the rights apply to"},"output":{"description":"Or: the artifact itself (object or string); it is hashed with sha256 over its JCS-canonical form"},"rights":{"type":"object","description":"Rights grid. Keys: resale, redistribute, derivatives, retrain — each 'allow' | 'deny' | 'with-attribution' | 'contact-licensor'. Plus optional cache_ttl_seconds (int)."},"licensor":{"type":"string","description":"Issuer of the rights (name, domain, or wallet)"},"licensee":{"type":"string","description":"Optional: who the rights are granted to (wallet/agent id); omit for bearer terms"},"payment_ref":{"type":"string","description":"Optional: x402 tx hash / receipt id binding rights to the purchase"},"expires_at":{"type":"integer","description":"Optional: unix time the grant lapses"}},"required":["rights","licensor"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"output_hash":{"type":"string","description":"sha256:<hex> of the artifact the rights apply to"},"output":{"description":"Or: the artifact itself (object or string); it is hashed with sha256 over its JCS-canonical form"},"rights":{"type":"object","description":"Rights grid. Keys: resale, redistribute, derivatives, retrain — each 'allow' | 'deny' | 'with-attribution' | 'contact-licensor'. Plus optional cache_ttl_seconds (int)."},"licensor":{"type":"string","description":"Issuer of the rights (name, domain, or wallet)"},"licensee":{"type":"string","description":"Optional: who the rights are granted to (wallet/agent id); omit for bearer terms"},"payment_ref":{"type":"string","description":"Optional: x402 tx hash / receipt id binding rights to the purchase"},"expires_at":{"type":"integer","description":"Optional: unix time the grant lapses"}},"required":["rights","licensor"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_user_agent_parse","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"user_agent":{"type":"string","description":"User-Agent header value"}},"required":["user_agent"]}},"output":{"type":"object","schema":{"type":"object"}}}}}},{"resource":"https://onyx-actions.onrender.com/v1/onyx_whois","type":"http","x402Version":2,"accepts":[{"scheme":"exact","network":"eip155:8453","maxAmountRequired":"1000","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","payTo":"0x3fD9ee1373562f894D322B37DFFAd7a5D2b2d78f","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"},"maxTimeoutSeconds":60,"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"]}}}],"extensions":{"bazaar":{"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name, e.g. example.com"}},"required":["domain"]}},"output":{"type":"object","schema":{"type":"object"}}}}}}],"facilitator":"https://facilitator.xpay.sh"}