{"powered_by": "BlindOracle", "count": 38, "count_paid": 37, "count_free": 0, "count_retired": 1, "services": [{"sku_id": "agent.prehire-check", "name": "Pre-Hire Agent Check", "description": "Pre-hire due-diligence check on an agent before you delegate it real spend authority: settlement history, dispute rate, and any flagged incidents, in one signed report.", "price_usd": 0.25, "url": "https://api.craigmbrown.com/v1/services/agent.prehire-check", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"agent_name": {"type": "string"}, "wallet": {"type": "string"}, "task_id": {"type": "string"}}, "required": [], "anyOf": [{"required": ["agent_name"], "type": "object"}, {"required": ["wallet"], "type": "object"}], "description": "Supply agent_name and/or wallet. The handler refuses with needs_input when both are absent (_h_prehire_check: `if not wallet and not name`)."}}, {"sku_id": "agent.trust-badge", "name": "Agent Trust Badge", "description": "$0.01 queryable trust badge summarizing an agent's verified settlement history \u2014 the minimum-viable signal to check before a first transaction. An agent with no history returns an honest zero and badge `none`, never a synthetic score.", "price_usd": 0.01, "url": "https://api.craigmbrown.com/v1/services/agent.trust-badge", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"agent_name": {"type": "string"}, "wallet": {"type": "string"}, "task_id": {"type": "string"}}, "required": [], "anyOf": [{"required": ["agent_name"], "type": "object"}, {"required": ["wallet"], "type": "object"}], "description": "Supply agent_name and/or wallet. The handler refuses with needs_input when both are absent (_h_trust_badge: `if not name and not wallet`)."}}, {"sku_id": "arbitration.dispute-settlement", "name": "Dispute Settlement \u2014 Operator-Panel Adjudication (disclosed)", "description": "Adjudication of a contested deliverable: both sides submit evidence and a signed verdict (upheld / overturned / withdrawn; ProofOfAdjudicatedOutcome 30129) is written to the settlement ledger. Disclosure: today the adjudicator is the BlindOracle operator panel \u2014 the verdict is unilateral and there is no buyer contest channel yet. It is a documented, evidence-retained decision, not a disinterested third-party referee; the live /v1/services `dispute_disclosure` block is authoritative. No charge if the required source cannot be fetched.", "price_usd": 5.0, "url": "https://api.craigmbrown.com/v1/services/arbitration.dispute-settlement", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"claim": {"type": "string"}, "evidence": {"type": "array", "items": {"type": "string"}}, "claimant": {"type": "string"}, "respondent": {"type": "string"}, "requested_remedy": {"type": "string"}, "disputed_job_id": {"type": "string"}}, "required": ["claim"]}}, {"sku_id": "attestation.single-use-seal", "name": "Single-Use Attestation Seal", "description": "A single-use cryptographic seal proving a specific deliverable was produced by a specific agent at a specific time and has not been altered since \u2014 the receipt a counterparty can independently check.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/attestation.single-use-seal", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"attestation_id": {"type": "string"}, "issued_to": {"type": "string"}, "ttl_seconds": {"type": "integer"}}, "required": ["attestation_id"]}}, {"sku_id": "content.youtube-research", "name": "YouTube Transcript Research", "description": "Researches YouTube videos from their real transcripts: pass video URLs in the task or in `urls`, or describe a topic and it finds relevant videos. Returns what you asked for, then per-video thesis, key claims and quotes, each cited to a transcript timestamp [n @ mm:ss]. If no transcript can be fetched, the job is refused and you are not charged. Refuses, with no charge, when fetched transcript cannot be fetched.", "price_usd": 0.03, "url": "https://api.craigmbrown.com/v1/services/content.youtube-research", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "crypto.market-analyzer", "name": "Crypto Market Intelligence", "description": "Real-time market data, technical indicators, and sentiment for any ticker, run by crypto-market-agent-sonnet against live exchange data rather than cached snapshots. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Broader single-ticker view than any one oracle.* SKU; feeds crypto.investment-plays' risk scoring. May deliver with a first-line DEGRADED notice when live data is unavailable.", "price_usd": 0.02, "url": "https://api.craigmbrown.com/v1/services/crypto.market-analyzer", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "data.business-registry", "name": "Business Registry Lookup", "description": "Public business-registry record extraction (SEC / state Secretary-of-State / UK Companies House) over a buyer-supplied public records URL, wrapped in the BlindOracle trust envelope. Public records only.", "price_usd": 0.1, "url": "https://api.craigmbrown.com/v1/services/data.business-registry", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"registry_url": {"type": "string"}, "entity": {"type": "string"}}, "required": ["registry_url"]}}, {"sku_id": "data.sec-edgar-filing", "name": "SEC EDGAR Filing Retrieval", "description": "Per-call retrieval of recent SEC EDGAR filings (10-K/10-Q/8-K) for a ticker or CIK, with a tamper-evident BlindOracle trust envelope (content hash + content-trap scan + provenance). Public-domain source.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/data.sec-edgar-filing", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"ticker": {"type": "string"}, "cik": {"type": "string"}, "form": {"type": "string"}, "count": {"type": "integer"}}, "required": [], "anyOf": [{"required": ["ticker"], "type": "object"}, {"required": ["cik"], "type": "object"}], "description": "Supply ticker or cik. edgar_filing_lookup returns `missing ticker or cik` when both are absent, and `ticker_not_found` if the ticker is not a real symbol \u2014 prose in this field is treated as the ticker."}}, {"sku_id": "data.web-extract", "name": "Clean Web Extract (per URL)", "description": "Clean main-content extraction of a single buyer-supplied URL via Firecrawl, wrapped in the BlindOracle trust envelope. Thin extraction tool; no data inventory held.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/data.web-extract", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"url": {"type": "string"}, "only_main_content": {"type": "boolean"}}, "required": ["url"]}}, {"sku_id": "deliberation.multi-agent-debate", "name": "Multi-Agent Deliberation Council", "description": "5-11 agent panel debate with 11 LLM models, structured voting, forced decision-making May deliver with a first-line DEGRADED notice when buyer question is unavailable.", "price_usd": 2.0, "url": "https://api.craigmbrown.com/v1/services/deliberation.multi-agent-debate", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "finops.token-spend-audit", "name": "Token Spend Audit", "description": "Independent audit of an agent's actual token spend against its budget and declared task scope \u2014 surfaces cost overruns or scope creep a counterparty wouldn't otherwise see.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/finops.token-spend-audit", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"records": {"type": "array", "maxItems": 10000, "items": {"type": "object", "properties": {"ts": {"type": "string", "description": "ISO-8601 timestamp"}, "provider": {"type": "string"}, "model": {"type": "string"}, "input_tokens": {"type": "integer", "minimum": 0}, "output_tokens": {"type": "integer", "minimum": 0}, "cost_usd": {"type": "number", "minimum": 0}, "max_tokens": {"type": "integer", "minimum": 0}, "prompt_sha256": {"type": "string"}, "agent": {"type": "string"}}, "required": ["ts"]}}, "window_days": {"type": "number", "minimum": 0}, "price_book": {"type": "object"}, "thresholds": {"type": "object"}}, "required": ["records"]}}, {"sku_id": "ops.due-diligence-scan", "name": "Due Diligence Pre-Screening", "description": "Automated DD scan: financials, litigation, key personnel, IP, media sentiment, red flags Refuses, with no charge, when \u22655 web sources + registry/EDGAR lookups cannot be fetched. Refuses, with no charge, when the required source (\u22655 web sources + registry/EDGAR lookups) cannot be fetched.", "price_usd": 1.0, "url": "https://api.craigmbrown.com/v1/services/ops.due-diligence-scan", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "ops.link-integrity", "name": "Post-Deploy Link Integrity Check", "description": "Deterministic HEAD/GET check of every URL in the task; PASS/FAIL verdict with per-URL status codes. Post-deploy verification SKU (RQ-BO-DELEGATE-02).", "price_usd": 0.01, "url": "https://api.craigmbrown.com/v1/services/ops.link-integrity", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string", "example": "Check these links: https://craigmbrown.com/blindoracle/ https://api.craigmbrown.com/v1/health"}}, "required": ["prompt"]}}, {"sku_id": "oracle.alert-generator", "name": "Alert Generator", "description": "Defines a custom price/event alert and returns its current trigger state \u2014 armed, fired, or stale \u2014 not just the spec. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Reads off oracle.volatility-monitor and oracle.price-feed; this SKU is the trigger layer, not the data layer. Refuses, with no charge, when live price + buyer threshold fields cannot be fetched.", "price_usd": 0.02, "url": "https://api.craigmbrown.com/v1/services/oracle.alert-generator", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"pair": {"type": "string", "description": "e.g. BTC-USD"}, "condition": {"type": "string", "enum": ["above", "below"]}, "threshold": {"type": "number"}, "task": {"type": "string", "description": "alternative: a phrase like 'alert when BTC above 80000'"}}, "required": ["pair", "condition", "threshold"], "additionalProperties": true}}, {"sku_id": "oracle.comprehensive-report", "name": "Comprehensive Report", "description": "Consolidated market/asset report combining price, volatility, sentiment, and arbitrage reads for one ticker across venues, run by crypto-market-agent-sonnet. Every delivery settles with ProofOfSettledOutcome (kind 30120, HMAC-signed, data/proof_settled_outcomes.jsonl) \u2014 verifiable proof the report was paid for and delivered, not just claimed. Broader scope than any single oracle.* SKU below; narrower and cheaper than security.massat-audit's compliance-grade evidence. May deliver with a first-line DEGRADED notice when live data is unavailable.", "price_usd": 0.2, "url": "https://api.craigmbrown.com/v1/services/oracle.comprehensive-report", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.cross-chain-prices", "name": "Cross-Chain Prices", "description": "Aggregates a token's price across multiple chains and venues (DEX + CEX) into one comparable read, flagging the highest-deviation pair. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Narrower than oracle.comprehensive-report (single metric, not a full report); feeds oracle.market-arbitrage's spread detection. Refuses, with no charge, when live price feed, \u22652 chains cannot be fetched.", "price_usd": 0.03, "url": "https://api.craigmbrown.com/v1/services/oracle.cross-chain-prices", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.historical-analysis", "name": "Historical Analysis", "description": "Historical trend and pattern analysis for an asset or time series, identifying the specific pattern rather than a generic 'trending up/down' label. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Feeds crypto.investment-plays' entry/exit logic; distinct from oracle.volatility-monitor's real-time (not historical) read. Refuses, with no charge, when price history \u226530d cannot be fetched.", "price_usd": 0.08, "url": "https://api.craigmbrown.com/v1/services/oracle.historical-analysis", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.market-arbitrage", "name": "Market Arbitrage", "description": "Detects live cross-venue arbitrage spreads for a given asset and returns an actionable entry/exit spread, not just a price delta. Built on oracle.cross-chain-prices' price aggregation. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Pairs with crypto.investment-plays for a full execution plan. Refuses, with no charge, when live prices from \u22652 venues cannot be fetched.", "price_usd": 0.1, "url": "https://api.craigmbrown.com/v1/services/oracle.market-arbitrage", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.price-feed", "name": "Oracle Price Feed", "description": "Real-time price feed for a named pair and venue, with the source cited per read instead of a black-box number. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). The base data layer the other oracle.* SKUs (arbitrage, volatility, alerts) are built on. Refuses, with no charge, when live price feed cannot be fetched. Refuses, with no charge, when the required source (live price feed) cannot be fetched.", "price_usd": 0.02, "url": "https://api.craigmbrown.com/v1/services/oracle.price-feed", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.sentiment-analysis", "name": "Sentiment Analysis", "description": "Social + news sentiment read for a named crypto asset or topic, scored and sourced (not a raw keyword count). Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Same sentiment methodology as research.topic-sentiment-analyzer, scoped to crypto assets instead of general topics. May deliver with a first-line DEGRADED notice when live data is unavailable.", "price_usd": 0.06, "url": "https://api.craigmbrown.com/v1/services/oracle.sentiment-analysis", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "oracle.volatility-monitor", "name": "Volatility Monitor", "description": "Real-time volatility read for a trading pair with configurable alert thresholds you can act on. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Complements oracle.alert-generator (fires the alert) and oracle.historical-analysis (explains the trend behind the number). Refuses, with no charge, when live price history cannot be fetched. Refuses, with no charge, when the required source (live price history) cannot be fetched.", "price_usd": 0.04, "url": "https://api.craigmbrown.com/v1/services/oracle.volatility-monitor", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "prediction.blindoracle", "name": "Prediction Market Lookup (no market state \u2014 refuses no-charge)", "description": "RETIRED (RQ-PRED-RETIRE-01, 2026-07-19) \u2014 the underlying contract is deployed on Base mainnet with zero markets, so there is no market state to query. Priced at 0.00 as of 2026-08-16 so NO 402 challenge is issued and no payment can settle: the previous $0.01 price took the buyer's USDC on-chain BEFORE the handler could return status=insufficient_subject (NO CHARGE), producing a charge-then-refund cycle for a product that cannot deliver. Kept listed for catalog completeness. See specs/decision-retire-prediction-markets.md", "price_usd": 0.0, "url": "https://api.craigmbrown.com/v1/services/prediction.blindoracle", "status": "retired", "mode": "discovery_only", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "procurement.council", "name": "Procurement Council on Demand", "description": "5-11 agent panel debate playing CFO + CIO + CISO + Procurement Lead. Forced vote on any vendor decision. Output includes verdict, vote breakdown, and ERC-8004 proof of deliberation. Refuses, with no charge, when \u22653 web sources about the subject cannot be fetched. Refuses, with no charge, when the required source (\u22653 web sources about the subject) cannot be fetched.", "price_usd": 2.0, "url": "https://api.craigmbrown.com/v1/services/procurement.council", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "procurement.trust-layer", "name": "Procurement Trust Layer", "description": "Signed, ledger-derived trust evidence about a NAMED BlindOracle agent (pass the agent name or erc8004 id as `subject`): passport status, audit-report count (ProofOfAuditReport 30105), dispute record, settlement-proof attestations, and revocation flags \u2014 each field read from the live ledgers, never fabricated. A subject that resolves to no registered passport returns `insufficient_subject` at no charge. It does NOT research external companies; use procurement.vendor-vetting or ops.due-diligence-scan for that.", "price_usd": 0.01, "url": "https://api.craigmbrown.com/v1/services/procurement.trust-layer", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string", "example": "agent_name: tb-craigmbrown-website"}}, "required": ["prompt"]}}, {"sku_id": "procurement.vendor-vetting", "name": "AI Vendor Vetting", "description": "Structured vendor risk assessment across four lenses: financial health, security posture (OWASP ASI01-10), adverse media and litigation, and supplier reputation. Returns a 0-10 risk score, per-category findings, and red flags. Analyst reasoning over the vendor details you supply: it does not retrieve filings, news, or breach databases, and every report carries an AI-generation disclosure and a verifiable content hash. For an automated audit of a live agent system, see security.massat-audit. Refuses, with no charge, when \u22655 web sources incl. vendor's published terms cannot be fetched.", "price_usd": 99.0, "url": "https://api.craigmbrown.com/v1/services/procurement.vendor-vetting", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "reputation.lookup", "name": "Agent Reputation Lookup", "description": "Look up an agent's settlement track record before you transact with it: completed vs. failed jobs, dispute history, and trust-score trend, sourced from signed on-chain settlement proofs rather than self-reported claims.", "price_usd": 0.01, "url": "https://api.craigmbrown.com/v1/services/reputation.lookup", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"task": {"type": "string", "description": "agent_id to look up, e.g. 'agent_id: budget-tracker-agent' or the bare name"}}, "required": ["task"]}}, {"sku_id": "research.topic-deep-researcher", "name": "Deep Topic Research", "description": "Structured research brief (exec summary, mechanisms, alternatives, risks, [n] citations) synthesized over live web search results plus any `urls` you supply \u2014 each supplied URL is fetched, content-scanned and cited as a numbered source. It is a $0.05 search-and-synthesize pass, not a crawler: URLs not passed in `urls` are not opened, and claims the sources do not cover are marked '(unverified \u2014 no source)'. Settlement proof: ProofOfSettledOutcome (kind 30120). Deeper than research.topic-news-scanner; web + supplied documents vs content.youtube-research's video-only pool. Refuses, with no charge, when \u22655 fetched web sources cannot be fetched.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/research.topic-deep-researcher", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string", "description": "The research question or topic."}, "urls": {"type": "array", "items": {"type": "string", "format": "uri"}, "maxItems": 8, "description": "Optional pages to fetch and cite as sources (max 8, ~4k chars each). Without this the brief relies on live web search only."}}, "required": ["prompt"]}}, {"sku_id": "research.topic-news-scanner", "name": "News Intelligence Scanner", "description": "Fast real-time news scan across 44+ curated domains (configs/search_domain_profiles.json), every item source-attributed. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). The quick-scan tier below research.topic-deep-researcher's slower, citation-grade report. Refuses, with no charge, when \u22653 fetched web sources cannot be fetched. Refuses, with no charge, when the required source (\u22653 fetched web sources) cannot be fetched.", "price_usd": 0.02, "url": "https://api.craigmbrown.com/v1/services/research.topic-news-scanner", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "research.topic-sentiment-analyzer", "name": "Sentiment Analysis", "description": "Opinion and sentiment mapping across social, expert, and community channels for a named topic, scored per-channel rather than one blended number. Settlement proof: ProofOfSettledOutcome (kind 30120, data/proof_settled_outcomes.jsonl). Same methodology as oracle.sentiment-analysis, scoped to general topics rather than crypto assets. Refuses, with no charge, when \u22653 fetched web sources cannot be fetched. Refuses, with no charge, when the required source (\u22653 fetched web sources) cannot be fetched.", "price_usd": 0.03, "url": "https://api.craigmbrown.com/v1/services/research.topic-sentiment-analyzer", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "security.audit-attestation", "name": "AI Audit Attestation (Neutral Notary)", "description": "Neutral third-party notarization of an AI audit result: we did not run the audit, we attest that a specified audit was performed and its findings match what's claimed \u2014 the credential a checkpoint can trust without re-running the audit itself.", "price_usd": 0.5, "url": "https://api.craigmbrown.com/v1/services/security.audit-attestation", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "security.concordium-card-verify", "name": "Concordium Agent Card Integrity + Badge Check", "description": "Verifies an agent's Concordium identity card integrity and badge status against the issuing registry \u2014 confirms the credential wasn't forged or revoked before you rely on it.", "price_usd": 0.02, "url": "https://api.craigmbrown.com/v1/services/security.concordium-card-verify", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"token_id": {"type": "string", "description": "CIS-8004 identity-card token id to verify"}, "task": {"type": "string", "description": "alternative: the token id as plain text"}}, "required": ["token_id"], "additionalProperties": true}}, {"sku_id": "security.enterprise-audit", "name": "Enterprise AI Security Audit (13-agent)", "description": "13-agent coordinated security audit producing a signed ProofOfAuditReport, Merkle-anchored to Base, for enterprises that need documented evidence an agent fleet was assessed before deployment \u2014 not a self-attestation. Refuses, with no charge, when the required source (buyer target) cannot be fetched.", "price_usd": 25.0, "url": "https://api.craigmbrown.com/v1/services/security.enterprise-audit", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"target": {"type": "string", "description": "agent name, code path, or endpoint URL to audit"}, "owner": {"type": "string"}, "scope": {"type": "string", "default": "full"}, "anchor": {"type": "boolean", "default": false}, "subject": {"type": "object", "description": "OPTIONAL buyer-supplied audit subject (RQ-BO-AUDIT-SUBJECT-01). Supply this when the agent under audit does not exist on BlindOracle's filesystem \u2014 i.e. any external agent. Without it a non-BlindOracle target returns insufficient_subject (uncharged). Your source never has to leave your machine: a {path: sha256} manifest plus declared_tools is enough to score the capability surface. Collect it with the blindoracle-sdk: AuditAPI.collect(paths).", "properties": {"manifest": {"type": "object", "description": "{relative_path: sha256_of_original_bytes} \u2014 binds the exact version audited. Recompute it offline to verify subject_digest."}, "artifacts": {"type": "object", "description": "OPTIONAL {relative_path: file_text}. Sending content upgrades the audit's evidence_class from notarized_manifest to observed_artifacts. Redact secrets before sending; the SDK does this for you."}, "declared_tools": {"type": "string", "description": "The agent's declared tool line, e.g. 'Bash, WebFetch, Write'. Alone this yields evidence_class self_declared."}, "capabilities": {"type": "array", "description": "OPTIONAL explicit capability list, e.g. ['bash','web','write']."}}}}, "required": ["target"], "description": "An agent identifier, plus \u2014 for any agent that does not exist on BlindOracle's own filesystem \u2014 a `subject` payload carrying a {path: sha256} manifest and/or the agent's declared tool line (collect it with blindoracle-sdk AuditAPI.collect(paths); your source never has to leave your machine). Without a resolvable subject the audit returns status=insufficient_subject with risk_score=null and is NOT charged. Fetching a git repo URL is not supported."}}, {"sku_id": "security.injection-resilience", "name": "Prompt-Injection Resilience Check", "description": "Tests whether a counterparty agent's input handling resists prompt-injection and content-trap patterns \u2014 a concrete resilience check, not a compliance checkbox.", "price_usd": 0.5, "url": "https://api.craigmbrown.com/v1/services/security.injection-resilience", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"target": {"type": "string"}}, "required": ["target"]}}, {"sku_id": "security.massat-audit", "name": "Multi-Agent Security Audit", "description": "Independent multi-agent security audit (OWASP ASI01-ASI10 coverage) of a counterparty agent or MCP server before you grant it tool access or spend authority. Findings are Merkle-committed and the audit report is signed.", "price_usd": 5.0, "url": "https://api.craigmbrown.com/v1/services/security.massat-audit", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"target": {"type": "string", "description": "REQUIRED auditable subject: a git repo URL, an agent manifest URL (.claude/agents/<id>.md), or a code path. A bare passport/identity with NO code returns insufficient_subject (not charged)."}, "owner": {"type": "string", "description": "optional owner / agent id for attribution"}, "scope": {"type": "string", "enum": ["quick", "full"], "default": "full"}, "anchor": {"type": "boolean", "default": false, "description": "anchor the proof on-chain (Base)"}, "subject": {"type": "object", "description": "OPTIONAL buyer-supplied audit subject (RQ-BO-AUDIT-SUBJECT-01). Supply this when the agent under audit does not exist on BlindOracle's filesystem \u2014 i.e. any external agent. Without it a non-BlindOracle target returns insufficient_subject (uncharged). Your source never has to leave your machine: a {path: sha256} manifest plus declared_tools is enough to score the capability surface. Collect it with the blindoracle-sdk: AuditAPI.collect(paths).", "properties": {"manifest": {"type": "object", "description": "{relative_path: sha256_of_original_bytes} \u2014 binds the exact version audited. Recompute it offline to verify subject_digest."}, "artifacts": {"type": "object", "description": "OPTIONAL {relative_path: file_text}. Sending content upgrades the audit's evidence_class from notarized_manifest to observed_artifacts. Redact secrets before sending; the SDK does this for you."}, "declared_tools": {"type": "string", "description": "The agent's declared tool line, e.g. 'Bash, WebFetch, Write'. Alone this yields evidence_class self_declared."}, "capabilities": {"type": "array", "description": "OPTIONAL explicit capability list, e.g. ['bash','web','write']."}}}}, "required": ["target"], "description": "An agent identifier, plus \u2014 for any agent that does not exist on BlindOracle's own filesystem \u2014 a `subject` payload carrying a {path: sha256} manifest and/or the agent's declared tool line (collect it with blindoracle-sdk AuditAPI.collect(paths); your source never has to leave your machine). Without a resolvable subject the audit returns status=insufficient_subject with risk_score=null and is NOT charged. Fetching a git repo URL is not supported."}}, {"sku_id": "security.massat-conformance", "name": "MASSAT Governance Conformance Check", "description": "Checks a counterparty agent's stated security posture against the MASSAT governance framework's actual requirements \u2014 flags claims that don't hold up.", "price_usd": 0.25, "url": "https://api.craigmbrown.com/v1/services/security.massat-conformance", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"secret_scoping": {"type": "object"}, "egress_custody": {"type": "object"}, "secret_leak_scan": {"type": "object"}, "tool_allowlist": {"type": "object"}, "delegation_proof": {"type": "object"}, "rule_mode_lifecycle": {"type": "object"}, "tier_gating": {"type": "object"}, "judge_isolation": {"type": "object"}, "proof_emission": {"type": "object"}, "circuit_breaker": {"type": "object"}}, "required": [], "minProperties": 1, "description": "Send a JSON OBJECT manifest with one or more of the 10 control keys. check_conformance returns `invalid_json` for prose and `manifest_must_be_a_json_object` for a non-object."}}, {"sku_id": "security.process-attestation", "name": "Process-Followed Attestation", "description": "Signed attestation that a specific process was followed (not just that an outcome occurred) \u2014 useful when a counterparty needs evidence of *how* something was done, not only *that* it was done.", "price_usd": 0.25, "url": "https://api.craigmbrown.com/v1/services/security.process-attestation", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"declared_process": {"type": "object"}, "run_evidence": {"type": "array", "maxItems": 4000}}, "required": ["declared_process", "run_evidence"]}}, {"sku_id": "translation.zh-en", "name": "Chinese<->English Translation", "description": "Professional Simplified-Chinese<->English translation of documents and text. Auto-detects direction, preserves formatting, names, and numbers. Offshore/PIPL-guarded (refuses mainland-CN data subjects). BO trust envelope (content hash + scan + provenance) on every deliverable.", "price_usd": 0.05, "url": "https://api.craigmbrown.com/v1/services/translation.zh-en", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string"}}, "required": ["prompt"]}}, {"sku_id": "trust.receipt-verify", "name": "BlindOracle Receipt Verification (seller-side)", "description": "Verify a BlindOracle receipt against the parts a buyer cannot check alone: is the proof_id really in BlindOracle's append-only proof rail, does its payload still hash to the stored row, and does the row's HMAC-SHA256 verify against the signing key. Also recomputes content_sha256 and confirms the Base payment, so one call is a complete answer. Deterministic, no LLM. The self-checkable half is free forever in the published verify-blindoracle-receipt skill (RQ-BO-RECEIPT-VERIFY-01).", "price_usd": 0.01, "url": "https://api.craigmbrown.com/v1/services/trust.receipt-verify", "status": "live", "mode": "x402", "tier": "utility", "input_schema": {"type": "object", "properties": {"prompt": {"type": "string", "description": "JSON preferred: {\"proof_id\":..., \"tx\":\"0x<64 hex>\", \"content\":..., \"content_sha256\":...}. Bare prose also works \u2014 proof_id, tx and digest are extracted. At least one subject is required or the call is not charged.", "example": "{\"tx\": \"0x0252f07f66af83c4196428fdb52c4e351bf74091be735d0ffd7249b3e55ad5e2\"}"}}, "required": ["prompt"]}}], "dispute_disclosure": {"adjudicator": "blindoracle_operator_panel", "neutrality": "unilateral", "buyer_contest_channel": "none", "verdict_vocabulary": ["upheld", "overturned", "withdrawn"], "proof_kind": 30129, "proof_kind_name": "ProofOfAdjudicatedOutcome", "evidence_retained": "data/job_disputes.jsonl", "paid_escalation_sku": {"sku_id": "arbitration.dispute-settlement", "price_usd": 5, "rail": "x402"}, "schema_version": "1.0"}, "kit": {"kit_version": "2026.09.29", "min_kit_version": "2026.09.03", "mcp_server_version": "1.1.0", "mcp_protocol_versions": ["2025-06-18", "2025-03-26", "2024-11-05"], "bootstrap_url": "https://craigmbrown.com/blindoracle/grok-bot-kit/BOOTSTRAP.md", "changelog_url": "https://craigmbrown.com/blindoracle/grok-bot-kit/README.md", "rule": "if your saved kit_version < min_kit_version, re-read bootstrap_url before doing anything else"}, "onchain_feedback": {"chain": "base", "chain_id": 8453, "reputation_registry": "0x8004BAa17C55a88189AE136b182e5fdA19dE9b63", "agent_id": 60979, "method": {"name": "giveFeedback", "signature": "giveFeedback(uint256,int128,uint8,string,string,string,string,bytes32)", "selector": "0x3c036a7e", "abi": {"name": "giveFeedback", "type": "function", "stateMutability": "nonpayable", "inputs": [{"name": "agentId", "type": "uint256"}, {"name": "value", "type": "int128"}, {"name": "valueDecimals", "type": "uint8"}, {"name": "tag1", "type": "string"}, {"name": "tag2", "type": "string"}, {"name": "endpoint", "type": "string"}, {"name": "feedbackURI", "type": "string"}, {"name": "feedbackHash", "type": "bytes32"}], "outputs": []}, "example_args": {"agentId": 60979, "value": 100, "valueDecimals": 0, "tag1": "quality", "tag2": "", "endpoint": "", "feedbackURI": "", "feedbackHash": "0x0000000000000000000000000000000000000000000000000000000000000000"}}, "event": {"name": "NewFeedback", "abi": {"name": "NewFeedback", "type": "event", "anonymous": false, "inputs": [{"indexed": true, "name": "agentId", "type": "uint256"}, {"indexed": true, "name": "clientAddress", "type": "address"}, {"indexed": false, "name": "feedbackIndex", "type": "uint64"}, {"indexed": false, "name": "value", "type": "int128"}, {"indexed": false, "name": "valueDecimals", "type": "uint8"}, {"indexed": true, "name": "indexedTag1", "type": "string"}, {"indexed": false, "name": "tag1", "type": "string"}, {"indexed": false, "name": "tag2", "type": "string"}, {"indexed": false, "name": "endpoint", "type": "string"}, {"indexed": false, "name": "feedbackURI", "type": "string"}, {"indexed": false, "name": "feedbackHash", "type": "bytes32"}]}}, "docs_url": "https://craigmbrown.com/blindoracle/feedback.html", "explorer_url": "https://www.8004scan.io/agents/base/60979", "policy": {"invitation_only": true, "never_submitted_by_blindoracle": true}}}