@varun-ai07/covenant-mcp 1.2.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.
- package/README.md +451 -366
- package/dist/abis/AgentWallet.json +415 -0
- package/dist/abis/COVENANTRouter.json +173 -0
- package/dist/abis/CapabilityVerifier.json +213 -0
- package/dist/abis/Groth16Verifier.json +36 -0
- package/dist/abis/Groth16VerifierCapability.json +36 -0
- package/dist/abis/Groth16VerifierReputation.json +36 -0
- package/dist/abis/LitProtocolIntegration.json +703 -0
- package/dist/abis/ReputationVerifier.json +213 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +38 -1
- package/dist/config.js.map +1 -1
- package/dist/handlers/transactions.d.ts.map +1 -1
- package/dist/handlers/transactions.js +274 -27
- package/dist/handlers/transactions.js.map +1 -1
- package/dist/handlers/wallet.d.ts +3 -1
- package/dist/handlers/wallet.d.ts.map +1 -1
- package/dist/handlers/wallet.js +82 -2
- package/dist/handlers/wallet.js.map +1 -1
- package/dist/lib/cache.d.ts +53 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +154 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/events.d.ts +73 -0
- package/dist/lib/events.d.ts.map +1 -0
- package/dist/lib/events.js +203 -0
- package/dist/lib/events.js.map +1 -0
- package/dist/tools/batches.d.ts.map +1 -1
- package/dist/tools/batches.js +4 -3
- package/dist/tools/batches.js.map +1 -1
- package/dist/tools/collectives.d.ts.map +1 -1
- package/dist/tools/collectives.js +15 -6
- package/dist/tools/collectives.js.map +1 -1
- package/dist/tools/escrow.d.ts.map +1 -1
- package/dist/tools/escrow.js +8 -6
- package/dist/tools/escrow.js.map +1 -1
- package/dist/tools/insurance.d.ts.map +1 -1
- package/dist/tools/insurance.js +7 -4
- package/dist/tools/insurance.js.map +1 -1
- package/dist/tools/receipts.d.ts.map +1 -1
- package/dist/tools/receipts.js +49 -61
- package/dist/tools/receipts.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +52 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +217 -0
- package/dist/utils.js.map +1 -0
- 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>
|
|
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
|
-
- **
|
|
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 (
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
"capability": "data-analysis"
|
|
233
|
-
}
|
|
234
|
-
```
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
#### `get_all_agents`
|
|
235
245
|
|
|
236
|
-
|
|
246
|
+
Retrieve the addresses of all registered agents on the protocol.
|
|
247
|
+
|
|
248
|
+
**Parameters:** None
|
|
237
249
|
|
|
238
250
|
---
|
|
239
251
|
|
|
240
|
-
|
|
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.
|
|
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
|
-
|
|
258
|
-
|
|
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
|
-
|
|
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
|
-
#### `
|
|
349
|
+
#### `create_milestone_task`
|
|
272
350
|
|
|
273
|
-
|
|
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
|
-
|
|
|
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
|
-
|
|
281
|
-
```json
|
|
282
|
-
{
|
|
283
|
-
"taskId": 42
|
|
284
|
-
}
|
|
285
|
-
```
|
|
363
|
+
---
|
|
286
364
|
|
|
287
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
511
|
-
```json
|
|
512
|
-
{
|
|
513
|
-
"taskId": 42
|
|
514
|
-
}
|
|
515
|
-
```
|
|
638
|
+
---
|
|
516
639
|
|
|
517
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
551
|
-
```json
|
|
552
|
-
{
|
|
553
|
-
"taskId": 42
|
|
554
|
-
}
|
|
555
|
-
```
|
|
671
|
+
---
|
|
556
672
|
|
|
557
|
-
|
|
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 (
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
738
|
+
Get the total number of batches created on the protocol.
|
|
656
739
|
|
|
657
740
|
**Parameters:** None
|
|
658
741
|
|
|
659
|
-
|
|
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 (
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
811
|
+
Get the total number of collectives created.
|
|
762
812
|
|
|
763
813
|
**Parameters:** None
|
|
764
814
|
|
|
765
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
882
|
+
Get the total number of disputes filed across the protocol.
|
|
840
883
|
|
|
841
884
|
**Parameters:** None
|
|
842
885
|
|
|
843
|
-
|
|
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 (
|
|
899
|
+
### Agent Insurance (6 Tools)
|
|
848
900
|
|
|
849
901
|
Tools for task failure insurance on the AgentInsurance contract.
|
|
850
902
|
|
|
851
|
-
#### `
|
|
903
|
+
#### `join_insurance_pool`
|
|
852
904
|
|
|
853
|
-
|
|
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
|
-
|
|
|
910
|
+
| contribution | string | Yes | Contribution amount in ETH (min 0.01) |
|
|
859
911
|
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
#### `
|
|
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
|
-
|
|
957
|
+
Governance member votes on an insurance claim.
|
|
906
958
|
|
|
907
|
-
**
|
|
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 (
|
|
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.
|
|
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.
|
|
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
|
-
|
|
945
|
-
```json
|
|
946
|
-
{
|
|
947
|
-
"receiptId": 42
|
|
948
|
-
}
|
|
949
|
-
```
|
|
991
|
+
---
|
|
950
992
|
|
|
951
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|