{"schema":"ens-tools.platform-contract/v1","generatedAt":"2026-08-26T00:28:22.524Z","server":{"name":"ENS.Tools MCP","version":"3.0.0","protocolVersion":"2025-11-25","endpoint":"https://ens.tools/mcp","profiles":{"full":{"endpoint":"https://ens.tools/mcp","workflowTools":80},"lite":{"endpoint":"https://ens.tools/mcp-lite","workflowTools":25,"discoveryTools":1,"selection":{"selectedAt":"2026-07-31","window":"30 days","sampledWorkflowCalls":224,"sampledCallsCovered":224,"sampledCoveragePercent":100,"workflowToolCount":25,"selectionMethod":"All observed workflow tools plus every tool required by published ENS.Tools agent recipes; one remaining slot covers registration price discovery."}}},"transport":"streamable-http"},"stability":{"channel":"public","additiveToolChangesAllowed":true,"breakingChangesRequireVersionChange":true,"schemaDiscovery":"Call tools/list before relying on an input shape."},"safety":{"anonymousReads":true,"privateKeysAccepted":false,"broadcastsTransactions":false,"stateChanges":"Some tools persist signed platform records, observations, revocations, or permission usage. Transaction tools never broadcast."},"routes":{"contract":"https://ens.tools/api/platform","tools":"https://ens.tools/api/mcp/tools","mcpFull":"https://ens.tools/mcp","mcpLite":"https://ens.tools/mcp-lite","health":"https://ens.tools/api/health","agentWorkspace":"https://ens.tools/api/agents/workspace","agentCapabilities":"https://ens.tools/api/agents/capabilities","agentMonitoring":"https://ens.tools/api/agents/monitoring","agentRouting":"https://ens.tools/api/agents/route","agentPolicies":"https://ens.tools/api/agents/policies","agentEnforcement":"https://ens.tools/api/agents/enforce","developerAccount":"https://ens.tools/api/developers/account","developerBilling":"https://ens.tools/api/developers/billing","developerGateway":"https://ens.tools/api/v1/tools","openApi":"https://ens.tools/api/openapi.json","agentJobs":"https://ens.tools/api/agents/jobs","agentFleet":"https://ens.tools/api/agents/fleet","agentCanary":"https://ens.tools/api/agents/canary","agentRecipes":"https://ens.tools/.well-known/agent-recipes.json"},"counts":{"tools":80,"core":15,"agentPlatform":65,"liteWorkflowTools":25,"liteDiscoveryTools":1,"byCategory":{"ens":15,"platform":7,"marketplace":1,"agent-identity":10,"unsigned-action":12,"agent-fleet":4,"agent-evidence":4,"agent-policy":8,"agent-commerce":18,"agent-canary":1}},"tools":[{"name":"lookup_domain","title":"Lookup Domain","description":"Look up details about an ENS domain including owner, expiry date, resolver, and registration date.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The ENS domain name (e.g., \"vitalik.eth\")"}},"required":["name"]},"annotations":{"title":"Lookup Domain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"check_expiry","title":"Check Expiry","description":"Check the expiry status of one or more ENS domains. Returns days until expiry and current status (active, warning, expiring_soon, grace_period, temp_premium, released).","category":"ens","inputSchema":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"},"description":"Array of ENS domain names to check (e.g., [\"vitalik.eth\", \"nick.eth\"])"}},"required":["names"]},"annotations":{"title":"Check Expiry","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"search_domains","title":"Search Domains","description":"Search indexed, registered ENS domains by a literal name substring. Use semantic_domain_search for natural-language ideas and batch_check_availability for live registration checks.","category":"ens","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Literal name substring (e.g., \"crypto\")."},"limit":{"type":"number","description":"Max results to return (default: 10, max: 50)"}},"required":["query"]},"annotations":{"title":"Search Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_owner_domains","title":"Get Owner Domains","description":"List all ENS domains owned by a specific Ethereum address.","category":"ens","inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"Ethereum address (0x...) to look up owned domains for"},"limit":{"type":"number","description":"Max results to return (default: 20, max: 100)"}},"required":["address"]},"annotations":{"title":"Get Owner Domains","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"check_agent_verification","title":"Check Agent Verification","description":"Check if an ENS domain has ENSIP-25 AI agent verification records. Returns agent registrations including registry address and agent ID.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name (e.g., agent.eth)"}},"required":["name"]},"annotations":{"title":"Check Agent Verification","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"is_name_available","title":"Is Name Available","description":"Check if an ENS domain name is available for registration. Accounts for grace period and premium auction phases.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name to check (e.g., example.eth)"}},"required":["name"]},"annotations":{"title":"Is Name Available","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_name_price","title":"Get Name Price","description":"Get the current registration/renewal price for an ENS domain name. Returns price in ETH and Wei for a given duration.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain label (e.g., \"vitalik\" for vitalik.eth)"},"duration":{"type":"number","description":"Duration in seconds (default: 31536000 = 1 year)"}},"required":["name"]},"annotations":{"title":"Get Name Price","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_subnames_for_name","title":"Get Subnames For Name","description":"Get all subdomains (subnames) for an ENS domain. Returns subdomain names, owners, and resolvers.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Parent ENS domain name (e.g., vitalik.eth)"},"limit":{"type":"number","description":"Max results (default: 50, max: 100)"}},"required":["name"]},"annotations":{"title":"Get Subnames For Name","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_name_history","title":"Get Name History","description":"Get the event history for an ENS domain including registrations, renewals, transfers, and resolver changes.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name (e.g., vitalik.eth)"}},"required":["name"]},"annotations":{"title":"Get Name History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"estimate_domain_value","title":"Estimate Domain Value","description":"Estimate the value of an ENS domain based on length, character patterns, dictionary words, and collections. Returns estimated value in ETH with confidence level and valuation factors.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name (e.g., vitalik.eth)"},"ethPriceUSD":{"type":"number","description":"Current ETH price in USD (default: 2000)"}},"required":["name"]},"annotations":{"title":"Estimate Domain Value","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_gas_estimate","title":"Get Gas Estimate","description":"Get current Ethereum gas prices and estimate costs for ENS operations (registration, renewal, transfer, bulk renewal). Helps users time transactions for lower fees.","category":"ens","inputSchema":{"type":"object","properties":{"operation":{"type":"string","enum":["register","renew","transfer","bulk_renew","set_records"],"description":"ENS operation to estimate gas for (default: renew)"},"count":{"type":"number","description":"Number of domains for bulk operations (default: 1)"}}},"annotations":{"title":"Get Gas Estimate","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"marketplace_search","title":"Marketplace Search","description":"Search the ENS.Tools marketplace for listed domains. Filter by name, price range, and length. Returns active listings with prices.","category":"ens","inputSchema":{"type":"object","properties":{"search":{"type":"string","description":"Search query (e.g., \"crypto\", \"3-letter\")"},"minPrice":{"type":"string","description":"Minimum price in ETH"},"maxPrice":{"type":"string","description":"Maximum price in ETH"},"minLength":{"type":"number","description":"Minimum name length"},"maxLength":{"type":"number","description":"Maximum name length"},"sortBy":{"type":"string","enum":["price_asc","price_desc","newest","ending_soon"],"description":"Sort order (default: newest)"},"limit":{"type":"number","description":"Number of results (default: 10, max: 50)"}}},"annotations":{"title":"Marketplace Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"marketplace_listing","title":"Marketplace Listing","description":"Get marketplace listing details for a specific ENS domain. Returns active listings, current offers, and recent activity.","category":"ens","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name (e.g., vitalik.eth)"}},"required":["name"]},"annotations":{"title":"Marketplace Listing","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"marketplace_stats","title":"Marketplace Stats","description":"Get ENS.Tools marketplace statistics: total listings, 24h volume, sales count, and all-time volume.","category":"ens","inputSchema":{"type":"object","properties":{}},"annotations":{"title":"Marketplace Stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"premium_sales_rankings","title":"Premium Sales Rankings","description":"Rank names currently in the ENS temporary-premium window by their highest previous wash-filtered sale amount. Returns lifecycle timing, historical sale evidence, archive coverage, and transaction links.","category":"ens","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum ranked names to return (default: 10)."}}},"annotations":{"title":"Premium Sales Rankings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"resolve_chain","title":"Resolve Chain","description":"Return an indexed ENSv2-style hierarchical ownership/resolver chain for every label from TLD to leaf, including inherited resolver hints. Useful for debugging name hierarchy; use resolve_records for authoritative Universal Resolution.","category":"platform","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"ENS domain name (e.g., \"sub.vitalik.eth\")"}},"required":["name"]},"annotations":{"title":"Resolve Chain","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"resolve_records","title":"Resolve Records","description":"Resolve an ENS address, avatar, content hash, and selected text records through ENS Universal Resolution.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"textKeys":{"type":"array","maxItems":24,"items":{"type":"string"}}},"required":["name"]},"annotations":{"title":"Resolve Records","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"batch_check_availability","title":"Batch Check Availability","description":"Check live registrar availability and registration pricing for up to 50 .eth names in one call.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"names":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"duration":{"type":"integer","minimum":2419200,"maximum":315360000,"default":31536000}},"required":["names"]},"annotations":{"title":"Batch Check Availability","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"semantic_domain_search","title":"Semantic Domain Search","description":"Turn a natural-language idea such as \"three-letter robotics names\" into candidate .eth names with live lifecycle status.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":2,"maxLength":500},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["query"]},"annotations":{"title":"Semantic Domain Search","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_primary_name","title":"Get Primary Name","description":"Reverse-resolve an Ethereum address to its primary ENS name.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Ethereum address to reverse-resolve."}},"required":["address"]},"annotations":{"title":"Get Primary Name","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_market_activity","title":"Get Market Activity","description":"Get recent ENS.Tools marketplace sales, listings, offers, transfers, or activity for one name.","category":"marketplace","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["sale","listing","offer","transfer"]},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"annotations":{"title":"Get Market Activity","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_agent_context","title":"Get Agent Context","description":"Resolve ENSIP-26 agent-context and agent-endpoint records for an ENS identity.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"protocols":{"type":"array","maxItems":12,"items":{"type":"string"},"default":["mcp","a2a","web"]}},"required":["name"]},"annotations":{"title":"Get Agent Context","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"discover_agents","title":"Discover Agents","description":"Search a capability-aware ENS agent directory with explicit protocol, health, freshness, verification, and sorting controls. Separates advertised, observed, and verified evidence.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":100},"protocol":{"type":"string","enum":["any","mcp","a2a","web"],"default":"any"},"minimumHealth":{"type":"string","enum":["any","degraded","healthy"],"default":"any"},"requireVerified":{"type":"boolean","default":false},"includeVerification":{"type":"boolean","default":false},"maximumEvidenceAgeHours":{"type":"integer","minimum":1,"maximum":720,"default":720},"sortBy":{"type":"string","enum":["relevance","health","recent","name"]},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}}},"annotations":{"title":"Discover Agents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"check_agent_binding","title":"Check Agent Binding","description":"Verify an ERC-8217 agent NFT binding by reading agent-binding metadata and the referenced binding contract.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"identityRegistry":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8004 identity registry address."},"agentId":{"type":"string","pattern":"^[0-9]+$"}},"required":["agentId"]},"annotations":{"title":"Check Agent Binding","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_agent_reputation","title":"Get Agent Reputation","description":"Read an ERC-8004 reputation summary from a specified reputation registry and trusted reviewer set.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"reputationRegistry":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8004 reputation registry address."},"agentId":{"type":"string","pattern":"^[0-9]+$"},"clientAddresses":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Trusted reviewer address."}},"tag1":{"type":"string","maxLength":100,"default":""},"tag2":{"type":"string","maxLength":100,"default":""}},"required":["reputationRegistry","agentId","clientAddresses"]},"annotations":{"title":"Get Agent Reputation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_registration_commit","title":"Prepare Registration Commit","description":"Prepare step 1 of a .eth registration through the ENS.Tools atomic-fee wrapper. Returns the secret and unsigned commitment transaction.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Address that will own the registered name."},"duration":{"type":"integer","minimum":2419200,"maximum":315360000,"default":31536000},"secret":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional bytes32 secret; generated if omitted."}},"required":["name","owner"]},"annotations":{"title":"Prepare Registration Commit","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_registration_reveal","title":"Prepare Registration Reveal","description":"Prepare step 2 of a .eth registration after the commitment is 60 seconds old. Uses the same owner, duration, and secret.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Address that will own the registered name."},"duration":{"type":"integer","minimum":2419200,"maximum":315360000,"default":31536000},"secret":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["name","owner","secret"]},"annotations":{"title":"Prepare Registration Reveal","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_renewal","title":"Prepare Renewal","description":"Prepare an unsigned single or bulk .eth renewal through the ENS.Tools atomic-fee wrapper, including an on-chain quote.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"names":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string"}},"duration":{"type":"integer","minimum":86400,"maximum":315360000,"default":31536000}},"required":["names"]},"annotations":{"title":"Prepare Renewal","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_set_records","title":"Prepare Set Records","description":"Prepare an unsigned resolver multicall to set ENS text records. Adds a resolver prerequisite when one is absent.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"records":{"type":"array","minItems":1,"maxItems":24,"items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string","minLength":1,"maxLength":255},"value":{"type":"string","maxLength":8192}},"required":["key","value"]}},"resolver":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional resolver override. Defaults to the name’s active resolver."},"isWrapped":{"type":"boolean","default":false}},"required":["name","records"]},"annotations":{"title":"Prepare Set Records","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_transfer","title":"Prepare Transfer","description":"Prepare an unsigned safe transfer for a wrapped or unwrapped second-level .eth name.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Current owner address."},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"New owner address."},"isWrapped":{"type":"boolean","default":false}},"required":["name","from","to"]},"annotations":{"title":"Prepare Transfer","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_set_primary_name","title":"Prepare Set Primary Name","description":"Prepare an unsigned transaction that sets an address’s primary ENS name.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."}},"required":["name"]},"annotations":{"title":"Prepare Set Primary Name","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_create_subname","title":"Prepare Create Subname","description":"Prepare an unsigned transaction to create a wrapped or unwrapped ENS subname.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"parent":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"label":{"type":"string","minLength":1,"maxLength":255},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Owner of the new subname."},"resolver":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Resolver for the new subname."},"isWrapped":{"type":"boolean","default":false},"expiry":{"type":"integer","minimum":0,"default":0},"fuses":{"type":"integer","minimum":0,"default":0}},"required":["parent","label","owner"]},"annotations":{"title":"Prepare Create Subname","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_agent_fleet","title":"Prepare Agent Fleet","description":"Prepare subname creation and ENSIP-26 record transactions for a fleet of up to 25 agents under one parent ENS name.","category":"agent-fleet","inputSchema":{"type":"object","additionalProperties":false,"properties":{"parent":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"labels":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string","minLength":1,"maxLength":63}},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Owner for every fleet subname."},"isWrapped":{"type":"boolean","default":false},"contextTemplate":{"type":"string","maxLength":4096,"description":"Use {name} and {label} placeholders."},"endpointBase":{"type":"string","format":"uri","description":"Optional base URL; /{label} is appended."}},"required":["parent","labels","owner"]},"annotations":{"title":"Prepare Agent Fleet","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8004_registration","title":"Prepare Erc8004 Registration","description":"Build an ERC-8004 registration file and unsigned identity-registry mint transaction.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"description":{"type":"string","minLength":1,"maxLength":2000},"image":{"type":"string","format":"uri"},"endpoints":{"type":"object","additionalProperties":{"type":"string"}},"agentURI":{"type":"string","description":"Optional hosted/IPFS registration-file URI; when omitted a data URI is generated."},"identityRegistry":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8004 identity registry; defaults to the mainnet reference deployment."},"x402Support":{"type":"boolean","default":false}},"required":["name","description"]},"annotations":{"title":"Prepare Erc8004 Registration","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8004_uri_update","title":"Prepare Erc8004 Uri Update","description":"Prepare an ERC-8004 agentURI update after an agent id is known, with a registration file that points back to the registry entry.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"description":{"type":"string","minLength":1,"maxLength":2000},"image":{"type":"string","format":"uri"},"endpoints":{"type":"object","additionalProperties":{"type":"string"}},"agentId":{"type":"string","pattern":"^[0-9]+$"},"identityRegistry":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8004 identity registry."},"x402Support":{"type":"boolean","default":false},"agentURI":{"type":"string","description":"Optional hosted/IPFS URI for this exact file; a data URI is generated when omitted."}},"required":["name","description","agentId"]},"annotations":{"title":"Prepare Erc8004 Uri Update","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"provision_agent_identity","title":"Provision Agent Identity","description":"Create a complete, non-custodial launch plan: ERC-8004 registration file/mint, ENSIP-26 records, and optional ENSIP-25 binding.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet that controls the ENS name and agent identity."},"description":{"type":"string","minLength":1,"maxLength":2000},"image":{"type":"string","format":"uri"},"endpoints":{"type":"object","additionalProperties":{"type":"string"}},"agentId":{"type":"string","pattern":"^[0-9]+$","description":"Existing ERC-8004 agent id. Omit to prepare a new mint."},"identityRegistry":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8004 identity registry."},"x402Support":{"type":"boolean","default":false},"isWrapped":{"type":"boolean","default":false}},"required":["name","owner","description"]},"annotations":{"title":"Provision Agent Identity","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_marketplace_listing","title":"Prepare Marketplace Listing","description":"Prepare Seaport approval and EIP-712 listing data with the ENS.Tools atomic 2% fee.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"seller":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Current ENS owner and Seaport offerer."},"priceEth":{"type":"string","pattern":"^[0-9]+(\\.[0-9]{1,18})?$"},"isWrapped":{"type":"boolean","default":false},"duration":{"type":"integer","minimum":3600,"maximum":31536000,"default":2592000}},"required":["name","seller","priceEth"]},"annotations":{"title":"Prepare Marketplace Listing","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_marketplace_offer","title":"Prepare Marketplace Offer","description":"Prepare WETH approval and EIP-712 Seaport offer data with the ENS.Tools atomic 2% fee.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"buyer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Buyer and Seaport offerer."},"amountEth":{"type":"string","pattern":"^[0-9]+(\\.[0-9]{1,18})?$"},"isWrapped":{"type":"boolean","default":false},"duration":{"type":"integer","minimum":3600,"maximum":31536000,"default":604800}},"required":["name","buyer","amountEth"]},"annotations":{"title":"Prepare Marketplace Offer","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_marketplace_purchase","title":"Prepare Marketplace Purchase","description":"Prepare an unsigned Seaport fill transaction from a signed ENS listing order.","category":"unsigned-action","inputSchema":{"type":"object","additionalProperties":false,"properties":{"order":{"type":"object","description":"Signed Seaport order with parameters and signature."},"buyer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Address that will send the fill transaction."}},"required":["order","buyer"]},"annotations":{"title":"Prepare Marketplace Purchase","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"simulate_transaction","title":"Simulate Transaction","description":"Run eth_call and eth_estimateGas for an unsigned transaction without broadcasting it.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet that would send the transaction."},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Target contract."},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"value":{"type":"string","pattern":"^[0-9]+$","default":"0"}},"required":["from","to","data"]},"annotations":{"title":"Simulate Transaction","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_transaction_status","title":"Get Transaction Status","description":"Read the chain status and receipt for a transaction hash.","category":"platform","inputSchema":{"type":"object","additionalProperties":false,"properties":{"txHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["txHash"]},"annotations":{"title":"Get Transaction Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"check_agent_capabilities","title":"Check Agent Capabilities","description":"Check MCP, A2A, and web endpoints published in an ENS identity. Returns point-in-time protocol evidence; it is not a safety endorsement.","category":"agent-evidence","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."}},"required":["name"]},"annotations":{"title":"Check Agent Capabilities","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"observe","label":"RECORDS OBSERVATION","summary":"Probes published endpoints and may persist point-in-time evidence.","destructive":false,"idempotent":false,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":true,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_agent_capability_history","title":"Get Agent Capability History","description":"Read recent ENS.Tools capability observations for an ENS agent identity without running a new endpoint check.","category":"agent-evidence","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["name"]},"annotations":{"title":"Get Agent Capability History","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_agent_monitor","title":"Prepare Agent Monitor","description":"Prepare wallet-signable EIP-712 monitoring configuration for endpoints published by an ENS identity. This grants no transaction authority and accepts no arbitrary endpoint URL.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"issuer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet that the monitored ENS identity resolves to."},"ensName":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"monitorId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Existing monitor ID when pausing, resuming, or changing a schedule."},"frequencyMinutes":{"type":"integer","enum":[5,15,60,1440],"default":60},"sloTargetBps":{"type":"integer","minimum":5000,"maximum":10000,"default":9900},"configStatus":{"type":"string","enum":["active","paused"],"default":"active"}},"required":["issuer","ensName"]},"annotations":{"title":"Prepare Agent Monitor","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"none","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"publish_agent_monitor","title":"Publish Agent Monitor","description":"Verify an EOA or ERC-1271 signature and persist one revisioned monitor schedule. The first ENS-derived probe is queued immediately.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact AgentMonitorConfig message returned by prepare_agent_monitor."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$"}},"required":["message","signature"]},"annotations":{"title":"Publish Agent Monitor","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"PUBLISHES MONITOR","summary":"Persists a signed monitor revision and queues its first probe.","destructive":true,"idempotent":false,"walletSignature":"before-call","valueImpact":"none","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_agent_monitoring","title":"Get Agent Monitoring","description":"Read scheduled monitor state, availability evidence, recent runs, deduplicated incidents, and alert rules for a controller wallet.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"wallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Controller wallet whose signed monitors should be returned."}},"required":["wallet"]},"annotations":{"title":"Get Agent Monitoring","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"route_agent_intent","title":"Route Agent Intent","description":"Rank ENS-discovered agents for a natural-language intent using deterministic capability, health, verification, recency, and latency evidence. Returns the full score breakdown.","category":"agent-evidence","inputSchema":{"type":"object","additionalProperties":false,"properties":{"intent":{"type":"string","minLength":2,"maxLength":1000},"protocol":{"type":"string","enum":["any","mcp","a2a","web"],"default":"any"},"minimumHealth":{"type":"string","enum":["any","degraded","healthy"],"default":"any"},"requireVerified":{"type":"boolean","default":false},"requireCapabilityMatch":{"type":"boolean","default":true},"maximumEvidenceAgeHours":{"type":"integer","minimum":1,"maximum":720,"default":168},"minimumScore":{"type":"integer","minimum":0,"maximum":100,"default":1},"limit":{"type":"integer","minimum":1,"maximum":20,"default":5}},"required":["intent"]},"annotations":{"title":"Route Agent Intent","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_agent_execution_permission","title":"Prepare Agent Execution Permission","description":"Prepare a wallet-native ERC-7715 permission request plus a signed ENS agent execution policy. The wallet enforces the session key, cumulative native-token allowance, expiry, and revocation; the executor must enforce targets, selectors, tools, ENS scope, budgets, simulation, and fresh evidence.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"issuer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet-backed smart account that the ENS agent identity resolves to."},"agentEns":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"sessionKey":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Separate operational key that receives the scoped permission."},"allowedTools":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","minLength":1}},"allowedNameSuffixes":{"type":"array","maxItems":50,"items":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"default":[]},"allowedTargets":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Exact contract target."}},"allowedSelectors":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","pattern":"^0x[0-9a-fA-F]{8}$"}},"maxValuePerCallWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","default":"0"},"maxCumulativeValueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","default":"0"},"maxCalls":{"type":"integer","minimum":1,"maximum":10000,"default":1},"durationSeconds":{"type":"integer","minimum":60,"maximum":2592000,"default":3600},"requireSimulation":{"type":"boolean","default":true},"requireFreshEvidence":{"type":"boolean","default":true},"chainId":{"type":"integer","enum":[1],"default":1}},"required":["issuer","agentEns","sessionKey","allowedTools","allowedTargets","allowedSelectors"]},"annotations":{"title":"Prepare Agent Execution Permission","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"none","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"verify_agent_execution_permission","title":"Verify Agent Execution Permission","description":"Statelessly preview an execution permission against live ENS binding, signature, scope, simulation, and caller-supplied usage. Use authorize_agent_execution for durable atomic call/value limits.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact AgentExecutionPermission EIP-712 message returned by prepare_agent_execution_permission."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$"},"chainId":{"type":"integer","enum":[1],"default":1},"request":{"type":"object","properties":{"agentAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional caller claim for audit output; live ENS resolution overrides it."},"sessionKey":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Operational signer for this request."},"tool":{"type":"string"},"ensName":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"target":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Intended contract target."},"selector":{"type":"string","pattern":"^0x[0-9a-fA-F]{8}$"},"valueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"usedValueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"usedCalls":{"type":"integer","minimum":0},"simulationSucceeded":{"type":"boolean"},"evidenceFresh":{"type":"boolean"}},"required":["sessionKey","tool","target","selector","valueWei","usedValueWei","usedCalls","simulationSucceeded","evidenceFresh"]}},"required":["message","signature","request"]},"annotations":{"title":"Verify Agent Execution Permission","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"authorize_agent_execution","title":"Authorize Agent Execution","description":"Fail closed before one privileged operation: resolve ENS live, verify an EOA/ERC-1271 execution permission and exact request, then atomically enforce durable call/value limits. Returns an idempotent authorization receipt and never broadcasts.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact AgentExecutionPermission message returned by prepare_agent_execution_permission."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$"},"chainId":{"type":"integer","enum":[1],"default":1},"idempotencyKey":{"type":"string","pattern":"^[A-Za-z0-9._:-]{8,128}$","description":"Stable per attempted execution. Retrying this key returns the original decision without consuming twice."},"requestSignature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","description":"Required to consume usage: EIP-191 personal_sign by the session key over the canonical request hash (the hash string itself is the signed message). The hash commits to idempotencyKey, so a proof cannot be replayed under a different key. Omit it with preflight true to obtain the hash without touching the ledger."},"preflight":{"type":"boolean","default":false,"description":"Verify scope and return sessionKeyProof.requestHash without reading or writing the usage ledger. Never authorizes execution."},"request":{"type":"object","additionalProperties":false,"properties":{"sessionKey":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Operational signer presenting this request."},"tool":{"type":"string","minLength":1,"maxLength":255},"ensName":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"target":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Exact transaction target."},"selector":{"type":"string","pattern":"^0x[0-9a-fA-F]{8}$"},"valueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"simulationSucceeded":{"type":"boolean"},"evidenceFresh":{"type":"boolean"}},"required":["sessionKey","tool","target","selector","valueWei","simulationSucceeded","evidenceFresh"]}},"required":["message","signature","idempotencyKey","request"]},"annotations":{"title":"Authorize Agent Execution","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"authorize","label":"CONSUMES PERMISSION","summary":"Persists an authorization decision and atomically consumes bounded call/value usage.","destructive":true,"idempotent":true,"walletSignature":"before-call","valueImpact":"permission-budget","approval":"policy-defined","writesState":true,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_agent_permission_usage","title":"Get Agent Permission Usage","description":"Read append-only allowed/denied authorization decisions and durable aggregate usage for a signed execution permission.","category":"agent-identity","inputSchema":{"type":"object","additionalProperties":false,"properties":{"permissionId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["permissionId"]},"annotations":{"title":"Get Agent Permission Usage","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_agent_policy","title":"Prepare Agent Policy","description":"Prepare an EIP-712 ens-tools.agent-policy/v1 envelope that limits a compatible agent executor by tool, ENS suffix, value, identity, and time. This does not grant wallet control.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"issuer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet that will sign and may revoke the policy."},"granteeEns":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"granteeAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional wallet bound to the agent. Omit for ENS-name-only binding."},"allowedTools":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","minLength":1},"description":"Exact MCP tool names, or \"*\" for all tools implemented by the executor."},"allowedNameSuffixes":{"type":"array","maxItems":50,"items":{"type":"string"},"description":"Optional ENS suffixes such as team.eth. Subnames match; an empty list has no ENS-name restriction.","default":[]},"maxValueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","default":"0","description":"Maximum aggregate value the compatible executor may attach to one operation."},"durationSeconds":{"type":"integer","minimum":60,"maximum":2592000,"default":3600},"chainId":{"type":"integer","minimum":1,"default":1}},"required":["issuer","granteeEns","allowedTools"]},"annotations":{"title":"Prepare Agent Policy","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"none","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"publish_agent_policy","title":"Publish Agent Policy","description":"Verify an issuer wallet signature and publish the signed agent policy plus an immutable issuance event.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"The exact message returned by prepare_agent_policy."},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$"},"chainId":{"type":"integer","minimum":1,"default":1}},"required":["message","signature"]},"annotations":{"title":"Publish Agent Policy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"PUBLISHES POLICY","summary":"Persists a signed policy and its immutable issuance event.","destructive":false,"idempotent":false,"walletSignature":"before-call","valueImpact":"none","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_agent_policy","title":"Get Agent Policy","description":"Read a signed agent policy and its issuance/revocation event trail by policy ID.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"policyId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"includeEvents":{"type":"boolean","default":true}},"required":["policyId"]},"annotations":{"title":"Get Agent Policy","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"verify_agent_policy","title":"Verify Agent Policy","description":"Cryptographically verify a published policy and evaluate an optional tool, ENS name, and value request against its live scope.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"policyId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"tool":{"type":"string","minLength":1},"ensName":{"type":"string"},"valueWei":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"}},"required":["policyId"]},"annotations":{"title":"Verify Agent Policy","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_agent_policy_revocation","title":"Prepare Agent Policy Revocation","description":"Prepare an EIP-712 revocation for a live ENS.Tools agent policy. The issuer wallet must sign it.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"policyId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["policyId"]},"annotations":{"title":"Prepare Agent Policy Revocation","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"none","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"revoke_agent_policy","title":"Revoke Agent Policy","description":"Verify and publish a signed policy revocation. Revocation is immediate for compatible executors that re-check policy state.","category":"agent-policy","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"The exact message returned by prepare_agent_policy_revocation."},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$"}},"required":["message","signature"]},"annotations":{"title":"Revoke Agent Policy","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"revoke","label":"REVOKES POLICY","summary":"Persists a signed revocation that disables the policy for compatible executors.","destructive":true,"idempotent":false,"walletSignature":"before-call","valueImpact":"none","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_agent_job","title":"Prepare Agent Job","description":"Prepare an EIP-712 signed work order for an ENS agent or open routing. Publishing coordinates work but does not lock funds.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"requester":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet publishing the work order."},"title":{"type":"string","minLength":3,"maxLength":200},"requirementsUri":{"type":"string","minLength":1,"maxLength":2048},"requirementsHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional content hash; defaults to keccak256(requirementsUri)."},"budgetAmount":{"type":"string","pattern":"^[1-9][0-9]*$","description":"Maximum budget in the ERC-20 token smallest unit."},"currency":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Supported payment token: USDC (preferred) or WETH on the selected chain."},"durationSeconds":{"type":"integer","minimum":600,"maximum":7776000,"default":604800},"requiredCapabilities":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1}},"targetEns":{"type":"string","description":"Optional ENS agent name; omit for an open job."},"evaluator":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Evaluator address; defaults to requester."},"policyId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional active ENS.Tools policy issued by requester."},"chainId":{"type":"integer","enum":[1,8453],"default":8453,"description":"Ethereum mainnet or Base. Base is the lower-cost default."}},"required":["requester","title","requirementsUri","budgetAmount","currency"]},"annotations":{"title":"Prepare Agent Job","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"publish_agent_job","title":"Publish Agent Job","description":"Verify the requester signature and publish a signed agent job. The resulting record is open for signed quotes and is not escrowed.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact message returned by prepare_agent_job."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","maxLength":8194,"description":"EOA or ERC-1271 smart-account signature."},"chainId":{"type":"integer","enum":[1,8453],"default":8453}},"required":["message","signature"]},"annotations":{"title":"Publish Agent Job","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"PUBLISHES JOB","summary":"Persists a signed work order without locking funds.","destructive":false,"idempotent":false,"walletSignature":"before-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_agent_quote","title":"Prepare Agent Quote","description":"Prepare an EIP-712 quote from an ENS-named agent for a published job.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"jobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"agentEns":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"agentWallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet signing the quote. ENS address resolution is checked when published."},"priceAmount":{"type":"string","pattern":"^[1-9][0-9]*$","description":"Quoted price in the ERC-20 token smallest unit."},"currency":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Must match the signed job USDC or WETH address."},"deliverySeconds":{"type":"integer","minimum":60,"maximum":31536000},"termsUri":{"type":"string","minLength":1,"maxLength":2048},"termsHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional content hash; defaults to keccak256(termsUri)."},"validForSeconds":{"type":"integer","minimum":300,"maximum":2592000,"default":86400},"chainId":{"type":"integer","enum":[1,8453],"description":"Must match the signed job chain."}},"required":["jobId","agentEns","agentWallet","priceAmount","currency","deliverySeconds","termsUri"]},"annotations":{"title":"Prepare Agent Quote","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"publish_agent_quote","title":"Publish Agent Quote","description":"Verify an agent-wallet signature, enforce job budget/currency/deadline, check the ENS address binding, and publish the quote.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact message returned by prepare_agent_quote."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","maxLength":8194,"description":"EOA or ERC-1271 smart-account signature."},"chainId":{"type":"integer","enum":[1,8453]}},"required":["message","signature"]},"annotations":{"title":"Publish Agent Quote","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"PUBLISHES QUOTE","summary":"Persists a signed quote against a published job.","destructive":false,"idempotent":false,"walletSignature":"before-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_agent_quote_acceptance","title":"Prepare Agent Quote Acceptance","description":"Prepare an EIP-712 acceptance for one current quote. Acceptance makes a job escrow-ready but does not lock funds.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"jobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"quoteId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["jobId","quoteId"]},"annotations":{"title":"Prepare Agent Quote Acceptance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"accept_agent_quote","title":"Accept Agent Quote","description":"Verify the requester signature and atomically accept one quote. This is signed coordination, not escrow funding.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact message returned by prepare_agent_quote_acceptance."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","maxLength":8194,"description":"EOA or ERC-1271 smart-account signature."}},"required":["message","signature"]},"annotations":{"title":"Accept Agent Quote","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"ACCEPTS QUOTE","summary":"Persists a signed quote acceptance; it does not fund escrow.","destructive":true,"idempotent":false,"walletSignature":"before-call","valueImpact":"budget-declaration","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_agent_job","title":"Get Agent Job","description":"Read a signed agent job with quotes, event trail, ENS binding evidence, and honest escrow/escrow-ready settlement state.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"jobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"includeEvents":{"type":"boolean","default":true}},"required":["jobId"]},"annotations":{"title":"Get Agent Job","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"list_agent_jobs","title":"List Agent Jobs","description":"List recent signed agent jobs. Missing escrow evidence is returned as escrow-ready/open, never escrowed.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"state":{"type":"string","enum":["open","accepted"]},"requester":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional requester filter."},"targetEns":{"type":"string","description":"Optional exact ENS agent filter."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"annotations":{"title":"List Agent Jobs","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_create_job","title":"Prepare Erc8183 Create Job","description":"Prepare unsigned createJob calldata for the current ERC-8183 draft reference ABI using an accepted ENS.Tools job. Requires a user-selected contract and simulation.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"escrowContract":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"User-selected ERC-8183-compatible contract on the signed job chain."},"hook":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Optional hook contract; defaults to zero address."}},"required":["platformJobId","escrowContract"]},"annotations":{"title":"Prepare Erc8183 Create Job","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_funding","title":"Prepare Erc8183 Funding","description":"Inspect a newly created ERC-8183 draft job and return an ordered, multi-wallet funding plan: provider sets budget, requester optionally wraps ETH, approves USDC/WETH, then funds. Never broadcasts.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"escrowContract":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8183-compatible contract on the signed job chain."},"escrowJobId":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"wrapNativeEth":{"type":"boolean","default":false,"description":"For WETH jobs, include an exact native ETH to WETH deposit before approval."}},"required":["platformJobId","escrowContract","escrowJobId"]},"annotations":{"title":"Prepare Erc8183 Funding","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"inspect_erc8183_escrow","title":"Inspect Erc8183 Escrow","description":"Read an ERC-8183-compatible job and matching JobFunded receipt. With platformJobId, verify client, provider, evaluator, description, expiry, token, budget, current ENS binding, funded state, and exact funding event.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"chainId":{"type":"integer","enum":[1,8453],"description":"Required only when platformJobId is omitted."},"escrowContract":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8183-compatible contract on Ethereum or Base."},"escrowJobId":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"fundingTxHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["escrowContract","escrowJobId","fundingTxHash"]},"annotations":{"title":"Inspect Erc8183 Escrow","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_erc8183_binding","title":"Prepare Erc8183 Binding","description":"Verify a funded ERC-8183-compatible job against an accepted ENS.Tools job, then prepare requester-signed binding typed data.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"escrowContract":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-8183-compatible contract on the signed job chain."},"escrowJobId":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"fundingTxHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["platformJobId","escrowContract","escrowJobId","fundingTxHash"]},"annotations":{"title":"Prepare Erc8183 Binding","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES SIGNATURE","summary":"Returns typed data for a separate wallet to review and sign.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"none","approval":"before-signature","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"publish_erc8183_binding","title":"Publish Erc8183 Binding","description":"Verify the requester signature and re-check onchain evidence before marking a job escrowed. No escrow claim is stored on partial or mismatched evidence.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"message":{"type":"object","description":"Exact message returned by prepare_erc8183_binding."},"signature":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","maxLength":8194,"description":"EOA or ERC-1271 smart-account signature."}},"required":["message","signature"]},"annotations":{"title":"Publish Erc8183 Binding","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"effects":{"kind":"publish","label":"BINDS FUNDED ESCROW","summary":"Persists a signed binding after re-checking funded onchain evidence.","destructive":true,"idempotent":false,"walletSignature":"before-call","valueImpact":"none","approval":"before-signature","writesState":true,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_submit","title":"Prepare Erc8183 Submit","description":"Re-read a requester-bound funded ERC-8183 job and prepare unsigned provider submit calldata for a non-zero deliverable commitment. Never broadcasts.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"deliverable":{"type":"string","pattern":"^0x(?!0{64}$)[0-9a-fA-F]{64}$","description":"Non-zero bytes32 content commitment for the delivered work."},"optParams":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":8194,"default":"0x","description":"Optional hook payload; review as contract-specific untrusted bytes."}},"required":["platformJobId","deliverable"]},"annotations":{"title":"Prepare Erc8183 Submit","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_complete","title":"Prepare Erc8183 Complete","description":"Re-read a requester-bound Submitted ERC-8183 job, fees, roles, and code hash, then prepare unsigned evaluator completion calldata. Never broadcasts.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"reason":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional bytes32 evaluator attestation; defaults to zero."},"optParams":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":8194,"default":"0x","description":"Optional hook payload; review as contract-specific untrusted bytes."}},"required":["platformJobId"]},"annotations":{"title":"Prepare Erc8183 Complete","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_reject","title":"Prepare Erc8183 Reject","description":"Prepare role-correct unsigned rejection calldata for a requester-bound Open, Funded, or Submitted ERC-8183 job after re-reading state. Never broadcasts.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"reason":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional bytes32 rejection reason commitment; defaults to zero."},"optParams":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})*$","maxLength":8194,"default":"0x","description":"Optional hook payload; review as contract-specific untrusted bytes."}},"required":["platformJobId"]},"annotations":{"title":"Prepare Erc8183 Reject","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"prepare_erc8183_refund","title":"Prepare Erc8183 Refund","description":"Prepare unsigned permissionless claimRefund calldata only after a requester-bound Funded or Submitted job reaches its onchain expiry. Never broadcasts.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["platformJobId"]},"annotations":{"title":"Prepare Erc8183 Refund","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES VALUE ACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"funds-or-assets-if-executed","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"inspect_erc8183_outcome","title":"Inspect Erc8183 Outcome","description":"Read current lifecycle state, roles, token, code hash, fee configuration, and optional matching transition events for a requester-bound ERC-8183 job.","category":"agent-commerce","inputSchema":{"type":"object","additionalProperties":false,"properties":{"platformJobId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"transactionHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional submit, complete, reject, or refund transaction to verify against current state and events."}},"required":["platformJobId"]},"annotations":{"title":"Inspect Erc8183 Outcome","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"inspect_agent_fleet","title":"Inspect Agent Fleet","description":"Inspect immediate ENS subname workers as one operational fleet. Composes identity readiness, stored capability health, verification, active policies, and signed work while isolating failed evidence per worker.","category":"agent-fleet","inputSchema":{"type":"object","additionalProperties":false,"properties":{"parent":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":25},"sortBy":{"type":"string","enum":["attention","name","readiness","policy","work"],"default":"attention"}},"required":["parent"]},"annotations":{"title":"Inspect Agent Fleet","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_fleet_updates","title":"Prepare Fleet Updates","description":"Prepare independent unsigned resolver transactions for selected fleet workers: rotate an endpoint, change context, or publish an advisory pause/resume record. Never broadcasts.","category":"agent-fleet","inputSchema":{"type":"object","additionalProperties":false,"properties":{"parent":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet authorized to edit every selected worker name."},"names":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"},"description":"Exact immediate subnames selected from inspect_agent_fleet."},"mode":{"type":"string","enum":["endpoint","context","pause","resume"]},"protocol":{"type":"string","enum":["mcp","a2a","web"],"description":"Required only for endpoint mode."},"valueTemplate":{"type":"string","maxLength":4000,"description":"Endpoint/context template with {name}, {label}, and {parent}; optional pause message."}},"required":["parent","owner","names","mode"]},"annotations":{"title":"Prepare Fleet Updates","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"prepare_fleet_rollout","title":"Prepare Fleet Rollout","description":"Re-inspect exact fleet membership and prepare a canary, rolling, or all-at-once record rollout with per-phase semantic gates, bounded blast radius, rollback transactions, and a portable receipt template. Never broadcasts or self-heals.","category":"agent-fleet","inputSchema":{"type":"object","additionalProperties":false,"properties":{"parent":{"type":"string","minLength":5,"maxLength":255,"description":"Normalized ENS name, for example agent.eth."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet authorized to edit every selected worker name."},"names":{"type":"array","minItems":1,"maxItems":25,"uniqueItems":true,"items":{"type":"string"},"description":"Exact immediate subnames selected from a fresh inspect_agent_fleet result."},"mode":{"type":"string","enum":["endpoint","context","pause","resume"]},"protocol":{"type":"string","enum":["mcp","a2a","web"],"description":"Required for endpoint rotation."},"valueTemplate":{"type":"string","maxLength":4000,"description":"Template supporting {name}, {label}, and {parent}. Required except for resume."},"strategy":{"type":"string","enum":["canary","rolling","all-at-once"],"default":"canary"},"canarySize":{"type":"integer","minimum":1,"maximum":5,"default":1},"batchSize":{"type":"integer","minimum":1,"maximum":10,"default":5},"maxUnavailable":{"type":"integer","minimum":1,"maximum":25,"default":1},"maximumEvidenceAgeSeconds":{"type":"integer","minimum":300,"maximum":86400,"default":3600}},"required":["parent","owner","names","mode"]},"annotations":{"title":"Prepare Fleet Rollout","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"prepare","label":"PREPARES TRANSACTION","summary":"Returns an unsigned plan for a separate wallet to review and execute.","destructive":false,"idempotent":true,"walletSignature":"after-call","valueImpact":"network-fee-if-broadcast","approval":"before-broadcast","writesState":false,"broadcastsTransaction":false},"profiles":["full"]},{"name":"get_control_plane_canary_status","title":"Get Control Plane Canary Status","description":"Read the latest Ed25519-signed hourly, daily, and nightly control-plane canary receipts. Reports semantic drift, freshness, latency, and evidence without placing controller-wallet keys, funds, or transaction authority in the canary runtime.","category":"agent-canary","inputSchema":{"type":"object","additionalProperties":false,"properties":{"suite":{"type":"string","enum":["hourly","daily","nightly"],"description":"Optional suite filter."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20}}},"annotations":{"title":"Get Control Plane Canary Status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full","lite"]},{"name":"get_agent_platform_capabilities","title":"Get Agent Platform Capabilities","description":"Describe ENS.Tools agent identity, transaction-safety, authentication, and payment capabilities and feature flags.","category":"agent-evidence","inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"annotations":{"title":"Get Agent Platform Capabilities","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"effects":{"kind":"read","label":"READ","summary":"Reads public or caller-supplied data without persisting product state.","destructive":false,"idempotent":true,"walletSignature":"none","valueImpact":"none","approval":"none","writesState":false,"broadcastsTransaction":false},"profiles":["full"]}]}