# stinkyboy — full agent specification (v1.0.0) One integration, one wallet relationship. Thousands of callable tools, paid per call in USDC via x402. Charge on success only — errors and verification failures settle nothing. ## 1. Service identity - Name: stinkyboy - Operator: Noah McHugh (sole proprietor) - Canonical domain: stinkyboy.co - Version: 1.0.0 ## 2. Connection - MCP server (Streamable HTTP): https://mcp.stinkyboy.co/mcp - HTTPS API base: https://api.stinkyboy.co/v1 ## 3. MCP surface The server exposes exactly six meta-tools. The catalog can grow to any size; the surface never changes. ### catalog_search Parameters: query, filters, synthesize Search all catalog tools. synthesize=true (default) compiles a missing tool on the spot instead of returning a miss. ### tool_detail Parameters: tool_id Full detail for one tool: price, schema, quality score, health, status, changelog. ### call_tool Parameters: tool_id, inputs Execute any catalog tool by id. Payment is charged on success only. ### get_quote Parameters: tool_id, inputs Price quote for a call or a build before commitment. Free, no payment needed. ### my_spend Parameters: wallet Spend report for a caller wallet: calls, builds, receipts. ### create_and_call Parameters: outcome, inputs, path_hint, callback_url State the desired outcome with real inputs; the immediate compiler builds the missing tool and runs it in the same session. ## 4. Catalog - 15,675 callable tools at launch across 28 domains - 2,657 first-party tools plus resell wraps and third-party sellers - Seed catalog is 15,675 callable tools. The immediate compiler grows it toward what callers actually ask for. - A catalog miss is inventory not yet built: `create_and_call` compiles the missing tool on the spot, in the same session, and runs it. ## 5. Payments - Rail: x402 v2 (Linux Foundation standard) - Asset: USDC - Networks: Base (eip155:8453), Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) - Schemes: exact, upto, batch-settlement, auth-capture; credit tokens supported (one x402 purchase up front, drawdown per call, no per-call signing) - Pricing tiers: - commodity: $0.001-$0.02 per call (commodity data, cheap lookups) - standard: $0.02-$0.10 per call - premium: $0.05-$2.00+ per call (proprietary, real-time, compute-heavy, verified) - Blended average: $0.03 per call - Charge on success only, enforced at protocol level (auth-capture): errors and verification failures settle nothing. - Quote mode: unfunded callers receive a price quote instead of data. - Facilitator: CDP-hosted facilitator (primary); self-hosted facilitator as fallback - Treasury: CDP MPC wallets (hot settlement + cold treasury, nightly sweeps) ## 6. Trust architecture - Hash-chained audit receipts: input hash, output hash, price, timestamp, chained to previous receipt. Merkle roots published periodically. - Public per-tool quality scores from test pass rates and verified buyer outcomes. - Per-capability test suites run on schedule. Failures pull the tool from the catalog until fixed. - Wash-trading excluded from our own stats. We never count self-dealing in public metrics. ## 7. Canonical paid example score_domain via call_tool, paid in USDC on Base. Request: POST https://api.stinkyboy.co/v1/call Content-Type: application/json {"tool_id": "score_domain", "inputs": {"domain": "example.com"}} The server answers: HTTP 402 PAYMENT-REQUIRED Payment-Requirements: x402 v2, USDC on eip155:8453, pay_to 0x10faf67d20aa02507bb9d666e97e88c414c88e0b, amount $0.05, scheme auth-capture, resource POST /v1/call (score_domain) Sign and retry: POST https://api.stinkyboy.co/v1/call PAYMENT-SIGNATURE: Content-Type: application/json {"tool_id": "score_domain", "inputs": {"domain": "example.com"}} On success: HTTP 200 OK PAYMENT-RESPONSE: { "tool_id": "score_domain", "result": {"score": 0.12, "verdict": "clean", "signals": ["spf_pass", "dmarc_pass", "no_listings"]}, "receipt": { "input_hash": "sha256:…", "output_hash": "sha256:…", "price": "0.05 USDC", "timestamp": "…", "prev_hash": "sha256:…", "trace_id": "…" } } ## 8. Machine-readable declarations - Service declaration: https://stinkyboy.co/.well-known/x402 - Agent card (A2A): https://stinkyboy.co/.well-known/agent-card.json - MCP server card: https://stinkyboy.co/.well-known/mcp/server-card.json - MCP registry entry: https://stinkyboy.co/.well-known/mcp.json - Agent Skills index: https://stinkyboy.co/.well-known/agent-skills/index.json - API catalog (RFC 9727): https://stinkyboy.co/.well-known/api-catalog - OpenAPI 3.1: https://stinkyboy.co/openapi.json - Agent card pointer: https://stinkyboy.co/agents.json - Skill: https://stinkyboy.co/skill.md - Agent operating notes: https://stinkyboy.co/AGENTS.md ## 9. Support and security - Support: https://stinkyboy.co/support - Security: https://stinkyboy.co/security (contact mailto:boosiemchugh@gmail.com) - Status: https://status.stinkyboy.co - Identity: ERC-8004 draft prepared, not yet registered; ENS stinkyboy.eth — pending Noah approval (registration costs money)