@odatano/nightgate-mcp 0.2.0 → 0.3.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,7 +2,7 @@
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@odatano/nightgate-mcp)](https://www.npmjs.com/package/@odatano/nightgate-mcp)
4
4
  [![npm downloads](https://img.shields.io/npm/dt/@odatano/nightgate-mcp?logo=npm&label=downloads&color=blue)](https://www.npmjs.com/package/@odatano/nightgate-mcp)
5
- [![NIGHTGATE](https://img.shields.io/badge/NIGHTGATE-%3E%3D%200.15.0-4b0082)](https://www.npmjs.com/package/@odatano/nightgate)
5
+ [![NIGHTGATE](https://img.shields.io/badge/NIGHTGATE-%3E%3D%200.16.0-4b0082)](https://www.npmjs.com/package/@odatano/nightgate)
6
6
  [![MCP](https://img.shields.io/badge/MCP-server-2ea44f)](https://modelcontextprotocol.io/)
7
7
  [![Node](https://img.shields.io/badge/node-%3E%3D%2020-brightgreen?logo=node.js)](https://nodejs.org/)
8
8
  [![License](https://img.shields.io/badge/license-Apache--2.0-yellow)](LICENSE)
@@ -16,8 +16,24 @@ Wallet lifecycle (connect, send, deploy) is deliberately not exposed.
16
16
  ## Requirements
17
17
 
18
18
  - Node.js >= 20
19
- - A running NIGHTGATE instance (>= 0.15.0 for the full tool set; 0.14.0
20
- works without the equality/membership tools)
19
+ - A running NIGHTGATE instance, see the compatibility matrix below
20
+
21
+ ## Compatibility
22
+
23
+ Pick the MCP line that matches your NIGHTGATE server. The pairing is not
24
+ cosmetic: from NIGHTGATE 0.16.0 on, content-tree leaves are SALTED, so every
25
+ field proof must carry its slot salt. An older MCP omits it and the server
26
+ rejects the call with 400.
27
+
28
+ | MCP | NIGHTGATE | Notes |
29
+ |---|---|---|
30
+ | **0.3.x** | **>= 0.16.0** (0.16.2 recommended) | Current. Adds the cross-root proofs, guarded anchoring and schema ids, and sends the per-field salts the salted leaves require. Does NOT work against 0.15.x and older, which know no salt parameters. |
31
+ | 0.2.x | 0.15.x | Bytes equality and set membership on unsalted leaves. Against 0.16.0 and newer every field proof fails with "fieldSalt is required". |
32
+ | 0.1.x | 0.14.x | Anchoring, numeric field predicates, disclosure, agent provenance. |
33
+
34
+ The verification tools are the exception: they only read live contract state
35
+ and keep working across the whole range, they simply cannot express the
36
+ newer claim kinds on an older server.
21
37
 
22
38
  ## Getting a NIGHTGATE instance
23
39
 
@@ -100,17 +116,21 @@ Or in a project `.mcp.json`:
100
116
  | Tool | What it does |
101
117
  |---|---|
102
118
  | `verify_attestation` | Live-state check that a payload hash is attested in an AttestationVault (crawler-free, optional content-root check, optional cross-network read) |
103
- | `verify_predicate` | Live-state check that a ZK claim was recorded true on-chain, id-free: numeric predicates, `bytesEquality` (+ `expectedDigest`) and `setMembership` (+ `setRoot`) |
119
+ | `verify_predicate` | Live-state check that a ZK claim was recorded true on-chain, id-free: numeric predicates, `bytesEquality` (+ `expectedDigest`), `setMembership` (+ `setRoot`) and the cross-root kinds `documentIntegrity` / `documentDiff` (+ `payloadHashB`) |
104
120
  | `verify_predicate_attestation` | Verify a server-issued predicate attestation by its row id |
105
121
  | `verify_document` | Verify an anchored document by document id + sha256 |
106
- | `prepare_document_proof` | Canonicalize a document into payloadHash + Merkle contentRoot + per-field proof inputs, numeric and `kind: "bytes"` string fields (synchronous, NIGHTGATE >= 0.14.0; bytes kind >= 0.15.0) |
107
- | `prepare_membership_set` | Build the canonical allow-list set tree: setRoot for verifiers, inclusion path for provers (synchronous, NIGHTGATE >= 0.15.0) |
122
+ | `prepare_document_proof` | Canonicalize a document into payloadHash + salted Merkle contentRoot + schemaId + per-field proof inputs (incl. each slot salt) + the full `opening` the cross-root proofs need (synchronous) |
123
+ | `prepare_membership_set` | Build the canonical allow-list set tree: setRoot for verifiers, inclusion path for provers (synchronous) |
108
124
  | `attest_agent_output` | Anchor agent-output provenance (canonical envelope, third-party verifiable; async job, NIGHTGATE >= 0.14.0) |
109
- | `anchor_document` | Anchor a document content hash on-chain (async job) |
125
+ | `anchor_document` | Anchor a document content hash on-chain; with a `nonce` it is the guarded reveal that reclaims a front-run hash (async job) |
110
126
  | `prove_field_predicate` | ZK proof that a hidden document field satisfies a threshold, without revealing it (async job) |
111
- | `prove_field_equality` | ZK proof that a string field carries exactly the value behind a public digest (async job, NIGHTGATE >= 0.15.0) |
112
- | `prove_field_membership` | ZK proof that a hidden string field is one of a public allow-list, without revealing which (async job, NIGHTGATE >= 0.15.0) |
113
- | `prove_field_predicates_batch` | Up to 8 field claims on one document in ONE transaction, any mix of numeric / equality / membership (async job) |
127
+ | `prove_field_equality` | ZK proof that a string field carries exactly the value behind a public digest (async job) |
128
+ | `prove_field_membership` | ZK proof that a hidden string field is one of a public allow-list, without revealing which (async job) |
129
+ | `prove_field_predicates_batch` | Up to 8 claims on one document in ONE transaction, any mix of numeric / equality / membership / cross-root kinds (async job) |
130
+ | `prove_document_integrity` | ZK proof that a second document differs from the anchored one ONLY in a public slot mask, values hidden (async job) |
131
+ | `prove_document_diff` | ZK proof that two anchored documents differ at >= k of 16 slots, without revealing which (async job) |
132
+ | `prepare_anchor_commitment` | Compute the commitment + secret nonce for guarded anchoring (synchronous) |
133
+ | `commit_document_anchor` | Record that commitment on-chain, so a mempool observer cannot front-run the later reveal (async job) |
114
134
  | `grant_disclosure` / `revoke_disclosure` | Attester-only on-chain disclosure ACL (async jobs) |
115
135
  | `get_job_status` | Poll an async NIGHTGATE job until succeeded/failed |
116
136
 
package/dist/tools.js CHANGED
@@ -16,11 +16,36 @@ const setSiblings = z.array(hex64('setSibling')).length(6)
16
16
  const setDirs = z.array(z.boolean()).length(6)
17
17
  .describe('Exactly 6 booleans; true means the current node is the LEFT child');
18
18
  const POLL_HINT = 'Async: returns { jobId, status } immediately; poll get_job_status until succeeded or failed.';
19
- /** Batch claim shapes (NIGHTGATE >= 0.15.0 allows mixing the three kinds). */
19
+ /**
20
+ * Per-slot salt of a proof field. Content-tree leaves are SALTED, so every
21
+ * single-field proof needs the slot's salt from prepare_document_proof
22
+ * (field `salt`; batch claims carry it as `salt` too). Witness material.
23
+ */
24
+ const fieldSalt = hex64('fieldSalt')
25
+ .describe('Per-slot salt of this field, from prepare_document_proof (fields[].salt). Witness material, never publish');
26
+ /** The shared 16-slot schema descriptor list from prepare_document_proof. */
27
+ const schemaSlots = z.array(z.object({
28
+ fieldKey: hex64('schema.fieldKey'),
29
+ kind: z.union([z.literal(0), z.literal(1), z.literal(2)])
30
+ .describe('0 = uint, 1 = bytes, 2 = padding'),
31
+ scale: z.union([z.string(), z.number()]).describe("Off-chain scaling of uint slots, '0' otherwise"),
32
+ })).length(16)
33
+ .describe('The 16-entry schema descriptor list returned by prepare_document_proof as `schema`. Both documents of a comparison MUST use the same one');
34
+ /** One document's full opening (salt seed + 16 slot values). */
35
+ const documentOpening = z.object({
36
+ saltSeed: hex64('saltSeed'),
37
+ slots: z.array(z.object({
38
+ present: z.boolean(),
39
+ value: z.string().optional().describe('uint slots: the scaled integer'),
40
+ valueDigest: hex64('slot.valueDigest').optional().describe('bytes slots: the value digest'),
41
+ })).length(16),
42
+ }).describe('A document\'s complete opening from prepare_document_proof (`opening`): salt seed plus all 16 slot values. WITNESS material for the whole document, never publish');
43
+ /** Batch claim shapes; claims may mix all kinds in one transaction. */
20
44
  const numericClaim = z.object({
21
45
  predicate: z.enum(['lessOrEqual', 'greaterOrEqual']),
22
46
  fieldKey: hex64('fieldKey'),
23
47
  value: z.string().regex(/^\d+$/, 'value must be a non-negative integer (decimal string)'),
48
+ salt: fieldSalt,
24
49
  siblings: merkleSiblings,
25
50
  dirs: merkleDirs,
26
51
  threshold: scaledInt('threshold'),
@@ -33,6 +58,7 @@ const equalityClaim = z.object({
33
58
  .describe('Raw expected string; the server digests the EXACT string'),
34
59
  expectedDigest: hex64('expectedDigest').optional()
35
60
  .describe('blake2b-256 of the exact expected string (64 hex)'),
61
+ salt: fieldSalt,
36
62
  siblings: merkleSiblings,
37
63
  dirs: merkleDirs,
38
64
  }).superRefine((c, ctx) => {
@@ -50,6 +76,7 @@ const membershipClaim = z.object({
50
76
  setRoot: hex64('setRoot').optional().describe('Precomputed canonical set root (64 hex)'),
51
77
  setSiblings: setSiblings.optional(),
52
78
  setDirs: setDirs.optional(),
79
+ salt: fieldSalt,
53
80
  siblings: merkleSiblings,
54
81
  dirs: merkleDirs,
55
82
  }).superRefine((c, ctx) => {
@@ -65,6 +92,24 @@ const membershipClaim = z.object({
65
92
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'allowedValues or setRoot + setSiblings + setDirs is required' });
66
93
  }
67
94
  });
95
+ /** Cross-root claim shapes: they relate the batch payload hash (document A) to a second document. */
96
+ const documentIntegrityClaim = z.object({
97
+ predicate: z.literal('documentIntegrity'),
98
+ payloadHashB: hex64('payloadHashB').describe('The second document (A is the batch payloadHash)'),
99
+ allowedMask: z.number().int().min(0).max(0xfffe)
100
+ .describe('Packed 16-bit mask, bit i = slot i MAY differ. Must leave at least one real schema slot constrained, otherwise the claim is vacuous and rejected'),
101
+ schema: schemaSlots,
102
+ openingA: documentOpening,
103
+ openingB: documentOpening,
104
+ });
105
+ const documentDiffClaim = z.object({
106
+ predicate: z.literal('documentDiff'),
107
+ payloadHashB: hex64('payloadHashB').describe('The second document (A is the batch payloadHash)'),
108
+ k: z.number().int().min(1).max(16).describe('Minimum number of differing slots to prove'),
109
+ schema: schemaSlots,
110
+ openingA: documentOpening,
111
+ openingB: documentOpening,
112
+ });
68
113
  /**
69
114
  * Phase A tool set: crawler-free verification, job polling, and the
70
115
  * curated write path (anchoring, field predicates, disclosure).
@@ -80,6 +125,8 @@ export function registerTools(server, client) {
80
125
  contractAddress: z.string().min(1).describe('AttestationVault contract address'),
81
126
  payloadHash: hex64('payloadHash').describe('The attested payload hash (sha256, 64 hex)'),
82
127
  contentRoot: hex64('contentRoot').optional().describe('Optional anchored content root to check (64 hex)'),
128
+ schemaId: hex64('schemaId').optional()
129
+ .describe('Optional anchored schema id to check; the result reports schemaOk, so an examiner can pin the canonical field list'),
83
130
  network: z.enum(['preview', 'preprod', 'mainnet']).optional()
84
131
  .describe('Read from another network public indexer instead of the configured one'),
85
132
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
@@ -88,6 +135,7 @@ export function registerTools(server, client) {
88
135
  contractAddress: args.contractAddress,
89
136
  payloadHash: args.payloadHash,
90
137
  contentRoot: args.contentRoot,
138
+ schemaId: args.schemaId,
91
139
  compiledArtifactRef: args.compiledArtifactRef,
92
140
  network: args.network,
93
141
  })));
@@ -101,16 +149,22 @@ export function registerTools(server, client) {
101
149
  inputSchema: {
102
150
  contractAddress: z.string().min(1).describe('AttestationVault contract address'),
103
151
  payloadHash: hex64('payloadHash').describe('The attestation payload hash (64 hex)'),
104
- predicate: z.enum(['lessOrEqual', 'greaterOrEqual', 'bytesEquality', 'setMembership'])
105
- .describe('Claim kind'),
152
+ predicate: z.enum(['lessOrEqual', 'greaterOrEqual', 'bytesEquality', 'setMembership',
153
+ 'documentIntegrity', 'documentDiff']).describe('Claim kind'),
106
154
  threshold: scaledInt('threshold').optional()
107
155
  .describe('Numeric predicates only: scaled circuit integer threshold'),
108
156
  fieldKey: hex64('fieldKey').optional()
109
- .describe('Field key (64 hex); optional for numeric, required for the bytes kinds'),
157
+ .describe('Field key (64 hex); required for the numeric and bytes kinds, unused for the cross-root kinds'),
110
158
  expectedDigest: hex64('expectedDigest').optional()
111
159
  .describe("bytesEquality only: the public expected value digest"),
112
160
  setRoot: hex64('setRoot').optional()
113
161
  .describe("setMembership only: the canonical allow-list set root"),
162
+ payloadHashB: hex64('payloadHashB').optional()
163
+ .describe('Cross-root kinds: the second document. (A, B) order is part of the claim, query it as proven'),
164
+ allowedMask: z.number().int().min(0).max(0xffff).optional()
165
+ .describe('documentIntegrity only: the packed 16-bit mask that was proven'),
166
+ k: z.number().int().min(1).max(16).optional()
167
+ .describe('documentDiff only: the k that was proven'),
114
168
  network: z.enum(['preview', 'preprod', 'mainnet']).optional()
115
169
  .describe('Read from another network public indexer instead of the configured one'),
116
170
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
@@ -125,6 +179,12 @@ export function registerTools(server, client) {
125
179
  if (args.predicate === 'setMembership' && (!args.fieldKey || !args.setRoot)) {
126
180
  throw new Error("predicate 'setMembership' requires fieldKey and setRoot");
127
181
  }
182
+ if (args.predicate === 'documentIntegrity' && (!args.payloadHashB || args.allowedMask === undefined)) {
183
+ throw new Error("predicate 'documentIntegrity' requires payloadHashB and allowedMask");
184
+ }
185
+ if (args.predicate === 'documentDiff' && (!args.payloadHashB || args.k === undefined)) {
186
+ throw new Error("predicate 'documentDiff' requires payloadHashB and k");
187
+ }
128
188
  return client.callFunction('verifyPredicateState', {
129
189
  contractAddress: args.contractAddress,
130
190
  payloadHash: args.payloadHash,
@@ -133,6 +193,9 @@ export function registerTools(server, client) {
133
193
  threshold: args.threshold === undefined ? undefined : int64(args.threshold),
134
194
  expectedDigest: args.expectedDigest,
135
195
  setRoot: args.setRoot,
196
+ payloadHashB: args.payloadHashB,
197
+ allowedMask: args.allowedMask,
198
+ k: args.k,
136
199
  compiledArtifactRef: args.compiledArtifactRef,
137
200
  network: args.network,
138
201
  });
@@ -168,12 +231,17 @@ export function registerTools(server, client) {
168
231
  'payloadHash (what anchor_document anchors), a Merkle contentRoot over an ORDERED list of ' +
169
232
  'up to 16 proof fields, and per-field inclusion paths ready for prove_field_predicate / ' +
170
233
  'prove_field_equality / prove_field_membership. kind "uint" (default) scales a numeric ' +
171
- 'value; kind "bytes" (NIGHTGATE >= 0.15.0) enters a STRING field as the digest of the ' +
234
+ 'value; kind "bytes" (NIGHTGATE >= 0.16.0) enters a STRING field as the digest of the ' +
172
235
  'exact string, feeding the equality/membership proofs. Keep the field order stable across ' +
173
236
  'anchor and proof: it is part of the tree identity. Compute-only and synchronous, nothing ' +
174
- 'is stored server-side. The returned fields carry witness material (scaled values / value ' +
175
- 'digests): treat as sensitive. Store canonicalDocument at your storageRef; re-serializing ' +
176
- 'with different key order will not re-hash equal.',
237
+ 'is stored server-side. Leaves are SALTED: the response carries a per-field `salt` (feed it ' +
238
+ 'back as fieldSalt / claim salt), the full `opening` (salt seed + all 16 slots, needed for ' +
239
+ 'the cross-root proofs) and `schemaId` (anchor it alongside the root). STORE the opening ' +
240
+ 'with the document: losing the salt seed makes the anchored root unprovable, publishing it ' +
241
+ 'makes leaf hashes guessable. Pass saltSeed to reproduce an EXISTING anchored root ' +
242
+ 'byte-for-byte; omit it for a fresh document. The returned fields carry witness material ' +
243
+ '(scaled values / digests / salts): treat as sensitive. Store canonicalDocument at your ' +
244
+ 'storageRef; re-serializing with different key order will not re-hash equal.',
177
245
  inputSchema: {
178
246
  document: z.record(z.unknown())
179
247
  .describe('The full document as a JSON object; all of it goes into payloadHash'),
@@ -185,11 +253,14 @@ export function registerTools(server, client) {
185
253
  scale: z.number().int().min(1).max(1_000_000_000).optional()
186
254
  .describe("Value scale (default 1000: milli-units); only valid for kind 'uint'"),
187
255
  })).min(1).max(16).describe('ORDERED list of fields to make provable (leaf index = position)'),
256
+ saltSeed: hex64('saltSeed').optional()
257
+ .describe('Reuse a stored salt seed to reproduce an already-anchored root; omit for a fresh document (random seed)'),
188
258
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
189
259
  },
190
260
  }, run(async (args) => client.callAction('prepareDocumentProof', {
191
261
  documentJson: JSON.stringify(args.document),
192
262
  proofFieldsJson: JSON.stringify(args.proofFields),
263
+ saltSeed: args.saltSeed,
193
264
  compiledArtifactRef: args.compiledArtifactRef,
194
265
  })));
195
266
  server.registerTool('attest_agent_output', {
@@ -228,7 +299,10 @@ export function registerTools(server, client) {
228
299
  server.registerTool('anchor_document', {
229
300
  description: 'Anchor a document content hash on the Midnight chain via the AttestationVault attest ' +
230
301
  'circuit. Commits only the sha256 + public metadata; you are responsible for storing the ' +
231
- 'actual bytes at storageRef. Attestation is first-come-first-served per hash. ' + POLL_HINT +
302
+ 'actual bytes at storageRef. Plain attestation is first-come-first-served per hash, so a ' +
303
+ 'mempool observer can front-run a visible hash: for a hash that is secret until anchoring, ' +
304
+ 'use prepare_anchor_commitment + commit_document_anchor first and pass the nonce here, ' +
305
+ 'which turns this call into the guarded REVEAL and reclaims a front-run hash. ' + POLL_HINT +
232
306
  ' Also returns documentId for verify_document.',
233
307
  inputSchema: {
234
308
  sha256: hex64('sha256').describe('sha256 of the document content (64 hex), becomes the on-chain payload hash'),
@@ -238,6 +312,8 @@ export function registerTools(server, client) {
238
312
  contentType: z.string().optional().describe('MIME type, informational'),
239
313
  size: z.number().int().nonnegative().optional().describe('Content size in bytes, informational'),
240
314
  metadata: z.record(z.unknown()).optional().describe('Public metadata object; its hash is anchored alongside'),
315
+ nonce: hex64('nonce').optional()
316
+ .describe('Guarded REVEAL: the secret nonce from prepare_anchor_commitment, after commit_document_anchor finalized. Same sha256 and metadata as the commitment'),
241
317
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
242
318
  idempotencyKey: z.string().optional().describe('Dedupes retries of the same anchor request'),
243
319
  sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
@@ -248,6 +324,7 @@ export function registerTools(server, client) {
248
324
  size: args.size,
249
325
  storageRef: args.storageRef,
250
326
  metadata: args.metadata === undefined ? undefined : JSON.stringify(args.metadata),
327
+ nonce: args.nonce,
251
328
  sessionId: args.sessionId,
252
329
  contractAddress: args.contractAddress,
253
330
  compiledArtifactRef: args.compiledArtifactRef,
@@ -266,6 +343,7 @@ export function registerTools(server, client) {
266
343
  fieldKey: hex64('fieldKey').describe('Canonical field id (64 hex, public)'),
267
344
  value: z.string().regex(/^\d+$/, 'value must be a non-negative integer (decimal string)')
268
345
  .describe('Scaled integer field value (witness only, never persisted)'),
346
+ fieldSalt,
269
347
  siblings: merkleSiblings,
270
348
  dirs: merkleDirs,
271
349
  predicate: z.enum(['lessOrEqual', 'greaterOrEqual']).describe('Predicate operator'),
@@ -273,6 +351,7 @@ export function registerTools(server, client) {
273
351
  sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
274
352
  contractAddress: z.string().min(1).describe('AttestationVault deployment'),
275
353
  contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
354
+ schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
276
355
  unit: z.string().optional().describe('Informational unit, e.g. kWh'),
277
356
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
278
357
  idempotencyKey: z.string().optional().describe('Dedupes retries'),
@@ -282,7 +361,9 @@ export function registerTools(server, client) {
282
361
  payloadHash: args.payloadHash,
283
362
  fieldKey: args.fieldKey,
284
363
  value: args.value,
364
+ fieldSalt: args.fieldSalt,
285
365
  contentRoot: args.contentRoot,
366
+ schemaId: args.schemaId,
286
367
  siblingsJson: JSON.stringify(args.siblings),
287
368
  dirsJson: JSON.stringify(args.dirs),
288
369
  predicate: args.predicate,
@@ -296,7 +377,7 @@ export function registerTools(server, client) {
296
377
  })));
297
378
  server.registerTool('prepare_membership_set', {
298
379
  description: 'Build the canonical depth-6 membership-set tree over a public allow-list (NIGHTGATE ' +
299
- '>= 0.15.0). Deterministic rule (digest each exact string, dedupe, sort ascending, pad by ' +
380
+ '>= 0.16.0). Deterministic rule (digest each exact string, dedupe, sort ascending, pad by ' +
300
381
  'repeating the last member digest), so ANYONE recomputes the same setRoot from the ' +
301
382
  'published list alone: use the root to verify_predicate a setMembership claim. With ' +
302
383
  'value/valueDigest it additionally returns the member inclusion path (witness material, ' +
@@ -322,7 +403,7 @@ export function registerTools(server, client) {
322
403
  });
323
404
  }));
324
405
  server.registerTool('prove_field_equality', {
325
- description: 'Issue a ZK bytes-equality proof (NIGHTGATE >= 0.15.0): the anchored document field ' +
406
+ description: 'Issue a ZK bytes-equality proof (NIGHTGATE >= 0.16.0): the anchored document field ' +
326
407
  'carries EXACTLY the value behind the public expectedDigest. The digest IS the statement, ' +
327
408
  'so this is an authenticity/binding proof, not confidentiality (a low-entropy value\'s ' +
328
409
  'digest is dictionary-guessable). The field must be a kind:"bytes" leaf from ' +
@@ -335,11 +416,13 @@ export function registerTools(server, client) {
335
416
  .describe('Raw expected string (the server digests the EXACT string; pass this OR expectedDigest)'),
336
417
  expectedDigest: hex64('expectedDigest').optional()
337
418
  .describe('blake2b-256 of the exact expected string (64 hex)'),
419
+ fieldSalt,
338
420
  siblings: merkleSiblings,
339
421
  dirs: merkleDirs,
340
422
  sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
341
423
  contractAddress: z.string().min(1).describe('AttestationVault deployment'),
342
424
  contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
425
+ schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
343
426
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
344
427
  idempotencyKey: z.string().optional().describe('Dedupes retries'),
345
428
  sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
@@ -353,7 +436,9 @@ export function registerTools(server, client) {
353
436
  fieldKey: args.fieldKey,
354
437
  expectedValue: args.expectedValue,
355
438
  expectedDigest: args.expectedDigest,
439
+ fieldSalt: args.fieldSalt,
356
440
  contentRoot: args.contentRoot,
441
+ schemaId: args.schemaId,
357
442
  siblingsJson: JSON.stringify(args.siblings),
358
443
  dirsJson: JSON.stringify(args.dirs),
359
444
  sessionId: args.sessionId,
@@ -364,7 +449,7 @@ export function registerTools(server, client) {
364
449
  });
365
450
  }));
366
451
  server.registerTool('prove_field_membership', {
367
- description: 'Issue a ZK set-membership proof (NIGHTGATE >= 0.15.0): the anchored document field\'s ' +
452
+ description: 'Issue a ZK set-membership proof (NIGHTGATE >= 0.16.0): the anchored document field\'s ' +
368
453
  'HIDDEN value is one of a public allow-list, without revealing which one. Supply the ' +
369
454
  'allow-list directly (allowedValues: the server builds the canonical set root + path and ' +
370
455
  'rejects a non-member with 400 BEFORE any proving) or a precomputed setRoot + setSiblings ' +
@@ -383,11 +468,13 @@ export function registerTools(server, client) {
383
468
  setRoot: hex64('setRoot').optional().describe('Precomputed canonical set root (64 hex)'),
384
469
  setSiblings: setSiblings.optional(),
385
470
  setDirs: setDirs.optional(),
471
+ fieldSalt,
386
472
  siblings: merkleSiblings,
387
473
  dirs: merkleDirs,
388
474
  sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
389
475
  contractAddress: z.string().min(1).describe('AttestationVault deployment'),
390
476
  contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root (64 hex) to anchor first'),
477
+ schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
391
478
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
392
479
  idempotencyKey: z.string().optional().describe('Dedupes retries'),
393
480
  sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
@@ -412,7 +499,9 @@ export function registerTools(server, client) {
412
499
  setRoot: args.setRoot,
413
500
  setSiblingsJson: args.setSiblings === undefined ? undefined : JSON.stringify(args.setSiblings),
414
501
  setDirsJson: args.setDirs === undefined ? undefined : JSON.stringify(args.setDirs),
502
+ fieldSalt: args.fieldSalt,
415
503
  contentRoot: args.contentRoot,
504
+ schemaId: args.schemaId,
416
505
  siblingsJson: JSON.stringify(args.siblings),
417
506
  dirsJson: JSON.stringify(args.dirs),
418
507
  sessionId: args.sessionId,
@@ -425,20 +514,21 @@ export function registerTools(server, client) {
425
514
  server.registerTool('prove_field_predicates_batch', {
426
515
  description: 'Batch variant of the field proof tools: prove up to 8 field-bound claims on ONE anchored ' +
427
516
  'document in ONE transaction (7 if contentRoot is supplied, since the anchor occupies one ' +
428
- 'call slot). Claims may MIX the three kinds (NIGHTGATE >= 0.15.0), discriminated by ' +
517
+ 'call slot). Claims may MIX the three kinds (NIGHTGATE >= 0.16.0), discriminated by ' +
429
518
  'predicate: numeric (lessOrEqual/greaterOrEqual), bytesEquality, setMembership. Duplicate ' +
430
519
  'claim tuples are dropped server-side. One false claim aborts the whole batch at local ' +
431
520
  'proving time with zero on-chain effect. After submission the chain can finalize a ' +
432
521
  'PARTIAL_SUCCESS subset; verify per claim via verify_predicate_attestation instead of ' +
433
522
  'assuming all-or-nothing. ' + POLL_HINT,
434
523
  inputSchema: {
435
- payloadHash: hex64('payloadHash').describe('Shared attestation payload hash (64 hex)'),
436
- claims: z.array(z.union([numericClaim, equalityClaim, membershipClaim]))
524
+ payloadHash: hex64('payloadHash').describe('Shared attestation payload hash; also document A of any cross-root claim (64 hex)'),
525
+ claims: z.array(z.union([numericClaim, equalityClaim, membershipClaim, documentIntegrityClaim, documentDiffClaim]))
437
526
  .min(1).max(8)
438
- .describe('1-8 claims on the same payload hash; any mix of numeric, bytesEquality and setMembership'),
527
+ .describe('1-8 claims on the same payload hash; any mix of numeric, bytesEquality, setMembership, documentIntegrity and documentDiff'),
439
528
  sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
440
529
  contractAddress: z.string().min(1).describe('AttestationVault deployment'),
441
530
  contentRoot: hex64('contentRoot').optional().describe('Optional Merkle root anchored as first call of the same batch'),
531
+ schemaId: hex64('schemaId').optional().describe('Schema id of the field list, required whenever contentRoot is supplied'),
442
532
  compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
443
533
  idempotencyKey: z.string().optional().describe('Dedupes retries'),
444
534
  sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
@@ -450,6 +540,7 @@ export function registerTools(server, client) {
450
540
  return client.callAction('issueFieldPredicateAttestationBatch', {
451
541
  payloadHash: args.payloadHash,
452
542
  contentRoot: args.contentRoot,
543
+ schemaId: args.schemaId,
453
544
  claimsJson: JSON.stringify(args.claims.map((c) => 'threshold' in c ? { ...c, threshold: String(c.threshold) } : c)),
454
545
  sessionId: args.sessionId,
455
546
  contractAddress: args.contractAddress,
@@ -458,6 +549,126 @@ export function registerTools(server, client) {
458
549
  sponsorSessionId: args.sponsorSessionId,
459
550
  });
460
551
  }));
552
+ server.registerTool('prove_document_integrity', {
553
+ description: 'Prove that document B differs from anchored document A ONLY in the slots flagged by a ' +
554
+ 'public 16-bit mask, values hidden: the version-integrity claim ("v2 changed nothing ' +
555
+ 'outside the allowed fields"). Both documents must be anchored, prepared with the SAME ' +
556
+ 'ordered field list (identical schemaId) and you need BOTH full openings, which is why ' +
557
+ 'this only works for a party that holds both documents. A mask that frees every real slot ' +
558
+ 'is vacuous and rejected; a slot that changed, appeared or disappeared outside the mask ' +
559
+ 'fails at local proving time with zero on-chain effect. ' + POLL_HINT,
560
+ inputSchema: {
561
+ payloadHashA: hex64('payloadHashA').describe('Anchored document A (64 hex)'),
562
+ payloadHashB: hex64('payloadHashB').describe('Anchored document B; must differ from A'),
563
+ allowedMask: z.number().int().min(0).max(0xfffe)
564
+ .describe('Packed 16-bit mask, bit i = slot i MAY differ. At least one real schema slot must stay constrained'),
565
+ schema: schemaSlots,
566
+ openingA: documentOpening,
567
+ openingB: documentOpening,
568
+ sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
569
+ contractAddress: z.string().min(1).describe('AttestationVault deployment'),
570
+ contentRootA: hex64('contentRootA').optional().describe('Optional: anchor A\'s root in the same flow'),
571
+ contentRootB: hex64('contentRootB').optional().describe('Optional: anchor B\'s root in the same flow'),
572
+ schemaId: hex64('schemaId').optional().describe('Shared schema id, required whenever a contentRoot is supplied'),
573
+ compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
574
+ idempotencyKey: z.string().optional().describe('Dedupes retries'),
575
+ sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
576
+ },
577
+ }, run(async (args) => client.callAction('issueDocumentIntegrityAttestation', {
578
+ payloadHashA: args.payloadHashA,
579
+ payloadHashB: args.payloadHashB,
580
+ allowedMask: args.allowedMask,
581
+ schemaJson: JSON.stringify(args.schema),
582
+ openingAJson: JSON.stringify(args.openingA),
583
+ openingBJson: JSON.stringify(args.openingB),
584
+ contentRootA: args.contentRootA,
585
+ contentRootB: args.contentRootB,
586
+ schemaId: args.schemaId,
587
+ sessionId: args.sessionId,
588
+ contractAddress: args.contractAddress,
589
+ compiledArtifactRef: args.compiledArtifactRef,
590
+ idempotencyKey: args.idempotencyKey,
591
+ sponsorSessionId: args.sponsorSessionId,
592
+ })));
593
+ server.registerTool('prove_document_diff', {
594
+ description: 'Prove that at least k of the 16 aligned slots differ between two anchored documents, ' +
595
+ 'without revealing which slots or what values: the distinctness claim (k=1 is "provably ' +
596
+ 'not the same document"). Same requirements as prove_document_integrity: identical field ' +
597
+ 'list, both openings in hand. A difference is a value change or a field that appeared or ' +
598
+ 'disappeared; both-empty slots compare equal and padding never counts. k above the real ' +
599
+ 'count fails at local proving time with zero on-chain effect. ' + POLL_HINT,
600
+ inputSchema: {
601
+ payloadHashA: hex64('payloadHashA').describe('Anchored document A (64 hex)'),
602
+ payloadHashB: hex64('payloadHashB').describe('Anchored document B; must differ from A'),
603
+ k: z.number().int().min(1).max(16).describe('Minimum number of differing slots to prove'),
604
+ schema: schemaSlots,
605
+ openingA: documentOpening,
606
+ openingB: documentOpening,
607
+ sessionId: z.string().uuid().describe('Wallet session id that signs and submits'),
608
+ contractAddress: z.string().min(1).describe('AttestationVault deployment'),
609
+ contentRootA: hex64('contentRootA').optional().describe('Optional: anchor A\'s root in the same flow'),
610
+ contentRootB: hex64('contentRootB').optional().describe('Optional: anchor B\'s root in the same flow'),
611
+ schemaId: hex64('schemaId').optional().describe('Shared schema id, required whenever a contentRoot is supplied'),
612
+ compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
613
+ idempotencyKey: z.string().optional().describe('Dedupes retries'),
614
+ sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
615
+ },
616
+ }, run(async (args) => client.callAction('issueDocumentDiffAttestation', {
617
+ payloadHashA: args.payloadHashA,
618
+ payloadHashB: args.payloadHashB,
619
+ k: args.k,
620
+ schemaJson: JSON.stringify(args.schema),
621
+ openingAJson: JSON.stringify(args.openingA),
622
+ openingBJson: JSON.stringify(args.openingB),
623
+ contentRootA: args.contentRootA,
624
+ contentRootB: args.contentRootB,
625
+ schemaId: args.schemaId,
626
+ sessionId: args.sessionId,
627
+ contractAddress: args.contractAddress,
628
+ compiledArtifactRef: args.compiledArtifactRef,
629
+ idempotencyKey: args.idempotencyKey,
630
+ sponsorSessionId: args.sponsorSessionId,
631
+ })));
632
+ server.registerTool('prepare_anchor_commitment', {
633
+ description: 'Phase 0 of guarded anchoring: compute the opaque commitment for commit_document_anchor ' +
634
+ 'plus the nonce the later reveal needs. Compute-only and synchronous. STORE the nonce and ' +
635
+ 'keep it SECRET until the reveal: it is exactly what a mempool front-runner cannot forge. ' +
636
+ 'Pass the same metadata here and to anchor_document. Use this when the payload hash is ' +
637
+ 'secret until anchoring; for publicly known identifiers, registrar pre-assignment is the ' +
638
+ 'better protection.',
639
+ inputSchema: {
640
+ sha256: hex64('sha256').describe('sha256 of the document content (64 hex)'),
641
+ metadata: z.record(z.unknown()).optional()
642
+ .describe('Public metadata object; MUST equal the metadata passed to anchor_document later'),
643
+ nonce: hex64('nonce').optional().describe('Reuse a specific nonce; omit for a fresh random one'),
644
+ },
645
+ }, run(async (args) => client.callAction('prepareAnchorCommitment', {
646
+ sha256: args.sha256,
647
+ metadata: args.metadata === undefined ? undefined : JSON.stringify(args.metadata),
648
+ nonce: args.nonce,
649
+ })));
650
+ server.registerTool('commit_document_anchor', {
651
+ description: 'Phase 1 of guarded anchoring: record the opaque commitment on-chain. Observers learn ' +
652
+ 'nothing about the payload. Once this job finalizes, call anchor_document with the SAME ' +
653
+ 'sha256 and metadata plus the nonce to reveal; a plain attest that front-ran the reveal is ' +
654
+ 'taken over in-circuit, and everything the front-runner recorded meanwhile (content root, ' +
655
+ 'disclosure grants, claims) stops counting. ' + POLL_HINT,
656
+ inputSchema: {
657
+ commitment: hex64('commitment').describe('The commitment from prepare_anchor_commitment (64 hex)'),
658
+ sessionId: z.string().uuid().describe('Wallet session id that signs and submits; the SAME session must reveal'),
659
+ contractAddress: z.string().min(1).describe('AttestationVault deployment'),
660
+ compiledArtifactRef: z.string().optional().describe("Contract artifact ref, defaults to 'attestation-vault'"),
661
+ idempotencyKey: z.string().optional().describe('Dedupes retries'),
662
+ sponsorSessionId: z.string().uuid().optional().describe('Optional second session that pays the dust fee'),
663
+ },
664
+ }, run(async (args) => client.callAction('commitDocumentAnchor', {
665
+ commitment: args.commitment,
666
+ sessionId: args.sessionId,
667
+ contractAddress: args.contractAddress,
668
+ compiledArtifactRef: args.compiledArtifactRef,
669
+ idempotencyKey: args.idempotencyKey,
670
+ sponsorSessionId: args.sponsorSessionId,
671
+ })));
461
672
  server.registerTool('grant_disclosure', {
462
673
  description: 'Grant a disclosure level for an attestation to a grantee identity, on-chain via the ' +
463
674
  'AttestationVault. Attester-only: the transaction is rejected in-circuit unless the ' +
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odatano/nightgate-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server exposing NIGHTGATE (Midnight blockchain attestation layer) to AI agents",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {