Hashlock Markets

Created By
Hashlock-Tech5 days ago
Sealed-bid intent-based crypto trading via MCP for AI agents. Atomic cross-chain settlement on Ethereum, Bitcoin, and Sui using Hash Time-Locked Contracts. Six MCP tools: two RFQ-side for sealed-bid price discovery without information leakage, four HTLC-side for atomic settlement without escrow or bridges. Either both legs settle, or neither does — and refund_htlc exists because counterparty risk is the unsolved problem in OTC. Canonical npm: @hashlock-tech/mcp.
Overview

@hashlock-tech/mcp

Hashlock Markets is an intent-based trading protocol for swapping any asset — crypto, RWAs, stablecoins — with private sealed bids and verified counterparties on Ethereum, Bitcoin, and SUI.

Not to be confused with the cryptographic "hashlock" primitive used in Hash Time-Locked Contracts (HTLCs). This package is the MCP server for the Hashlock Markets trading protocol and product at hashlock.markets.

Not affiliated with Hashlock Pty Ltd (hashlock.com), an independent Australian smart contract auditing firm. The two organizations share a similar name by coincidence only — distinct products, legal entities, jurisdictions, and founders.

npm License: MIT MCP Registry smithery badge

What is this?

@hashlock-tech/mcp is the canonical Model Context Protocol server for Hashlock Markets. It lets AI agents (Claude, GPT, Cursor, Windsurf, any MCP-compatible client) create RFQs, respond as a market maker, fund HTLCs, and settle cross-chain atomic swaps across Ethereum, Bitcoin, and SUI.

Install

Option A (preferred) — Remote streamable-http

Connect Claude Desktop / Cursor / Windsurf directly to the Hashlock Markets MCP endpoint. No local install.

{
  "mcpServers": {
    "hashlock": {
      "url": "https://hashlock.markets/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer <token from hashlock.markets/sign/login>"
      }
    }
  }
}

Option B — Local stdio via npx

{
  "mcpServers": {
    "hashlock": {
      "command": "npx",
      "args": ["-y", "@hashlock-tech/mcp"],
      "env": {
        "HASHLOCK_ACCESS_TOKEN": "<token from hashlock.markets/sign/login>"
      }
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Restart your client after editing.

Authentication

Hashlock Markets uses SIWE (Sign-In With Ethereum) bearer tokens.

  1. Visit hashlock.markets/sign/login
  2. Sign a message with your Ethereum wallet
  3. Receive a 7-day JWT
  4. Set it as HASHLOCK_ACCESS_TOKEN (stdio) or Authorization: Bearer <token> header (remote)
  5. Re-sign after expiry

Available Tools

ToolDescription
create_rfqCreate a Request for Quote (RFQ) to buy or sell crypto OTC. Broadcasts to market makers for sealed-bid responses.
respond_rfqMarket-maker side: submit a price quote in response to an open RFQ.
create_htlcFund a Hash Time-Locked Contract for atomic OTC settlement (records on-chain lock tx hash).
withdraw_htlcClaim an HTLC by revealing the 32-byte preimage — settles the atomic swap.
refund_htlcRefund an expired HTLC after timelock — only the original sender, only post-deadline.
get_htlcQuery current HTLC status for a trade (both sides, contract addresses, lock amounts, timelocks).

All tools support three chains: Ethereum (EVM), Bitcoin (wrapped HTLC), and SUI (Move HTLC).

Environment Variables

VariableRequiredDefaultDescription
HASHLOCK_ACCESS_TOKENYes7-day SIWE JWT from hashlock.markets/sign/login
HASHLOCK_ENDPOINTNohttps://hashlock.markets/api/graphqlGraphQL endpoint override (rarely needed)

Tool Examples

Create an RFQ

"Create an RFQ to sell 2 ETH for USDT"

Tool: create_rfq
Input: { baseToken: "ETH", quoteToken: "USDT", side: "SELL", amount: "2.0" }
Output: { rfqId, broadcast status }

Respond to an RFQ

"Quote 3400 USDT per ETH on RFQ abc-123"

Tool: respond_rfq
Input: { rfqId: "abc-123", price: "3400.00", amount: "2.0" }

Check HTLC Status

"What's the HTLC status for trade xyz-789?"

Tool: get_htlc
Input: { tradeId: "xyz-789" }

Fund an HTLC

"Record my ETH lock transaction for trade xyz-789"

Tool: create_htlc
Input: { tradeId: "xyz-789", txHash: "0xabc...", role: "INITIATOR", chainType: "evm" }

Claim with Preimage

"Claim the HTLC using the preimage"

Tool: withdraw_htlc
Input: { tradeId: "xyz-789", txHash: "0xdef...", preimage: "0x1234..." }

Deprecated legacy packages

Do not use these — they depended on an intent REST API that was never shipped, and are superseded by @hashlock-tech/mcp:

  • hashlock-mcp-server (unscoped, npm) — deprecated 2026-04-19
  • langchain-hashlock (PyPI) — superseded for MCP-based integrations

License

MIT © Hashlock Corp.

Server Config

{
  "mcpServers": {
    "hashlock": {
      "command": "npx",
      "args": [
        "-y",
        "@hashlock-tech/mcp"
      ],
      "env": {
        "HASHLOCK_ACCESS_TOKEN": "<7-day SIWE bearer token from https://hashlock.markets/sign/login>"
      }
    }
  }
}
Project Info
Created At
5 days ago
Updated At
5 days ago
Author Name
Hashlock-Tech
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Tanso Platform

2 days ago
Knocksandbans.com
@MessingMedia

Knocks and bans tracks which players are injured, doubtful, or suspended. Via this MCP server, AI assistants can query that data directly — returning structured cards with full source links. Who Is This For? Football Fans Ask your AI assistant which players are injured or doubtful before this weekend's matches. Fantasy & Betting Analysts Get up-to-date availability data for squad building and informed predictions. Journalists & Bloggers Pull the latest injury roundups with source links to cite in match previews or reports. Available Tools top_player_statuses The 5 players most recently updated with an injured or doubtful status. Sorted by last update, newest first. Returns: name · injury · status · last updated · source link top_club_news The 3 clubs with the most recent editorial updates. Each card includes a short excerpt and a direct link to the club page. Returns: headline · excerpt · last updated · source link Try These Prompts Copy one of these into your AI assistant when the MCP server is connected. "Which players are currently injured or doubtful? Show me the 5 most recent updates with source links." "Give me the latest club squad news, with a summary and a link to each club page." "I'm building my fantasy team. Which key players are out or doubtful this week? Link me to the details." What You Get When your AI assistant connects to this MCP server, it can return: Player availability cards Recent injured or doubtful players, including status, update time, and a direct source link. Club update cards Latest club-level squad updates with a short summary and link to the full page. Additional Links MCP server URL for remote clients: https://www.knocksandbans.com/mcp/rpc

2 days ago
Is Real Biz

a day ago