Hashlock — Intent Trading Protocol
Server Details
Hashlock-Tech intent protocol — sealed-bid crypto swaps on Ethereum, Bitcoin, and SUI.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Hashlock-Tech/hashlock-mcp-server
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 5 of 5 tools scored.
Each tool has a clearly distinct purpose with no overlap: create_intent for initial setup, explain_intent for understanding, parse_natural_language for input conversion, validate_intent for verification, and commit_intent for final submission. The workflow progression from creation to commitment is logical and unambiguous.
All tools follow a perfect verb_noun pattern with the consistent prefix 'hashlock_' (e.g., hashlock_create_intent, hashlock_explain_intent). This predictable naming convention makes it easy for agents to identify and select the appropriate tool without confusion.
With 5 tools, this server is well-scoped for its trading intent protocol domain. Each tool serves a specific, necessary function in the intent lifecycle, from creation to commitment, with no redundant or missing operations, making the count ideal for the purpose.
The tool set provides complete coverage for the trading intent lifecycle: create, explain, parse from natural language, validate, and commit. This covers all essential operations without gaps, ensuring agents can handle end-to-end workflows seamlessly.
Available Tools
5 toolshashlock_commit_intentCommit Hashlock Trading IntentAInspect
[Hashlock protocol — hashlock.ai] Submit a sealed-bid commitment for a trading intent. Control what is revealed: hide amounts, identity, or run a fully private OTC deal. Use for peer-to-peer trading, private negotiations, agent-to-agent settlement, and dark pool orders.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | The intent JSON to commit (from hashlock_create_intent output) | |
| hideAmounts | No | Keep trade amounts private | |
| hideIdentity | No | Hide your identity from counterparty | |
| revealOnMatch | No | Reveal intent when matched | |
| hideRingParties | No | Hide ring settlement participants |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover basic traits (non-readOnly, openWorld, non-idempotent, non-destructive). The description adds valuable context about privacy controls ('hide amounts, identity, or run a fully private OTC deal') and the sealed-bid commitment nature, but does not disclose operational details like rate limits, authentication needs, or what 'commit' entails beyond submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and key features, second lists use cases. Every phrase adds value—no repetition or fluff. Efficiently front-loaded with core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and annotations covering basic traits, the description is reasonably complete for a submission tool. It explains the tool's role in privacy-focused trading but lacks details on response format, error conditions, or confirmation of commitment success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description mentions hiding amounts and identity, which aligns with hideAmounts and hideIdentity parameters, but adds no additional semantic meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Submit a sealed-bid commitment for a trading intent') and resource ('Hashlock protocol'), distinguishing it from siblings like create_intent (which creates) or explain_intent (which explains). It explicitly mentions the protocol context (hashlock.ai).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('peer-to-peer trading, private negotiations, agent-to-agent settlement, and dark pool orders'), but does not explicitly state when NOT to use it or name specific alternatives among the sibling tools (e.g., vs. hashlock_create_intent).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashlock_create_intentCreate Hashlock Trading IntentAInspect
[Hashlock protocol — hashlock.ai] Create a trading intent to swap, buy, sell, exchange, or convert any asset — crypto tokens (ETH, USDC, USDT, DAI, any ERC20), real-world assets (RWA), stablecoins, or NFTs — across any EVM blockchain (Ethereum, Polygon, Arbitrum, Base). Specify what you give, what you want, privacy level, KYC tier, and settlement terms. Works for human traders, autonomous AI agents, and institutional counterparties.
| Name | Required | Description | Default |
|---|---|---|---|
| atomicity | No | full = all-or-nothing, partial = incremental | full |
| giveAsset | Yes | Asset type you are offering (ETH, ERC20 token, or ERC721 NFT) | |
| giveChain | Yes | Chain ID where the asset lives (1=Ethereum, 137=Polygon, 42161=Arbitrum, 8453=Base) | |
| giveToken | No | Token contract address — required for ERC20 and ERC721 | |
| giveAmount | Yes | Amount to give in smallest unit (wei for ETH, base units for tokens) | |
| solverType | No | Who can solve: open/preferred/exclusive | open |
| maxSlippage | No | Max price slippage tolerance (0.005 = 0.5%) | |
| partialFill | No | Allow partial fills if full amount unavailable | |
| ringParties | No | Addresses of ring settlement participants | |
| triggerType | No | immediate or conditional execution | |
| receiveAsset | Yes | Asset type you want in return | |
| receiveChain | Yes | Chain ID where you want to receive | |
| receiveToken | No | Token contract address for the asset you want | |
| solverMaxFee | No | Maximum fee payable to solver in wei | |
| settlementType | No | bilateral = direct swap, ring = multi-party, batch = aggregated | bilateral |
| solverStrategy | No | Optimization goal for solver | best_price |
| triggerAgentId | No | Agent ID monitoring the trigger | |
| agentInstanceId | No | Agent instance ID for tracking | |
| attestationTier | No | Your verified KYC tier | |
| deadlineSeconds | Yes | How many seconds this intent stays valid | |
| solverPreferred | No | Preferred solver addresses | |
| attestationProof | No | Cryptographic attestation proof | |
| receiveMaxAmount | No | Maximum amount — set for range orders | |
| receiveMinAmount | Yes | Minimum acceptable amount in smallest unit | |
| triggerConfidence | No | Agent confidence in trigger (0-1) | |
| attestationBlindId | No | Rotating pseudonym for privacy | |
| triggerDescription | No | Trigger condition (e.g. 'when ETH > 5000 USDC') | |
| attestationIssuedAt | No | KYC attestation issued (unix seconds) | |
| minCounterpartyTier | No | Min KYC tier for counterparty | |
| agentInstanceVersion | No | Agent software version | |
| attestationExpiresAt | No | KYC attestation expires (unix seconds) | |
| agentInstanceStrategy | No | Strategy label (e.g. 'dca', 'arbitrage') | |
| attestationPrincipalId | No | Your principal identity hash | |
| attestationPrincipalType | No | HUMAN, INSTITUTION, or AGENT |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover key traits (non-read-only, open-world, non-idempotent, non-destructive), so the bar is lower. The description adds context about privacy levels, KYC tiers, and settlement terms, which are useful behavioral details not in annotations. However, it lacks information on rate limits, authentication needs, or error handling, limiting its transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and scope in the first sentence, followed by additional context. It is appropriately sized for a complex tool, but could be slightly more concise by avoiding repetition (e.g., listing asset types in detail). Overall, it is efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (34 parameters, no output schema) and rich annotations, the description provides adequate context on what the tool does and its scope. However, it lacks details on return values, error cases, or operational constraints, making it incomplete for full agent understanding without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 34 parameters. The description mentions general categories (e.g., 'what you give, what you want, privacy level, KYC tier, and settlement terms') but does not add specific semantic details beyond what the schema provides, aligning with the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Create a trading intent') and specifies the scope ('to swap, buy, sell, exchange, or convert any asset'). It distinguishes from siblings by focusing on creation rather than commitment, explanation, parsing, or validation, making the purpose highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for creating trading intents across various assets and blockchains, with support for different user types. However, it does not explicitly mention when not to use it or name alternatives (e.g., using sibling tools for other operations), leaving some guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashlock_explain_intentExplain Hashlock IntentARead-onlyIdempotentInspect
[Hashlock protocol — hashlock.ai] Get a plain-language explanation of a trading intent — what crypto, tokens, or assets are being exchanged, for how much, on which blockchain, with what privacy and KYC settings.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | The intent JSON to process |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds context about the explanation output (plain-language, covering specific aspects like privacy/KYC), which is useful but not rich behavioral detail beyond annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and details without waste. Every part earns its place by specifying the action, resource, and key aspects explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter with full schema coverage and annotations covering safety/idempotency, the description is mostly complete. However, no output schema exists, and the description does not detail return values (e.g., format of explanation), leaving a minor gap for a tool that outputs explanations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter ('intent' as a JSON string), so the schema fully documents the parameter. The description does not add meaning beyond the schema, such as format examples or constraints, but baseline is 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get a plain-language explanation') and the resource ('trading intent'), with detailed scope covering crypto/tokens/assets, amounts, blockchain, privacy, and KYC settings. It distinguishes from siblings like hashlock_commit_intent (which commits) and hashlock_create_intent (which creates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'trading intent' and what aspects are explained, but does not explicitly state when to use this tool versus alternatives like hashlock_parse_natural_language or hashlock_validate_intent. It provides clear context but lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashlock_parse_natural_languageParse Natural Language TradeARead-onlyIdempotentInspect
[Hashlock protocol — hashlock.ai] Convert everyday language into a structured trading intent. Understands 'sell 10 ETH for USDC above 4000', 'buy tokenized real estate with 50k DAI', 'swap my NFT for 2 ETH on Arbitrum', 'exchange 1000 USDT for BTC'. Supports English and Turkish.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Natural language description of the trade | |
| chainId | No | Default chain ID if not specified in text |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context about language support (English and Turkish) and the types of trading phrases it understands, which goes beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with protocol context, core function, specific examples, and language support in just two sentences. Every element adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (natural language parsing), rich annotations, and 100% schema coverage, the description is mostly complete. It explains what the tool does and provides examples, though without an output schema, it doesn't describe return values. For a parsing tool with good annotations, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add additional meaning about the parameters beyond what's in the schema, but the baseline is 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting natural language into structured trading intent with specific examples ('sell 10 ETH for USDC above 4000', 'buy tokenized real estate with 50k DAI', etc.). It distinguishes from siblings by focusing on parsing rather than committing, creating, explaining, or validating intents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (converting everyday language into structured trading intent) and mentions support for English and Turkish. However, it doesn't explicitly state when not to use it or name specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashlock_validate_intentValidate Hashlock IntentARead-onlyIdempotentInspect
[Hashlock protocol — hashlock.ai] Validate a crypto trading intent before submitting — catches missing fields, invalid token amounts, chain mismatches, and business rule violations. Always validate before committing.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | The intent JSON to process |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations by specifying what the validation checks (missing fields, invalid token amounts, chain mismatches, business rule violations). Annotations already indicate it's read-only, non-destructive, idempotent, and open-world, but the description clarifies the validation scope, which is helpful for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise, with two sentences that efficiently convey purpose and usage guidelines without unnecessary details. Every sentence adds value, making it well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation with multiple checks), annotations cover safety aspects, but there is no output schema. The description adequately explains what validation entails, though it could benefit from mentioning potential outcomes (e.g., error messages or success indicators) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'intent' as 'The intent JSON to process'. The description adds no additional parameter details beyond this, such as format examples or constraints, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('validate') and resource ('crypto trading intent'), and distinguishes it from siblings by mentioning what it catches (missing fields, invalid token amounts, etc.). It explicitly contrasts with 'commit' operations, which helps differentiate from tools like hashlock_commit_intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('always validate before committing') and implies alternatives by referencing 'committing' (likely hashlock_commit_intent). This gives clear context for usage versus other tools in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!