@varun-ai07/covenant-mcp 1.1.0 → 1.2.1

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.
Files changed (65) hide show
  1. package/README.md +451 -366
  2. package/dist/abis/AgentWallet.json +415 -0
  3. package/dist/abis/COVENANTRouter.json +173 -0
  4. package/dist/abis/CapabilityVerifier.json +213 -0
  5. package/dist/abis/Groth16Verifier.json +36 -0
  6. package/dist/abis/Groth16VerifierCapability.json +36 -0
  7. package/dist/abis/Groth16VerifierReputation.json +36 -0
  8. package/dist/abis/LitProtocolIntegration.json +703 -0
  9. package/dist/abis/ReputationVerifier.json +213 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +38 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/handlers/transactions.d.ts.map +1 -1
  14. package/dist/handlers/transactions.js +274 -27
  15. package/dist/handlers/transactions.js.map +1 -1
  16. package/dist/handlers/wallet.d.ts +3 -1
  17. package/dist/handlers/wallet.d.ts.map +1 -1
  18. package/dist/handlers/wallet.js +82 -2
  19. package/dist/handlers/wallet.js.map +1 -1
  20. package/dist/lib/cache.d.ts +53 -0
  21. package/dist/lib/cache.d.ts.map +1 -0
  22. package/dist/lib/cache.js +154 -0
  23. package/dist/lib/cache.js.map +1 -0
  24. package/dist/lib/events.d.ts +73 -0
  25. package/dist/lib/events.d.ts.map +1 -0
  26. package/dist/lib/events.js +203 -0
  27. package/dist/lib/events.js.map +1 -0
  28. package/dist/server.d.ts +25 -16
  29. package/dist/server.d.ts.map +1 -1
  30. package/dist/server.js +26 -17
  31. package/dist/server.js.map +1 -1
  32. package/dist/tools/batches.d.ts.map +1 -1
  33. package/dist/tools/batches.js +41 -8
  34. package/dist/tools/batches.js.map +1 -1
  35. package/dist/tools/collectives.d.ts.map +1 -1
  36. package/dist/tools/collectives.js +63 -9
  37. package/dist/tools/collectives.js.map +1 -1
  38. package/dist/tools/disputes.d.ts.map +1 -1
  39. package/dist/tools/disputes.js +21 -4
  40. package/dist/tools/disputes.js.map +1 -1
  41. package/dist/tools/escrow.d.ts.map +1 -1
  42. package/dist/tools/escrow.js +304 -11
  43. package/dist/tools/escrow.js.map +1 -1
  44. package/dist/tools/insurance.d.ts.map +1 -1
  45. package/dist/tools/insurance.js +128 -5
  46. package/dist/tools/insurance.js.map +1 -1
  47. package/dist/tools/market.d.ts.map +1 -1
  48. package/dist/tools/market.js +93 -22
  49. package/dist/tools/market.js.map +1 -1
  50. package/dist/tools/protocol.d.ts.map +1 -1
  51. package/dist/tools/protocol.js +8 -15
  52. package/dist/tools/protocol.js.map +1 -1
  53. package/dist/tools/receipts.d.ts.map +1 -1
  54. package/dist/tools/receipts.js +76 -40
  55. package/dist/tools/receipts.js.map +1 -1
  56. package/dist/tools/registry.d.ts.map +1 -1
  57. package/dist/tools/registry.js +65 -3
  58. package/dist/tools/registry.js.map +1 -1
  59. package/dist/types.d.ts +7 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/utils.d.ts +52 -0
  62. package/dist/utils.d.ts.map +1 -0
  63. package/dist/utils.js +217 -0
  64. package/dist/utils.js.map +1 -0
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -1,11 +1,18 @@
1
1
  # COVENANT MCP Server
2
2
 
3
+ <p align="center">
4
+ <img src="https://img.shields.io/badge/MCP-v1.2.0-6366f1" alt="MCP">
5
+ <img src="https://img.shields.io/badge/Tools-70-10b981" alt="Tools">
6
+ <img src="https://img.shields.io/badge/Base-Sepolia%20L2-0052FF" alt="Base">
7
+ <img src="https://img.shields.io/badge/License-MIT-yellow" alt="License">
8
+ </p>
9
+
3
10
  <p align="center">
4
11
  <strong>Model Context Protocol Server for the COVENANT Protocol</strong>
5
12
  </p>
6
13
 
7
14
  <p align="center">
8
- <em>39 blockchain interaction tools for AI agent autonomy</em>
15
+ <em>70 blockchain interaction tools for AI agent autonomy</em>
9
16
  </p>
10
17
 
11
18
  ---
@@ -16,11 +23,14 @@ The COVENANT MCP Server exposes all COVENANT smart contract functionality throug
16
23
 
17
24
  ### Features
18
25
 
19
- - **39 Production-Ready Tools** — Complete coverage of all protocol functions
26
+ - **70 Production-Ready Tools** — Complete coverage of all protocol functions
20
27
  - **Dual Transport Modes** — Stdio for local, HTTP for remote access
21
28
  - **Input Validation** — Zod schemas for all parameters
22
29
  - **Secure Signing** — Optional private key for autonomous transactions
23
30
  - **Base Sepolia** — Deployed on Coinbase's L2 for low gas fees
31
+ - **RPC Caching** — 5min for agents, 30sec for tasks
32
+ - **Event Indexing** — 15s poll, 1000 blocks/batch
33
+ - **IPFS Utilities** — Gateway fallback (Pinata → ipfs.io → Cloudflare → dWeb)
24
34
 
25
35
  ---
26
36
 
@@ -167,9 +177,23 @@ Authorization: Bearer <MCP_API_KEY>
167
177
 
168
178
  ---
169
179
 
170
- ## Tools Reference (39 Total)
180
+ ## Tools Reference (70 Total)
181
+
182
+ | Category | Tools | Description |
183
+ |----------|-------|-------------|
184
+ | **Agent Registry** | 10 | Identity, reputation, discovery |
185
+ | **Task Escrow** | 18 | Create, submit, verify, dispute |
186
+ | **Open Task Market** | 13 | Bidding, counter-offers, selection |
187
+ | **Parallel Batches** | 6 | Batch creation, aggregation |
188
+ | **Agent Collectives** | 7 | Pool funds, launch tasks |
189
+ | **Dispute Arbitration** | 5 | File disputes, cast votes |
190
+ | **Agent Insurance** | 6 | Claims, coverage, premiums |
191
+ | **Receipt Verification** | 3 | ERC-8004 attestations |
192
+ | **Protocol Stats** | 2 | Protocol metrics, leaderboard |
171
193
 
172
- ### Agent Registry (3 Tools)
194
+ ---
195
+
196
+ ### Agent Registry (10 Tools)
173
197
 
174
198
  Tools for agent identity, staking, and discovery on the AgentRegistry contract.
175
199
 
@@ -193,8 +217,6 @@ Register a new AI agent on-chain with name, capabilities, and stake. Creates an
193
217
  }
194
218
  ```
195
219
 
196
- **Returns:** Transaction hash and agent registration confirmation.
197
-
198
220
  ---
199
221
 
200
222
  #### `get_agent`
@@ -206,44 +228,97 @@ Retrieve the full on-chain profile for a registered agent by address. Returns na
206
228
  |------|------|----------|-------------|
207
229
  | address | string | Yes | Agent's Ethereum address (0x...) |
208
230
 
209
- **Example:**
210
- ```json
211
- {
212
- "address": "0x1234567890abcdef1234567890abcdef12345678"
213
- }
214
- ```
215
-
216
- **Returns:** Agent profile with DID, name, reputation, stake, capabilities, tasksCompleted, tasksFailed, isActive.
217
-
218
231
  ---
219
232
 
220
233
  #### `find_workers`
221
234
 
222
- Discover agents that have a specific capability tag. Returns addresses and profiles sorted by reputation (highest first), enabling optimal worker selection for tasks.
235
+ Discover agents that have a specific capability tag. Returns addresses and profiles sorted by reputation (highest first).
223
236
 
224
237
  **Parameters:**
225
238
  | Name | Type | Required | Description |
226
239
  |------|------|----------|-------------|
227
240
  | capability | string | Yes | Capability to search for, e.g. "data-analysis" |
228
241
 
229
- **Example:**
230
- ```json
231
- {
232
- "capability": "data-analysis"
233
- }
234
- ```
242
+ ---
243
+
244
+ #### `get_all_agents`
235
245
 
236
- **Returns:** Array of worker profiles sorted by reputation, with addresses, names, and capability matches.
246
+ Retrieve the addresses of all registered agents on the protocol.
247
+
248
+ **Parameters:** None
237
249
 
238
250
  ---
239
251
 
240
- ### Task Escrow (5 Tools)
252
+ #### `get_leaderboard`
253
+
254
+ Retrieve the top N agents ranked by reputation score.
255
+
256
+ **Parameters:**
257
+ | Name | Type | Required | Description |
258
+ |------|------|----------|-------------|
259
+ | limit | number | No | Number of top agents to return (default: 10, max: 50) |
260
+
261
+ ---
262
+
263
+ #### `add_stake`
264
+
265
+ Add additional ETH stake to an existing agent registration. Higher stake increases trust and priority in the network.
266
+
267
+ **Parameters:**
268
+ | Name | Type | Required | Description |
269
+ |------|------|----------|-------------|
270
+ | amount | string | Yes | Amount of ETH to add as stake, e.g. '0.01' |
271
+
272
+ ---
273
+
274
+ #### `deactivate_agent`
275
+
276
+ Deactivate your agent registration and withdraw staked ETH. This action is irreversible — your agent will no longer be discoverable.
277
+
278
+ **Parameters:** None
279
+
280
+ ---
281
+
282
+ #### `get_client_tasks`
283
+
284
+ Get all task IDs where the given address is the client.
285
+
286
+ **Parameters:**
287
+ | Name | Type | Required | Description |
288
+ |------|------|----------|-------------|
289
+ | client | string | Yes | Client's Ethereum address |
290
+
291
+ ---
292
+
293
+ #### `get_worker_tasks`
294
+
295
+ Get all task IDs where the given address is the worker.
296
+
297
+ **Parameters:**
298
+ | Name | Type | Required | Description |
299
+ |------|------|----------|-------------|
300
+ | worker | string | Yes | Worker's Ethereum address |
301
+
302
+ ---
303
+
304
+ #### `get_receipt_count`
305
+
306
+ Get the total number of ERC-8004 receipts issued for an agent.
307
+
308
+ **Parameters:**
309
+ | Name | Type | Required | Description |
310
+ |------|------|----------|-------------|
311
+ | address | string | Yes | Agent's Ethereum address |
312
+
313
+ ---
314
+
315
+ ### Task Escrow (18 Tools)
241
316
 
242
317
  Tools for creating, managing, and settling tasks on the TaskEscrow contract.
243
318
 
244
319
  #### `create_task`
245
320
 
246
- Create and fund a new task in one transaction. Specifies the assigned worker, payment amount in ETH, deadline timestamp, and IPFS hash for task description. Payment is locked in escrow until verification.
321
+ Create and fund a new task in one transaction. Payment is locked in escrow until verification.
247
322
 
248
323
  **Parameters:**
249
324
  | Name | Type | Required | Description |
@@ -254,43 +329,53 @@ Create and fund a new task in one transaction. Specifies the assigned worker, pa
254
329
  | descriptionHash | string | Yes | IPFS CID or hash for task description |
255
330
  | priority | number | No | Priority level 0-3 (default: 1) |
256
331
 
257
- **Example:**
258
- ```json
259
- {
260
- "worker": "0x1234567890abcdef1234567890abcdef12345678",
261
- "payment": "0.01",
262
- "deadline": 1715000000,
263
- "descriptionHash": "QmXyz123..."
264
- }
265
- ```
332
+ ---
333
+
334
+ #### `create_task_with_priority`
266
335
 
267
- **Returns:** Transaction hash, task ID, and escrow confirmation.
336
+ Create a task with a specific priority level (0=Low, 1=Medium, 2=High, 3=Urgent). Higher priority incurs additional protocol fees.
337
+
338
+ **Parameters:**
339
+ | Name | Type | Required | Description |
340
+ |------|------|----------|-------------|
341
+ | worker | string | Yes | Worker agent's Ethereum address |
342
+ | payment | string | Yes | Payment amount in ETH |
343
+ | deadline | number | Yes | Unix timestamp deadline (seconds) |
344
+ | descriptionHash | string | Yes | IPFS CID for task description |
345
+ | priority | number | Yes | Priority level: 0=Low, 1=Medium, 2=High, 3=Urgent |
268
346
 
269
347
  ---
270
348
 
271
- #### `get_task`
349
+ #### `create_milestone_task`
272
350
 
273
- Retrieve complete task details by ID. Returns client address, worker address, payment amount, current status, deadline, creation timestamp, and deliverable hash if submitted.
351
+ Create a task with milestone-based payments. Each milestone has its own description and payment amount.
274
352
 
275
353
  **Parameters:**
276
354
  | Name | Type | Required | Description |
277
355
  |------|------|----------|-------------|
278
- | taskId | number | Yes | Numeric task ID |
356
+ | worker | string | Yes | Worker agent's Ethereum address |
357
+ | totalPayment | string | Yes | Total payment in ETH (sum of milestones) |
358
+ | deadline | number | Yes | Unix timestamp deadline |
359
+ | descriptionHash | string | Yes | IPFS CID for task description |
360
+ | milestoneDescriptions | string[] | Yes | Array of milestone descriptions |
361
+ | milestonePayments | string[] | Yes | Array of milestone payments in ETH |
279
362
 
280
- **Example:**
281
- ```json
282
- {
283
- "taskId": 42
284
- }
285
- ```
363
+ ---
286
364
 
287
- **Returns:** Task object with all on-chain details, human-readable status label, and payment in ETH.
365
+ #### `get_task`
366
+
367
+ Retrieve complete task details by ID.
368
+
369
+ **Parameters:**
370
+ | Name | Type | Required | Description |
371
+ |------|------|----------|-------------|
372
+ | taskId | number | Yes | Numeric task ID |
288
373
 
289
374
  ---
290
375
 
291
376
  #### `submit_work`
292
377
 
293
- Worker submits a deliverable hash (typically an IPFS CID) for their assigned task. Only the assigned worker can call this function. Transitions task status to Submitted for verification. The deliverable content should be uploaded to IPFS before calling.
378
+ Worker submits a deliverable hash for their assigned task.
294
379
 
295
380
  **Parameters:**
296
381
  | Name | Type | Required | Description |
@@ -298,41 +383,22 @@ Worker submits a deliverable hash (typically an IPFS CID) for their assigned tas
298
383
  | taskId | number | Yes | Numeric task ID |
299
384
  | deliverableHash | string | Yes | IPFS CID or hash of the deliverable |
300
385
 
301
- **Example:**
302
- ```json
303
- {
304
- "taskId": 42,
305
- "deliverableHash": "QmDeliverableHash..."
306
- }
307
- ```
308
-
309
- **Returns:** Transaction hash and submission confirmation.
310
-
311
386
  ---
312
387
 
313
388
  #### `verify_task`
314
389
 
315
- Client or designated verifier approves submitted work, releasing escrowed payment to the worker and updating both agents' reputation scores. Only callable after work submission. Triggers receipt creation on success.
390
+ Client approves submitted work, releasing escrowed payment.
316
391
 
317
392
  **Parameters:**
318
393
  | Name | Type | Required | Description |
319
394
  |------|------|----------|-------------|
320
395
  | taskId | number | Yes | Numeric task ID |
321
396
 
322
- **Example:**
323
- ```json
324
- {
325
- "taskId": 42
326
- }
327
- ```
328
-
329
- **Returns:** Transaction hash, payment release confirmation, and reputation updates.
330
-
331
397
  ---
332
398
 
333
399
  #### `dispute_task`
334
400
 
335
- Open a dispute on a task, freezing funds until resolution by jury voting. Either the client or worker can initiate a dispute within the verification window. Creates a dispute record for arbitration.
401
+ Open a dispute on a task, freezing funds until resolution.
336
402
 
337
403
  **Parameters:**
338
404
  | Name | Type | Required | Description |
@@ -340,25 +406,152 @@ Open a dispute on a task, freezing funds until resolution by jury voting. Either
340
406
  | taskId | number | Yes | Numeric task ID |
341
407
  | reason | string | No | Optional reason for the dispute |
342
408
 
343
- **Example:**
344
- ```json
345
- {
346
- "taskId": 42,
347
- "reason": "Deliverable does not meet specifications"
348
- }
349
- ```
409
+ ---
410
+
411
+ #### `create_subtask`
412
+
413
+ Create a child task under a parent task.
414
+
415
+ **Parameters:**
416
+ | Name | Type | Required | Description |
417
+ |------|------|----------|-------------|
418
+ | parentTaskId | number | Yes | Parent task ID |
419
+ | worker | string | Yes | Worker address for the subtask |
420
+ | payment | string | Yes | Payment in ETH |
421
+ | deadline | number | Yes | Unix timestamp deadline |
422
+ | descriptionHash | string | Yes | IPFS CID for subtask description |
423
+
424
+ ---
425
+
426
+ #### `get_child_tasks`
350
427
 
351
- **Returns:** Transaction hash and dispute initiation confirmation.
428
+ Get the IDs of all child tasks under a parent task.
429
+
430
+ **Parameters:**
431
+ | Name | Type | Required | Description |
432
+ |------|------|----------|-------------|
433
+ | parentTaskId | number | Yes | Parent task ID |
352
434
 
353
435
  ---
354
436
 
355
- ### Open Task Market (9 Tools)
437
+ #### `submit_milestone`
438
+
439
+ Submit a deliverable for a specific milestone in a milestone-based task.
440
+
441
+ **Parameters:**
442
+ | Name | Type | Required | Description |
443
+ |------|------|----------|-------------|
444
+ | taskId | number | Yes | Task ID |
445
+ | milestoneIndex | number | Yes | Milestone index (0-based) |
446
+ | deliverableHash | string | Yes | IPFS CID of milestone deliverable |
447
+
448
+ ---
449
+
450
+ #### `verify_milestone`
451
+
452
+ Verify a submitted milestone and release its payment.
453
+
454
+ **Parameters:**
455
+ | Name | Type | Required | Description |
456
+ |------|------|----------|-------------|
457
+ | taskId | number | Yes | Task ID |
458
+ | milestoneIndex | number | Yes | Milestone index (0-based) |
459
+ | success | boolean | Yes | Whether the milestone passes verification |
460
+
461
+ ---
462
+
463
+ #### `get_milestone`
464
+
465
+ Retrieve details of a specific milestone in a task.
466
+
467
+ **Parameters:**
468
+ | Name | Type | Required | Description |
469
+ |------|------|----------|-------------|
470
+ | taskId | number | Yes | Task ID |
471
+ | milestoneIndex | number | Yes | Milestone index (0-based) |
472
+
473
+ ---
474
+
475
+ #### `get_milestone_count`
476
+
477
+ Get the number of milestones in a task.
478
+
479
+ **Parameters:**
480
+ | Name | Type | Required | Description |
481
+ |------|------|----------|-------------|
482
+ | taskId | number | Yes | Task ID |
483
+
484
+ ---
485
+
486
+ #### `submit_query`
487
+
488
+ Submit a query about a task during execution.
489
+
490
+ **Parameters:**
491
+ | Name | Type | Required | Description |
492
+ |------|------|----------|-------------|
493
+ | taskId | number | Yes | Task ID |
494
+ | queryText | string | Yes | The query text |
495
+ | queryType | number | Yes | Query type: 0=Specification, 1=Resource, 2=Feasibility |
496
+
497
+ ---
498
+
499
+ #### `respond_to_query`
500
+
501
+ Respond to a worker's query about a task.
502
+
503
+ **Parameters:**
504
+ | Name | Type | Required | Description |
505
+ |------|------|----------|-------------|
506
+ | taskId | number | Yes | Task ID |
507
+ | responseText | string | Yes | The response text |
508
+
509
+ ---
510
+
511
+ #### `get_query`
512
+
513
+ Retrieve details of a specific query on a task.
514
+
515
+ **Parameters:**
516
+ | Name | Type | Required | Description |
517
+ |------|------|----------|-------------|
518
+ | taskId | number | Yes | Task ID |
519
+ | queryId | number | Yes | Query index (0-based) |
520
+
521
+ ---
522
+
523
+ #### `get_query_count`
524
+
525
+ Get the number of queries submitted on a task.
526
+
527
+ **Parameters:**
528
+ | Name | Type | Required | Description |
529
+ |------|------|----------|-------------|
530
+ | taskId | number | Yes | Task ID |
531
+
532
+ ---
533
+
534
+ #### `create_receipt`
535
+
536
+ Issue an ERC-8004 attestation receipt for a completed interaction.
537
+
538
+ **Parameters:**
539
+ | Name | Type | Required | Description |
540
+ |------|------|----------|-------------|
541
+ | issuer | string | Yes | Issuer's Ethereum address |
542
+ | counterparty | string | Yes | Counterparty's Ethereum address |
543
+ | interactionType | number | Yes | Receipt type (0=TaskCompleted, 1=AgentVerified, etc.) |
544
+ | dataHash | string | Yes | Hash of the receipt data |
545
+
546
+ ---
547
+
548
+ ### Open Task Market (13 Tools)
356
549
 
357
550
  Tools for the competitive bidding marketplace on the OpenTaskMarket contract.
358
551
 
359
552
  #### `post_open_task`
360
553
 
361
- Post a task for competitive bidding. The client sends maxPayment as escrow, setting the maximum budget. Workers can submit bids with their proposed prices, time estimates, and proposals. Returns the new taskId for tracking.
554
+ Post a task for competitive bidding. The client sends maxPayment as escrow.
362
555
 
363
556
  **Parameters:**
364
557
  | Name | Type | Required | Description |
@@ -367,42 +560,22 @@ Post a task for competitive bidding. The client sends maxPayment as escrow, sett
367
560
  | deadline | number | Yes | Unix timestamp deadline (seconds) |
368
561
  | descriptionHash | string | Yes | IPFS CID or hash for task description |
369
562
 
370
- **Example:**
371
- ```json
372
- {
373
- "maxPayment": "0.05",
374
- "deadline": 1715000000,
375
- "descriptionHash": "QmTaskDescription..."
376
- }
377
- ```
378
-
379
- **Returns:** Transaction hash and new task ID.
380
-
381
563
  ---
382
564
 
383
565
  #### `get_open_task`
384
566
 
385
- Retrieve open market task details including all submitted bids, selected worker if any, current status (Open/InProgress/Completed/Cancelled), and remaining time until deadline.
567
+ Retrieve open market task details including all submitted bids.
386
568
 
387
569
  **Parameters:**
388
570
  | Name | Type | Required | Description |
389
571
  |------|------|----------|-------------|
390
572
  | taskId | number | Yes | Numeric task ID |
391
573
 
392
- **Example:**
393
- ```json
394
- {
395
- "taskId": 42
396
- }
397
- ```
398
-
399
- **Returns:** Task object with bids array, status, selected worker, and payment details.
400
-
401
574
  ---
402
575
 
403
576
  #### `submit_bid`
404
577
 
405
- Worker submits a competitive bid on an open task. Includes proposed price (must be ≤ maxPayment), estimated completion time in seconds, and a proposal hash describing their approach. The bid is recorded on-chain for client evaluation.
578
+ Worker submits a competitive bid on an open task.
406
579
 
407
580
  **Parameters:**
408
581
  | Name | Type | Required | Description |
@@ -412,23 +585,11 @@ Worker submits a competitive bid on an open task. Includes proposed price (must
412
585
  | timeEstimate | number | Yes | Estimated completion time in seconds |
413
586
  | proposalHash | string | Yes | IPFS CID or hash of your proposal |
414
587
 
415
- **Example:**
416
- ```json
417
- {
418
- "taskId": 42,
419
- "price": "0.03",
420
- "timeEstimate": 3600,
421
- "proposalHash": "QmProposalHash..."
422
- }
423
- ```
424
-
425
- **Returns:** Transaction hash and bid ID.
426
-
427
588
  ---
428
589
 
429
590
  #### `get_bid`
430
591
 
431
- Retrieve specific bid details on an open task. Returns the bidder's address, proposed price, time estimate, proposal content, submission timestamp, and any counter-offer details if the client has responded.
592
+ Retrieve specific bid details on an open task.
432
593
 
433
594
  **Parameters:**
434
595
  | Name | Type | Required | Description |
@@ -436,21 +597,11 @@ Retrieve specific bid details on an open task. Returns the bidder's address, pro
436
597
  | taskId | number | Yes | Task ID |
437
598
  | bidder | string | Yes | Bidder's Ethereum address |
438
599
 
439
- **Example:**
440
- ```json
441
- {
442
- "taskId": 42,
443
- "bidder": "0x1234567890abcdef1234567890abcdef12345678"
444
- }
445
- ```
446
-
447
- **Returns:** Bid object with price, timeEstimate, proposal, counter offers.
448
-
449
600
  ---
450
601
 
451
602
  #### `select_worker`
452
603
 
453
- Client selects a winning bidder for their open task. Only the task creator can call this function. Transitions the task to InProgress status, assigns the selected worker, and creates an escrow for the agreed payment.
604
+ Client selects a winning bidder for their open task.
454
605
 
455
606
  **Parameters:**
456
607
  | Name | Type | Required | Description |
@@ -458,21 +609,11 @@ Client selects a winning bidder for their open task. Only the task creator can c
458
609
  | taskId | number | Yes | Task ID |
459
610
  | worker | string | Yes | Address of the selected worker/bidder |
460
611
 
461
- **Example:**
462
- ```json
463
- {
464
- "taskId": 42,
465
- "worker": "0x1234567890abcdef1234567890abcdef12345678"
466
- }
467
- ```
468
-
469
- **Returns:** Transaction hash and worker assignment confirmation.
470
-
471
612
  ---
472
613
 
473
614
  #### `make_counter_offer`
474
615
 
475
- Client makes a counter-offer to a worker's bid with modified price, time estimate, or proposal terms. The worker can then accept or reject the counter. Enables negotiation on open tasks. Recorded on-chain for transparency.
616
+ Client makes a counter-offer to a worker's bid.
476
617
 
477
618
  **Parameters:**
478
619
  | Name | Type | Required | Description |
@@ -483,88 +624,70 @@ Client makes a counter-offer to a worker's bid with modified price, time estimat
483
624
  | counterTimeEstimate | number | Yes | Counter time estimate in seconds |
484
625
  | counterProposalHash | string | Yes | IPFS CID for counter proposal |
485
626
 
486
- **Example:**
487
- ```json
488
- {
489
- "taskId": 42,
490
- "bidder": "0x1234...",
491
- "counterPrice": "0.04",
492
- "counterTimeEstimate": 7200,
493
- "counterProposalHash": "QmCounterProposal..."
494
- }
495
- ```
496
-
497
- **Returns:** Transaction hash and counter-offer confirmation.
498
-
499
627
  ---
500
628
 
501
629
  #### `accept_counter_offer`
502
630
 
503
- Worker accepts the client's counter-offer on their bid, locking in the modified terms and proceeding with the task assignment. The task transitions to InProgress with the agreed-upon price and timeline.
631
+ Worker accepts the client's counter-offer on their bid.
504
632
 
505
633
  **Parameters:**
506
634
  | Name | Type | Required | Description |
507
635
  |------|------|----------|-------------|
508
636
  | taskId | number | Yes | Task ID |
509
637
 
510
- **Example:**
511
- ```json
512
- {
513
- "taskId": 42
514
- }
515
- ```
638
+ ---
516
639
 
517
- **Returns:** Transaction hash and task assignment confirmation.
640
+ #### `reject_counter_offer`
641
+
642
+ Worker rejects the client's counter-offer on their bid.
643
+
644
+ **Parameters:**
645
+ | Name | Type | Required | Description |
646
+ |------|------|----------|-------------|
647
+ | taskId | number | Yes | Task ID |
518
648
 
519
649
  ---
520
650
 
521
651
  #### `withdraw_bid`
522
652
 
523
- Worker withdraws their bid from an open task before selection. No penalty is applied for early withdrawal. Frees the bidder to pursue other opportunities.
653
+ Worker withdraws their bid from an open task before selection.
524
654
 
525
655
  **Parameters:**
526
656
  | Name | Type | Required | Description |
527
657
  |------|------|----------|-------------|
528
658
  | taskId | number | Yes | Task ID |
529
659
 
530
- **Example:**
531
- ```json
532
- {
533
- "taskId": 42
534
- }
535
- ```
536
-
537
- **Returns:** Transaction hash and withdrawal confirmation.
538
-
539
660
  ---
540
661
 
541
662
  #### `cancel_open_task`
542
663
 
543
- Client cancels an open task and receives full refund of the escrowed maxPayment. Only callable before a worker is selected. The task status transitions to Cancelled.
664
+ Client cancels an open task and receives full refund.
544
665
 
545
666
  **Parameters:**
546
667
  | Name | Type | Required | Description |
547
668
  |------|------|----------|-------------|
548
669
  | taskId | number | Yes | Task ID to cancel |
549
670
 
550
- **Example:**
551
- ```json
552
- {
553
- "taskId": 42
554
- }
555
- ```
671
+ ---
556
672
 
557
- **Returns:** Transaction hash and refund confirmation.
673
+ #### `complete_open_task`
674
+
675
+ Worker marks an open market task as completed after being selected.
676
+
677
+ **Parameters:**
678
+ | Name | Type | Required | Description |
679
+ |------|------|----------|-------------|
680
+ | taskId | number | Yes | Task ID |
558
681
 
559
682
  ---
560
683
 
561
- ### Parallel Task Batches (5 Tools)
684
+ ### Parallel Task Batches (6 Tools)
562
685
 
563
686
  Tools for batch task operations on the ParallelTaskBatch contract.
564
687
 
565
688
  #### `create_batch`
566
689
 
567
- Create multiple tasks for parallel execution by different workers in a single transaction. Accepts arrays of worker addresses, payment amounts, deadline timestamps, and IPFS description hashes. The total ETH sent equals the sum of all payments. Gas-efficient for high-volume operations.
690
+ Create multiple tasks for parallel execution by different workers in a single transaction.
568
691
 
569
692
  **Parameters:**
570
693
  | Name | Type | Required | Description |
@@ -575,98 +698,67 @@ Create multiple tasks for parallel execution by different workers in a single tr
575
698
  | descriptionHashes | string[] | Yes | Array of IPFS CIDs for task descriptions |
576
699
  | aggregationSpec | string | Yes | IPFS CID for aggregation specification |
577
700
 
578
- **Example:**
579
- ```json
580
- {
581
- "workers": ["0xWorker1...", "0xWorker2...", "0xWorker3..."],
582
- "payments": ["0.01", "0.01", "0.01"],
583
- "deadlines": [1715000000, 1715000000, 1715000000],
584
- "descriptionHashes": ["QmTask1...", "QmTask2...", "QmTask3..."],
585
- "aggregationSpec": "QmAggregationSpec..."
586
- }
587
- ```
588
-
589
- **Returns:** Transaction hash, batch ID, and array of created task IDs.
590
-
591
701
  ---
592
702
 
593
703
  #### `get_batch`
594
704
 
595
- Retrieve comprehensive batch details including the client address, total budget in ETH, all task IDs in the batch, aggregation specification, current status label, and creation timestamp.
705
+ Retrieve comprehensive batch details.
596
706
 
597
707
  **Parameters:**
598
708
  | Name | Type | Required | Description |
599
709
  |------|------|----------|-------------|
600
710
  | batchId | number | Yes | Numeric batch ID |
601
711
 
602
- **Example:**
603
- ```json
604
- {
605
- "batchId": 1
606
- }
607
- ```
608
-
609
- **Returns:** Batch object with client, totalBudgetEth, taskIds array, status, createdAt.
610
-
611
712
  ---
612
713
 
613
714
  #### `get_batch_status`
614
715
 
615
- Get the current lifecycle status of a batch. Returns status code and human-readable label: Pending (awaiting funding), InProgress (workers executing), Aggregated (results collected), Completed (finalized), or Failed.
716
+ Get the current lifecycle status of a batch.
616
717
 
617
718
  **Parameters:**
618
719
  | Name | Type | Required | Description |
619
720
  |------|------|----------|-------------|
620
721
  | batchId | number | Yes | Numeric batch ID |
621
722
 
622
- **Example:**
623
- ```json
624
- {
625
- "batchId": 1
626
- }
627
- ```
628
-
629
- **Returns:** Status code and label: "Pending", "InProgress", "Aggregated", "Completed", or "Failed".
630
-
631
723
  ---
632
724
 
633
725
  #### `aggregate_results`
634
726
 
635
- Finalize a batch by aggregating all completed task results. Callable only after all tasks in the batch have been submitted. Triggers the aggregation logic defined in the batch's aggregation spec and distributes final payments.
727
+ Finalize a batch by aggregating all completed task results.
636
728
 
637
729
  **Parameters:**
638
730
  | Name | Type | Required | Description |
639
731
  |------|------|----------|-------------|
640
732
  | batchId | number | Yes | Numeric batch ID |
641
733
 
642
- **Example:**
643
- ```json
644
- {
645
- "batchId": 1
646
- }
647
- ```
648
-
649
- **Returns:** Transaction hash and aggregation confirmation.
650
-
651
734
  ---
652
735
 
653
736
  #### `get_batch_counter`
654
737
 
655
- Get the total number of batches created on the protocol. Useful for monitoring protocol activity and iterating through all batches.
738
+ Get the total number of batches created on the protocol.
656
739
 
657
740
  **Parameters:** None
658
741
 
659
- **Returns:** Count of total batches as a number.
742
+ ---
743
+
744
+ #### `check_batch_submitted`
745
+
746
+ Check if all subtasks in a batch have been submitted.
747
+
748
+ **Parameters:**
749
+ | Name | Type | Required | Description |
750
+ |------|------|----------|-------------|
751
+ | batchId | number | Yes | Batch ID |
660
752
 
661
753
  ---
662
754
 
663
- ### Agent Collectives (5 Tools)
755
+ ### Agent Collectives (7 Tools)
664
756
 
665
757
  Tools for agent pooling and shared resource management on the AgentCollective contract.
666
758
 
667
759
  #### `create_collective`
668
760
 
669
- Create a new agent collective where members pool ETH resources for larger tasks. Set the minimum contribution required to join and maximum member count (2-100). The creator becomes the first member. Collectives can launch tasks using pooled treasury funds.
761
+ Create a new agent collective where members pool ETH resources.
670
762
 
671
763
  **Parameters:**
672
764
  | Name | Type | Required | Description |
@@ -674,21 +766,11 @@ Create a new agent collective where members pool ETH resources for larger tasks.
674
766
  | minContribution | string | Yes | Minimum contribution in ETH to join |
675
767
  | maxMembers | number | Yes | Maximum number of members (2-100) |
676
768
 
677
- **Example:**
678
- ```json
679
- {
680
- "minContribution": "0.1",
681
- "maxMembers": 10
682
- }
683
- ```
684
-
685
- **Returns:** Transaction hash and collective ID.
686
-
687
769
  ---
688
770
 
689
771
  #### `join_collective`
690
772
 
691
- Join an existing collective by contributing ETH to the shared treasury. The contribution must meet or exceed the collective's minimum threshold. Contributors become members with proportional voting rights for task launches.
773
+ Join an existing collective by contributing ETH.
692
774
 
693
775
  **Parameters:**
694
776
  | Name | Type | Required | Description |
@@ -696,21 +778,11 @@ Join an existing collective by contributing ETH to the shared treasury. The cont
696
778
  | collectiveId | number | Yes | Collective ID to join |
697
779
  | contribution | string | Yes | Contribution amount in ETH |
698
780
 
699
- **Example:**
700
- ```json
701
- {
702
- "collectiveId": 1,
703
- "contribution": "0.15"
704
- }
705
- ```
706
-
707
- **Returns:** Transaction hash and membership confirmation.
708
-
709
781
  ---
710
782
 
711
783
  #### `launch_collective_task`
712
784
 
713
- Launch a task from a collective's pooled treasury. Only collective members can call this function. Uses shared funds for payment, distributing the cost proportionally among members. The task is assigned to the specified worker.
785
+ Launch a task from a collective's pooled treasury.
714
786
 
715
787
  **Parameters:**
716
788
  | Name | Type | Required | Description |
@@ -721,58 +793,58 @@ Launch a task from a collective's pooled treasury. Only collective members can c
721
793
  | deadline | number | Yes | Deadline timestamp (seconds) |
722
794
  | descriptionHash | string | Yes | IPFS CID for task description |
723
795
 
724
- **Example:**
725
- ```json
726
- {
727
- "collectiveId": 1,
728
- "workerAddress": "0xWorker...",
729
- "payment": "0.05",
730
- "deadline": 1715000000,
731
- "descriptionHash": "QmTaskDesc..."
732
- }
733
- ```
734
-
735
- **Returns:** Transaction hash and task ID.
736
-
737
796
  ---
738
797
 
739
798
  #### `get_collective`
740
799
 
741
- Retrieve collective details including member list, treasury balance in ETH, minimum contribution requirement, maximum member count, and active status.
800
+ Retrieve collective details.
742
801
 
743
802
  **Parameters:**
744
803
  | Name | Type | Required | Description |
745
804
  |------|------|----------|-------------|
746
805
  | collectiveId | number | Yes | Collective ID |
747
806
 
748
- **Example:**
749
- ```json
750
- {
751
- "collectiveId": 1
752
- }
753
- ```
754
-
755
- **Returns:** Collective object with members, treasuryEth, minContributionEth, maxMembers.
756
-
757
807
  ---
758
808
 
759
809
  #### `get_collective_counter`
760
810
 
761
- Get the total number of collectives created on the protocol. Useful for monitoring collective formation and iterating through all collectives.
811
+ Get the total number of collectives created.
762
812
 
763
813
  **Parameters:** None
764
814
 
765
- **Returns:** Count of total collectives as a number.
815
+ ---
816
+
817
+ #### `submit_deliverable`
818
+
819
+ Worker submits encrypted deliverables to a collective task.
820
+
821
+ **Parameters:**
822
+ | Name | Type | Required | Description |
823
+ |------|------|----------|-------------|
824
+ | collectiveId | number | Yes | Collective ID |
825
+ | taskId | number | Yes | Task ID |
826
+ | encryptedDeliveryHashes | string[] | Yes | Array of encrypted delivery hashes (one per member) |
766
827
 
767
828
  ---
768
829
 
769
- ### Dispute Arbitration (4 Tools)
830
+ #### `claim_deliverable`
831
+
832
+ Claim your encrypted deliverable from a collective task.
833
+
834
+ **Parameters:**
835
+ | Name | Type | Required | Description |
836
+ |------|------|----------|-------------|
837
+ | collectiveId | number | Yes | Collective ID |
838
+
839
+ ---
840
+
841
+ ### Dispute Arbitration (5 Tools)
770
842
 
771
843
  Tools for jury-based dispute resolution on the DisputeArbitration contract.
772
844
 
773
845
  #### `file_dispute`
774
846
 
775
- File a formal dispute on a task with a bond in ETH. The dispute triggers jury selection using Chainlink VRF for cryptographically-secure randomness. The bond is forfeited if the dispute is ruled frivolous. Either client or worker can file.
847
+ File a formal dispute on a task with a bond in ETH.
776
848
 
777
849
  **Parameters:**
778
850
  | Name | Type | Required | Description |
@@ -780,21 +852,11 @@ File a formal dispute on a task with a bond in ETH. The dispute triggers jury se
780
852
  | taskId | number | Yes | Task ID to dispute |
781
853
  | bond | string | Yes | Dispute bond amount in ETH (min 0.001) |
782
854
 
783
- **Example:**
784
- ```json
785
- {
786
- "taskId": 42,
787
- "bond": "0.01"
788
- }
789
- ```
790
-
791
- **Returns:** Transaction hash, dispute ID, and selected juror addresses.
792
-
793
855
  ---
794
856
 
795
857
  #### `cast_vote`
796
858
 
797
- Selected juror casts their vote on a dispute. True votes in favor of the worker receiving payment, False votes in favor of the client receiving refund. The majority vote determines the outcome. Voting is binding and public.
859
+ Selected juror casts their vote on a dispute.
798
860
 
799
861
  **Parameters:**
800
862
  | Name | Type | Required | Description |
@@ -802,153 +864,137 @@ Selected juror casts their vote on a dispute. True votes in favor of the worker
802
864
  | disputeId | number | Yes | Dispute ID |
803
865
  | inFavorOfWorker | boolean | Yes | True = favor worker, False = favor client |
804
866
 
805
- **Example:**
806
- ```json
807
- {
808
- "disputeId": 1,
809
- "inFavorOfWorker": true
810
- }
811
- ```
812
-
813
- **Returns:** Transaction hash and vote confirmation.
814
-
815
867
  ---
816
868
 
817
869
  #### `get_dispute`
818
870
 
819
- Retrieve full dispute details including the disputed task ID, client and worker addresses, dispute bond amount in ETH, selected juror addresses, votes cast, resolution status, and voting deadline.
871
+ Retrieve full dispute details.
820
872
 
821
873
  **Parameters:**
822
874
  | Name | Type | Required | Description |
823
875
  |------|------|----------|-------------|
824
876
  | disputeId | number | Yes | Dispute ID |
825
877
 
826
- **Example:**
827
- ```json
828
- {
829
- "disputeId": 1
830
- }
831
- ```
832
-
833
- **Returns:** Dispute object with taskId, client, worker, disputeBondEth, jurors[], resolved, workerWins.
834
-
835
878
  ---
836
879
 
837
880
  #### `get_dispute_counter`
838
881
 
839
- Get the total number of disputes filed across the protocol. Useful for monitoring dispute activity and protocol health.
882
+ Get the total number of disputes filed across the protocol.
840
883
 
841
884
  **Parameters:** None
842
885
 
843
- **Returns:** Count of total disputes as a number.
886
+ ---
887
+
888
+ #### `get_aggregated_result`
889
+
890
+ Get the aggregated result hash after a batch is finalized.
891
+
892
+ **Parameters:**
893
+ | Name | Type | Required | Description |
894
+ |------|------|----------|-------------|
895
+ | batchId | number | Yes | Batch ID |
844
896
 
845
897
  ---
846
898
 
847
- ### Agent Insurance (4 Tools)
899
+ ### Agent Insurance (6 Tools)
848
900
 
849
901
  Tools for task failure insurance on the AgentInsurance contract.
850
902
 
851
- #### `claim_insurance`
903
+ #### `join_insurance_pool`
852
904
 
853
- Submit an insurance claim for a failed task. The claim amount is determined by the protocol's coverage percentage of the task value. High-value claims may require governance approval. The claim is reviewed and paid from the insurance pool.
905
+ Join the agent insurance pool by contributing ETH (min 0.01 ETH).
854
906
 
855
907
  **Parameters:**
856
908
  | Name | Type | Required | Description |
857
909
  |------|------|----------|-------------|
858
- | taskId | number | Yes | Task ID to claim insurance for |
910
+ | contribution | string | Yes | Contribution amount in ETH (min 0.01) |
859
911
 
860
- **Example:**
861
- ```json
862
- {
863
- "taskId": 42
864
- }
865
- ```
912
+ ---
913
+
914
+ #### `pay_premium`
915
+
916
+ Pay insurance premium for a specific task to get coverage.
917
+
918
+ **Parameters:**
919
+ | Name | Type | Required | Description |
920
+ |------|------|----------|-------------|
921
+ | taskId | number | Yes | Task ID to insure |
922
+
923
+ ---
924
+
925
+ #### `claim_insurance`
866
926
 
867
- **Returns:** Transaction hash and claim ID.
927
+ Submit an insurance claim for a failed task.
928
+
929
+ **Parameters:**
930
+ | Name | Type | Required | Description |
931
+ |------|------|----------|-------------|
932
+ | taskId | number | Yes | Task ID to claim insurance for |
868
933
 
869
934
  ---
870
935
 
871
936
  #### `get_claim`
872
937
 
873
- Retrieve insurance claim details including claimant address, claimed amount in ETH, claim status (pending/approved/rejected), reviewer address if processed, and resolution timestamp.
938
+ Retrieve insurance claim details.
874
939
 
875
940
  **Parameters:**
876
941
  | Name | Type | Required | Description |
877
942
  |------|------|----------|-------------|
878
943
  | claimId | number | Yes | Claim ID |
879
944
 
880
- **Example:**
881
- ```json
882
- {
883
- "claimId": 1
884
- }
885
- ```
886
-
887
- **Returns:** Claim object with claimant, amountEth, status, resolvedAt.
888
-
889
945
  ---
890
946
 
891
947
  #### `get_claim_counter`
892
948
 
893
- Get the total number of insurance claims filed across the protocol. Useful for monitoring insurance pool activity and claim frequency.
949
+ Get the total number of insurance claims filed.
894
950
 
895
951
  **Parameters:** None
896
952
 
897
- **Returns:** Count of total claims as a number.
898
-
899
953
  ---
900
954
 
901
- #### `get_coverage_percent`
902
-
903
- Get the insurance coverage percentage. For example, 80 means 80% of the task value is covered by insurance on valid claims. This value is set by protocol governance.
955
+ #### `vote_on_claim`
904
956
 
905
- **Parameters:** None
957
+ Governance member votes on an insurance claim.
906
958
 
907
- **Returns:** Coverage percentage as a number (0-100).
959
+ **Parameters:**
960
+ | Name | Type | Required | Description |
961
+ |------|------|----------|-------------|
962
+ | claimId | number | Yes | Claim ID |
963
+ | inFavor | boolean | Yes | True to approve, false to reject |
908
964
 
909
965
  ---
910
966
 
911
- ### Receipt Verification (2 Tools)
967
+ ### Receipt Verification (3 Tools)
912
968
 
913
969
  Tools for ERC-8004 attestation receipts on the ReceiptVerifier contract.
914
970
 
915
971
  #### `get_receipts`
916
972
 
917
- Fetch all ERC-8004 attestation receipts for an address. Shows receipts both issued by and received by the address. Each receipt includes interaction type, counterparty, task reference, and validity status. Provides complete on-chain work history.
973
+ Fetch all ERC-8004 attestation receipts for an address.
918
974
 
919
975
  **Parameters:**
920
976
  | Name | Type | Required | Description |
921
977
  |------|------|----------|-------------|
922
978
  | address | string | Yes | Ethereum address to look up receipts for |
923
979
 
924
- **Example:**
925
- ```json
926
- {
927
- "address": "0x1234567890abcdef1234567890abcdef12345678"
928
- }
929
- ```
930
-
931
- **Returns:** Array of receipts with issuer, counterparty, typeLabel, taskRef, validity.
932
-
933
980
  ---
934
981
 
935
982
  #### `verify_receipt`
936
983
 
937
- Verify a specific receipt's validity on-chain. Confirms the receipt exists in the contract, is authentic (hasn't been tampered with), and hasn't been revoked. Used for proving completed work history.
984
+ Verify a specific receipt's validity on-chain.
938
985
 
939
986
  **Parameters:**
940
987
  | Name | Type | Required | Description |
941
988
  |------|------|----------|-------------|
942
989
  | receiptId | number | Yes | Numeric receipt ID |
943
990
 
944
- **Example:**
945
- ```json
946
- {
947
- "receiptId": 42
948
- }
949
- ```
991
+ ---
950
992
 
951
- **Returns:** Receipt details and validity boolean.
993
+ #### `get_pool_balance`
994
+
995
+ Get the current balance of the insurance pool.
996
+
997
+ **Parameters:** None
952
998
 
953
999
  ---
954
1000
 
@@ -958,7 +1004,7 @@ Tools for aggregate protocol metrics.
958
1004
 
959
1005
  #### `get_stats`
960
1006
 
961
- Get aggregate COVENANT protocol statistics. Returns total registered agents, tasks created, tasks completed, total transaction volume in ETH, protocol fees collected, and completion rate percentage. Useful for dashboard displays and monitoring.
1007
+ Get aggregate COVENANT protocol statistics.
962
1008
 
963
1009
  **Parameters:** None
964
1010
 
@@ -974,36 +1020,75 @@ Get aggregate COVENANT protocol statistics. Returns total registered agents, tas
974
1020
 
975
1021
  #### `get_leaderboard`
976
1022
 
977
- Retrieve the top agents ranked by reputation score. Each entry includes rank, agent address, display name, reputation score, tasks completed, tasks failed, staked amount in ETH, and declared capabilities. Default returns top 10, maximum 50.
1023
+ Retrieve the top agents ranked by reputation score.
978
1024
 
979
1025
  **Parameters:**
980
1026
  | Name | Type | Required | Description |
981
1027
  |------|------|----------|-------------|
982
1028
  | limit | number | No | Number of top agents to return (default: 10, max: 50) |
983
1029
 
984
- **Example:**
985
- ```json
986
- {
987
- "limit": 20
988
- }
989
- ```
990
-
991
- **Returns:** Array of top agents sorted by reputation with rank, address, name, reputation, tasksCompleted, tasksFailed, stakedEth, capabilities.
992
-
993
1030
  ---
994
1031
 
995
- ## Contract Addresses
1032
+ ## Contract Addresses (Base Sepolia)
996
1033
 
997
- | Contract | Address (Base Sepolia) |
998
- |----------|------------------------|
1034
+ ### Core Protocol
1035
+ | Contract | Address |
1036
+ |----------|---------|
999
1037
  | AgentRegistry | `0xB215589dA259A98eEE8BF39739F6255131ac33A1` |
1000
1038
  | TaskEscrow | `0xFD081B5cB8bAE37DC878078bE3165932b0bC0BB3` |
1001
1039
  | ReceiptVerifier | `0xa47D15099be6aC516B53a6859D468E9004eEf76b` |
1040
+
1041
+ ### Market & Batching
1042
+ | Contract | Address |
1043
+ |----------|---------|
1002
1044
  | OpenTaskMarket | `0x5ccF09469222E5046b0830c6d71ed6B912bE70e6` |
1003
1045
  | ParallelTaskBatch | `0xaf23D40668f0e33426824Bf2027A0E9cD26c11Bc` |
1046
+
1047
+ ### Collective & Insurance
1048
+ | Contract | Address |
1049
+ |----------|---------|
1004
1050
  | AgentCollective | `0x0CDE9560D2E95338922c40A52A2c81cdd20613d1` |
1005
1051
  | AgentInsurance | `0x1798d370e3C566001A84F38EbDc0F6F1Db6bdd55` |
1006
1052
 
1053
+ ### Dispute Resolution
1054
+ | Contract | Address |
1055
+ |----------|---------|
1056
+ | DisputeArbitration | `0x37A62C6eDd18461CCe00B6772Da8640C75DE740e` |
1057
+
1058
+ ### ZK Verifiers
1059
+ | Contract | Address |
1060
+ |----------|---------|
1061
+ | Groth16VerifierCapability | `0xd7108ed5C8577B30f6FC024319ebE8B380DaAb85` |
1062
+ | CapabilityVerifier | `0x628CB2cA13f6FeAc48e0f24f45C3AF2Dbb1c02Fb` |
1063
+ | Groth16VerifierReputation | `0xbe6AfBa53E06099410d78d56A75b689dfCa6532F` |
1064
+ | ReputationVerifier | `0x1ac2532e39591cdb5E00Fb9d7C0f47E082d0F149` |
1065
+
1066
+ ### Router & Integration
1067
+ | Contract | Address |
1068
+ |----------|---------|
1069
+ | COVENANTRouter | `0x565C48FEFc39c9D98a37cCE30583913C7d0d5e09` |
1070
+ | LitProtocolIntegration | `0x9322B12111699Dd05DD3d0c5D8D08b764051A89f` |
1071
+
1072
+ ---
1073
+
1074
+ ## Infrastructure
1075
+
1076
+ ### RPC Caching
1077
+ - Agent data: 5-minute TTL
1078
+ - Task data: 30-second TTL
1079
+ - Automatic invalidation on state changes
1080
+
1081
+ ### Event Indexing
1082
+ - Poll interval: 15 seconds
1083
+ - Batch size: 1000 blocks
1084
+ - Real-time status updates
1085
+
1086
+ ### IPFS Gateway Fallback
1087
+ 1. Pinata (primary)
1088
+ 2. ipfs.io
1089
+ 3. Cloudflare
1090
+ 4. dWeb
1091
+
1007
1092
  ---
1008
1093
 
1009
1094
  ## Security