{"ok":true,"spec":"agent402-service-manifest/1","version":1,"resources":["https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/catalog/import-gate/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/context/pack/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/data/contract/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/uuid/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/timestamp/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/sha256/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/json-audit/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/erc20-balance/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/native-balance/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/block-number/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/usdc-transfer/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/contract-code/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/finance/amm-quote/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/finance/liquidation/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/agents/spend-guard/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/data/rows-audit/paid","https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/evidence/gate/paid"],"name":"Agent Services Hub Marketplace","build":"1.4.1","onboarding":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/start","agent_guide":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/llms.txt","featured_resource":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/catalog/import-gate/paid","network":"eip155:8453","asset":"USDC","facilitator":"https://facilitator.openx402.ai","services":[{"name":"gate_catalog_import_batch","category":"catalog-quality","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/catalog/import-gate/paid","price_usdc":"0.010","amount_atomic":"10000","network":"eip155:8453","payment":"x402-v2","description":"Pre-import quality gate for up to 50 catalog products. Quarantine all duplicate SKU rows, wrong currency, invalid prices/stock and stale caller-reported observations. Return accepted rows plus actionable corrections. No ERP writes or source-truth guarantee.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"rows":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","description":"Submit observed product fields. Row fields are deliberately optional and unconstrained here: missing or invalid values produce a paid quarantine report, not an HTTP validation error. Descriptions and examples describe eligible rows. Unknown fields are ignored.","properties":{"sku":{"description":"Eligible: nonblank string, <=100 characters, no surrounding whitespace; trimmed case-sensitive duplicates are all quarantined.","examples":["SKU-001"]},"title":{"description":"Eligible: nonblank string, <=300 characters.","examples":["Steel bracket"]},"price":{"description":"Eligible: finite JSON number, >=0 and <=caller max_price; numeric strings are quarantined.","examples":[12.5]},"currency":{"description":"Eligible: string equal to caller expected_currency.","examples":["EUR"]},"stock":{"description":"Eligible: JSON integer from 0 through 1000000000.","examples":[3]},"source_url":{"description":"Eligible: HTTPS URL without credentials, <=1200 characters. URL is not fetched or independently verified.","examples":["https://example.org/products/SKU-001"]},"observed_at":{"description":"Eligible: real UTC ISO timestamp with milliseconds, within caller max_age_hours and no more than 5 minutes in future. Caller observation is not independently verified.","examples":["2026-10-25T07:00:00.000Z"]}},"additionalProperties":true}},"expected_currency":{"type":"string","pattern":"^[A-Z]{3}$"},"max_price":{"type":"number","exclusiveMinimum":0,"maximum":1000000000000},"max_age_hours":{"type":"integer","minimum":1,"maximum":720}},"required":["rows","expected_currency","max_price","max_age_hours"]},"inputExample":{"rows":[{"sku":"GOOD-1","title":"Example product","price":12,"currency":"EUR","stock":3,"source_url":"https://example.org/product","observed_at":"2026-11-09T10:02:16.979Z"},{"sku":"DUP-1","title":"Example product","price":12,"currency":"EUR","stock":3,"source_url":"https://example.org/product","observed_at":"2026-11-09T10:02:16.979Z"},{"sku":"DUP-1","title":"Example product","price":-2,"currency":"EUR","stock":3,"source_url":"https://example.org/product","observed_at":"2026-11-09T10:02:16.979Z"}],"expected_currency":"EUR","max_price":10000,"max_age_hours":24}},{"name":"pack_json_tool_response","category":"agent-context","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/context/pack/paid","price_usdc":"0.002","amount_atomic":"2000","network":"eip155:8453","payment":"x402-v2","description":"Project explicitly selected top-level JSON fields into a caller-sized byte budget. Report missing or omitted fields and actual serialized UTF-8 bytes. No summarization or token savings guarantee.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"object"},"keep_fields":{"type":"array","minItems":1,"maxItems":30,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100}},"max_output_bytes":{"type":"integer","minimum":256,"maximum":8192}},"required":["data","keep_fields","max_output_bytes"]},"inputExample":{"data":{"answer":"ok","debug":"unneeded"},"keep_fields":["answer"],"max_output_bytes":256}},{"name":"validate_flat_json_contract","category":"agent-quality","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/data/contract/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Validate a flat JSON object against caller-supplied required fields, primitive types, enum and numeric bounds. Return actionable field errors. Not full JSON Schema or factual verification.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"object"},"fields":{"type":"object","minProperties":1,"maxProperties":30,"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"type":{"enum":["string","number","integer","boolean","null","object","array"]},"required":{"type":"boolean"},"enum":{"type":"array","minItems":1,"maxItems":20,"items":{"type":["string","number","boolean","null"]}},"min":{"type":"number"},"max":{"type":"number"}},"required":["type"]}},"allow_extra":{"type":"boolean"}},"required":["data","fields"]},"inputExample":{"data":{"quantity":"3"},"fields":{"quantity":{"type":"integer","required":true,"min":1}},"allow_extra":false}},{"name":"generate_uuid_v4","category":"utilities","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/uuid/paid","price_usdc":"0.001","amount_atomic":"1000","network":"eip155:8453","payment":"x402-v2","description":"Generate random RFC4122 UUID v4 for agent workflows","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]}},{"name":"get_utc_timestamp","category":"utilities","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/timestamp/paid","price_usdc":"0.001","amount_atomic":"1000","network":"eip155:8453","payment":"x402-v2","description":"Return current UTC ISO8601 timestamp and Unix milliseconds","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]}},{"name":"hash_text_sha256","category":"utilities","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/sha256/paid","price_usdc":"0.001","amount_atomic":"1000","network":"eip155:8453","payment":"x402-v2","description":"Compute SHA256 digest of caller supplied UTF8 text","inputSchema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","maxLength":4096}},"required":["text"]}},{"name":"check_json_required_fields","category":"utilities","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/utility/json-audit/paid","price_usdc":"0.001","amount_atomic":"1000","network":"eip155:8453","payment":"x402-v2","description":"Check missing required fields in bounded JSON rows","inputSchema":{"type":"object","additionalProperties":false,"properties":{"rows":{"type":"array","items":{"type":"object"},"minItems":1,"maxItems":75},"required_fields":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"minItems":1,"maxItems":15}},"required":["rows","required_fields"]}},{"name":"get_base_erc20_balance","category":"onchain","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/erc20-balance/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Read live ERC-20 balanceOf token balance for a Base wallet address at the latest block, atomic integer with block height. Agent preflight before transfers; NOT a token safety verdict.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"token_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"wallet_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},"required":["token_address","wallet_address"]}},{"name":"get_base_eth_balance","category":"onchain","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/native-balance/paid","price_usdc":"0.002","amount_atomic":"2000","network":"eip155:8453","payment":"x402-v2","description":"Get live native ETH balance in wei for a Base wallet address and current block number, for gas budget and transaction preflight.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},"required":["address"]}},{"name":"get_base_block_number","category":"onchain","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/block-number/paid","price_usdc":"0.001","amount_atomic":"1000","network":"eip155:8453","payment":"x402-v2","description":"Get current Base blockchain block number (height), hexadecimal and decimal, for confirmation planning and transaction monitoring.","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]}},{"name":"verify_base_usdc_transfer","category":"crypto","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/usdc-transfer/paid","price_usdc":"0.009","amount_atomic":"9000","network":"eip155:8453","payment":"x402-v2","description":"Confirm a mined Base USDC Transfer event to a specified recipient and minimum amount, with chain receipt, transaction hash and confirmations.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"transaction_hash":{"type":"string"},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sender":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"minimum_amount_atomic":{"type":"string","pattern":"^[0-9]+$"},"minimum_confirmations":{"type":"integer","minimum":1,"maximum":100}},"required":["transaction_hash","recipient","minimum_amount_atomic"]},"inputExample":{"transaction_hash":"0x0000000000000000000000000000000000000000000000000000000000000000","recipient":"0x0000000000000000000000000000000000000000","minimum_amount_atomic":"1000","minimum_confirmations":5}},{"name":"inspect_base_contract_code","category":"crypto","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/crypto/contract-code/paid","price_usdc":"0.004","amount_atomic":"4000","network":"eip155:8453","payment":"x402-v2","description":"Fetch deployed bytecode for a Base address; return presence, size and SHA256. NOT a contract security audit.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},"required":["address"]}},{"name":"quote_constant_product_swap","category":"finance","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/finance/amm-quote/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Deterministic AMM constant-product swap quote with fee and price impact computed in exact integer math.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"amount_in_atomic":{"type":"string","pattern":"^[0-9]+$"},"reserve_in_atomic":{"type":"string","pattern":"^[0-9]+$"},"reserve_out_atomic":{"type":"string","pattern":"^[0-9]+$"},"fee_bps":{"type":"integer","minimum":0,"maximum":1000}},"required":["amount_in_atomic","reserve_in_atomic","reserve_out_atomic","fee_bps"]}},{"name":"calculate_liquidation_buffer","category":"finance","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/finance/liquidation/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Deterministic collateral health and single-asset liquidation threshold, with explicit assumptions.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"collateral_usd_micros":{"type":"string","pattern":"^[0-9]+$"},"debt_usd_micros":{"type":"string","pattern":"^[0-9]+$"},"liquidation_threshold_bps":{"type":"integer","minimum":1,"maximum":10000}},"required":["collateral_usd_micros","debt_usd_micros","liquidation_threshold_bps"]}},{"name":"preflight_agent_spend","category":"agents","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/agents/spend-guard/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Evaluate a proposed payment against caller-supplied spend policy, cap and allowlists; does not enforce funds.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"total_budget_atomic":{"type":"string","pattern":"^[0-9]+$"},"spent_atomic":{"type":"string","pattern":"^[0-9]+$"},"proposed_atomic":{"type":"string","pattern":"^[0-9]+$"},"max_single_atomic":{"type":"string","pattern":"^[0-9]+$"},"network":{"type":"string","enum":["eip155:8453"]},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"approved_recipients":{"type":"array","items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}},"required":["total_budget_atomic","spent_atomic","proposed_atomic","max_single_atomic","network","recipient","approved_recipients"]}},{"name":"audit_dataset_rows","category":"data","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/data/rows-audit/paid","price_usdc":"0.003","amount_atomic":"3000","network":"eip155:8453","payment":"x402-v2","description":"Detect duplicate keys, missing fields and numerical ranges in a bounded JSON row batch for ingestion preflight.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"rows":{"type":"array","items":{"type":"object"},"minItems":1,"maxItems":75},"primary_key":{"type":"string","minLength":1,"maxLength":60},"required_fields":{"type":"array","minItems":1,"maxItems":15,"items":{"type":"string","minLength":1,"maxLength":60}},"numeric_ranges":{"type":"array","maxItems":12,"items":{"type":"object","required":["field"],"anyOf":[{"required":["min"]},{"required":["max"]}],"properties":{"field":{"type":"string","minLength":1,"maxLength":60},"min":{"type":"number","minimum":-1000000000000000,"maximum":1000000000000000},"max":{"type":"number","minimum":-1000000000000000,"maximum":1000000000000000}},"additionalProperties":false}}},"required":["rows","primary_key","required_fields"]},"inputExample":{"rows":[{"id":"item-1","price":12}],"primary_key":"id","required_fields":["price"],"numeric_ranges":[{"field":"price","min":0,"max":100}]}},{"name":"verify_official_source_rules","category":"documentation","method":"POST","url":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/v1/evidence/gate/paid","price_usdc":"0.020","amount_atomic":"20000","network":"eip155:8453","payment":"x402-v2","description":"Check official technical source rules, return PASS/FAIL and an immutable-content hash backed by a versioned provider record."}],"health":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/health","mcp":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/mcp","openapi":"https://agent-services-hub-utilities-staging.andrea-vignoni.workers.dev/openapi.json"}