@parad0x_labs/mcp-server 0.1.0 → 0.2.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
@@ -2,16 +2,26 @@
2
2
 
3
3
  Exposes the Parad0x Labs stack as MCP tools. Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible agent runtime.
4
4
 
5
+ Version 0.2.0 replaces the withdrawn 0.1.x releases. It uses no program ID controlled
6
+ by a compromised key: receipt anchoring and nullifier lookups refuse with a clear
7
+ error until those programs are redeployed under a fresh key. No tool submits an
8
+ on-chain transaction.
9
+
5
10
  ## Tools
6
11
 
7
12
  | Tool | Description |
8
13
  |---|---|
9
14
  | `x402_get_quote` | Get a payment quote for an x402-gated API endpoint |
10
- | `anchor_receipt` | Anchor a 32-byte receipt hash on Solana mainnet via `receipt_anchor` |
11
- | `lookup_passport` | Check if an ETH address or Solana wallet has a verified Dark Passport binding |
15
+ | `anchor_receipt` | Validate a 32-byte receipt hash for `receipt_anchor`. Receipt anchoring is unavailable until the redeploy under a fresh key: the tool returns a clear refusal and sends nothing |
16
+ | `lookup_passport` | Read whether an ETH address or Solana wallet has a Dark Passport binding on the legacy mainnet program (retired; existing bindings readable) |
12
17
  | `build_outcome_receipt` | Build a signed outcome receipt with PnL, accuracy, or delivery result |
13
- | `compress_receipts` | Compress a batch of receipts (Liquefy format, 83x typical ratio) |
14
- | `get_stack_status` | Discover all live Parad0x Labs mainnet program addresses |
18
+ | `compress_receipts` | Compress a batch of receipts (zlib deflate; Liquefy-format demo — the production columnar codec targets ~83x) |
19
+ | `resolve_null` | Resolve a `.null` name (read-only) on the legacy mainnet registrar — records readable, registration/updates frozen |
20
+ | `check_nullifier` | Validate a privacy-proof nullifier; the lookup is unavailable until the nullifier record program is redeployed under a fresh key |
21
+ | `private_compute` | Encrypt locally, send ciphertext to an executor, return input/result hashes; `anchor:true` computes the commitment locally (on-chain anchoring unavailable until the redeploy) |
22
+ | `get_stack_status` | Program addresses and their current status (retired mainnet programs, services awaiting redeploy, x402 settlement) |
23
+ | `create_wallet` | Generate a new Solana keypair file on this machine (preview unless `confirm:true`); returns only the public key and path, never the secret |
24
+ | `get_scope_status` / `grant_write_consent` / `revoke_write_consent` | Show and manage the per-session write consent for `anchor_receipt` and `private_compute` |
15
25
 
16
26
  ## Install
17
27
 
@@ -32,15 +42,14 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
32
42
  "command": "npx",
33
43
  "args": ["-y", "@parad0x_labs/mcp-server"],
34
44
  "env": {
35
- "SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com",
36
- "SOLANA_KEYPAIR": "[1,2,3,...]"
45
+ "SOLANA_RPC_URL": "https://solana-rpc.publicnode.com"
37
46
  }
38
47
  }
39
48
  }
40
49
  }
41
50
  ```
42
51
 
43
- `SOLANA_KEYPAIR` is a JSON array of 64 bytes (the standard Solana keypair format output by `solana-keygen`). Without it, `anchor_receipt` runs in dry-run mode and returns a mock transaction for format inspection.
52
+ `SOLANA_RPC_URL` is used for mainnet reads (`lookup_passport`, `resolve_null`). No tool submits a transaction while receipt anchoring is unavailable; `SOLANA_KEYPAIR` is not needed.
44
53
 
45
54
  ## Cursor / Windsurf config
46
55
 
@@ -53,7 +62,7 @@ Add to `.cursor/mcp.json` or `.windsurf/mcp.json` in your project root:
53
62
  "command": "npx",
54
63
  "args": ["-y", "@parad0x_labs/mcp-server"],
55
64
  "env": {
56
- "SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com"
65
+ "SOLANA_RPC_URL": "https://solana-rpc.publicnode.com"
57
66
  }
58
67
  }
59
68
  }
@@ -63,8 +72,8 @@ Add to `.cursor/mcp.json` or `.windsurf/mcp.json` in your project root:
63
72
  ## Build from source
64
73
 
65
74
  ```bash
66
- cd packages/mcp-server
67
- npm install
75
+ cd skills/mcp-server
76
+ npm ci --ignore-scripts
68
77
  npm run build
69
78
  npm start
70
79
  ```
@@ -73,16 +82,23 @@ npm start
73
82
 
74
83
  | Variable | Default | Description |
75
84
  |---|---|---|
76
- | `SOLANA_RPC_URL` | `https://api.mainnet-beta.solana.com` | Solana RPC endpoint |
77
- | `SOLANA_KEYPAIR` | _(unset)_ | JSON array of 64 bytes — enables real transaction submission |
78
-
79
- ## Programs (mainnet)
80
-
81
- | Program | Address |
82
- |---|---|
83
- | receipt_anchor | `6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN` |
84
- | dark_secp256r1_vault | `3hbbtjeSrTVYXq6eRwjeofDe2DCPh3n8cfN6kZcQfewi` |
85
- | dark_secp256k1_auth | `AqwBbV13AoczhoELwP8oxT3nDqB6MsLWXauNzHkssZ9B` |
86
- | dark_bn254_gate | `GCptvBYF8S6eVYoh15B7WAESc54FUHCpN1Ui6aHeQYZd` |
87
- | dark_semaphore | `Ev7HEFhhKTXk6kS2Y6ssbUcK9C7E6yZ589jJNjUrQV5p` |
88
- | null_token | `8EeDdvCRmFAzVD4takkBrNNwkeUTUQh4MscRK5Fzpump` |
85
+ | `SOLANA_RPC_URL` | `https://solana-rpc.publicnode.com` | Solana mainnet RPC for read tools |
86
+ | `PARAD0X_MCP_ALLOW_WRITE` | _(unset)_ | Set to `1` to allow on-chain writes on this machine (none are currently available) |
87
+
88
+ ## Programs
89
+
90
+ | Program | Cluster | Address | Status |
91
+ |---|---|---|---|
92
+ | receipt_anchor | mainnet | `6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN` | Retired 2026-07-14 — historical anchors readable, cannot be invoked |
93
+ | .null registrar | mainnet | `NXgQhepFpDCu935H1D4g34g59ZYbo1jR4tBCZWhV8Np` | Retired 2026-08-29 — records readable (`resolve_null`), registration/updates/transfers frozen |
94
+ | dark_secp256k1_auth | mainnet | `AqwBbV13AoczhoELwP8oxT3nDqB6MsLWXauNzHkssZ9B` | Retired — existing bindings readable (`lookup_passport`) |
95
+ | dark_semaphore | mainnet | `Ev7HEFhhKTXk6kS2Y6ssbUcK9C7E6yZ589jJNjUrQV5p` | Retired — accounts readable |
96
+ | null_token | mainnet | `8EeDdvCRmFAzVD4takkBrNNwkeUTUQh4MscRK5Fzpump` | SPL token mint |
97
+
98
+ Receipt anchoring is unavailable until `receipt_anchor` is redeployed under a fresh
99
+ key. `anchor_receipt` and `private_compute` (`anchor:true`) compute hashes locally and
100
+ return a clear refusal; nothing is signed or sent. `check_nullifier` refuses the same
101
+ way until the nullifier record program is redeployed.
102
+
103
+ Canonical Dark NULL runs on devnet. x402 USDC payments are plain SPL transfers and are
104
+ unaffected by the retired programs — devnet by default, mainnet opt-in.
package/dist/anchor.d.ts CHANGED
@@ -1,7 +1,19 @@
1
1
  /**
2
- * receipt_anchor instruction encoder (host-free, byte-exact, unit-tested).
2
+ * receipt_anchor instruction encoder + availability gate (host-free, byte-exact,
3
+ * unit-tested).
3
4
  *
4
- * Built from the verified on-chain ABI of receipt_anchor (6HSRGivd…):
5
+ * Availability: there is currently NO usable receipt_anchor deployment on any
6
+ * network. The mainnet program (6HSRGivd…) was retired 2026-07-14 — its
7
+ * historical anchors (June–July 2026) remain readable on-chain — and the devnet
8
+ * deployment was withdrawn. Receipt anchoring is unavailable until the program
9
+ * is redeployed under a fresh key: anchor_receipt and private_compute refuse
10
+ * with RECEIPT_ANCHOR_UNAVAILABLE_ERROR and send nothing. Receipt hashes and
11
+ * commitments are still computed locally.
12
+ *
13
+ * The encoder below stays so the client is ready for the redeploy. It takes the
14
+ * program id as an explicit argument and has no default target.
15
+ *
16
+ * Instruction ABI (receipt_anchor):
5
17
  * data = [0x01 version][flags][32-byte hash]( [u64 LE bucket_id] )
6
18
  * - 34-byte form: flags=0x00, program derives the bucket from its Clock hour
7
19
  * - 42-byte form: flags=0x01, client pins bucket_id (this is what we use)
@@ -13,13 +25,22 @@
13
25
  * validator's Clock hour drift from the client's near an hour boundary).
14
26
  */
15
27
  import { PublicKey, TransactionInstruction } from "@solana/web3.js";
28
+ /** receipt_anchor on mainnet — retired 2026-07-14; historical anchors readable. */
29
+ export declare const RECEIPT_ANCHOR_MAINNET_RETIRED = "6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN";
30
+ export declare const RECEIPT_ANCHOR_MAINNET_RETIRED_ON = "2026-07-14";
31
+ /** Returned (and thrown) whenever anchoring is requested. Nothing is signed or sent. */
32
+ export declare const RECEIPT_ANCHOR_UNAVAILABLE_ERROR: string;
16
33
  export declare const RECEIPT_ANCHOR_VERSION = 1;
17
34
  export declare const FLAG_HAS_BUCKET_ID = 1;
18
35
  /** The program's hourly bucket id: floor(unix_seconds / 3600); 0 for non-positive. */
19
36
  export declare function bucketIdForUnix(unixSeconds: number): bigint;
20
37
  /** Derive the AnchorBucket PDA for a bucket id: ["bucket", u64 LE bucket_id]. */
21
38
  export declare function deriveBucketPda(bucketId: bigint, programId: string): PublicKey;
22
- /** Build the single-anchor instruction (42-byte pinned-bucket form). */
39
+ /**
40
+ * Build the single-anchor instruction (42-byte pinned-bucket form) for an
41
+ * explicit program id. Refuses the retired mainnet program id — an instruction
42
+ * for it could never execute.
43
+ */
23
44
  export declare function buildAnchorIx(opts: {
24
45
  payer: string;
25
46
  receiptHashHex: string;
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAiB,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,sBAAsB,IAAO,CAAC;AAC3C,eAAO,MAAM,kBAAkB,IAAO,CAAC;AAIvC,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAQD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAM9E;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAkBzB"}
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAiB,MAAM,iBAAiB,CAAC;AAEnF,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,iDAAiD,CAAC;AAC7F,eAAO,MAAM,iCAAiC,eAAe,CAAC;AAE9D,wFAAwF;AACxF,eAAO,MAAM,gCAAgC,QAG0C,CAAC;AAExF,eAAO,MAAM,sBAAsB,IAAO,CAAC;AAC3C,eAAO,MAAM,kBAAkB,IAAO,CAAC;AAIvC,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAQD,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAqBzB"}
package/dist/anchor.js CHANGED
@@ -1,7 +1,19 @@
1
1
  /**
2
- * receipt_anchor instruction encoder (host-free, byte-exact, unit-tested).
2
+ * receipt_anchor instruction encoder + availability gate (host-free, byte-exact,
3
+ * unit-tested).
3
4
  *
4
- * Built from the verified on-chain ABI of receipt_anchor (6HSRGivd…):
5
+ * Availability: there is currently NO usable receipt_anchor deployment on any
6
+ * network. The mainnet program (6HSRGivd…) was retired 2026-07-14 — its
7
+ * historical anchors (June–July 2026) remain readable on-chain — and the devnet
8
+ * deployment was withdrawn. Receipt anchoring is unavailable until the program
9
+ * is redeployed under a fresh key: anchor_receipt and private_compute refuse
10
+ * with RECEIPT_ANCHOR_UNAVAILABLE_ERROR and send nothing. Receipt hashes and
11
+ * commitments are still computed locally.
12
+ *
13
+ * The encoder below stays so the client is ready for the redeploy. It takes the
14
+ * program id as an explicit argument and has no default target.
15
+ *
16
+ * Instruction ABI (receipt_anchor):
5
17
  * data = [0x01 version][flags][32-byte hash]( [u64 LE bucket_id] )
6
18
  * - 34-byte form: flags=0x00, program derives the bucket from its Clock hour
7
19
  * - 42-byte form: flags=0x01, client pins bucket_id (this is what we use)
@@ -13,6 +25,13 @@
13
25
  * validator's Clock hour drift from the client's near an hour boundary).
14
26
  */
15
27
  import { PublicKey, TransactionInstruction, SystemProgram } from "@solana/web3.js";
28
+ /** receipt_anchor on mainnet — retired 2026-07-14; historical anchors readable. */
29
+ export const RECEIPT_ANCHOR_MAINNET_RETIRED = "6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN";
30
+ export const RECEIPT_ANCHOR_MAINNET_RETIRED_ON = "2026-07-14";
31
+ /** Returned (and thrown) whenever anchoring is requested. Nothing is signed or sent. */
32
+ export const RECEIPT_ANCHOR_UNAVAILABLE_ERROR = "receipt anchoring is unavailable until the redeploy under a fresh key — no transaction was sent. " +
33
+ `The mainnet receipt_anchor (${RECEIPT_ANCHOR_MAINNET_RETIRED}) was retired ${RECEIPT_ANCHOR_MAINNET_RETIRED_ON}; ` +
34
+ "its historical anchors remain readable. The receipt hash is still computed locally.";
16
35
  export const RECEIPT_ANCHOR_VERSION = 0x01;
17
36
  export const FLAG_HAS_BUCKET_ID = 0x01;
18
37
  const BUCKET_SEED_PREFIX = "bucket";
@@ -31,11 +50,18 @@ export function deriveBucketPda(bucketId, programId) {
31
50
  const [pda] = PublicKey.findProgramAddressSync([Buffer.from(BUCKET_SEED_PREFIX), u64le(bucketId)], new PublicKey(programId));
32
51
  return pda;
33
52
  }
34
- /** Build the single-anchor instruction (42-byte pinned-bucket form). */
53
+ /**
54
+ * Build the single-anchor instruction (42-byte pinned-bucket form) for an
55
+ * explicit program id. Refuses the retired mainnet program id — an instruction
56
+ * for it could never execute.
57
+ */
35
58
  export function buildAnchorIx(opts) {
36
59
  if (!/^[0-9a-fA-F]{64}$/.test(opts.receiptHashHex)) {
37
60
  throw new Error("receipt_hash_hex must be exactly 64 hex characters (32 bytes).");
38
61
  }
62
+ if (opts.programId === RECEIPT_ANCHOR_MAINNET_RETIRED) {
63
+ throw new Error(RECEIPT_ANCHOR_UNAVAILABLE_ERROR);
64
+ }
39
65
  const data = Buffer.concat([
40
66
  Buffer.from([RECEIPT_ANCHOR_VERSION, FLAG_HAS_BUCKET_ID]),
41
67
  Buffer.from(opts.receiptHashHex, "hex"),
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACjE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC5C,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAClD,IAAI,SAAS,CAAC,SAAS,CAAC,CACzB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,IAK7B;IACC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,IAAI,sBAAsB,CAAC;QAChC,SAAS,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QACxC,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvE,EAAE,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7F,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;SACxE;QACD,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnF,mFAAmF;AACnF,MAAM,CAAC,MAAM,8BAA8B,GAAG,8CAA8C,CAAC;AAC7F,MAAM,CAAC,MAAM,iCAAiC,GAAG,YAAY,CAAC;AAE9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,gCAAgC,GAC3C,mGAAmG;IACnG,+BAA+B,8BAA8B,iBAAiB,iCAAiC,IAAI;IACnH,qFAAqF,CAAC;AAExF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAiB;IACjE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAC5C,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAClD,IAAI,SAAS,CAAC,SAAS,CAAC,CACzB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAK7B;IACC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,8BAA8B,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,IAAI,sBAAsB,CAAC;QAChC,SAAS,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QACxC,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACvE,EAAE,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7F,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;SACxE;QACD,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -4,45 +4,45 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { createHash, createHmac, randomBytes, createCipheriv, createSecretKey } from "crypto";
6
6
  import { deflateSync } from "zlib";
7
- import { Connection, PublicKey, Keypair, Transaction } from "@solana/web3.js";
8
- import { WRITE_TOOLS, READ_TOOLS, assertNotSeized, canSubmitWrite, } from "./scope.js";
9
- import { resolveNullName } from "./resolve.js";
10
- import { buildAnchorIx, deriveBucketPda, bucketIdForUnix } from "./anchor.js";
7
+ import { Connection, PublicKey } from "@solana/web3.js";
8
+ import { WRITE_TOOLS, READ_TOOLS } from "./scope.js";
9
+ import { resolveNullName, NULL_REGISTRAR_MAINNET } from "./resolve.js";
10
+ import { RECEIPT_ANCHOR_MAINNET_RETIRED, RECEIPT_ANCHOR_MAINNET_RETIRED_ON, RECEIPT_ANCHOR_UNAVAILABLE_ERROR, } from "./anchor.js";
11
11
  import { generateWallet, resolveWalletPath } from "./wallet.js";
12
12
  import { writeFileSync, existsSync, mkdirSync, chmodSync } from "fs";
13
13
  import { dirname } from "path";
14
14
  // ---------------------------------------------------------------------------
15
15
  // Constants
16
16
  // ---------------------------------------------------------------------------
17
- // Live on Solana mainnet — verified against evidence/mainnet + evidence/zk.
18
- // Full private-reputation stack live as of 2026-06-07 (reputation gate + commitment tree launched).
19
- // WARNING: dark_x402_access_gate and dark_nullifier_record are SEIZED pre-incident IDs —
20
- // deployer key F6Fr… stolen 2026-06-14; attacker holds upgrade authority. Do not call them.
17
+ // Current deployments:
18
+ // - receipt_anchor: there is no usable deployment on any network. The mainnet
19
+ // program (6HSRGivd…) was retired 2026-07-14 — its historical anchors stay
20
+ // readable — and the devnet deployment was withdrawn. anchor_receipt and
21
+ // private_compute anchoring refuse until the redeploy under a fresh key.
22
+ // - The gen-2 mainnet programs (passport/identity, semaphore, nullifier, proof gates,
23
+ // …) are retired: program-owned accounts stay readable,
24
+ // nothing can be invoked. Tools that touch them are read-only.
25
+ // - The shielded access gate, nullifier record, reputation gate and commitment
26
+ // tree deployments were withdrawn; check_nullifier refuses until the redeploy.
27
+ // Attacker-controlled program IDs (the gen-1 x402 access gate, the secp256r1
28
+ // vault, and every ID under the stolen deploy key) are never named here; they
29
+ // are held only as SHA-256 digests in ./scope.ts (isSeizedProgram).
21
30
  const PROGRAMS = {
22
- // SEIZED — pre-incident; attacker holds upgrade authority. Replaced by post-redeploy IDs (pending ceremony).
23
- dark_x402_access_gate: "EepqzVBNuzCgD6XGiB19pDDhzFG3gUL4z1nabBYxpfjS",
24
- // SEIZED — pre-incident; attacker holds upgrade authority. Replaced by post-redeploy IDs (pending ceremony).
25
- dark_nullifier_record: "24tmjEd1DhPW2QuPV6BzkFFHrq2PtELoLqv5cuv2Xu65",
26
- dark_reputation_gate: "9nN7UTTT5hgKnc2LZTqr3qaLLSt5PxWUrDbpUTGYHRxp",
27
- receipt_commitment_tree: "8jC8QGiDJRRxhbPXMX5wJnGUq89xJZ2LsHMdbn2urCas",
28
- receipt_anchor: "6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN",
29
- dark_secp256r1_vault: "3hbbtjeSrTVYXq6eRwjeofDe2DCPh3n8cfN6kZcQfewi",
31
+ // mainnet, retired 2026-07-14 — historical anchors readable, cannot be invoked
32
+ receipt_anchor_mainnet_retired: RECEIPT_ANCHOR_MAINNET_RETIRED,
33
+ // mainnet, retired — existing ETH↔Solana bindings readable (lookup_passport), cannot be invoked
30
34
  dark_secp256k1_auth: "AqwBbV13AoczhoELwP8oxT3nDqB6MsLWXauNzHkssZ9B",
35
+ // mainnet, retired — accounts readable, cannot be invoked
31
36
  dark_semaphore: "Ev7HEFhhKTXk6kS2Y6ssbUcK9C7E6yZ589jJNjUrQV5p",
37
+ // SPL token mint (mainnet)
32
38
  null_token: "8EeDdvCRmFAzVD4takkBrNNwkeUTUQh4MscRK5Fzpump",
33
- // demo/stub — NOT a real verifier (hardcoded proof bypass); see get_stack_status.
39
+ // deprecated demo gate — NOT a real verifier (hardcoded proof bypass); see get_stack_status.
34
40
  dark_bn254_gate: "GCptvBYF8S6eVYoh15B7WAESc54FUHCpN1Ui6aHeQYZd",
35
41
  };
36
- // Devnet-only addresses that differ from mainnet (the access gate has a separate devnet id;
37
- // reputation gate, tree, and nullifier share the same id on both clusters).
38
- const DEVNET_PROGRAMS = {
39
- dark_x402_access_gate: "7LZzJnLSCCu2enc7mXz9FFCbomotME78xFG4eqkpo5U6",
40
- };
42
+ /** Returned by check_nullifier: the nullifier record deployment was withdrawn. */
43
+ const NULLIFIER_UNAVAILABLE_ERROR = "check_nullifier is unavailable until the nullifier record program is redeployed under a fresh key — no lookup was made.";
41
44
  const EXPLORER_BASE = "https://explorer.solana.com";
42
45
  const DEFAULT_RPC = "https://solana-rpc.publicnode.com";
43
- function explorerTx(sig) {
44
- return `${EXPLORER_BASE}/tx/${sig}`;
45
- }
46
46
  function explorerAccount(addr) {
47
47
  return `${EXPLORER_BASE}/address/${addr}`;
48
48
  }
@@ -73,18 +73,6 @@ function buildMerkleRoot(items) {
73
73
  }
74
74
  return Buffer.from(layer[0]).toString("hex");
75
75
  }
76
- function loadKeypair() {
77
- const raw = process.env.SOLANA_KEYPAIR;
78
- if (!raw)
79
- return null;
80
- try {
81
- const bytes = JSON.parse(raw);
82
- return Keypair.fromSecretKey(Uint8Array.from(bytes));
83
- }
84
- catch {
85
- return null;
86
- }
87
- }
88
76
  // ---------------------------------------------------------------------------
89
77
  // Zero-trust hardening — local-first, the LLM is untrusted
90
78
  //
@@ -183,7 +171,7 @@ async function x402GetQuote(endpointUrl, method = "GET") {
183
171
  price_atomic: 100000, // 0.1 USDC in atomic units (6 decimals)
184
172
  currency: "USDC",
185
173
  expiry: Date.now() + 60_000,
186
- payment_address: PROGRAMS.receipt_anchor,
174
+ payment_address: null,
187
175
  network: "solana-mainnet",
188
176
  note: `Endpoint returned HTTP ${res.status} (not 402). This is a mock quote showing the x402 format. A real x402-gated endpoint returns 402 with x-dnp-offer header.`,
189
177
  mock: true,
@@ -194,75 +182,22 @@ async function x402GetQuote(endpointUrl, method = "GET") {
194
182
  return { error: `Failed to reach endpoint: ${msg}`, mock: true };
195
183
  }
196
184
  }
197
- async function anchorReceipt(receiptHashHex, rpcUrl = DEFAULT_RPC, confirm = false, consented = false) {
185
+ /**
186
+ * receipt_anchor has no usable deployment, so this never signs or sends. It
187
+ * validates the hash and returns a clear refusal that echoes it back.
188
+ */
189
+ function anchorReceipt(receiptHashHex) {
198
190
  if (!/^[0-9a-fA-F]{64}$/.test(receiptHashHex)) {
199
191
  return { error: "receipt_hash_hex must be exactly 64 hex characters (32 bytes)" };
200
192
  }
201
- const keypair = loadKeypair();
202
- if (!keypair) {
203
- // Dry-run mode — return mock response so agents can see the format
204
- const mockSig = Buffer.from(randomBytes(64)).toString("base64url").slice(0, 88);
205
- return {
206
- solana_tx: mockSig,
207
- explorer_url: explorerTx(mockSig),
208
- slot: 0,
209
- dry_run: true,
210
- note: "SOLANA_KEYPAIR env var not set. Set it to a JSON array of 64 bytes to submit real transactions. This is a dry-run response showing the output format.",
211
- };
212
- }
213
- // Zero-trust write-guard: a key is present, but do NOT submit unless the
214
- // operator enabled writes on THIS machine AND the call is authorized — either
215
- // by a per-call confirm:true or a prior session consent (grant_write_consent).
216
- // Pin the hourly bucket client-side so the derived bucket PDA always matches
217
- // the one the program writes (the no-bucket form risks an hour-boundary drift).
218
- const bucketId = bucketIdForUnix(Math.floor(Date.now() / 1000));
219
- const decision = canSubmitWrite({ allowWrite: ALLOW_WRITE, confirm, consented });
220
- if (!decision.allowed) {
221
- return {
222
- preview: true,
223
- would_submit: {
224
- program: PROGRAMS.receipt_anchor,
225
- instruction: "anchor v1 (version 0x01, pinned hourly bucket)",
226
- receipt_hash_hex: receiptHashHex,
227
- fee_payer: keypair.publicKey.toBase58(),
228
- bucket_id: bucketId.toString(),
229
- bucket_pda: deriveBucketPda(bucketId, PROGRAMS.receipt_anchor).toBase58(),
230
- },
231
- blocked_reason: decision.blockedReason,
232
- note: "No transaction was sent. This is a preview of exactly what WOULD be submitted.",
233
- };
234
- }
235
- try {
236
- const connection = new Connection(rpcUrl, "confirmed");
237
- // receipt_anchor single-anchor, 42-byte pinned-bucket form (verified ABI):
238
- // data [0x01][0x01][32B hash][u64 LE bucket_id]; keys payer + bucket PDA + system.
239
- const ix = buildAnchorIx({
240
- payer: keypair.publicKey.toBase58(),
241
- receiptHashHex,
242
- programId: PROGRAMS.receipt_anchor,
243
- bucketId,
244
- });
245
- const tx = new Transaction().add(ix);
246
- const { blockhash } = await connection.getLatestBlockhash();
247
- tx.recentBlockhash = blockhash;
248
- tx.feePayer = keypair.publicKey;
249
- tx.sign(keypair);
250
- const sig = await connection.sendRawTransaction(tx.serialize(), {
251
- skipPreflight: false,
252
- });
253
- const conf = await connection.confirmTransaction(sig, "confirmed");
254
- const slot = conf.context.slot;
255
- return {
256
- solana_tx: sig,
257
- explorer_url: explorerTx(sig),
258
- slot,
259
- dry_run: false,
260
- };
261
- }
262
- catch (err) {
263
- const msg = err instanceof Error ? err.message : String(err);
264
- return { error: `Solana transaction failed: ${msg}` };
265
- }
193
+ return {
194
+ error: RECEIPT_ANCHOR_UNAVAILABLE_ERROR,
195
+ anchoring: "unavailable",
196
+ sent: false,
197
+ receipt_hash_hex: receiptHashHex.toLowerCase(),
198
+ mainnet_program_retired: RECEIPT_ANCHOR_MAINNET_RETIRED,
199
+ mainnet_retired_on: RECEIPT_ANCHOR_MAINNET_RETIRED_ON,
200
+ };
266
201
  }
267
202
  async function lookupPassport(ethAddress, solanaWallet) {
268
203
  if (!ethAddress && !solanaWallet) {
@@ -313,12 +248,13 @@ async function lookupPassport(ethAddress, solanaWallet) {
313
248
  registered,
314
249
  pda: pda ?? undefined,
315
250
  program: programAddress,
251
+ network: "solana-mainnet",
252
+ program_status: "retired (legacy mainnet program; existing bindings readable, no new bindings)",
316
253
  explorer_url: pda ? explorerAccount(pda) : explorerAccount(programAddress),
317
254
  };
318
255
  }
319
- async function checkNullifier(nullifier, rpcUrl = DEFAULT_RPC) {
320
- assertNotSeized(PROGRAMS.dark_nullifier_record, "dark_nullifier_record");
321
- // Accept a 64-char hex string OR a decimal BN254 field element.
256
+ /** The nullifier record deployment was withdrawn: validate the input, refuse the lookup. */
257
+ function checkNullifier(nullifier) {
322
258
  const s = nullifier.trim();
323
259
  let hex;
324
260
  if (/^[0-9a-fA-F]{64}$/.test(s)) {
@@ -332,29 +268,7 @@ async function checkNullifier(nullifier, rpcUrl = DEFAULT_RPC) {
332
268
  else {
333
269
  return { error: "nullifier must be a 64-char hex string or a decimal field element" };
334
270
  }
335
- try {
336
- const nullifierBytes = Buffer.from(hex, "hex");
337
- const program = new PublicKey(PROGRAMS.dark_nullifier_record);
338
- // Single-use record PDA — matches the on-chain seed [b"null_record", nullifier_be_32].
339
- const [recordPda] = PublicKey.findProgramAddressSync([Buffer.from("null_record"), nullifierBytes], program);
340
- const connection = new Connection(rpcUrl, "confirmed");
341
- const info = await connection.getAccountInfo(recordPda);
342
- const spent = info !== null && info.data.length > 0;
343
- return {
344
- nullifier_hex: hex,
345
- record_pda: recordPda.toBase58(),
346
- spent,
347
- program: PROGRAMS.dark_nullifier_record,
348
- explorer_url: explorerAccount(recordPda.toBase58()),
349
- note: spent
350
- ? "Nullifier already recorded on-chain — this proof has been spent (single-use exhausted)."
351
- : "No record found — this nullifier has not been used yet.",
352
- };
353
- }
354
- catch (err) {
355
- const msg = err instanceof Error ? err.message : String(err);
356
- return { error: `Nullifier lookup failed: ${msg}` };
357
- }
271
+ return { error: NULLIFIER_UNAVAILABLE_ERROR, available: false, nullifier_hex: hex };
358
272
  }
359
273
  function buildOutcomeReceipt(params) {
360
274
  const { receipt_id, outcome, metric_pnl, metric_accuracy, result_digest_hex, creator_note } = params;
@@ -408,7 +322,7 @@ function compressReceipts(receipts) {
408
322
  };
409
323
  }
410
324
  async function privateCompute(params) {
411
- const { plaintext_input, executor_endpoint, encryption_key_hex, anchor, rpc_url, consented } = params;
325
+ const { plaintext_input, executor_endpoint, encryption_key_hex, anchor } = params;
412
326
  // Step 1: Generate or use provided 32-byte AES-256 key
413
327
  let rawKeyBytes;
414
328
  if (encryption_key_hex) {
@@ -457,23 +371,20 @@ async function privateCompute(params) {
457
371
  }
458
372
  // Step 5: result_hash = sha256(JSON.stringify(executorResponse))
459
373
  const resultHash = sha256hex(JSON.stringify(executorResponse));
460
- // Step 6: Optionally anchor (input_hash + result_hash) on Solana
461
- let commitmentTx;
462
- let explorerUrl;
374
+ // Step 6: Commitment over (input_hash, result_hash). Computed locally; the
375
+ // on-chain anchor is refused — receipt_anchor has no usable deployment.
376
+ let commitment;
463
377
  if (anchor) {
464
378
  // Commitment = sha256(input_hash_bytes + result_hash_bytes)
465
379
  const ihBuf = Buffer.from(inputHash, "hex");
466
380
  const rhBuf = Buffer.from(resultHash, "hex");
467
381
  const combined = Buffer.concat([ihBuf, rhBuf]);
468
382
  const commitmentHex = createHash("sha256").update(combined).digest("hex");
469
- const anchorResult = await anchorReceipt(commitmentHex, rpc_url ?? process.env.SOLANA_RPC_URL ?? DEFAULT_RPC, false, consented === true);
470
- if (anchorResult.solana_tx) {
471
- commitmentTx = anchorResult.solana_tx;
472
- explorerUrl = anchorResult.explorer_url;
473
- }
474
- else if (anchorResult.error) {
475
- commitmentTx = `anchor_failed: ${anchorResult.error}`;
476
- }
383
+ commitment = {
384
+ commitment_hex: commitmentHex,
385
+ anchored: false,
386
+ error: RECEIPT_ANCHOR_UNAVAILABLE_ERROR,
387
+ };
477
388
  }
478
389
  // Step 7: Return all fields
479
390
  const output = {
@@ -484,99 +395,99 @@ async function privateCompute(params) {
484
395
  key_hex: keyHex,
485
396
  protocol_note: "executor received ciphertext only — plaintext never left client",
486
397
  };
487
- if (commitmentTx !== undefined)
488
- output.commitment_tx = commitmentTx;
489
- if (explorerUrl !== undefined)
490
- output.explorer_url = explorerUrl;
398
+ if (commitment !== undefined)
399
+ output.commitment = commitment;
491
400
  return output;
492
401
  }
493
402
  function getStackStatus() {
494
- assertNotSeized(PROGRAMS.dark_x402_access_gate, "dark_x402_access_gate");
495
- assertNotSeized(PROGRAMS.dark_nullifier_record, "dark_nullifier_record");
403
+ // Seized or withdrawn program IDs are NOT listed here. Never advertise a
404
+ // seized address as live.
405
+ const retired = "retired (mainnet) — accounts readable, cannot be invoked";
496
406
  return {
497
407
  programs: [
498
408
  {
499
- name: "dark_x402_access_gate",
500
- address: PROGRAMS.dark_x402_access_gate,
501
- status: "live (mainnet) — VK single-party until the trusted-setup ceremony finalizes",
502
- explorer_url: explorerAccount(PROGRAMS.dark_x402_access_gate),
503
- description: "Groth16 BN254 access gate — prove funded + authorized WITHOUT revealing wallet or balance. On-chain verify via alt_bn128_pairing (~93k CU, ~$0.0007).",
504
- },
505
- {
506
- name: "dark_nullifier_record",
507
- address: PROGRAMS.dark_nullifier_record,
508
- status: "live",
509
- explorer_url: explorerAccount(PROGRAMS.dark_nullifier_record),
510
- description: "Single-use / anti-replay — records a nullifier PDA so each proof is spendable exactly once.",
409
+ name: "receipt_anchor (mainnet)",
410
+ cluster: "mainnet",
411
+ address: RECEIPT_ANCHOR_MAINNET_RETIRED,
412
+ status: `retired ${RECEIPT_ANCHOR_MAINNET_RETIRED_ON} — historical anchors readable, cannot be invoked`,
413
+ explorer_url: explorerAccount(RECEIPT_ANCHOR_MAINNET_RETIRED),
414
+ description: "Anchored receipts on mainnet June–July 2026",
511
415
  },
512
416
  {
513
- name: "receipt_anchor",
514
- address: PROGRAMS.receipt_anchor,
515
- status: "live",
516
- explorer_url: explorerAccount(PROGRAMS.receipt_anchor),
517
- description: "Anchors 32-byte receipt hashes permanently on Solana mainnet",
518
- },
519
- {
520
- name: "dark_secp256r1_vault",
521
- address: PROGRAMS.dark_secp256r1_vault,
522
- status: "live",
523
- explorer_url: explorerAccount(PROGRAMS.dark_secp256r1_vault),
524
- description: "WebAuthn / P-256 vault — stores secp256r1 public keys on-chain",
417
+ name: "null_registrar (mainnet)",
418
+ cluster: "mainnet",
419
+ address: NULL_REGISTRAR_MAINNET,
420
+ status: "retired 2026-08-29 — records readable (resolve_null works), registration/updates/transfers frozen",
421
+ explorer_url: explorerAccount(NULL_REGISTRAR_MAINNET),
422
+ description: "Legacy .null name registrar",
525
423
  },
526
424
  {
527
425
  name: "dark_secp256k1_auth",
426
+ cluster: "mainnet",
528
427
  address: PROGRAMS.dark_secp256k1_auth,
529
- status: "live",
428
+ status: retired,
530
429
  explorer_url: explorerAccount(PROGRAMS.dark_secp256k1_auth),
531
- description: "ETH address binding — links MetaMask / secp256k1 identities to Solana wallets",
532
- },
533
- {
534
- name: "dark_bn254_gate",
535
- address: PROGRAMS.dark_bn254_gate,
536
- status: "stub — do not use",
537
- explorer_url: explorerAccount(PROGRAMS.dark_bn254_gate),
538
- description: "DEPRECATED demo gate with a hardcoded proof bypass — NOT a real verifier. Superseded by dark_x402_access_gate (real Groth16 BN254). Listed for transparency only.",
430
+ description: "ETH address binding — existing MetaMask / secp256k1 ↔ Solana bindings are readable via lookup_passport",
539
431
  },
540
432
  {
541
433
  name: "dark_semaphore",
434
+ cluster: "mainnet",
542
435
  address: PROGRAMS.dark_semaphore,
543
- status: "live",
436
+ status: retired,
544
437
  explorer_url: explorerAccount(PROGRAMS.dark_semaphore),
545
438
  description: "Semaphore-style anonymous group membership proofs",
546
439
  },
440
+ {
441
+ name: "dark_bn254_gate",
442
+ address: PROGRAMS.dark_bn254_gate,
443
+ status: "deprecated — do not use",
444
+ explorer_url: explorerAccount(PROGRAMS.dark_bn254_gate),
445
+ description: "Deprecated demo gate with a hardcoded proof bypass — NOT a real verifier.",
446
+ },
547
447
  {
548
448
  name: "null_token",
449
+ cluster: "mainnet",
549
450
  address: PROGRAMS.null_token,
550
- status: "live",
451
+ status: "live (SPL token mint)",
551
452
  explorer_url: explorerAccount(PROGRAMS.null_token),
552
- description: "NULL SPL token — native currency of the Parad0x Labs protocol economy",
453
+ description: "NULL SPL token",
553
454
  },
554
455
  ],
456
+ receipt_anchoring: {
457
+ status: "unavailable",
458
+ note: "Receipt anchoring is unavailable until the redeploy under a fresh key. anchor_receipt and private_compute still compute hashes locally; nothing is sent.",
459
+ },
460
+ shielded_access: {
461
+ status: "unavailable",
462
+ note: "The shielded x402 access gate and nullifier record deployments were withdrawn; check_nullifier refuses until the redeploy under a fresh key.",
463
+ },
555
464
  private_reputation_stack: {
556
- note: "Private track-record proof — LIVE on mainnet as of 2026-06-07. Single-party VK until the trusted-setup ceremony finalizes (same status as the access gate).",
557
- dark_reputation_gate: PROGRAMS.dark_reputation_gate,
558
- receipt_commitment_tree: PROGRAMS.receipt_commitment_tree,
465
+ status: "unavailable",
466
+ note: "The reputation gate and commitment tree deployments were withdrawn pending a redeploy under a fresh key.",
467
+ },
468
+ dark_null: { status: "devnet", note: "Canonical Dark NULL runs on devnet." },
469
+ x402_payments: {
470
+ status: "live — devnet by default, mainnet opt-in",
471
+ note: "x402 USDC settlement is a plain SPL transfer; it does not depend on any retired program.",
559
472
  },
560
473
  packages: [
561
474
  "@parad0x_labs/mcp-server",
562
- "@parad0x_labs/null-miner-sdk",
563
- "@parad0x_labs/liquefy-receipts",
564
- "@parad0x_labs/outcome-receipts",
565
- "@parad0x_labs/pay-to-receive",
566
- "@parad0x_labs/receipt-dag",
567
- "@parad0x_labs/session-channels",
568
- "@parad0x_labs/task-marketplace-api",
569
- "@parad0x_labs/nulllive-sdk",
475
+ "@parad0x_labs/openclaw-x402-pay",
476
+ "@parad0x_labs/openclaw-x402-gate",
477
+ "@parad0x_labs/openclaw-payment-session",
478
+ "@parad0x_labs/openclaw-context-capsule",
479
+ "@parad0x_labs/openclaw-agent-passport",
480
+ "@parad0x_labs/openclaw-web0-onboard",
570
481
  ],
571
- github: "https://github.com/parad0x-labs/dna-x402",
572
- network: "solana-mainnet",
482
+ github: "https://github.com/Parad0x-Labs/openclaw-skills",
483
+ anchor_network: "none",
573
484
  status_timestamp: new Date().toISOString(),
574
485
  };
575
486
  }
576
487
  // ---------------------------------------------------------------------------
577
488
  // MCP server setup
578
489
  // ---------------------------------------------------------------------------
579
- const server = new Server({ name: "parad0x-mcp", version: "0.1.0" }, {
490
+ const server = new Server({ name: "parad0x-mcp", version: "0.2.0" }, {
580
491
  capabilities: {
581
492
  tools: {},
582
493
  },
@@ -605,7 +516,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
605
516
  },
606
517
  {
607
518
  name: "anchor_receipt",
608
- description: "Anchor a 32-byte receipt hash permanently on Solana mainnet via the receipt_anchor program. Read-only by default: returns a PREVIEW unless the operator enabled writes (PARAD0X_MCP_ALLOW_WRITE=1) AND you pass confirm:true.",
519
+ description: "Anchor a 32-byte receipt hash on Solana via receipt_anchor. Receipt anchoring is unavailable until the redeploy under a fresh key: the tool validates the hash and returns a clear refusal; nothing is signed or sent. The mainnet receipt_anchor was retired 2026-07-14; its historical anchors remain readable.",
609
520
  inputSchema: {
610
521
  type: "object",
611
522
  properties: {
@@ -613,21 +524,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
613
524
  type: "string",
614
525
  description: "64-character hex string representing the 32-byte SHA-256 receipt hash",
615
526
  },
616
- rpc_url: {
617
- type: "string",
618
- description: "Solana RPC URL (default: publicnode public mainnet RPC)",
619
- },
620
- confirm: {
621
- type: "boolean",
622
- description: "Must be true to actually submit. Without it the tool returns a preview only (no transaction sent).",
623
- },
624
527
  },
625
528
  required: ["receipt_hash_hex"],
626
529
  },
627
530
  },
628
531
  {
629
532
  name: "lookup_passport",
630
- description: "Look up a Dark Passport — check if an ETH address or Solana wallet has a verified identity binding on Solana mainnet",
533
+ description: "Look up a Dark Passport — check if an ETH address or Solana wallet has an identity binding on the legacy mainnet dark_secp256k1_auth program (retired; existing bindings readable, no new bindings). Read-only.",
631
534
  inputSchema: {
632
535
  type: "object",
633
536
  properties: {
@@ -679,7 +582,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
679
582
  },
680
583
  {
681
584
  name: "compress_receipts",
682
- description: "Compress a batch of receipts using Liquefy columnar compression (83x typical ratio)",
585
+ description: "Compress a batch of receipts (zlib deflate level 9; Liquefy-format demonstration). The production Liquefy columnar codec targets ~83x; this tool ships the zlib reference path.",
683
586
  inputSchema: {
684
587
  type: "object",
685
588
  properties: {
@@ -694,7 +597,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
694
597
  },
695
598
  {
696
599
  name: "check_nullifier",
697
- description: "Check whether a privacy-proof nullifier has already been spent on Solana (single-use enforcement). Read-only: derives the dark_nullifier_record PDA and checks if it exists on-chain. No signing, no funds.",
600
+ description: "Check whether a privacy-proof nullifier has already been spent (single-use enforcement). Unavailable until the nullifier record program is redeployed under a fresh key: the tool validates the nullifier and returns a clear refusal; no lookup is made.",
698
601
  inputSchema: {
699
602
  type: "object",
700
603
  properties: {
@@ -702,17 +605,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
702
605
  type: "string",
703
606
  description: "The nullifier as a 64-char hex string OR a decimal BN254 field element (e.g. the reputation_nullifier public input).",
704
607
  },
705
- rpc_url: {
706
- type: "string",
707
- description: "Solana RPC URL (default: publicnode mainnet). Use a devnet RPC to check the devnet stack.",
708
- },
709
608
  },
710
609
  required: ["nullifier"],
711
610
  },
712
611
  },
713
612
  {
714
613
  name: "get_stack_status",
715
- description: "Get the current status of all Parad0x Labs mainnet programs",
614
+ description: "Get the current status of Parad0x Labs programs: retired mainnet programs (readable), unavailable services pending redeploy, and x402 settlement",
716
615
  inputSchema: {
717
616
  type: "object",
718
617
  properties: {},
@@ -720,7 +619,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
720
619
  },
721
620
  {
722
621
  name: "private_compute",
723
- description: "Run a computation via an executor endpoint without exposing plaintext inputs. Agent encrypts locally, sends ciphertext, executor returns encrypted result + result hash. Commit (input_hash, result_hash) on Solana. Executor never sees plaintext.",
622
+ description: "Run a computation via an executor endpoint without exposing plaintext inputs. Agent encrypts locally, sends ciphertext, executor returns encrypted result + result hash. Executor never sees plaintext. With anchor:true the (input_hash, result_hash) commitment is computed locally; the on-chain anchor is unavailable until the receipt_anchor redeploy under a fresh key.",
724
623
  inputSchema: {
725
624
  type: "object",
726
625
  properties: {
@@ -738,11 +637,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
738
637
  },
739
638
  anchor: {
740
639
  type: "boolean",
741
- description: "If true, commit (input_hash, result_hash) to Solana via receipt_anchor",
742
- },
743
- rpc_url: {
744
- type: "string",
745
- description: "Solana RPC URL (default: publicnode public mainnet RPC)",
640
+ description: "If true, compute the (input_hash, result_hash) commitment. The on-chain anchor is refused until the receipt_anchor redeploy under a fresh key.",
746
641
  },
747
642
  },
748
643
  required: ["plaintext_input", "executor_endpoint"],
@@ -771,7 +666,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
771
666
  },
772
667
  {
773
668
  name: "resolve_null",
774
- description: "Resolve a .null name on Solana mainnet → its owner, published x402 endpoint (pay-by-name), stealth meta-address, and Arweave content. Read-only: derives the NullDomain PDA on the live registrar and reads it. Returns payable_by_name=true when an x402 endpoint is set.",
669
+ description: "Resolve a .null name → its owner, published x402 endpoint (pay-by-name), stealth meta-address, and Arweave content. Read-only: derives the NullDomain PDA on the legacy mainnet registrar (retired 2026-08-29; records readable, registration/updates frozen) and reads it. Returns payable_by_name=true when an x402 endpoint is set.",
775
670
  inputSchema: {
776
671
  type: "object",
777
672
  properties: {
@@ -781,7 +676,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
781
676
  },
782
677
  rpc_url: {
783
678
  type: "string",
784
- description: "Solana mainnet RPC URL (default: publicnode mainnet). The registrar is on mainnet.",
679
+ description: "Solana mainnet RPC URL (default: publicnode mainnet). The legacy registrar's records are stored on mainnet.",
785
680
  },
786
681
  },
787
682
  required: ["name"],
@@ -836,8 +731,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
836
731
  break;
837
732
  }
838
733
  case "anchor_receipt": {
839
- const { receipt_hash_hex, rpc_url, confirm } = args;
840
- result = await anchorReceipt(receipt_hash_hex, rpc_url ?? process.env.SOLANA_RPC_URL ?? DEFAULT_RPC, confirm === true, sessionConsent.has("anchor_receipt"));
734
+ const { receipt_hash_hex } = args;
735
+ result = anchorReceipt(String(receipt_hash_hex ?? ""));
841
736
  break;
842
737
  }
843
738
  case "lookup_passport": {
@@ -855,8 +750,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
855
750
  break;
856
751
  }
857
752
  case "check_nullifier": {
858
- const { nullifier, rpc_url } = args;
859
- result = await checkNullifier(nullifier, rpc_url ?? process.env.SOLANA_RPC_URL ?? DEFAULT_RPC);
753
+ const { nullifier } = args;
754
+ result = checkNullifier(String(nullifier ?? ""));
860
755
  break;
861
756
  }
862
757
  case "get_stack_status": {
@@ -864,10 +759,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
864
759
  break;
865
760
  }
866
761
  case "private_compute": {
867
- result = await privateCompute({
868
- ...args,
869
- consented: sessionConsent.has("private_compute"),
870
- });
762
+ result = await privateCompute(args);
871
763
  break;
872
764
  }
873
765
  case "create_wallet": {
@@ -902,7 +794,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
902
794
  funded: false,
903
795
  next_steps: [
904
796
  "Fund this address with a little SOL (for transaction fees) and USDC (to spend).",
905
- "Point your signer at this file (e.g. SOLANA_KEYPAIR or your wallet config) to pay / register / anchor.",
797
+ "Point your signer at this file (e.g. SOLANA_KEYPAIR or your wallet config) to pay.",
906
798
  "BACK IT UP — this file is the only copy of the key; losing it loses the funds.",
907
799
  ],
908
800
  security: "The secret key was written only to the file above on this machine. It was NOT returned to the model.",
@@ -923,8 +815,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
923
815
  note: r.found
924
816
  ? r.x402_endpoint
925
817
  ? "Resolved — payable by name via the published x402 endpoint."
926
- : "Registered, but no x402 endpoint published yet (the owner must set one via UPDATE_ENDPOINT)."
927
- : "Not registered on mainnet.",
818
+ : "Registered, but no x402 endpoint is published. The legacy registrar is retired (2026-08-29), so endpoints can no longer be updated."
819
+ : "Not registered on the legacy mainnet registrar.",
820
+ registrar_status: "retired 2026-08-29 — records readable, registration/updates/transfers frozen",
928
821
  };
929
822
  break;
930
823
  }
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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"}
package/dist/resolve.d.ts CHANGED
@@ -1,16 +1,18 @@
1
1
  /**
2
2
  * .null name resolution — name → on-chain owner + x402 endpoint + stealth meta.
3
3
  *
4
- * Vendored (no cross-skill import). Reads the live mainnet registrar's NullDomain
5
- * account. Pure parse is split out so it's unit-testable without a network.
4
+ * Vendored (no cross-skill import). Read-only: reads the NullDomain account on
5
+ * the legacy mainnet registrar (retired 2026-08-29; records readable,
6
+ * registration/updates/transfers frozen). Pure parse is split out so it's
7
+ * unit-testable without a network.
6
8
  *
7
9
  * NullDomain layout (registrar state.rs): disc[1]@0=0x4E · name[64]@1 ·
8
10
  * owner[32]@65 · arweave_txid[32]@97 · x402_endpoint[128]@129 (UTF-8, null-padded,
9
11
  * all-zero = not payable) · … · bump@313 (314-byte base) · stealth_meta[64]@314
10
12
  * (v2 only). PDA seeds: ["null-domain", sha256(name padded to 64 bytes)].
11
13
  */
12
- /** Live mainnet .null registrar (clean redeploy under multisig). NEVER the
13
- * seized pre-incident H4wbFJ…. */
14
+ /** Legacy mainnet .null registrar (retired 2026-08-29; records readable,
15
+ * registration/updates/transfers frozen). NEVER the seized pre-incident registrar. */
14
16
  export declare const NULL_REGISTRAR_MAINNET = "NXgQhepFpDCu935H1D4g34g59ZYbo1jR4tBCZWhV8Np";
15
17
  /** Keyless public-node mainnet RPC for resolution reads. */
16
18
  export declare const RESOLVE_RPC_MAINNET = "https://solana-rpc.publicnode.com";
@@ -27,6 +29,6 @@ export declare function normalizeNullName(name: string): string;
27
29
  export declare function deriveNullDomainPda(name: string, registrar?: string): string;
28
30
  /** Parse a raw NullDomain account. Pure — testable on a synthetic buffer. */
29
31
  export declare function parseNullDomain(name: string, pda: string, data: Buffer): NullResolution;
30
- /** Resolve a .null name on mainnet. */
32
+ /** Resolve a .null name (read-only) against the legacy mainnet registrar. */
31
33
  export declare function resolveNullName(name: string, rpcUrl?: string): Promise<NullResolution>;
32
34
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;mCACmC;AACnC,eAAO,MAAM,sBAAsB,gDAAgD,CAAC;AAEpF,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAWvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAyB,GAAG,MAAM,CAU5F;AASD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAevF;AAED,uCAAuC;AACvC,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,SAAsB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAUzB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;uFACuF;AACvF,eAAO,MAAM,sBAAsB,gDAAgD,CAAC;AAEpF,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAWvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAyB,GAAG,MAAM,CAU5F;AASD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAevF;AAED,6EAA6E;AAC7E,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,SAAsB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAUzB"}
package/dist/resolve.js CHANGED
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * .null name resolution — name → on-chain owner + x402 endpoint + stealth meta.
3
3
  *
4
- * Vendored (no cross-skill import). Reads the live mainnet registrar's NullDomain
5
- * account. Pure parse is split out so it's unit-testable without a network.
4
+ * Vendored (no cross-skill import). Read-only: reads the NullDomain account on
5
+ * the legacy mainnet registrar (retired 2026-08-29; records readable,
6
+ * registration/updates/transfers frozen). Pure parse is split out so it's
7
+ * unit-testable without a network.
6
8
  *
7
9
  * NullDomain layout (registrar state.rs): disc[1]@0=0x4E · name[64]@1 ·
8
10
  * owner[32]@65 · arweave_txid[32]@97 · x402_endpoint[128]@129 (UTF-8, null-padded,
@@ -11,8 +13,8 @@
11
13
  */
12
14
  import { Connection, PublicKey } from "@solana/web3.js";
13
15
  import { createHash } from "crypto";
14
- /** Live mainnet .null registrar (clean redeploy under multisig). NEVER the
15
- * seized pre-incident H4wbFJ…. */
16
+ /** Legacy mainnet .null registrar (retired 2026-08-29; records readable,
17
+ * registration/updates/transfers frozen). NEVER the seized pre-incident registrar. */
16
18
  export const NULL_REGISTRAR_MAINNET = "NXgQhepFpDCu935H1D4g34g59ZYbo1jR4tBCZWhV8Np";
17
19
  /** Keyless public-node mainnet RPC for resolution reads. */
18
20
  export const RESOLVE_RPC_MAINNET = "https://solana-rpc.publicnode.com";
@@ -62,7 +64,7 @@ export function parseNullDomain(name, pda, data) {
62
64
  }
63
65
  return res;
64
66
  }
65
- /** Resolve a .null name on mainnet. */
67
+ /** Resolve a .null name (read-only) against the legacy mainnet registrar. */
66
68
  export async function resolveNullName(name, rpcUrl = RESOLVE_RPC_MAINNET) {
67
69
  const pda = deriveNullDomainPda(name);
68
70
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
package/dist/scope.d.ts CHANGED
@@ -10,13 +10,22 @@ export declare const WRITE_TOOLS: Set<string>;
10
10
  /** Read-only tools — always callable, never gated. */
11
11
  export declare const READ_TOOLS: Set<string>;
12
12
  /**
13
- * Pre-incident program IDs whose upgrade authority is under hostile control
14
- * (deployer key stolen 2026-06-14). NEVER call these — they await a clean
15
- * redeploy under Squads multisig after the trusted-setup ceremony.
13
+ * SHA-256 (hex, over the base58 string) of every program ID that must never be
14
+ * called: the IDs whose upgrade authority is held by the stolen deploy key
15
+ * (stolen 2026-06-14) or the attacker key, verified on-chain 2026-10-06, plus
16
+ * the gen-1 x402 access gate and the secp256r1 vault. Stored hashed so this
17
+ * package never names them; a matching program ID is refused as seized.
16
18
  */
17
- export declare const SEIZED_PROGRAMS: Set<string>;
18
- /** Throw if a program ID is one of the seized pre-incident deployments. */
19
- export declare function assertNotSeized(programId: string, name: string): void;
19
+ export declare const COMPROMISED_PROGRAM_SHA256: Set<string>;
20
+ /** SHA-256 hex digest of a base58 program ID, as held in the denylist. */
21
+ export declare function programIdDigest(programId: string): string;
22
+ /**
23
+ * True if a program ID is seized or compromised and must never be called.
24
+ * `denylist` defaults to COMPROMISED_PROGRAM_SHA256; tests pass their own.
25
+ */
26
+ export declare function isSeizedProgram(programId: string, denylist?: ReadonlySet<string>): boolean;
27
+ /** Throw if a program ID is seized or compromised. */
28
+ export declare function assertNotSeized(programId: string, name: string, denylist?: ReadonlySet<string>): void;
20
29
  export interface WriteDecision {
21
30
  allowed: boolean;
22
31
  blockedReason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,WAAW,aAAyD,CAAC;AAElF,sDAAsD;AACtD,eAAO,MAAM,UAAU,aAWrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,aAG1B,CAAC;AAEH,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOrE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,aAAa,CAgBhB"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,6EAA6E;AAC7E,eAAO,MAAM,WAAW,aAAyD,CAAC;AAElF,sDAAsD;AACtD,eAAO,MAAM,UAAU,aAWrB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,aA2CrC,CAAC;AAEH,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,WAAW,CAAC,MAAM,CAA8B,GACzD,OAAO,CAET;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,WAAW,CAAC,MAAM,CAA8B,GACzD,IAAI,CAON;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,aAAa,CAgBhB"}
package/dist/scope.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * which programs are seized, and when a write is allowed — can be unit-tested
6
6
  * without spawning the stdio server or touching Solana.
7
7
  */
8
+ import { createHash } from "crypto";
8
9
  /** Tools that submit an on-chain transaction (cost money / mutate state). */
9
10
  export const WRITE_TOOLS = new Set(["anchor_receipt", "private_compute"]);
10
11
  /** Read-only tools — always callable, never gated. */
@@ -21,19 +22,72 @@ export const READ_TOOLS = new Set([
21
22
  "revoke_write_consent",
22
23
  ]);
23
24
  /**
24
- * Pre-incident program IDs whose upgrade authority is under hostile control
25
- * (deployer key stolen 2026-06-14). NEVER call these — they await a clean
26
- * redeploy under Squads multisig after the trusted-setup ceremony.
25
+ * SHA-256 (hex, over the base58 string) of every program ID that must never be
26
+ * called: the IDs whose upgrade authority is held by the stolen deploy key
27
+ * (stolen 2026-06-14) or the attacker key, verified on-chain 2026-10-06, plus
28
+ * the gen-1 x402 access gate and the secp256r1 vault. Stored hashed so this
29
+ * package never names them; a matching program ID is refused as seized.
27
30
  */
28
- export const SEIZED_PROGRAMS = new Set([
29
- "EepqzVBNuzCgD6XGiB19pDDhzFG3gUL4z1nabBYxpfjS",
30
- "24tmjEd1DhPW2QuPV6BzkFFHrq2PtELoLqv5cuv2Xu65",
31
+ export const COMPROMISED_PROGRAM_SHA256 = new Set([
32
+ "03a6663124ee110d7f1549225ae8b66e28f989b1ea306733025ac34f453b1bd3",
33
+ "087e543cd6ed73fd60f01310834299868662c9c5d38e4e0bf51d2d4e163ca48e",
34
+ "0a81ba274124ff3e0e1ccc8751aaf0502e64ae7cd7ca1c01b2ac2307e0fe7888",
35
+ "106ecad95974bc44ac3814080c6da4034acc9954fca73cb70847c179c55960c1",
36
+ "18a6ef269348afca606c6518a3c9f99db95b04e00b6db6f72fd5e27617cffe5a",
37
+ "207b9501b614cc267c35ba80ca816de9a73705d7a1783013d980071d587c8508",
38
+ "35a832bc1dff671d6a806d63ea404ed181ed9675c49d513889e4a3aabda68423",
39
+ "427d5ceda543e84da133f012aa276e2976d3b2bdab0f919a8868915b686431f7",
40
+ "43ec8670ab0331d8d7c61a96cfdc0ea35a42a4cd92181d030a8273b2746bc40f",
41
+ "443aa25e948a5bacda419354d767daec61535ef8a7bb705608dd5622b40a8781",
42
+ "515932c0aff64f0c71748d3937816d7a3fa7b54cc2d8652644df02e0bf9160e1",
43
+ "536f4d11f78683f2c410ef5c0e1ac44331282a5e8a8326bf496e9d88a37aadc6",
44
+ "5f93a30006d238b27674c912e06c66ed5ae239cada777c0259d972fef1d8f7a9",
45
+ "67ae1a129d05113c25802b3c6d2662258d7d1f2eb8aa5d926aa12e9cfa07255c",
46
+ "7abaeaa69c452dd5349bbde0858b343984fdef2e1bf32359248915b777c535bc",
47
+ "7f13819793d15a9543e8311e0f03f32e5402550482b7a8c2f4f6820e436a2848",
48
+ "803fb82c8a17d742b688169b74ea32f0853575ba99e4dab546c869f5498eb659",
49
+ "8be761a7c6188ea3b42e969a23826b19c6dc48edf0f980cdec0a6ac60c2cabb3",
50
+ "8db33330fbc7b9aec1f2be55a3b2e66a48f92e1456f0c5bf20cb1376ebc04f9c",
51
+ "9494405041eb52ca83174f86dfb0b10ae420f30d937d01eff10e09a90f8ac7cd",
52
+ "94afaea6b3909084ed4827d43f37a6c53e379a093aaefed0831a8488bb204726",
53
+ "a47c1fce4236ba82d1b46be7c5f1a88e7cb8e884a505b4166f1787b25f0ff7d2",
54
+ "a596f7427e3beb2e55ecd603a8c8fdffeac0a4f41cdae228ac58ebbabdca4b7c",
55
+ "a5e1459d45cc7e1c595f7177d3ec330d82e458b44550e419eea5c740c02362c5",
56
+ "a7656054f294394e546b39f90c03a0cb31446ac46c37285f5bfc900b3bcea827",
57
+ "a9393ec9cb1e53f2d05d44b85abdce3b7aefbdcc911c79fcc247f690a6d8f961",
58
+ "ab08034c09f59bbe63cb2732098eeaf0d5314562ff33e47aec7c2a83e9632e4b",
59
+ "b851c1d6562bf9e70e2033a2db83d21fc5b249eab440a751d5638b285a4596c0",
60
+ "b86bc72fc29bf4fec42ae08c5640ff26dbddcfa4fcc676f5c5c5e6202c4ef345",
61
+ "b90ca850a9d88bddc7a7bb14961f307330ce1e229191aada8d4af2deccf0e643",
62
+ "bc1d1c322bc032feb4e9b35546eb747957dc594b0985f23443b7b88d2aa83d2f",
63
+ "c71f07bc53d21a569410c274846a5716f434ae224436c193abb8d8db6659adff",
64
+ "caf0dd36fc5c1b21b85ea77f22eb776e92f27050ad5061f277d2f193112691af",
65
+ "cdebce72fa8e40499a46331babaeec9fef6328631646b2a7249b31ba420e8cdc",
66
+ "d54db76ef37ef4cdb0b06378f83c9402c4cb32e2c726bbbeac3a7f3ff1a03330",
67
+ "e8d879443447bc9d15426dc46d22cb5786a77b82da869f89abe71e8ef6efc41b",
68
+ "f53b062423ef87023ecb4a2a8caf8743508d1883582d9dc63a0e5764bffa3fc2",
69
+ "f6306c52937d2c382219c615f7f18996c6803ffdccf1df6fcfdcb1fc222392ed",
70
+ // gen-1 x402 access gate (seized pre-incident)
71
+ "d8406486dd119717648b5b6e6f4b8b9a044536b3ab95c34da437add15c5cac36",
72
+ // secp256r1 vault (attacker-controlled)
73
+ "efa8237fa114259344b44de2f79c21583ec464ffe5186876c35595bbd11983a1",
31
74
  ]);
32
- /** Throw if a program ID is one of the seized pre-incident deployments. */
33
- export function assertNotSeized(programId, name) {
34
- if (SEIZED_PROGRAMS.has(programId)) {
35
- throw new Error(`${name} (${programId}) is a SEIZED pre-incident program — upgrade authority is under hostile control. ` +
36
- `Do not call this program. Post-redeploy IDs will be updated here after the trusted-setup ceremony.`);
75
+ /** SHA-256 hex digest of a base58 program ID, as held in the denylist. */
76
+ export function programIdDigest(programId) {
77
+ return createHash("sha256").update(programId).digest("hex");
78
+ }
79
+ /**
80
+ * True if a program ID is seized or compromised and must never be called.
81
+ * `denylist` defaults to COMPROMISED_PROGRAM_SHA256; tests pass their own.
82
+ */
83
+ export function isSeizedProgram(programId, denylist = COMPROMISED_PROGRAM_SHA256) {
84
+ return denylist.has(programIdDigest(programId));
85
+ }
86
+ /** Throw if a program ID is seized or compromised. */
87
+ export function assertNotSeized(programId, name, denylist = COMPROMISED_PROGRAM_SHA256) {
88
+ if (isSeizedProgram(programId, denylist)) {
89
+ throw new Error(`${name} (${programId}) is a SEIZED program — upgrade authority is under hostile control. ` +
90
+ `Do not call this program.`);
37
91
  }
38
92
  }
39
93
  /**
package/dist/scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAElF,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IAC7C,8CAA8C;IAC9C,8CAA8C;CAC/C,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,IAAY;IAC7D,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,KAAK,SAAS,mFAAmF;YACtG,oGAAoG,CACvG,CAAC;IACJ,CAAC;AACH,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAI9B;IACC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa,EACX,+EAA+E;SAClF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,aAAa,EACX,+HAA+H;KAClI,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAElF,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;CACvB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS;IACxD,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,+CAA+C;IAC/C,kEAAkE;IAClE,wCAAwC;IACxC,kEAAkE;CACnE,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,WAAgC,0BAA0B;IAE1D,OAAO,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,IAAY,EACZ,WAAgC,0BAA0B;IAE1D,IAAI,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,KAAK,SAAS,sEAAsE;YACzF,2BAA2B,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAI9B;IACC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa,EACX,+EAA+E;SAClF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,aAAa,EACX,+HAA+H;KAClI,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@parad0x_labs/mcp-server",
3
- "version": "0.1.0",
4
- "description": "MCP server for the Parad0x Labs stack — x402 payments, receipt anchoring, agent identity, Liquefy compression",
3
+ "version": "0.2.0",
4
+ "description": "MCP server for the Parad0x Labs stack: x402 payment quotes, receipt hashing, read-only .null and Dark Passport lookups, outcome receipts, Liquefy-format receipt compression",
5
5
  "type": "module",
6
- "bin": { "parad0x-mcp": "./dist/index.js" },
6
+ "bin": {
7
+ "parad0x-mcp": "./dist/index.js"
8
+ },
7
9
  "main": "./dist/index.js",
8
- "files": ["dist/", "README.md"],
10
+ "files": [
11
+ "dist/",
12
+ "README.md"
13
+ ],
9
14
  "scripts": {
10
15
  "build": "tsc",
11
16
  "start": "node dist/index.js",
@@ -21,12 +26,20 @@
21
26
  "devDependencies": {
22
27
  "typescript": "^5.6.3"
23
28
  },
24
- "engines": { "node": ">=22" },
29
+ "engines": {
30
+ "node": ">=22"
31
+ },
25
32
  "license": "MIT",
26
- "publishConfig": { "access": "public" },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
27
36
  "repository": {
28
37
  "type": "git",
29
- "url": "https://github.com/Parad0x-Labs/openclaw-skills",
38
+ "url": "https://github.com/Parad0x-Labs/openclaw-skills.git",
30
39
  "directory": "skills/mcp-server"
40
+ },
41
+ "homepage": "https://github.com/Parad0x-Labs/openclaw-skills/tree/main/skills/mcp-server#readme",
42
+ "bugs": {
43
+ "url": "https://github.com/Parad0x-Labs/openclaw-skills/issues"
31
44
  }
32
45
  }