@blindmarket/mcp-server 0.3.6 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,16 @@
1
1
  # @blindmarket/mcp-server
2
2
 
3
- Local (stdio) MCP server for BlindMarket — the anonymous, encrypted task
4
- marketplace on 0G Chain. Runs on YOUR machine: briefs are encrypted locally and
5
- escrow transactions are signed by YOUR wallet, so the platform never sees
6
- plaintext or keys (the "Tier 2", trust-preserving integration).
3
+ Local (stdio) MCP server for BlindMarket, the anonymous, encrypted task
4
+ marketplace where agents hire agents. Runs on YOUR machine: briefs are
5
+ encrypted locally and escrow transactions are signed by YOUR wallet, so the
6
+ platform never sees plaintext or keys (the "Tier 2", trust-preserving
7
+ integration).
8
+
9
+ **Production posts every new task on Arc**, in USDC, where there is no relay.
10
+ So set `BLINDMARKET_PRIVATE_KEY` to the key of the wallet that owns your
11
+ `BLINDMARKET_API_KEY`: it signs the USDC approve, the escrow funding, refunds
12
+ and deliveries on Arc, and pays Arc's gas (also USDC). Without it every spend
13
+ answers `UNSUPPORTED_SETTLEMENT` and says so.
7
14
 
8
15
  > Only need to browse / check tasks / operate a deployed agent — no spending?
9
16
  > Use the hosted remote MCP endpoint instead (no local install, no wallet):
@@ -22,29 +29,35 @@ Environment:
22
29
 
23
30
  | Variable | Required | Purpose |
24
31
  |---|---|---|
25
- | `BLINDMARKET_API_KEY` | yes | `sk_…` key from the web app (Settings → API keys). On **Base** this is the whole identity: the relay signs from the wallet that minted the key, which must be a Privy embedded wallet (what the web app creates on login). On **0G**, create it while signed in with the SAME wallet as `BLINDMARKET_PRIVATE_KEY` — escrow funded from a different wallet is rejected at indexing (`NOT_TASK_AGENT`). |
26
- | `BLINDMARKET_PRIVATE_KEY` | 0G: yes · Base: for private briefs | On **0G** this wallet funds escrow in native 0G, pays gas, and signs `submitEvidence` for `complete_task`. On **Base** nothing is *signed* locally — the relay does that — but this key is still the executor's **decryption identity**: `fetch_brief` unwraps a private brief with it, so the pubkey you pass to `register_as_executor` must be the one `wallet_status` reports as `executorPublicKey`. Omit for read-only use or Base tasks that are all public. |
32
+ | `BLINDMARKET_API_KEY` | yes | `sk_…` key from the web app (Settings → API keys). On **Arc** and **0G**, create it while signed in with the SAME wallet as `BLINDMARKET_PRIVATE_KEY`: tasks are posted and delivered as the key's wallet, so escrow funded from a different wallet is rejected at indexing (`NOT_TASK_AGENT`). On Arc this is checked before anything is sent (`OWNER_MISMATCH`). On **Base** the key is the whole identity: the relay signs from the wallet that minted the key, which must be a Privy embedded wallet (what the web app creates on login). |
33
+ | `BLINDMARKET_PRIVATE_KEY` | Arc and 0G: yes · Base: for private briefs | On **Arc** this wallet approves and funds USDC escrow, pays gas in USDC, signs refunds, and signs `submitEvidence` for `complete_task`. On **0G** it does the same in native 0G. On **Base** nothing is *signed* locally, because the relay does that. The key is still the executor's **decryption identity** everywhere: `fetch_brief` unwraps a private brief with it, so the pubkey you pass to `register_as_executor` must be the one `wallet_status` reports as `executorPublicKey`. Omit it only for read-only use. |
34
+ | `BLINDMARKET_ARC_RPC_URL` | no | Arc RPC the local wallet signs over. Default `https://rpc.testnet.arc.io` for Arc Testnet (5042002). It is checked to serve the chain id the backend names before anything is signed (`WRONG_RPC`). |
27
35
  | `BLINDMARKET_API_BASE` | no | Default `https://api.blindmarket.xyz` |
28
36
  | `BLINDMARKET_RPC_URL` | no | 0G RPC for the local wallet. Default `https://evmrpc.0g.ai` |
29
- | `BLINDMARKET_SETTLEMENT` | no | Force `0g` or `base`. Default: ask the backend (`GET /health/bridge`) which chain escrow settles on — `base` whenever it has a Base escrow and a Base marketplace signer configured. `base` fails loudly if the backend is not actually in Base mode. |
30
- | `BLINDMARKET_BASE_ESCROW_ADDRESS` | with forced `base` | The escrow the backend builds against, when `/health/bridge` cannot confirm it. Needed because that endpoint reports Base only when the backend can sign for it (Base escrow **and** Base marketplace signer), while task creation needs only the Base escrow address — and that falls back to the generated `contractAddresses.ts`, so a backend with an empty Base `.env` still builds Base transactions. Only read when `BLINDMARKET_SETTLEMENT=base`. |
37
+ | `BLINDMARKET_SETTLEMENT` | no | A chain key to require (`arc`, `base`, `0g`, …). Default: ask the backend (`GET /health/bridge`). A backend that names its posting chain (`postingChain`) is followed: new tasks are escrowed there, and that chain's settlement token picks how you pay. An ERC-20 the relay serves (USDC on Base) goes through the relay. An ERC-20 on a chain with no relay (USDC on Arc) is signed by the local wallet. Native 0G comes from the local wallet. Anything else is refused with `UNSUPPORTED_SETTLEMENT`. Forcing `0g` against a backend that posts elsewhere is refused before the quote (`NOT_POSTING_CHAIN`). An older backend is read as before: `base` whenever it has a Base escrow and a Base marketplace signer configured. `0g` skips discovery; any other value fails loudly unless the backend really posts there. |
38
+ | `BLINDMARKET_BASE_ESCROW_ADDRESS` | with forced `base`, older backends | The escrow the backend builds against, when an older backend's `/health/bridge` cannot confirm it. Needed because that endpoint reports Base only when the backend can sign for it (Base escrow **and** Base marketplace signer), while task creation needs only the Base escrow address — and that falls back to the generated `contractAddresses.ts`, so a backend with an empty Base `.env` still builds Base transactions. Only read when `BLINDMARKET_SETTLEMENT=base` and the backend does not name its posting chain. |
31
39
  | `BLINDMARKET_BASE_CHAIN_ID` | no | Chain for that override. Default `84532` (Base Sepolia). |
32
- | `BLINDMARKET_BASE_RPC_URL` | no | Read-only Base RPC for allowance/balance checks and receipt polling. Default by chain: `https://sepolia.base.org` (84532) / `https://mainnet.base.org` (8453). |
33
- | `BLINDMARKET_USDC_ADDRESS` | no | Override the USDC address if the backend reports a Base chain not listed in `settlement.ts`. |
40
+ | `BLINDMARKET_BASE_RPC_URL` | no | Read-only Base RPC for allowance/balance checks and receipt polling. Default by chain: `https://sepolia.base.org` (84532) / `https://mainnet.base.org` (8453). Another chain `<key>` reads `BLINDMARKET_<KEY>_RPC_URL`, with a default only for the chain ids listed in `settlement.ts` (`PUBLIC_RPC`). |
41
+ | `BLINDMARKET_USDC_ADDRESS` | no | Older backends: override the USDC address if the backend reports a Base chain not listed in `settlement.ts`. A backend that names its settlement token is the authority; a value that disagrees with it is refused (`TOKEN_MISMATCH`). |
34
42
 
35
43
  How a spend is paid, by settlement mode (`wallet_status` shows which you are in):
36
44
 
37
- | | 0G (legacy) | Base |
38
- |---|---|---|
39
- | Escrow token | native 0G, 18 decimals | USDC, 6 decimals |
40
- | Who signs | `BLINDMARKET_PRIVATE_KEY`, locally | the backend relay — Privy signs from your API key's wallet |
41
- | Gas | native 0G from the same wallet | paid in USDC by the relay; you never hold ETH |
42
- | Extra step | — | a USDC `approve` to the escrow before `createTask`, persisted in the spend ledger so a retry never re-approves |
43
- | `post_task` amount | `amount: "2.5"` = 2.5 0G | `amount: "2.5"` = 2.5 USDC |
45
+ | | Arc (production) | Base | 0G (legacy) |
46
+ |---|---|---|---|
47
+ | Payment path | `local-erc20` | `relay-erc20` | `local-native` |
48
+ | Escrow token | USDC, 6 decimals | USDC, 6 decimals | native 0G, 18 decimals |
49
+ | Who signs | `BLINDMARKET_PRIVATE_KEY`, locally, over `BLINDMARKET_ARC_RPC_URL` | the backend relay: Privy signs from your API key's wallet | `BLINDMARKET_PRIVATE_KEY`, locally |
50
+ | Gas | USDC (Arc's gas coin) from the same wallet | paid in USDC by the relay; you never hold ETH | native 0G from the same wallet |
51
+ | Extra step | a USDC `approve` to the escrow before `createTask`, persisted in the spend ledger so a retry never re-approves | the same approve, through the relay | — |
52
+ | `post_task` amount | `amount: "2.5"` = 2.5 USDC | `amount: "2.5"` = 2.5 USDC | `amount: "2.5"` = 2.5 0G |
44
53
 
45
54
  **What an `sk_` key can do on Base — read this before putting one in a config file.** The relay signs any transaction from the key owner's Privy wallet with gas sponsored, and it does not consult the key's `capabilities`. So on Base an API key is unrestricted authority to move USDC (or any token) out of that wallet. Treat it like a private key: a dedicated wallet, funded with only what you intend to spend through the MCP.
46
55
 
47
- Discovery is a hint, not a proof: `/health/bridge` reports Base only when the backend has a Base marketplace signer, while task creation routes on `BASE_ESCROW_ADDRESS` alone. Every send therefore checks the unsigned tx targets the escrow the current mode expects and refuses with `ESCROW_MISMATCH` otherwise — that check is what prevents native 0G value being sent to a Base address.
56
+ Discovery is a hint, not a proof. On an older backend `/health/bridge` reports Base only when the backend has a Base marketplace signer, while task creation routes on `BASE_ESCROW_ADDRESS` alone; a backend that names its posting chain removes that gap, but not every way a task can live on another chain. Every send therefore checks the unsigned tx targets the escrow the current mode expects and refuses with `ESCROW_MISMATCH` otherwise — that check is what prevents native 0G value being sent to a Base address.
57
+
58
+ `register_as_executor` and `create_agent` declare exactly one chain in `supportedChains`: the one this process settles on (`wallet_status` shows it), because `complete_task` delivers only there. A backend that filters by it then offers you only tasks you can complete, and refuses bids and `/accept` (409 `CHAIN_UNSUPPORTED`) elsewhere — including tasks indexed before chains were recorded, which need both `0g` and `base` declared. If the chain cannot be learned, registration is refused rather than sent without one.
59
+
60
+ `BLINDMARKET_SETTLEMENT` may name any chain the backend has an escrow on, not only the one it posts on: that is how you deliver, cancel or reclaim a task left on a chain the backend has since stopped posting on. `post_task` and `rent_service` refuse there (`NOT_POSTING_CHAIN`), because new escrow is funded only on the posting chain. On 0G the local wallet must be on the backend's 0G chain id (`CHAIN_MISMATCH` otherwise) — checked only when the backend names its chains and discovery runs: `BLINDMARKET_SETTLEMENT=0g` skips discovery, and an older backend does not say.
48
61
 
49
62
  ### Base: what the wallet and key must be
50
63
 
@@ -58,7 +71,20 @@ To be explicit about what is and is not proven: the relay, ownership gate, autho
58
71
 
59
72
  ## Harness configuration
60
73
 
61
- **Claude Code — Base (no private key)**
74
+ **Claude Code: Arc (production today)**
75
+
76
+ ```bash
77
+ claude mcp add blindmarket \
78
+ --env BLINDMARKET_API_KEY=sk_... \
79
+ --env BLINDMARKET_PRIVATE_KEY=0x... \
80
+ -- node /path/to/BlindBounty/mcp/dist/index.js
81
+ ```
82
+
83
+ The key must be the wallet that minted the `sk_` key, holding USDC on Arc
84
+ Testnet for escrow and gas. `wallet_status` should then show
85
+ `payment: "local-erc20"` and `mode: "arc"`.
86
+
87
+ **Claude Code: Base (no private key)**
62
88
 
63
89
  ```bash
64
90
  claude mcp add blindmarket \
@@ -69,7 +95,7 @@ claude mcp add blindmarket \
69
95
  -- node /path/to/BlindBounty/mcp/dist/index.js
70
96
  ```
71
97
 
72
- (`BLINDMARKET_BASE_ESCROW_ADDRESS` is only needed while `/health/bridge` cannot confirm Base — see the env table. Use the mainnet escrow once deployed.)
98
+ (`BLINDMARKET_SETTLEMENT` and `BLINDMARKET_BASE_ESCROW_ADDRESS` are only needed while an older backend's `/health/bridge` cannot confirm Base — see the env table. Use the mainnet escrow once deployed.)
73
99
 
74
100
  **Claude Code — 0G (legacy, local wallet)**
75
101
 
@@ -114,12 +140,27 @@ Spending (local wallet, **two-step quote → confirm**):
114
140
  - `post_task` — post to the open market (wraps the brief key to every
115
141
  matching registered executor, or plaintext with `privacy: "public"`).
116
142
  - `poll_task_result` — wait for the deliverable (loop until `done: true`).
143
+ - `deploy_agent` — deploy a hosted agent. The deploy fee (1 USDC on Arc on
144
+ production) is one USDC transfer on Arc from `BLINDMARKET_PRIVATE_KEY`,
145
+ which must be the wallet that owns `BLINDMARKET_API_KEY` (checked before
146
+ paying), and the request is checked with the backend's deploy checks
147
+ (`POST /agents/deploy/validate`) at the quote and again right before paying,
148
+ so a deploy that would be refused costs nothing. The fee's `chainId` must
149
+ match the chain the backend lists. The agent's key is encrypted to that
150
+ wallet. The model provider's
151
+ key is read from `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GROQ_API_KEY` or
152
+ `GEMINI_API_KEY` in this server's environment, never taken as an argument;
153
+ `0g-compute` needs none. Arc's RPC is `BLINDMARKET_ARC_RPC_URL`, default
154
+ `https://rpc.testnet.arc.io` on Arc Testnet.
117
155
 
118
156
  Every spend requires an `idempotencyKey`. Retries with the same key **resume**
119
157
  (created → funded → indexed stage machine persisted in
120
158
  `~/.blindmarket/mcp-state.json`) — a crash between the funding transaction and
121
159
  indexing never double-pays; re-calling re-runs the index step with the saved
122
- transaction hash.
160
+ transaction hash. A funded spend finishes even when the settlement chain can't
161
+ be discovered at that moment, since listing it needs no signature. `deploy_agent` records its fee transaction the moment it is
162
+ broadcast, so a failed deploy retried with the same key deploys with that
163
+ payment instead of paying again.
123
164
 
124
165
  ## Executor runtime tools (gated off)
125
166
 
@@ -133,8 +174,9 @@ live one. It signs `submitEvidence` **locally** (no relay): it needs
133
174
  `BLINDMARKET_PRIVATE_KEY` to be the wallet that owns `BLINDMARKET_API_KEY`, and
134
175
  an RPC for the settlement chain (`BLINDMARKET_RPC_URL` for 0G,
135
176
  `BLINDMARKET_BASE_RPC_URL` for Base — there is no default for Base, and tasks
136
- on a chain without an RPC are skipped by the runtime itself: the backend stores
137
- the declared `supportedChains` but does not filter offers or `/accept` by it).
177
+ on a chain without an RPC are skipped by the runtime itself: older backends
178
+ store the declared `supportedChains` without filtering offers or `/accept` by
179
+ it).
138
180
  Without `BLINDMARKET_PRIVATE_KEY` the runtime refuses to start (SDK 0.6.0) —
139
181
  it no longer registers a throwaway wallet. `BLINDMARKET_EXPERIMENTAL_RUNTIME=true`
140
182
  enables it. The maintained way to EARN is still a platform agent deployed in
package/dist/index.js CHANGED
@@ -35,11 +35,15 @@ const server = new McpServer({
35
35
  // rent/post through the CURRENT encrypted flow (see rent.ts). Registered even
36
36
  // without a wallet so tools/list is stable; spends fail cleanly with NO_WALLET.
37
37
  const walletCtx = loadWallet();
38
- // Register all marketplace tools
39
- registerMarketTools(server, bb, walletCtx);
38
+ // Register all marketplace tools. They register first (tools/list order is
39
+ // unchanged), but register_as_executor/create_agent need rent.ts's settlement
40
+ // resolver, which is created just below — hence the late-bound getter.
41
+ let resolveSettlement = null;
42
+ registerMarketTools(server, bb, walletCtx, () => resolveSettlement());
40
43
  // rent.ts owns settlement discovery (which chain escrow settles on, and so
41
44
  // whether the local wallet or the Privy relay pays); wallet_status reports it.
42
45
  const { settlement } = registerRentTools(server, cfg, walletCtx);
46
+ resolveSettlement = settlement;
43
47
  registerWalletTools(server, walletCtx, settlement);
44
48
  // Executor runtime tools (runtime_start/stop/…) are GATED OFF by default.
45
49
  // The three bugs this gate used to cite (wrappedKey parsed as a record, blob
@@ -67,7 +71,7 @@ const runtimeCfg = {
67
71
  privateKey: walletCtx?.wallet.privateKey,
68
72
  // The 0G RPC is the one the local wallet was loaded with (the SDK has no
69
73
  // fallback RPC); Base is declared only when explicitly configured.
70
- rpcUrls: { '0g': walletCtx?.rpcUrl, base: process.env.BLINDMARKET_BASE_RPC_URL },
74
+ rpcUrls: { '0g': walletCtx?.rpcUrl, base: process.env.BLINDMARKET_BASE_RPC_URL, arc: process.env.BLINDMARKET_ARC_RPC_URL },
71
75
  displayName: process.env.BLINDMARKET_EXECUTOR_NAME ?? 'MCP Executor',
72
76
  capabilities: parseCapabilities(process.env.BLINDMARKET_EXECUTOR_CAPABILITIES),
73
77
  minReward: process.env.BLINDMARKET_EXECUTOR_MIN_REWARD,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rent.d.ts","sourceRoot":"","sources":["../src/rent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAiD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmDjG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG;IAAE,UAAU,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,CAgqC3I"}
1
+ {"version":3,"file":"rent.d.ts","sourceRoot":"","sources":["../src/rent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAEkE,KAAK,UAAU,EACvF,MAAM,iBAAiB,CAAC;AAmDzB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG;IAAE,UAAU,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,CAwgD3I"}