{"$schema":"https://x402.org/schemas/discovery.json","service":{"name":"three.ws","legal_name":"three.ws","tagline":"AI-powered 3D model viewer and validation agent.","description":"three.ws is an agent-first 3D model platform. Drag-and-drop glTF/GLB preview, model validation/inspection/optimization, plus Solana agent data — reachable both as MCP tool calls and as paid REST endpoints (x402 v2). USDC on Base, Arbitrum, and Solana mainnet.","operator":"three.ws","mission":"Make 3D model tooling and Solana agent data machine-native so any AI agent can transact with the HTTP 402 protocol.","website":"https://three.ws","docs":"https://three.ws/docs/mcp","repository":"https://github.com/nirholas/three.ws","contact":"https://three.ws/","tags":["x402","x402-v2","mcp","agent-first","3d","gltf","glb","three-js","solana","base","arbitrum","usdc"],"environment":"apex","origin":"https://three.ws"},"resources":[{"path":"/api/x402/model-check","url":"https://three.ws/api/x402/model-check","method":"GET","description":"Fetches a glTF/GLB model from a URL and returns structural stats (vertex/triangle counts, materials, textures, animations, extensions) plus a prioritized list of optimization recommendations. Single GET, ?url=…. CDP-Bazaar-cataloged.","mimeType":"application/json","serviceName":"three.ws Model Check","tags":["3d","gltf","glb","inspection","validation"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/model-check","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/model-check","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/model-check","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/model-check","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/model-check","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"url":"https://three.ws/avatar/character-studio/sample.glb"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public HTTPS URL of a glTF/GLB model."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/mint-to-mesh","url":"https://three.ws/api/x402/mint-to-mesh","method":"GET","description":"Mint to Mesh — pass a Solana fungible-token mint, get back a binary glTF (GLB) cube themed for that token. Color is derived from a stable hash of the mint; when the off-chain Metaplex JSON exposes a PNG/JPEG, that image is embedded as a baseColor texture on every face. Asset.extras carry mint, name, symbol, and timestamp. Useful for any agent that needs an instantly renderable 3D representation of a token. CDP-Bazaar-cataloged.","mimeType":"application/json","serviceName":"three.ws Mint to Mesh","tags":["3d","gltf","solana","token","render"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"mint":"FeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpump"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["mint"],"properties":{"mint":{"type":"string","minLength":32,"maxLength":64,"description":"Base58 SPL mint address on Solana mainnet."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/insights/revenue-vision","url":"https://three.ws/api/insights/revenue-vision","method":"GET","description":"Revenue Vision — agentic growth analysis powered by Claude. Hand over a mission_brief and get back a single prioritized next-best move, a data-grounded insight, and an honestly-calibrated confidence rating. CDP-Bazaar-cataloged.","mimeType":"application/json","serviceName":"three.ws Revenue Vision","tags":["ai","analysis","growth","insight","claude"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/insights/revenue-vision","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/insights/revenue-vision","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/insights/revenue-vision","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:42161","network_label":"arbitrum-one","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/insights/revenue-vision","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/insights/revenue-vision","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"agent_codename":"ledger-bot","power_request":"revenue-vision","mission_brief":"Find the highest-converting buyer segment this week."}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["agent_codename","power_request","mission_brief"],"properties":{"agent_codename":{"type":"string"},"power_request":{"type":"string","enum":["revenue-vision"]},"mission_brief":{"type":"string","minLength":4,"maxLength":4000}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/mcp","url":"https://three.ws/api/mcp","method":"POST","description":"MCP 2025-06-18 Streamable HTTP transport — 3D avatar viewer, glTF model validation/inspection/optimization, and Solana agent data exposed as MCP tools. JSON-RPC 2.0 batch-aware. Currency: USDC.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","body":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"validate_model","arguments":{"url":"https://example.com/model.glb"}}},"bodyType":"json"},"output":{"type":"json","example":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"{\"ok\":true,\"warnings\":[],\"meta\":{\"vertices\":12345}}"}]}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","enum":["initialize","tools/list","tools/call","ping"],"description":"MCP JSON-RPC method."},"params":{"type":"object","description":"For tools/call: { name, arguments }. Tool names include validate_model, inspect_model, optimize_model, search_public_avatars, solana_register, solana_reputation, and others — see tools/list."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"result":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"]},"text":{"type":"string"}}}}}},"error":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}}}}}},"required":["type"]}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}},"links":{"openapi":"https://three.ws/openapi.json","docs":"https://three.ws/docs/mcp","agent_card":"https://three.ws/.well-known/agent-card.json","payment_config":"https://three.ws/.well-known/x402"}},{"path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","method":"POST","description":"three.ws 3D Studio MCP — Streamable HTTP (MCP 2025-06-18) that turns text or images into interactive, animation-ready 3D models: text_to_3d (prompt → GLB), image_to_3d (1–4 reference views → GLB), generation_status (poll a job for the finished model), auto_rig_model, plus mesh editing (retexture, remesh, stylize, segment) and PBR material generation. Connect with a three.ws account (OAuth) or pay per call in USDC on Base or Solana mainnet — no API key. Operated by three.ws.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","body":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"text_to_3d","arguments":{"prompt":"a brass steampunk owl, full body","tier":"standard"}}},"bodyType":"json"},"output":{"type":"json","example":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"{\"job_id\":\"abc123def4567890\",\"status\":\"queued\",\"eta_seconds\":60}"}],"structuredContent":{"ok":true,"job_id":"abc123def4567890","status":"queued","tier":"standard","eta_seconds":60}}}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string","enum":["initialize","tools/list","tools/call","ping"],"description":"MCP JSON-RPC method."},"params":{"type":"object","description":"For tools/call: { name, arguments }. Tool names: text_to_3d, image_to_3d, generation_status, auto_rig_model, retexture_model, remesh_model, stylize_model, segment_model, generate_material, direct_prompt — see tools/list."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number"]},"result":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"]},"text":{"type":"string"}}}}}},"error":{"type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"}}}}}},"required":["type"]}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}},"links":{"docs":"https://three.ws/docs/mcp-3d-studio","payment_config":"https://three.ws/.well-known/x402"}},{"path":"/api/x402/agent-reputation","url":"https://three.ws/api/x402/agent-reputation","method":"GET","description":"Agent Reputation — return a reputation snapshot for a three.ws agent (USDC paid in to its pump-agent tokens, distinct payers, deployed mints, distribution success rate, Solana attestation counts). Built from three.ws's proprietary index of pump_agent_payments, pump_distribute_runs, and solana_attestations.","mimeType":"application/json","serviceName":"three.ws Agent Reputation","tags":["reputation","agent","solana","attestation","trust"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/agent-reputation","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/agent-reputation","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/agent-reputation","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"agent_id":"7b9a4f30-2d11-4e2d-9d12-1cdb1f6a3a55"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["agent_id"],"properties":{"agent_id":{"type":"string","format":"uuid"}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/onchain-identity-verify","url":"https://three.ws/api/x402/onchain-identity-verify","method":"GET","description":"On-Chain Identity Verifier — given a three.ws agent_id + CAIP-2 chain + contract/mint, verify ownership from the canonical meta.onchain index and return tx_hash/wallet/deploy time evidence when verified. Trust primitive before paying counterparty agents.","mimeType":"application/json","serviceName":"three.ws Identity Verify","tags":["identity","verification","agent","trust","onchain"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"5000","price":"$0.005","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/onchain-identity-verify","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"5000","price":"$0.005","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/onchain-identity-verify","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"5000","price":"$0.005","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/onchain-identity-verify","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"agent_id":"7b9a4f30-2d11-4e2d-9d12-1cdb1f6a3a55","chain":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","contract_or_mint":"C3vQABCDEFGHJKLMNopqrstuvwxyZ12345abcdefghi"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["agent_id","chain","contract_or_mint"],"properties":{"agent_id":{"type":"string","format":"uuid"},"chain":{"type":"string","description":"CAIP-2 chain ID"},"contract_or_mint":{"type":"string"}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/pump-agent-audit","url":"https://three.ws/api/x402/pump-agent-audit","method":"GET","description":"Pump-Agent Audit — full operational audit of a pump.fun agent-payments token: total USDC in, unique payers, distribute/buyback success history, latest error reasons, and risk flags (never_distributed, high_distribute_failure_rate, no_buybacks_run). Backed by three.ws's indexed pump_distribute_runs and pump_buyback_runs tables.","mimeType":"application/json","serviceName":"three.ws Pump Audit","tags":["pump.fun","audit","agent","risk","solana"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"20000","price":"$0.02","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-agent-audit","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"20000","price":"$0.02","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-agent-audit","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"20000","price":"$0.02","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-agent-audit","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"mint":"C3vQABCDEFGHJKLMNopqrstuvwxyZ12345abcdefghi"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["mint"],"properties":{"mint":{"type":"string","minLength":32,"maxLength":44}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/pump-launch","url":"https://three.ws/api/x402/pump-launch","method":"POST","description":"Pump Launcher — deploy a brand-new pump.fun token in one paid call. Supply name + symbol and either a pre-pinned metadataUri or an imageUrl (we pin the image + descriptor to pump.fun IPFS). The server fronts the SOL deploy cost and signs the create-coin tx, so the buyer needs no SOL and no account. Creator rewards accrue to any Solana wallet you nominate; optional vanity prefix/suffix grinds a custom mint address. Returns mint + tx signature + pump.fun URL.","mimeType":"application/json","serviceName":"three.ws Pump Launcher","tags":["pump.fun","launch","deploy","token","solana"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"5000000","price":"$5","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-launch","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"5000000","price":"$5","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-launch","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"5000000","price":"$5","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/pump-launch","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"name":"Helios","symbol":"HELIO","imageUrl":"https://example.com/helios.png","creator":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["name","symbol"],"properties":{"name":{"type":"string","maxLength":32},"symbol":{"type":"string","maxLength":10},"metadataUri":{"type":"string","maxLength":2048},"imageUrl":{"type":"string","maxLength":2048},"description":{"type":"string","maxLength":2000},"creator":{"type":"string","minLength":32,"maxLength":44},"vanityPrefix":{"type":"string","maxLength":5},"vanitySuffix":{"type":"string","maxLength":5}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/forge","url":"https://three.ws/api/x402/forge","method":"POST","description":"Forge — pay-per-call text→3D and image→3D. Submit a prompt (or up to four reference views of one object) and receive a job token; poll it for free at GET /api/forge?job=<id> for the finished GLB. Runs the FLUX→TRELLIS pipeline (text→image→mesh, or image→mesh). Priced per quality tier in USDC ($0.05 draft / $0.15 standard / $0.50 high). Pay autonomously on Base or Solana mainnet — no API key, no account.","mimeType":"application/json","serviceName":"three.ws Forge — text/image → 3D","tags":["3d","generation","text-to-3d","image-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"150000","price":"$0.15","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/forge","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"150000","price":"$0.15","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/forge","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"150000","price":"$0.15","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/forge","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"prompt":"a brass steampunk owl, full body","tier":"standard","aspect_ratio":"1:1"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":1000,"description":"Describe one subject for text→3D. Omit when supplying image_urls."},"image_urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":4,"description":"Up to four public https reference views of one object for image→3D."},"tier":{"type":"string","enum":["draft","standard","high"]},"aspect_ratio":{"type":"string","enum":["1:1","4:3","3:4","16:9","9:16"]}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/skill-marketplace","url":"https://three.ws/api/x402/skill-marketplace","method":"GET","description":"Skill Marketplace — list active skill listings with prices across all three.ws agents. Filter by skill name to find the cheapest provider for a given capability. Returns price atomics, chain, currency, trial offer, and time-pass terms.","mimeType":"application/json","serviceName":"three.ws Skill Market","tags":["marketplace","agent","skills","pricing","discovery"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-marketplace","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-marketplace","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-marketplace","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"skill":"inspect_model","limit":20}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{"skill":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":200}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/symbol-availability","url":"https://three.ws/api/x402/symbol-availability","method":"GET","description":"Symbol Availability — pre-launch ticker collision check against three.ws's pump.fun mint index. Returns exact-symbol collisions plus trigram-similar tickers so launch agents can avoid name confusion and aggregator-search dilution.","mimeType":"application/json","serviceName":"three.ws Symbol Check","tags":["ticker","pump.fun","collision","launch","solana"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/symbol-availability","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/symbol-availability","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/symbol-availability","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"ticker":"HELIO","network":"mainnet"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","minLength":1,"maxLength":32},"network":{"type":"string","enum":["mainnet","devnet"]}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/vanity","url":"https://three.ws/api/x402/vanity","method":"GET","description":"Vanity Grinder — generate a brand-new Solana keypair whose Base58 address starts with a chosen prefix and/or ends with a chosen suffix. Returns the public address and its secret key (Base58 + 64-byte array) so it imports into any Solana wallet. Ground fresh per request in a Rust/WASM ed25519 engine and never stored. Difficulty-tiered price ($0.01 for 1 char, $0.05 for 2, $0.25 for 3); combined pattern capped at 3 Base58 characters. Settlement runs only after a successful grind, so an exhausted budget costs nothing.","mimeType":"application/json","serviceName":"three.ws Vanity Grinder","tags":["solana","vanity","keypair","wallet","address"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/vanity","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/vanity","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/vanity","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"prefix":"So","suffix":"","ignoreCase":"0"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","anyOf":[{"required":["prefix"]},{"required":["suffix"]}],"properties":{"prefix":{"type":"string","maxLength":3,"description":"Base58 characters the address must start with (excludes 0, O, I, l). Combined with suffix, max 3."},"suffix":{"type":"string","maxLength":3,"description":"Base58 characters the address must end with. Combined with prefix, max 3."},"ignoreCase":{"type":"string","enum":["0","1","true","false"],"description":"When 1/true, match case-insensitively (faster, less specific)."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/permit2-paid-demo","url":"https://three.ws/api/x402/permit2-paid-demo","method":"GET","description":"Permit2 + EIP-2612 Gas Sponsoring Demo — forces the gasless Permit2 path so a fresh wallet holding USDC but ZERO ETH can complete the flow. CDP's x402ExactPermit2Proxy submits the EIP-2612 permit + Permit2 transfer atomically via settleWithPermit. Response surfaces the on-chain tx hash and a Basescan link.","mimeType":"application/json","serviceName":"three.ws Permit2 Demo","tags":["x402","permit2","eip2612","gasless","demo"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/permit2-paid-demo","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{},"additionalProperties":false}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/mint-to-mesh-batch","url":"https://three.ws/api/x402/mint-to-mesh-batch","method":"POST","description":"Mint-to-Mesh (Batch) — resolve 1–10 Solana SPL mints to themed binary glTF cubes in a single paid call. Per-mint failures report ok:false individually instead of failing the whole batch. Output is base64 GLB bytes for Three.js / Babylon.js / model-viewer.","mimeType":"application/json","serviceName":"three.ws Mint Mesh Batch","tags":["3d","gltf","solana","batch","render"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"50000","price":"$0.05","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh-batch","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"50000","price":"$0.05","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh-batch","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"50000","price":"$0.05","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/mint-to-mesh-batch","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"mints":["C3vQABCDEFGHJKLMNopqrstuvwxyZ12345abcdefghi","F7kXZYXWVUTSRQPONMLKJIHGFEDCba9876543210xyz"]}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["mints"],"properties":{"mints":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","minLength":32,"maxLength":44}}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/dance-tip","url":"https://three.ws/api/x402/dance-tip","method":"GET","description":"three.ws Pole Club — tip a dancer to perform one routine on the 3D pole stage. Pay $0.001 USDC per performance. Pick a dancer slot (1-4) and a dance style. The settled call returns a performance ticket the /club page consumes to spawn the dancer and play the routine for ~12 seconds.","mimeType":"application/json","serviceName":"three.ws Pole Club","tags":["3d","avatar","club","tip","dance"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/dance-tip","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/dance-tip","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/dance-tip","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"dancer":"1","dance":"rumba"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["dancer","dance"],"properties":{"dancer":{"type":"string","enum":["1","2","3","4"],"description":"Stage slot 1-4 — which dancer should take the pole."},"dance":{"type":"string","enum":["rumba","silly","thriller","capoeira","hiphop"],"description":"Performance style — a clip in /animations/manifest.json."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/asset-download","url":"https://three.ws/api/x402/asset-download","method":"GET","description":"three.ws Asset Bazaar — pay once in USDC to unlock a 3D asset (GLB, avatar, or accessory) hosted on R2. Wallets that have already paid can re-download for free by signing in with SIWX (CAIP-122). Each asset has its own price and creator payout address; the response carries a short-lived presigned R2 URL the client uses to fetch the file directly.","mimeType":"application/json","serviceName":"three.ws Asset Bazaar","tags":["3d","asset","glb","avatar","download"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"100000","price":"$0.1","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/asset-download","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"100000","price":"$0.1","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/asset-download","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"100000","price":"$0.1","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/asset-download","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"slug":"pole-dancer-rumba"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","minLength":1,"maxLength":128,"description":"Unique asset slug from the paid_assets catalog."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/skill-call","url":"https://three.ws/api/x402/skill-call","method":"GET","description":"three.ws Skill Call — pay the per-call price of a marketplace skill in USDC (Base or Solana) and receive its executable payload: the tool schema and content the calling agent runs. Payment settles straight to the skill author's wallet. Per-call pricing — every invocation is a fresh payment.","mimeType":"application/json","serviceName":"three.ws Skill Call","tags":["skill","agent","tool","pay-per-call"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-call","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-call","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/skill-call","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"skill":"wallet-balance"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["skill"],"properties":{"skill":{"type":"string","minLength":1,"maxLength":128,"description":"Unique skill slug from the marketplace_skills catalog."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/fact-check","url":"https://three.ws/api/x402/fact-check","method":"POST","description":"three.ws Fact Checker — pay $0.10 USDC to verify a factual claim. Generates search queries, runs multi-source web search, extracts per-source stance with an LLM, computes a weighted verdict + confidence, and returns supporting sources plus a SHA-256 attestation of the result.","mimeType":"application/json","serviceName":"three.ws Fact Checker","tags":["fact-check","search","verification","llm","attestation"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"100000","price":"$0.1","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/fact-check","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"100000","price":"$0.1","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/fact-check","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"100000","price":"$0.1","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/fact-check","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"claim":"The Eiffel Tower is in Paris.","strictness":"medium"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["claim"],"properties":{"claim":{"type":"string","minLength":5,"maxLength":1000,"description":"The factual claim to verify."},"strictness":{"type":"string","enum":["high","medium","low"],"description":"high: penalizes low-authority sources. medium: default. low: accepts all sources equally."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/tutor","url":"https://three.ws/api/x402/tutor","method":"POST","description":"three.ws Pay-As-You-Learn Tutor — pay $0.01 USDC per answered question. Returns a leveled explanation, key points, a worked example, and a follow-up, plus a running session tab for a live itemized invoice. Pass a sessionId to accumulate a tab across questions.","mimeType":"application/json","serviceName":"three.ws Pay-As-You-Learn Tutor","tags":["tutor","education","llm","explain","pay-per-call"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/tutor","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/tutor","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/tutor","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"question":"Why is the sky blue?","level":"intermediate"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","required":["question"],"properties":{"sessionId":{"type":"string","maxLength":100,"description":"Stable session identifier to accumulate a running tab. Omit to start a new session."},"question":{"type":"string","minLength":5,"maxLength":2000,"description":"The question to be explained."},"context":{"type":"string","maxLength":6000,"description":"Optional code or context to ground the explanation."},"level":{"type":"string","enum":["beginner","intermediate","expert"],"description":"Target expertise level — controls depth and assumed background."}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/crypto-intel","url":"https://three.ws/api/x402/crypto-intel","method":"POST","description":"three.ws Crypto Intel — Agent-to-Agent crypto intelligence feed. Pay $0.01 USDC per call to receive a live market signal (bullish / bearish / neutral) with current price, 24 h change, and a two-sentence rationale. Powered by CoinGecko live prices. Powers the three.ws agent-exchange demo where two 3D avatars trade real intel for real USDC settled on-chain.","mimeType":"application/json","serviceName":"three.ws Crypto Intel","tags":["crypto","market","signal","agent-exchange","solana"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/crypto-intel","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/crypto-intel","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/crypto-intel","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"POST","bodyType":"json","body":{"topic":"sol"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST","PUT","PATCH"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","properties":{"topic":{"type":"string","description":"Token ticker or CoinGecko id: btc, sol, eth, doge, …","default":"sol"}}}},"required":["type","method","bodyType","body"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/three-intel","url":"https://three.ws/api/x402/three-intel","method":"GET","description":"$THREE Town Oracle — pay $0.01 USDC per call for live $THREE market intel: price, 24 h change, market cap, liquidity, 24 h volume, and a bullish / bearish / neutral signal with a two-sentence rationale. Powered by live DexScreener data. This is the oracle behind the paid intel kiosk in the $THREE town on three.ws/play.","mimeType":"application/json","serviceName":"$THREE Town Oracle","tags":["three","market","signal","play","solana"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/three-intel","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"10000","price":"$0.01","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/three-intel","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"10000","price":"$0.01","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/three-intel","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","properties":{}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"path":"/api/x402/cosmetic-purchase","url":"https://three.ws/api/x402/cosmetic-purchase","method":"GET","description":"three.ws Avatar Shop — pay once in USDC to unlock a premium avatar cosmetic (skin or emote) for an account. Pay on Base or Solana; the cosmetic is recorded to the buyer-specified account and is wearable across /play and /walk. Wallets that already purchased an item re-confirm for free by signing in with SIWX (CAIP-122). Price varies by rarity ($0.25–$3.00 USDC).","mimeType":"application/json","serviceName":"three.ws Avatar Shop","tags":["3d","avatar","cosmetic","shop","wearable"],"iconUrl":"https://three.ws/favicon.ico","accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"500000","price":"$0.5","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/cosmetic-purchase","extra":{"name":"USD Coin","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"500000","price":"$0.5","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/cosmetic-purchase","extra":{"name":"USD Coin","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"500000","price":"$0.5","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/x402/cosmetic-purchase","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"discoverable":true,"info":{"input":{"type":"http","method":"GET","queryParams":{"id":"skin-midnight","account":"g_5f3c9a21b8"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET","HEAD","DELETE"]},"queryParams":{"type":"object","required":["id","account"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"Premium cosmetic id from /api/cosmetics/catalog."},"account":{"type":"string","minLength":3,"maxLength":64,"description":"Account the cosmetic is granted to — a Solana wallet address or a guest id (g_…)."}}}},"required":["type","method"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp","url":"https://three.ws/api/mcp","toolName":"render_avatar","method":"POST","description":"Produce an HTML <model-viewer> snippet that renders the given avatar. Return this text as an inline HTML artifact to display an interactive 3D avatar.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.005,"currency":"USDC","description":"Per call"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"render_avatar","description":"Produce an HTML <model-viewer> snippet that renders the given avatar. Return this text as an inline HTML artifact to display an interactive 3D avatar.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"auto_rotate":{"type":"boolean","default":true},"background":{"type":"string","description":"CSS background color or gradient.","default":"transparent"},"height":{"type":"string","default":"480px"},"width":{"type":"string","default":"100%"},"camera_orbit":{"type":"string","description":"model-viewer camera-orbit value, e.g. \"0deg 80deg 2m\"."},"poster":{"type":"string","description":"Optional poster image URL shown while loading."},"ar":{"type":"boolean","default":true,"description":"Include AR button for mobile."}},"additionalProperties":false},"example":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp","url":"https://three.ws/api/mcp","toolName":"validate_model","method":"POST","description":"Run the Khronos glTF-Validator against a remote GLB or glTF URL. Returns a structured report of errors, warnings, infos, and hints — the authoritative answer to \"is this file spec-compliant?\". SSRF-hardened: only public https URLs are fetched.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"validate_model","description":"Run the Khronos glTF-Validator against a remote GLB or glTF URL. Returns a structured report of errors, warnings, infos, and hints — the authoritative answer to \"is this file spec-compliant?\". SSRF-hardened: only public https URLs are fetched.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public https URL of a .glb or .gltf file."},"max_issues":{"type":"integer","minimum":1,"maximum":500,"default":100}},"required":["url"],"additionalProperties":false},"example":{"url":"example-url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp","url":"https://three.ws/api/mcp","toolName":"inspect_model","method":"POST","description":"Parse a remote GLB or glTF and return structural stats: scene/node/mesh counts, vertex and triangle totals, material and texture summaries, extensions used. Pure inspection — no optimization advice.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"inspect_model","description":"Parse a remote GLB or glTF and return structural stats: scene/node/mesh counts, vertex and triangle totals, material and texture summaries, extensions used. Pure inspection — no optimization advice.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public https URL of a .glb or .gltf file."}},"required":["url"],"additionalProperties":false},"example":{"url":"example-url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp","url":"https://three.ws/api/mcp","toolName":"optimize_model","method":"POST","description":"Inspect the model and return actionable suggestions for reducing size and draw-call overhead: triangle budget, Draco/Meshopt compression, oversized textures, KTX2 transcoding, non-indexed primitives, redundant materials, and more.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.05,"currency":"USDC","description":"Per call"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"optimize_model","description":"Inspect the model and return actionable suggestions for reducing size and draw-call overhead: triangle budget, Draco/Meshopt compression, oversized textures, KTX2 transcoding, non-indexed primitives, redundant materials, and more.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public https URL of a .glb or .gltf file."}},"required":["url"],"additionalProperties":false},"example":{"url":"example-url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp","url":"https://three.ws/api/mcp","toolName":"apply_animation","method":"POST","description":"Retarget a curated animation preset onto a caller-supplied rigged humanoid GLB. Returns the retargeted three.js AnimationClip JSON (keyed to the rig's actual bone names, hip translation rescaled to its proportions) plus a retarget report — load it alongside the model and play. Set format=\"glb\" to also bake an animated GLB server-side (best-effort: textured rigs may exceed the headless bake budget and fall back to clip JSON — the /pose gallery is the guaranteed GLB export). SSRF-hardened: only public https model URLs are fetched.","mimeType":"application/json","serviceName":"three.ws MCP","tags":["mcp","3d","gltf","solana","agent"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.02,"currency":"USDC","description":"Per call — retarget + bake an animated GLB"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"apply_animation","description":"Retarget a curated animation preset onto a caller-supplied rigged humanoid GLB. Returns the retargeted three.js AnimationClip JSON (keyed to the rig's actual bone names, hip translation rescaled to its proportions) plus a retarget report — load it alongside the model and play. Set format=\"glb\" to also bake an animated GLB server-side (best-effort: textured rigs may exceed the headless bake budget and fall back to clip JSON — the /pose gallery is the guaranteed GLB export). SSRF-hardened: only public https model URLs are fetched.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"model_url":{"type":"string","format":"uri","description":"Public https URL of a rigged humanoid .glb to animate."},"animation":{"type":"string","description":"Preset name from list_animations (e.g. \"idle\", \"walk\", \"dance\")."},"format":{"type":"string","enum":["glb","clip"],"default":"clip","description":"clip = retargeted AnimationClip JSON (reliable); glb = also attempt a baked animated GLB (base64, best-effort)."},"speed":{"type":"number","minimum":0.25,"maximum":2.5,"default":1,"description":"Playback-speed multiplier baked into the result (1.8 turns a walk into a run)."}},"required":["model_url","animation"],"additionalProperties":false},"example":{"model_url":"example-model_url","animation":"example-animation"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"text_to_3d","method":"POST","description":"Turn a text description into a textured 3D model (GLB). Runs a fast text-to-image pass, then reconstructs a mesh from that image with Microsoft TRELLIS. Returns a job_id (poll with generation_status) plus the intermediate preview image. Best results: a single, clearly described object — \"a worn leather armchair\", \"a low-poly red fox\", \"a sci-fi helmet\".","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.15,"currency":"USDC","description":"Per call — text → textured GLB. Priced by tier: $0.05 draft / $0.15 standard / $0.50 high."},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"text_to_3d","description":"Turn a text description into a textured 3D model (GLB). Runs a fast text-to-image pass, then reconstructs a mesh from that image with Microsoft TRELLIS. Returns a job_id (poll with generation_status) plus the intermediate preview image. Best results: a single, clearly described object — \"a worn leather armchair\", \"a low-poly red fox\", \"a sci-fi helmet\".","transport":"streamable-http","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":1000,"description":"What to generate. Describe one subject clearly."},"aspect_ratio":{"type":"string","enum":["1:1","4:3","3:4","16:9","9:16"],"default":"1:1","description":"Aspect ratio of the intermediate reference image (image path only)."},"tier":{"type":"string","enum":["draft","standard","high"],"default":"standard","description":"Quality tier: draft (~12k poly, fast), standard (~30k, balanced), high (~200k + PBR, slower). Honoured by poly-aware backends (Meshy/Tripo/Hunyuan3D); the TRELLIS default records it as provenance."},"path":{"type":"string","enum":["image","geometry","sketch"],"default":"image","description":"Generation path: \"image\" (FLUX→TRELLIS reference-image reconstruction, the platform-keyed default) or \"geometry\" (native text/image→mesh via Meshy/Tripo/Rodin — cleaner topology, but BYOK: needs your own provider key)."},"backend":{"type":"string","enum":["nvidia","trellis","meshy","tripo","rodin","hunyuan3d","triposg","stability"],"description":"Force a specific backend (trellis, meshy, tripo, rodin, stability, hunyuan3d). Defaults to the best one for the chosen path. Backends outside the path are ignored."}},"required":["prompt"],"additionalProperties":false},"example":{"prompt":"example-prompt"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"image_to_3d","method":"POST","description":"Reconstruct a textured 3D model (GLB) from a reference image using Microsoft TRELLIS. Pass a single image_url, or image_urls (2–4 views of the SAME object from different angles — front/back/left/right) for multi-view reconstruction, which removes the back-of-object hallucination of single-image reconstruction. Returns a job_id to poll with generation_status, plus how many views were fused and which backend handled it. The cleaner the inputs — one subject, plain background, even lighting — the better the mesh.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.15,"currency":"USDC","description":"Per call — image(s) → textured GLB. Priced by tier: $0.05 draft / $0.15 standard / $0.50 high."},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"image_to_3d","description":"Reconstruct a textured 3D model (GLB) from a reference image using Microsoft TRELLIS. Pass a single image_url, or image_urls (2–4 views of the SAME object from different angles — front/back/left/right) for multi-view reconstruction, which removes the back-of-object hallucination of single-image reconstruction. Returns a job_id to poll with generation_status, plus how many views were fused and which backend handled it. The cleaner the inputs — one subject, plain background, even lighting — the better the mesh.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"image_url":{"type":"string","format":"uri","description":"Public https URL of the reference image (PNG/JPG/WebP). Use image_urls for multi-view."},"image_urls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1,"maxItems":4,"description":"1–4 public https URLs of the same object from different angles. Takes precedence over image_url; >1 enables multi-view reconstruction."},"prompt":{"type":"string","maxLength":1000,"description":"Optional text hint passed to the reconstruction model."},"tier":{"type":"string","enum":["draft","standard","high"],"default":"standard","description":"Quality tier: draft (~12k poly, fast), standard (~30k, balanced), high (~200k + PBR, slower). Honoured by poly-aware backends (Meshy/Tripo/Hunyuan3D); the TRELLIS default records it as provenance."},"path":{"type":"string","enum":["image","geometry","sketch"],"default":"image","description":"Generation path: \"image\" (FLUX→TRELLIS reference-image reconstruction, the platform-keyed default) or \"geometry\" (native text/image→mesh via Meshy/Tripo/Rodin — cleaner topology, but BYOK: needs your own provider key)."},"backend":{"type":"string","enum":["nvidia","trellis","meshy","tripo","rodin","hunyuan3d","triposg","stability"],"description":"Force a specific backend (trellis, meshy, tripo, rodin, stability, hunyuan3d). Defaults to the best one for the chosen path. Backends outside the path are ignored."}},"additionalProperties":false},"example":{}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"remove_background","method":"POST","description":"Strip the background from a photo or illustration using BRIA RMBG-2.0 (Apache-2.0). Returns a PNG with a transparent background — useful for preparing clean inputs before image_to_3d reconstruction.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call — cut a subject from a reference photo"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"remove_background","description":"Strip the background from a photo or illustration using BRIA RMBG-2.0 (Apache-2.0). Returns a PNG with a transparent background — useful for preparing clean inputs before image_to_3d reconstruction.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"image_url":{"type":"string","format":"uri","description":"Public https URL of the source image (PNG/JPG/WebP)."},"model":{"type":"string","enum":["rmbg2","u2net","isnet","u2net_human_seg","silueta"],"default":"rmbg2","description":"Background removal model. rmbg2 is highest quality; u2net_human_seg is optimised for people."}},"required":["image_url"],"additionalProperties":false},"example":{"image_url":"example-image_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"remesh_model","method":"POST","description":"Process an existing GLB/OBJ/STL/PLY mesh: fix holes and degenerate geometry, reduce face count via quadric decimation, or convert to a different format (including FBX with skeleton for Unity/Unreal — a convert of a rigged GLB keeps its bones, skin weights, and blendshapes). Returns a clean GLB (or the requested format) job_id to poll with generation_status.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.02,"currency":"USDC","description":"Per call — repair, simplify, or convert mesh format"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"remesh_model","description":"Process an existing GLB/OBJ/STL/PLY mesh: fix holes and degenerate geometry, reduce face count via quadric decimation, or convert to a different format (including FBX with skeleton for Unity/Unreal — a convert of a rigged GLB keeps its bones, skin weights, and blendshapes). Returns a clean GLB (or the requested format) job_id to poll with generation_status.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"mesh_url":{"type":"string","format":"uri","description":"Public https URL of the source mesh (GLB/OBJ/FBX/STL/PLY)."},"operation":{"type":"string","enum":["full","simplify","repair","convert"],"default":"full","description":"full = repair + simplify; simplify = face reduction only; repair = hole-fill + normal fix; convert = format change only."},"target_faces":{"type":"integer","minimum":1000,"maximum":500000,"default":50000,"description":"Target polygon count for simplification."},"output_format":{"type":"string","enum":["glb","obj","stl","ply","usdz","3mf","fbx"],"default":"glb","description":"Target format. fbx + operation=convert preserves a rigged GLB's skeleton, skin weights, and blendshapes (for Unity/Unreal); other operations produce a static fbx."}},"required":["mesh_url"],"additionalProperties":false},"example":{"mesh_url":"example-mesh_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"stylize_model","method":"POST","description":"Transform any GLB/OBJ/STL/PLY mesh into a stylized variant with a single geometry pass — no model inference, fast and cheap. Styles: \"voxel\" (blocky cubes on a grid), \"brick\" (voxels + studs, LEGO-like), \"voronoi\" (open strut-and-node lattice shell), \"lowpoly\" (decimated + hard flat-shaded facets). Source color is preserved where the style allows. Returns a job_id to poll with generation_status; typically completes in 10–40 seconds.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.02,"currency":"USDC","description":"Per call — voxel / brick / voronoi / lowpoly restyle"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"stylize_model","description":"Transform any GLB/OBJ/STL/PLY mesh into a stylized variant with a single geometry pass — no model inference, fast and cheap. Styles: \"voxel\" (blocky cubes on a grid), \"brick\" (voxels + studs, LEGO-like), \"voronoi\" (open strut-and-node lattice shell), \"lowpoly\" (decimated + hard flat-shaded facets). Source color is preserved where the style allows. Returns a job_id to poll with generation_status; typically completes in 10–40 seconds.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"mesh_url":{"type":"string","format":"uri","description":"Public https URL of the source mesh (GLB/OBJ/FBX/STL/PLY)."},"style":{"type":"string","enum":["voxel","brick","voronoi","lowpoly"],"default":"voxel","description":"voxel = blocky cubes; brick = voxels + studs (LEGO-like); voronoi = open lattice shell; lowpoly = faceted flat-shaded."},"resolution":{"type":"integer","minimum":8,"maximum":120,"description":"Style-specific density (clamped per style): voxel/brick = grid resolution, voronoi = cell density, lowpoly = detail level. Omit for a sensible per-style default."},"output_format":{"type":"string","enum":["glb","obj","stl","ply"],"default":"glb"}},"required":["mesh_url"],"additionalProperties":false},"example":{"mesh_url":"example-mesh_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"segment_model","method":"POST","description":"Segment a GLB/OBJ/STL/PLY mesh into meaningful parts with clean boundaries — head/torso/limbs on a character, body/wheels on a vehicle. Splits at physically disconnected shells and at concave creases (the minima rule), then names each part by region and tints it a distinct colour. Returns a GLB whose nodes ARE the parts (so each can be hidden, recoloured, replaced, or exported on its own) plus a parts manifest. Poll with generation_status; the result lists every part with its id, name, face count, and colour. Pass only_part to export a single part on its own.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.02,"currency":"USDC","description":"Per call — split a mesh into named parts"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"segment_model","description":"Segment a GLB/OBJ/STL/PLY mesh into meaningful parts with clean boundaries — head/torso/limbs on a character, body/wheels on a vehicle. Splits at physically disconnected shells and at concave creases (the minima rule), then names each part by region and tints it a distinct colour. Returns a GLB whose nodes ARE the parts (so each can be hidden, recoloured, replaced, or exported on its own) plus a parts manifest. Poll with generation_status; the result lists every part with its id, name, face count, and colour. Pass only_part to export a single part on its own.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"mesh_url":{"type":"string","format":"uri","description":"Public https URL of the source mesh (GLB/OBJ/FBX/STL/PLY)."},"method":{"type":"string","enum":["auto","connected","crease"],"default":"auto","description":"auto = disconnected shells + concave-crease splitting inside each shell (best); connected = split only at disconnected shells; crease = minima-rule crease splitting over the whole mesh."},"max_parts":{"type":"integer","minimum":2,"maximum":64,"default":24,"description":"Upper bound on parts. Smaller fragments are merged into neighbours until the count fits."},"min_part_faces":{"type":"integer","minimum":4,"maximum":100000,"default":64,"description":"Parts smaller than this many faces are merged into their largest neighbour."},"crease_angle":{"type":"number","minimum":5,"maximum":170,"default":40,"description":"Dihedral angle (degrees) above which a concave edge is treated as a part boundary. Lower = more parts."},"only_part":{"type":"string","maxLength":64,"description":"Optional: export just this part by id (\"part_03\") or name (\"upper-left\"). Run once without it to discover part ids."}},"required":["mesh_url"],"additionalProperties":false},"example":{"mesh_url":"example-mesh_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"retexture_model","method":"POST","description":"Generate a fresh texture for an untextured or poorly-textured GLB using SDXL + ControlNet depth. Renders the mesh from 8 viewpoints, generates coherent texture views guided by your prompt, and back-projects them onto the UV atlas. Returns a job_id to poll with generation_status.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.05,"currency":"USDC","description":"Per call — repaint a full mesh from a text prompt"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"retexture_model","description":"Generate a fresh texture for an untextured or poorly-textured GLB using SDXL + ControlNet depth. Renders the mesh from 8 viewpoints, generates coherent texture views guided by your prompt, and back-projects them onto the UV atlas. Returns a job_id to poll with generation_status.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"mesh_url":{"type":"string","format":"uri","description":"Public https URL of the source GLB mesh."},"prompt":{"type":"string","minLength":3,"maxLength":500,"description":"Texture description, e.g. \"worn leather armour, dark brown, scratched metal buckles\"."},"negative_prompt":{"type":"string","maxLength":200,"default":"blurry, low quality, distorted, watermark"},"num_views":{"type":"integer","enum":[4,8],"default":8,"description":"4 = faster; 8 = better coverage."},"texture_size":{"type":"integer","enum":[512,1024,2048],"default":1024}},"required":["mesh_url","prompt"],"additionalProperties":false},"example":{"mesh_url":"example-mesh_url","prompt":"example-prompt"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"retexture_region","method":"POST","description":"Surgically repaint ONLY a region of an existing texture from a prompt and/or colour, leaving the rest of the surface untouched and feathering the seam so the edit is invisible. Real SDXL inpainting in UV space — fix a seam, recolour one panel, add a logo to a chest plate. Supply mask_url: a UV-space mask PNG in the model's own UV layout where WHITE marks the area to repaint and black is preserved. Safe to run repeatedly — chain passes by feeding the previous result GLB back in as mesh_url. Returns a job_id to poll with generation_status.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.05,"currency":"USDC","description":"Per call — magic-brush retexture of a masked region"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"retexture_region","description":"Surgically repaint ONLY a region of an existing texture from a prompt and/or colour, leaving the rest of the surface untouched and feathering the seam so the edit is invisible. Real SDXL inpainting in UV space — fix a seam, recolour one panel, add a logo to a chest plate. Supply mask_url: a UV-space mask PNG in the model's own UV layout where WHITE marks the area to repaint and black is preserved. Safe to run repeatedly — chain passes by feeding the previous result GLB back in as mesh_url. Returns a job_id to poll with generation_status.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"mesh_url":{"type":"string","format":"uri","description":"Public https URL of the textured GLB to edit."},"mask_url":{"type":"string","format":"uri","description":"Public https URL of the UV-space mask PNG (white = repaint, black = keep), in the same UV layout as the mesh."},"prompt":{"type":"string","maxLength":500,"description":"What to paint into the masked region, e.g. \"weathered copper plate\"."},"color":{"type":"string","pattern":"^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$","description":"Optional target colour as a hex value, e.g. \"#1e90ff\"."},"negative_prompt":{"type":"string","maxLength":300,"default":"blurry, low quality, distorted, watermark, seam"},"texture_size":{"type":"integer","enum":[512,1024,2048],"default":1024},"strength":{"type":"number","minimum":0.2,"maximum":1,"default":0.85,"description":"How aggressively to regenerate the region (higher = more change)."},"feather":{"type":"integer","minimum":1,"maximum":128,"default":24,"description":"Seam feather radius in atlas pixels — larger blends softer."}},"required":["mesh_url","mask_url"],"additionalProperties":false},"example":{"mesh_url":"example-mesh_url","mask_url":"example-mask_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"auto_rig_model","method":"POST","description":"Turn a static GLB mesh into an animation-ready character: adds a humanoid skeleton and per-vertex skin weights via the three.ws rig pipeline (VAST-AI UniRig). Pairs with text_to_3d / image_to_3d — generate a mesh, then rig it, then drive it with apply_animation or pose_model. Returns a job_id; poll generation_status for the rigged GLB.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.05,"currency":"USDC","description":"Per call — add an animation-ready skeleton to a GLB"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"auto_rig_model","description":"Turn a static GLB mesh into an animation-ready character: adds a humanoid skeleton and per-vertex skin weights via the three.ws rig pipeline (VAST-AI UniRig). Pairs with text_to_3d / image_to_3d — generate a mesh, then rig it, then drive it with apply_animation or pose_model. Returns a job_id; poll generation_status for the rigged GLB.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"glb_url":{"type":"string","format":"uri","description":"Public https URL of the static GLB mesh to rig."}},"required":["glb_url"],"additionalProperties":false},"example":{"glb_url":"example-glb_url"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"pose_model","method":"POST","description":"Map a natural-language pose description to a deterministic pose-studio seed and the full Euler joint-rotation map for the three.ws humanoid mannequin, picked from the in-repo preset library. Returns the preset id, the complete pose (radians per joint), a stable seed, and a previewUrl on three.ws/pose. Deterministic and free — the same prompt always yields the same pose. Pair with auto_rig_model to pose a rigged character.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call — pose a rigged model from a text prompt"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"pose_model","description":"Map a natural-language pose description to a deterministic pose-studio seed and the full Euler joint-rotation map for the three.ws humanoid mannequin, picked from the in-repo preset library. Returns the preset id, the complete pose (radians per joint), a stable seed, and a previewUrl on three.ws/pose. Deterministic and free — the same prompt always yields the same pose. Pair with auto_rig_model to pose a rigged character.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":500,"description":"Pose description, e.g. \"warrior stance\", \"wave hello\", \"sitting cross-legged\"."}},"required":["prompt"],"additionalProperties":false},"example":{"prompt":"example-prompt"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"direct_prompt","method":"POST","description":"Rewrite a rough idea into an optimized text_to_3d prompt using IBM Granite. Returns one clean single-subject description plus structured directives (subject, style, materials, colors, detail) that produce cleaner meshes. Run before text_to_3d when a prompt is vague, conflicting, or multi-subject. Requires IBM watsonx.ai credentials on the server.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call — rewrite a vague idea into a tight 3D spec"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"direct_prompt","description":"Rewrite a rough idea into an optimized text_to_3d prompt using IBM Granite. Returns one clean single-subject description plus structured directives (subject, style, materials, colors, detail) that produce cleaner meshes. Run before text_to_3d when a prompt is vague, conflicting, or multi-subject. Requires IBM watsonx.ai credentials on the server.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"idea":{"type":"string","minLength":1,"maxLength":2000,"description":"The rough idea or prompt to optimize, e.g. \"some kind of cool dragon thing\"."},"style":{"type":"string","maxLength":200,"description":"Optional style hint, e.g. \"low-poly\", \"realistic\", \"stylized PBR\"."}},"required":["idea"],"additionalProperties":false},"example":{"idea":"example-idea"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"generate_material","method":"POST","description":"Generate a physically-based (PBR) glTF 2.0 material from a text description using IBM Granite — base color, metallic, roughness, and emissive factors. Returns a pbrMetallicRoughness material object you can attach to a generated mesh. Requires IBM watsonx.ai credentials on the server.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call — PBR material parameters from a description"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"generate_material","description":"Generate a physically-based (PBR) glTF 2.0 material from a text description using IBM Granite — base color, metallic, roughness, and emissive factors. Returns a pbrMetallicRoughness material object you can attach to a generated mesh. Requires IBM watsonx.ai credentials on the server.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"description":{"type":"string","minLength":3,"maxLength":500,"description":"Material to describe, e.g. \"worn copper, scratched, slightly oxidized\"."},"name":{"type":"string","maxLength":100,"description":"Optional material name."}},"required":["description"],"additionalProperties":false},"example":{"description":"example-description"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}},{"type":"mcp","path":"/api/mcp-3d","url":"https://three.ws/api/mcp-3d","toolName":"apply_animation","method":"POST","description":"Retarget a curated animation preset onto a caller-supplied rigged humanoid GLB. Returns the retargeted three.js AnimationClip JSON (keyed to the rig's actual bone names, hip translation rescaled to its proportions) plus a retarget report — load it alongside the model and play. Set format=\"glb\" to also bake an animated GLB server-side (best-effort: textured rigs may exceed the headless bake budget and fall back to clip JSON — the /pose gallery is the guaranteed GLB export). SSRF-hardened: only public https model URLs are fetched.","mimeType":"application/json","serviceName":"three.ws 3D Studio MCP","tags":["x402","mcp","3d","text-to-3d","glb"],"iconUrl":"https://three.ws/favicon.ico","pricing":{"amount_usdc":0.01,"currency":"USDC","description":"Per call — retarget a library clip onto a rigged GLB"},"accepts":[{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6}},{"scheme":"exact","network":"eip155:8453","network_label":"base-mainnet","amount":"1000","price":"$0.001","payTo":"0x4022de2d36c334e73c7a108805cea11c0564f402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","version":"2","decimals":6,"assetTransferMethod":"permit2","supportsEip2612":true}},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","network_label":"solana-mainnet","amount":"1000","price":"$0.001","payTo":"wwwPqsM4N7T9J69tB82nLyzxqsH159j4orftLTQfUGV","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_symbol":"USDC","maxTimeoutSeconds":60,"resource":"https://three.ws/api/mcp-3d","extra":{"name":"USDC","decimals":6,"feePayer":"2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4"}}],"extensions":{"bazaar":{"info":{"input":{"type":"mcp","toolName":"apply_animation","description":"Retarget a curated animation preset onto a caller-supplied rigged humanoid GLB. Returns the retargeted three.js AnimationClip JSON (keyed to the rig's actual bone names, hip translation rescaled to its proportions) plus a retarget report — load it alongside the model and play. Set format=\"glb\" to also bake an animated GLB server-side (best-effort: textured rigs may exceed the headless bake budget and fall back to clip JSON — the /pose gallery is the guaranteed GLB export). SSRF-hardened: only public https model URLs are fetched.","transport":"streamable-http","inputSchema":{"type":"object","properties":{"model_url":{"type":"string","format":"uri","description":"Public https URL of a rigged humanoid .glb to animate."},"animation":{"type":"string","description":"Preset name from list_animations (e.g. \"idle\", \"walk\", \"dance\")."},"format":{"type":"string","enum":["glb","clip"],"default":"clip","description":"clip = retargeted AnimationClip JSON (reliable); glb = also attempt a baked animated GLB (base64, best-effort)."},"speed":{"type":"number","minimum":0.25,"maximum":2.5,"default":1,"description":"Playback-speed multiplier baked into the result (1.8 turns a walk into a run)."}},"required":["model_url","animation"],"additionalProperties":false},"example":{"model_url":"example-model_url","animation":"example-animation"}}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"mcp"},"toolName":{"type":"string"},"description":{"type":"string"},"transport":{"type":"string","enum":["streamable-http"]},"inputSchema":{"type":"object"},"example":{"type":"object"}},"required":["type","toolName","inputSchema"],"additionalProperties":false}},"required":["input"]}},"eip2612GasSponsoring":{"info":{"description":"The facilitator accepts EIP-2612 gasless Permit to `Permit2` canonical contract.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount to approve (uint256). Typically MaxUint."},"nonce":{"type":"string","pattern":"^[0-9]+$","description":"The current nonce of the sender."},"deadline":{"type":"string","pattern":"^[0-9]+$","description":"The timestamp at which the signature expires."},"signature":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The 65-byte concatenated signature (r, s, v) as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","nonce","deadline","signature","version"]}},"erc20ApprovalGasSponsoring":{"info":{"description":"The facilitator broadcasts a pre-signed ERC-20 approve() transaction to grant Permit2 allowance.","version":"1"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the sender (token owner)."},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the ERC-20 token contract."},"spender":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"The address of the spender (Canonical Permit2)."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"The amount approved (uint256). Always MaxUint256."},"signedTransaction":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","description":"The RLP-encoded signed EIP-1559 transaction as a hex string."},"version":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)*$","description":"Schema version identifier."}},"required":["from","asset","spender","amount","signedTransaction","version"]}}}}]}