list_assetsLABSCO 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 — npx -y @hashlock-tech/mcp
USE CASES
Selling one asset for another across two chains
Post what you want to trade as a public RFQ, take a price from whoever answers, and let the hash time-locked contracts do the rest. Both legs settle or both refund after their timelocks — there is no window where one side is holding and the other is waiting.
Quoting against someone else's request
Read the open board, pick a request you can fill, and answer it with a price. Your response opens a deal thread where the two of you counter and accept, and the swap is created the moment both sides agree.
Letting an agent run the trade end to end
With a key configured for each chain the swap touches, the agent creates or answers the request, agrees the price, sets its settlement addresses, funds its leg and claims the other. Funding and claiming are signed locally, so no key leaves the machine.
Working out where a half-finished swap stands
Ask for the deal and read who funded which leg, what the timelocks are, and the transaction hashes on both chains. If your counterparty claimed out of band, report their secret so your own leg can settle.
Trying it without handing over a private key
Connect to the hosted endpoint instead of running the package. It returns unsigned fund, claim and refund transactions for your own wallet to sign, and you supply your own hashlock and keep your own preimage.
16 tools
Listed in project docs. Your client may show a different list.
list_open_rfqsget_rfqcreate_rfqcancel_rfqrespond_to_rfqnegotiatemy_rfqsmy_dealsdeal_statusset_settlement_addressget_deal_secretreveal_claimwhoamifund_legclaim_legBEFORE YOU INSTALL
What to know first
Tools you get
16 tools named in the project's documentation.
Requires
- npx on PATH
- Node ≥ 20
Optional
- HASHLOCK_EVM_KEY in your environment
- HASHLOCK_TRON_KEY in your environment
- HASHLOCK_BTC_KEY in your environment
- HASHLOCK_TOKEN in your environment
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx
npx -y @hashlock-tech/mcpHosted endpoint
https://dev.hashlock.markets/mcpAdd this hosted endpoint to your MCP client.
MCP Clients
Claude Desktop, Cursor, Windsurf
{
"mcpServers": {
"hashlock": {
"command": "npx",
"args": [
"-y",
"@hashlock-tech/mcp"
],
"env": {
"HASHLOCK_EVM_KEY": "0x<YOUR_AGENT_EVM_KEY>",
"HASHLOCK_TRON_KEY": "<YOUR_HASHLOCK_TRON_KEY>",
"HASHLOCK_BTC_KEY": "<YOUR_HASHLOCK_BTC_KEY>"
}
}
}
}The configuration on this page does not set HASHLOCK_TOKEN; the project's instructions put it in a .env file. To supply HASHLOCK_TOKEN without depending on where the server looks for that file, use the block's "env" section.