Labsco
MCP SERVER

HashLock OTC

by Hashlock-Tech

Post a sealed RFQ, negotiate the price in a deal thread, and settle the cross-chain swap so that both legs land or neither does.

Wallets, Signing & Transaction Execution
Summary
Cross-chain settlement with nothing in the middle to trust.

The quote you accept and the contract that settles it are one operation, so a half-executed trade is not a state the book can reach. The swap secret is generated on your machine and only its hash ever leaves it.

What it is

The canonical MCP server for Hashlock Markets, a non-custodial cross-chain OTC desk. One loop covers the whole trade: browse the asset registry and the RFQ board, post a request, negotiate a price in the deal thread, then settle through hash time-locked contracts on both chains. Testnets only for now — Ethereum Sepolia, TRON Nile and Bitcoin signet.

What you get
  • The asset registry and the public RFQ board read before you commit to anything — `list_assets`, `list_open_rfqs`, `get_rfq`
  • A public request posted, or a private fixed-price order with a shareable link, and your own request withdrawn — `create_rfq`, `cancel_rfq`
  • A price posted against someone else's request, which opens a deal thread you then counter, accept or decline in — `respond_to_rfq`, `negotiate`
  • Your own requests and threads, with negotiation history and live HTLC state alongside them — `my_rfqs`, `my_deals`, `deal_status`, `whoami`
  • Receive and refund addresses set per chain, and the locally stored swap preimage handed back once both legs are funded — `set_settlement_address`, `get_deal_secret`, `reveal_claim`
  • Settlement the agent signs itself, when it holds its own key for the chain — `fund_leg`, `claim_leg`
  • Failures as a structured envelope carrying a code, a retryable flag and a recovery hint, so an agent can branch on them instead of parsing prose
Requirements

Two ways in. Local stdio is `npx -y @hashlock-tech/mcp` on Node 20 or newer; set `HASHLOCK_EVM_KEY`, `HASHLOCK_TRON_KEY` or `HASHLOCK_BTC_KEY` and the server logs in and signs settlement itself. The hosted path is `https://dev.hashlock.markets/mcp` over Streamable HTTP with one-click OAuth — multi-tenant and non-custodial, so it hands back unsigned transactions for your own wallet to sign. With no key set, the read-only calls still work. Testnets only until the security-hardening gate: use dedicated testnet keys.

Setup effort

One command plus a key — npx -y @hashlock-tech/mcp, then supply credentials