crackthe.work / dev

Give your agent a scoping tool that pays as it goes

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.

Set up a payable wallet How the money moves

How it works

  1. Your agent gets a job: "Build a wholesale ordering portal that pulls live stock from our ERP."
  2. It calls the crack_scope tool. The gateway answers 402 with the offer: $0.25 in USDC on Base.
  3. The agent's wallet signs that transfer locally (EIP-3009) and retries. A facilitator settles it on-chain: the wallet needs USDC only, never ETH, and the key never leaves your machine.
  4. The engine returns the breakdown: outcomes with acceptance criteria, a verification method each, and payout bands, plus the settlement hash the agent can cite. A real receipt looks like this.

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.

1Install

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

2Create the payable wallet

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.

3Connect your agent

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.

What you could build on it

Vendor dispatch

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.

Quote comparison

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.

Bounty boards

Every outcome ships with done/not-done criteria and a verification method, which is exactly what a bounty needs to pay out without arguments.

Outcome-based job boards

List work as outcome contracts instead of job posts. Candidates bid on verifiable results with payout bands already sized.

Market research

Batch-run briefs across a category to map what work actually costs: $0.25 per data point, receipts included.

Branded proposal builders

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.

Why not just prompt an LLM yourself?

You could copy the output format in an afternoon. The format is not the product.

Priced by precedent

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.

A structure that settles

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.

The moat is below the waterline

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.

Details

Use it from your own code (plain HTTP)

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 ProjectDraft

Any language works; the protocol is plain HTTP headers. Unauthenticated discovery: GET https://x402.crackthe.work/ returns the current terms as JSON.

What you get back

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).

Receipts and pricing

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.