One tool call buys one contract-grade work breakdown from the engine behind crackthe.work: $0.25 in USDC on Base, settled per call over x402. No account, no API key. The payment is the authentication.
crack_scope tool. The gateway answers 402 with the offer: $0.25 in USDC on Base.Money flow: your wallet → $0.25 USDC on Base → the gateway wallet. One hop, public, per call. No subscription, no balance held by us, nothing to cancel; stop calling and you stop paying.
One command: downloads the MCP server and its dependencies into a folder.
mkdir -p crack-mcp && cd crack-mcp \ && curl -fsSLO https://dev.crackthe.work/crack-mcp/server.mjs \ && npm init -y >/dev/null \ && npm i @modelcontextprotocol/sdk@^1.30 @x402/fetch@^2.23 @x402/core@^2.23 @x402/evm@^2.23 viem@^2 zod@^3
A fresh throwaway key, its address to fund, and nothing tied to your main wallet:
export CRACK_PRIVATE_KEY=0x$(openssl rand -hex 32) \
&& node -e 'import("viem/accounts").then(m=>console.log("fund with USDC on Base:",m.privateKeyToAccount(process.env.CRACK_PRIVATE_KEY).address))' \
&& echo "your key (save it): $CRACK_PRIVATE_KEY"Send USDC to that address on the Base network ($5 covers 20 calls). From Coinbase or Binance: withdraw USDC and pick Base as the network. No ETH needed, ever.
Claude Code:
claude mcp add crack -e CRACK_PRIVATE_KEY=$CRACK_PRIVATE_KEY -- node "$PWD/server.mjs"
Cursor and other MCP clients, via their mcp.json:
{
"mcpServers": {
"crack": {
"command": "node",
"args": ["/absolute/path/to/crack-mcp/server.mjs"],
"env": { "CRACK_PRIVATE_KEY": "0x..." }
}
}
}macOS: keep the key out of config files with security add-generic-password -a x402-test -s x402-test-wallet -w "0x..."; the server finds it in the Keychain.
Then just ask: crack this scope: rebuild our onboarding flow, budget $3k. The agent checks the wallet with the free crack_wallet_status, pays, and returns the breakdown with its receipt.
Intake a client brief, split the breakdown, and hand each outcome to a vendor with its acceptance criteria attached. The band tells you what fair looks like before anyone quotes.
Collect vendor quotes against one neutral breakdown instead of three shapes of prose. Anchored scopes mean the same work resolves to the same reference numbers: apples to apples.
Every outcome ships with done/not-done criteria and a verification method, which is exactly what a bounty needs to pay out without arguments.
List work as outcome contracts instead of job posts. Candidates bid on verifiable results with payout bands already sized.
Batch-run briefs across a category to map what work actually costs: $0.25 per data point, receipts included.
The JSON renders however you like: your logo, your layout, your client. Generate scoped proposals under your own brand in seconds.
And all of it is escrow-ready: this JSON is the structure wellsyn'cc outcome contracts are built from, so any of these products can end in a funded contract instead of a document.
You could copy the output format in an afternoon. The format is not the product.
Payout bands come from scope anchors built on real engagements. The same scope resolves to the same numbers however it is phrased or retried. A raw LLM invents a price each time.
The schema is what wellsyn'cc escrow contracts run on: acceptance criteria and verification methods shaped by real sign-offs, and every human approval feeds the engine back.
Prompts are the visible tip. Price anchors, human-approved corrections, and settlement outcomes live server-side and compound with every call. None of it can be scraped out of the responses.
POST https://x402.crackthe.work/v1/decompose with { docs, budgetHintUsdt?, mode? }: 1 to 8 documents as { name, mimeType, dataBase64 } (plain text, PDF, images, or Office; 7 MB per doc, 13 MB total). Node client:
import { wrapFetchWithPayment, decodePaymentResponseHeader } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.CRACK_PRIVATE_KEY);
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const fetchWithPay = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPay("https://x402.crackthe.work/v1/decompose", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
docs: [{ name: "brief.txt", mimeType: "text/plain",
dataBase64: Buffer.from("What you need done, in plain language.").toString("base64") }],
budgetHintUsdt: 1500,
}),
});
const receipt = decodePaymentResponseHeader(res.headers.get("PAYMENT-RESPONSE"));
console.log(receipt.transaction); // your on-chain receipt
console.log(await res.json()); // the ProjectDraftAny language works; the protocol is plain HTTP headers. Unauthenticated discovery: GET https://x402.crackthe.work/ returns the current terms as JSON.
A ProjectDraft: projectTitle, projectType with a rationale, and clauses[]. Each clause carries title, deliverable, a metric (metricName, unit, target, direction), acceptanceThreshold, done/not-done checkpoints for qualitative outcomes, verifyMethod, evidenceChecklist, assumptions, and a payout band (payoutFloorUsdt, payoutBaseUsdt, payoutBonusMaxUsdt).
The 402 offer and the discovery endpoint are the source of truth on price. Every paid response carries the settlement transaction in a PAYMENT-RESPONSE header; verify any receipt at basescan.org/tx/<hash>. Calls are metered per request with no account, and no data is retained about the payer beyond the on-chain settlement itself.