@parad0x_labs/mcp-server 0.1.1 → 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 +37 -21
- package/dist/anchor.d.ts +24 -3
- package/dist/anchor.d.ts.map +1 -1
- package/dist/anchor.js +29 -3
- package/dist/anchor.js.map +1 -1
- package/dist/index.js +125 -225
- package/dist/index.js.map +1 -1
- package/dist/resolve.d.ts +7 -5
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +7 -5
- package/dist/resolve.js.map +1 -1
- package/dist/scope.d.ts +15 -6
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +65 -11
- package/dist/scope.js.map +1 -1
- package/package.json +7 -3
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` |
|
|
11
|
-
| `lookup_passport` |
|
|
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
18
|
| `compress_receipts` | Compress a batch of receipts (zlib deflate; Liquefy-format demo — the production columnar codec targets ~83x) |
|
|
14
|
-
| `
|
|
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://solana-rpc.publicnode.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
|
-
`
|
|
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
|
|
|
@@ -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
|
|
67
|
-
npm
|
|
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://solana-rpc.publicnode.com` | Solana RPC
|
|
77
|
-
| `
|
|
78
|
-
|
|
79
|
-
## Programs
|
|
80
|
-
|
|
81
|
-
| Program | Address |
|
|
82
|
-
|
|
83
|
-
| receipt_anchor | `6HSRGivdYR5D7yTDy1TFMCM8h3LzXxRtKU1RA3RnCMRN` |
|
|
84
|
-
|
|
|
85
|
-
| dark_secp256k1_auth | `AqwBbV13AoczhoELwP8oxT3nDqB6MsLWXauNzHkssZ9B` |
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
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,
|
|
2
|
+
* receipt_anchor instruction encoder + availability gate (host-free, byte-exact,
|
|
3
|
+
* unit-tested).
|
|
3
4
|
*
|
|
4
|
-
*
|
|
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
|
-
/**
|
|
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;
|
package/dist/anchor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA
|
|
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,
|
|
2
|
+
* receipt_anchor instruction encoder + availability gate (host-free, byte-exact,
|
|
3
|
+
* unit-tested).
|
|
3
4
|
*
|
|
4
|
-
*
|
|
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
|
-
/**
|
|
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"),
|
package/dist/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA
|
|
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
|
|
8
|
-
import { WRITE_TOOLS, READ_TOOLS
|
|
9
|
-
import { resolveNullName } from "./resolve.js";
|
|
10
|
-
import {
|
|
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
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
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
|
-
//
|
|
23
|
-
|
|
24
|
-
//
|
|
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
|
|
39
|
+
// deprecated demo gate — NOT a real verifier (hardcoded proof bypass); see get_stack_status.
|
|
34
40
|
dark_bn254_gate: "GCptvBYF8S6eVYoh15B7WAESc54FUHCpN1Ui6aHeQYZd",
|
|
35
41
|
};
|
|
36
|
-
|
|
37
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
320
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
461
|
-
|
|
462
|
-
let
|
|
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
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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,92 +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 (
|
|
488
|
-
output.
|
|
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
|
-
//
|
|
495
|
-
//
|
|
496
|
-
|
|
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";
|
|
497
406
|
return {
|
|
498
407
|
programs: [
|
|
499
408
|
{
|
|
500
|
-
name: "receipt_anchor",
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
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",
|
|
505
415
|
},
|
|
506
416
|
{
|
|
507
|
-
name: "
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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",
|
|
512
423
|
},
|
|
513
424
|
{
|
|
514
425
|
name: "dark_secp256k1_auth",
|
|
426
|
+
cluster: "mainnet",
|
|
515
427
|
address: PROGRAMS.dark_secp256k1_auth,
|
|
516
|
-
status:
|
|
428
|
+
status: retired,
|
|
517
429
|
explorer_url: explorerAccount(PROGRAMS.dark_secp256k1_auth),
|
|
518
|
-
description: "ETH address binding —
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
name: "dark_bn254_gate",
|
|
522
|
-
address: PROGRAMS.dark_bn254_gate,
|
|
523
|
-
status: "stub — do not use",
|
|
524
|
-
explorer_url: explorerAccount(PROGRAMS.dark_bn254_gate),
|
|
525
|
-
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",
|
|
526
431
|
},
|
|
527
432
|
{
|
|
528
433
|
name: "dark_semaphore",
|
|
434
|
+
cluster: "mainnet",
|
|
529
435
|
address: PROGRAMS.dark_semaphore,
|
|
530
|
-
status:
|
|
436
|
+
status: retired,
|
|
531
437
|
explorer_url: explorerAccount(PROGRAMS.dark_semaphore),
|
|
532
438
|
description: "Semaphore-style anonymous group membership proofs",
|
|
533
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
|
+
},
|
|
534
447
|
{
|
|
535
448
|
name: "null_token",
|
|
449
|
+
cluster: "mainnet",
|
|
536
450
|
address: PROGRAMS.null_token,
|
|
537
|
-
status: "live",
|
|
451
|
+
status: "live (SPL token mint)",
|
|
538
452
|
explorer_url: explorerAccount(PROGRAMS.null_token),
|
|
539
|
-
description: "NULL SPL token
|
|
453
|
+
description: "NULL SPL token",
|
|
540
454
|
},
|
|
541
455
|
],
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
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.",
|
|
546
463
|
},
|
|
547
464
|
private_reputation_stack: {
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
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.",
|
|
552
472
|
},
|
|
553
473
|
packages: [
|
|
554
474
|
"@parad0x_labs/mcp-server",
|
|
555
|
-
"@parad0x_labs/
|
|
556
|
-
"@parad0x_labs/
|
|
557
|
-
"@parad0x_labs/
|
|
558
|
-
"@parad0x_labs/
|
|
559
|
-
"@parad0x_labs/
|
|
560
|
-
"@parad0x_labs/
|
|
561
|
-
"@parad0x_labs/task-marketplace-api",
|
|
562
|
-
"@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",
|
|
563
481
|
],
|
|
564
|
-
github: "https://github.com/
|
|
565
|
-
|
|
482
|
+
github: "https://github.com/Parad0x-Labs/openclaw-skills",
|
|
483
|
+
anchor_network: "none",
|
|
566
484
|
status_timestamp: new Date().toISOString(),
|
|
567
485
|
};
|
|
568
486
|
}
|
|
569
487
|
// ---------------------------------------------------------------------------
|
|
570
488
|
// MCP server setup
|
|
571
489
|
// ---------------------------------------------------------------------------
|
|
572
|
-
const server = new Server({ name: "parad0x-mcp", version: "0.
|
|
490
|
+
const server = new Server({ name: "parad0x-mcp", version: "0.2.0" }, {
|
|
573
491
|
capabilities: {
|
|
574
492
|
tools: {},
|
|
575
493
|
},
|
|
@@ -598,7 +516,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
598
516
|
},
|
|
599
517
|
{
|
|
600
518
|
name: "anchor_receipt",
|
|
601
|
-
description: "Anchor a 32-byte receipt hash
|
|
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.",
|
|
602
520
|
inputSchema: {
|
|
603
521
|
type: "object",
|
|
604
522
|
properties: {
|
|
@@ -606,21 +524,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
606
524
|
type: "string",
|
|
607
525
|
description: "64-character hex string representing the 32-byte SHA-256 receipt hash",
|
|
608
526
|
},
|
|
609
|
-
rpc_url: {
|
|
610
|
-
type: "string",
|
|
611
|
-
description: "Solana RPC URL (default: publicnode public mainnet RPC)",
|
|
612
|
-
},
|
|
613
|
-
confirm: {
|
|
614
|
-
type: "boolean",
|
|
615
|
-
description: "Must be true to actually submit. Without it the tool returns a preview only (no transaction sent).",
|
|
616
|
-
},
|
|
617
527
|
},
|
|
618
528
|
required: ["receipt_hash_hex"],
|
|
619
529
|
},
|
|
620
530
|
},
|
|
621
531
|
{
|
|
622
532
|
name: "lookup_passport",
|
|
623
|
-
description: "Look up a Dark Passport — check if an ETH address or Solana wallet has
|
|
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.",
|
|
624
534
|
inputSchema: {
|
|
625
535
|
type: "object",
|
|
626
536
|
properties: {
|
|
@@ -687,7 +597,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
687
597
|
},
|
|
688
598
|
{
|
|
689
599
|
name: "check_nullifier",
|
|
690
|
-
description: "Check whether a privacy-proof nullifier has already been spent
|
|
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.",
|
|
691
601
|
inputSchema: {
|
|
692
602
|
type: "object",
|
|
693
603
|
properties: {
|
|
@@ -695,17 +605,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
695
605
|
type: "string",
|
|
696
606
|
description: "The nullifier as a 64-char hex string OR a decimal BN254 field element (e.g. the reputation_nullifier public input).",
|
|
697
607
|
},
|
|
698
|
-
rpc_url: {
|
|
699
|
-
type: "string",
|
|
700
|
-
description: "Solana RPC URL (default: publicnode mainnet). Use a devnet RPC to check the devnet stack.",
|
|
701
|
-
},
|
|
702
608
|
},
|
|
703
609
|
required: ["nullifier"],
|
|
704
610
|
},
|
|
705
611
|
},
|
|
706
612
|
{
|
|
707
613
|
name: "get_stack_status",
|
|
708
|
-
description: "Get the current status of
|
|
614
|
+
description: "Get the current status of Parad0x Labs programs: retired mainnet programs (readable), unavailable services pending redeploy, and x402 settlement",
|
|
709
615
|
inputSchema: {
|
|
710
616
|
type: "object",
|
|
711
617
|
properties: {},
|
|
@@ -713,7 +619,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
713
619
|
},
|
|
714
620
|
{
|
|
715
621
|
name: "private_compute",
|
|
716
|
-
description: "Run a computation via an executor endpoint without exposing plaintext inputs. Agent encrypts locally, sends ciphertext, executor returns encrypted result + result hash.
|
|
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.",
|
|
717
623
|
inputSchema: {
|
|
718
624
|
type: "object",
|
|
719
625
|
properties: {
|
|
@@ -731,11 +637,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
731
637
|
},
|
|
732
638
|
anchor: {
|
|
733
639
|
type: "boolean",
|
|
734
|
-
description: "If true,
|
|
735
|
-
},
|
|
736
|
-
rpc_url: {
|
|
737
|
-
type: "string",
|
|
738
|
-
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.",
|
|
739
641
|
},
|
|
740
642
|
},
|
|
741
643
|
required: ["plaintext_input", "executor_endpoint"],
|
|
@@ -764,7 +666,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
764
666
|
},
|
|
765
667
|
{
|
|
766
668
|
name: "resolve_null",
|
|
767
|
-
description: "Resolve a .null name
|
|
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.",
|
|
768
670
|
inputSchema: {
|
|
769
671
|
type: "object",
|
|
770
672
|
properties: {
|
|
@@ -774,7 +676,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
774
676
|
},
|
|
775
677
|
rpc_url: {
|
|
776
678
|
type: "string",
|
|
777
|
-
description: "Solana mainnet RPC URL (default: publicnode mainnet). The registrar
|
|
679
|
+
description: "Solana mainnet RPC URL (default: publicnode mainnet). The legacy registrar's records are stored on mainnet.",
|
|
778
680
|
},
|
|
779
681
|
},
|
|
780
682
|
required: ["name"],
|
|
@@ -829,8 +731,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
829
731
|
break;
|
|
830
732
|
}
|
|
831
733
|
case "anchor_receipt": {
|
|
832
|
-
const { receipt_hash_hex
|
|
833
|
-
result =
|
|
734
|
+
const { receipt_hash_hex } = args;
|
|
735
|
+
result = anchorReceipt(String(receipt_hash_hex ?? ""));
|
|
834
736
|
break;
|
|
835
737
|
}
|
|
836
738
|
case "lookup_passport": {
|
|
@@ -848,8 +750,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
848
750
|
break;
|
|
849
751
|
}
|
|
850
752
|
case "check_nullifier": {
|
|
851
|
-
const { nullifier
|
|
852
|
-
result =
|
|
753
|
+
const { nullifier } = args;
|
|
754
|
+
result = checkNullifier(String(nullifier ?? ""));
|
|
853
755
|
break;
|
|
854
756
|
}
|
|
855
757
|
case "get_stack_status": {
|
|
@@ -857,10 +759,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
857
759
|
break;
|
|
858
760
|
}
|
|
859
761
|
case "private_compute": {
|
|
860
|
-
result = await privateCompute(
|
|
861
|
-
...args,
|
|
862
|
-
consented: sessionConsent.has("private_compute"),
|
|
863
|
-
});
|
|
762
|
+
result = await privateCompute(args);
|
|
864
763
|
break;
|
|
865
764
|
}
|
|
866
765
|
case "create_wallet": {
|
|
@@ -895,7 +794,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
895
794
|
funded: false,
|
|
896
795
|
next_steps: [
|
|
897
796
|
"Fund this address with a little SOL (for transaction fees) and USDC (to spend).",
|
|
898
|
-
"Point your signer at this file (e.g. SOLANA_KEYPAIR or your wallet config) to pay
|
|
797
|
+
"Point your signer at this file (e.g. SOLANA_KEYPAIR or your wallet config) to pay.",
|
|
899
798
|
"BACK IT UP — this file is the only copy of the key; losing it loses the funds.",
|
|
900
799
|
],
|
|
901
800
|
security: "The secret key was written only to the file above on this machine. It was NOT returned to the model.",
|
|
@@ -916,8 +815,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
916
815
|
note: r.found
|
|
917
816
|
? r.x402_endpoint
|
|
918
817
|
? "Resolved — payable by name via the published x402 endpoint."
|
|
919
|
-
: "Registered, but no x402 endpoint published
|
|
920
|
-
: "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",
|
|
921
821
|
};
|
|
922
822
|
break;
|
|
923
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).
|
|
5
|
-
*
|
|
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
|
-
/**
|
|
13
|
-
* seized pre-incident
|
|
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
|
|
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
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA
|
|
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).
|
|
5
|
-
*
|
|
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
|
-
/**
|
|
15
|
-
* seized pre-incident
|
|
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
|
|
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 {
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA
|
|
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
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
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
|
|
18
|
-
/**
|
|
19
|
-
export declare function
|
|
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;
|
package/dist/scope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
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
|
|
29
|
-
"
|
|
30
|
-
"
|
|
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
|
-
/**
|
|
33
|
-
export function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parad0x_labs/mcp-server",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for the Parad0x Labs stack
|
|
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
6
|
"bin": {
|
|
7
7
|
"parad0x-mcp": "./dist/index.js"
|
|
@@ -35,7 +35,11 @@
|
|
|
35
35
|
},
|
|
36
36
|
"repository": {
|
|
37
37
|
"type": "git",
|
|
38
|
-
"url": "https://github.com/Parad0x-Labs/openclaw-skills",
|
|
38
|
+
"url": "https://github.com/Parad0x-Labs/openclaw-skills.git",
|
|
39
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"
|
|
40
44
|
}
|
|
41
45
|
}
|