Add HashAnchor to Claude Desktop, Claude Code, or any MCP-compatible agent. The MCP server provides 9 tools for provisioning, anchoring, verifying, and querying hashes.
Add to your claude_desktop_config.json or .claude/settings.json:
Use your API key for subscription-based access with monthly quota.
{
"mcpServers": {
"hashanchor": {
"command": "npx",
"args": ["-y", "hashanchor-mcp"],
"env": {
"HASHANCHOR_API_KEY": "ha_your_api_key_here"
}
}
}
}provision — Register and get API keyanchor_text — Anchor text contentanchor_hash — Anchor pre-computed hashverify — Public on-chain verificationcheck_status — Query hash statusbatch_status — Check multiple hashesget_receipt — Get Merkle proof receiptget_usage — Check quota and usagelist_chains — List supported blockchainsZero-dependency TypeScript SDK. Works in Node.js 18+ and browsers.
npm install @hashanchor/sdkimport HashAnchor from "@hashanchor/sdk";
const ha = new HashAnchor({
apiKey: "ha_your_api_key_here",
baseUrl: "",
});
// Anchor text content (auto-hashes with SHA-256)
const result = await ha.anchor("Important document content", {
metadata: { type: "report", version: "1.0" },
});
console.log(result);
// { status: "accepted", id: "123", hash: "0xabc..." }
// Check quota
const quota = await ha.getQuota();
console.log(`${quota.monthly.remaining} hashes remaining`);
// Verify on-chain
const verification = await ha.verify(result.hash);
console.log(verification.verified); // true once anchoredha.anchor(content, opts?)Anchor text/base64 contentha.submitHash(hash, opts?)Submit pre-computed hashha.submitBatch(hashes)Submit up to 100 hashesha.getStatus(hash)Get hash status (authed)ha.batchStatus(hashes)Bulk status queryha.getQuota()Check plan and usageha.verify(hash)Public on-chain verifyha.getReceipt(hash)Get Merkle proof receiptha.getChains()List supported chainsUse the API directly with curl or any HTTP client. No SDK required.
curl -X POST /v1/hashes/anchor \
-H "Authorization: Bearer ha_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello, blockchain!",
"metadata": { "source": "agent" }
}'curl /v1/verify/0xYOUR_HASHAgents can self-provision with a single API call. No registration form, no password, no email verification. Get an API key instantly.
curl -X POST /auth/provision \
-H "Content-Type: application/json" \
-d '{"name": "My Agent"}'
# Response:
# {
# "tenantId": "uuid",
# "apiKey": "ha_abc123...",
# "plan": "free",
# "quota": { "limit": 100, "remaining": 100 }
# }Provision endpoint is public. Agents can create accounts autonomously.
Returns a ready-to-use ha_ API key with submit and query scopes.
100 hashes/month on the free plan. Enough for testing and light workloads.
No registration, no subscription. Your wallet is your identity.
POST /v1/hashes/anchor — no auth header needed
Server returns payment requirements and price
Wallet signs EIP-712 authorization automatically
Hash accepted, USDC payment settled on-chain
# 1. Request without auth — server returns 402
curl -s -o /dev/null -w "%{http_code}" \
-X POST /v1/hashes/anchor \
-H "Content-Type: application/json" \
-d '{"content": "Hello, blockchain!"}'
# → 402
# 2. With MCP, this is automatic:
# Agent sends request → gets 402 → wallet signs EIP-712
# → retries with payment header → 202 Accepted
# No code changes needed — just configure HASHANCHOR_WALLET_KEYSlide to see which plan is cheapest for your usage.
$0
100 hashes/month
Not enough for your usage
$29/mo
1,000 hashes/month
$0.029/hash
$0.10/mo
$0.0001/hash, no limit
No registration required
At 1,000 hashes/month, pay-per-use saves you $28.90 compared to Starter.