@wowok/agent-mcp 2.2.11 → 2.2.13

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 (93) hide show
  1. package/dist/docs/index.d.ts +3 -0
  2. package/dist/docs/index.js +2 -0
  3. package/dist/docs/loader.d.ts +12 -0
  4. package/dist/docs/loader.js +177 -0
  5. package/dist/docs/search.d.ts +17 -0
  6. package/dist/docs/search.js +325 -0
  7. package/dist/docs/types.d.ts +55 -0
  8. package/dist/docs/types.js +1 -0
  9. package/dist/index.d.ts +12 -0
  10. package/dist/index.js +146 -39
  11. package/docs/README.md +249 -0
  12. package/docs/WIP.md +388 -0
  13. package/docs/WTS.md +536 -0
  14. package/docs/docs/account.md +914 -0
  15. package/docs/docs/allocation.md +635 -0
  16. package/docs/docs/arbitration.md +1804 -0
  17. package/docs/docs/arbitration_state_machine.md +270 -0
  18. package/docs/docs/contact.md +709 -0
  19. package/docs/docs/demand.md +948 -0
  20. package/docs/docs/guard.md +1465 -0
  21. package/docs/docs/localinfo.md +432 -0
  22. package/docs/docs/localmark.md +583 -0
  23. package/docs/docs/machine.md +2490 -0
  24. package/docs/docs/messenger.md +2098 -0
  25. package/docs/docs/onchain_events.md +267 -0
  26. package/docs/docs/order.md +1001 -0
  27. package/docs/docs/payment.md +512 -0
  28. package/docs/docs/permission.md +1438 -0
  29. package/docs/docs/personal.md +742 -0
  30. package/docs/docs/progress.md +1748 -0
  31. package/docs/docs/query.md +467 -0
  32. package/docs/docs/repository.md +1043 -0
  33. package/docs/docs/reward.md +833 -0
  34. package/docs/docs/service.md +2130 -0
  35. package/docs/docs/stage-01-introduction.md +243 -0
  36. package/docs/docs/stage-02-trust.md +302 -0
  37. package/docs/docs/stage-03-collaboration.md +337 -0
  38. package/docs/docs/stage-04-transaction.md +277 -0
  39. package/docs/docs/stage-05-business.md +151 -0
  40. package/docs/docs/stage-06-personal.md +203 -0
  41. package/docs/docs/stage-07-query.md +572 -0
  42. package/docs/docs/stage-08-examples.md +184 -0
  43. package/docs/docs/treasury.md +1149 -0
  44. package/docs/docs/wowok_buildin_info.md +740 -0
  45. package/docs/examples/Insurance/Insurance.md +594 -0
  46. package/docs/examples/Insurance/Insurance_TestResults.md +481 -0
  47. package/docs/examples/Insurance/insurance_complete_guard_v1.json +50 -0
  48. package/docs/examples/MyShop/MyShop.md +1353 -0
  49. package/docs/examples/MyShop/MyShop_TestResults.md +1003 -0
  50. package/docs/examples/MyShop_Advanced/MyShop_Advanced.md +1898 -0
  51. package/docs/examples/MyShop_Advanced/MyShop_Advanced_MerchantSystem_TestResults.md +1297 -0
  52. package/docs/examples/MyShop_Advanced/MyShop_Advanced_OrderFlow_TestResults.md +743 -0
  53. package/docs/examples/MyShop_Advanced/machine_nodes.json +222 -0
  54. package/docs/examples/ThreeBody_Signature/ThreeBody_Signature.md +776 -0
  55. package/docs/examples/ThreeBody_Signature/ThreeBody_Signature_TestResults.md +599 -0
  56. package/docs/examples/Travel/Travel.md +1157 -0
  57. package/docs/examples/Travel/Travel_TestResults.md +743 -0
  58. package/docs/examples/Travel/calc-weather-timestamps.js +8 -0
  59. package/docs/examples/Travel/travel_machine_v2_export.json +104 -0
  60. package/docs/examples/Travel/weather_check_guard_v1.json +51 -0
  61. package/docs/skills/WOWOK.md +650 -0
  62. package/docs/skills/onchain_operations/_common.md +406 -0
  63. package/docs/skills/onchain_operations/_index.md +196 -0
  64. package/docs/skills/onchain_operations/allocation.md +28 -0
  65. package/docs/skills/onchain_operations/arbitration.md +106 -0
  66. package/docs/skills/onchain_operations/contact.md +40 -0
  67. package/docs/skills/onchain_operations/demand.md +53 -0
  68. package/docs/skills/onchain_operations/gen_passport.md +23 -0
  69. package/docs/skills/onchain_operations/guard.md +56 -0
  70. package/docs/skills/onchain_operations/machine.md +89 -0
  71. package/docs/skills/onchain_operations/order.md +56 -0
  72. package/docs/skills/onchain_operations/payment.md +24 -0
  73. package/docs/skills/onchain_operations/permission.md +68 -0
  74. package/docs/skills/onchain_operations/personal.md +58 -0
  75. package/docs/skills/onchain_operations/progress.md +38 -0
  76. package/docs/skills/onchain_operations/repository.md +70 -0
  77. package/docs/skills/onchain_operations/reward.md +38 -0
  78. package/docs/skills/onchain_operations/service.md +78 -0
  79. package/docs/skills/onchain_operations/treasury.md +68 -0
  80. package/docs/skills/schema-account_operation.md +402 -0
  81. package/docs/skills/schema-guard2file.md +153 -0
  82. package/docs/skills/schema-local_info_operation.md +160 -0
  83. package/docs/skills/schema-local_mark_operation.md +148 -0
  84. package/docs/skills/schema-machineNode2file.md +155 -0
  85. package/docs/skills/schema-messenger_operation.md +547 -0
  86. package/docs/skills/schema-onchain_events.md +201 -0
  87. package/docs/skills/schema-onchain_table_data.md +334 -0
  88. package/docs/skills/schema-query_toolkit.md +395 -0
  89. package/docs/skills/schema-wip_file.md +240 -0
  90. package/docs/skills/schema-wowok_buildin_info.md +296 -0
  91. package/docs/wip-examples/three_body.html +57 -0
  92. package/docs/wip-examples/three_body.wip +30 -0
  93. package/package.json +3 -2
@@ -0,0 +1,1804 @@
1
+
2
+ # Arbitration Component (⚖️ Dispute Resolution)
3
+
4
+ ---
5
+
6
+ ## Component Overview
7
+
8
+ The Arbitration component is WoWok protocol's on-chain dispute resolution module, providing a transparent arbitration system for resolving order conflicts. Arbitration objects can be created with configurable voting rules, receive dispute submissions, confirm materials, vote on propositions, and provide final arbitration results.
9
+
10
+ ---
11
+
12
+ ## Function List
13
+
14
+ | Function Name | Purpose | Usage Scenario | Significance |
15
+ |---------------|---------|----------------|-------------|
16
+ | **Create Arbitration** | Set up dispute resolution system | Establish order governance | Provides framework for fair conflict resolution |
17
+ | **Initiate Dispute** | File conflict case | Report order issues, service failures | Formalizes dispute submission |
18
+ | **Confirm Materials** | Validate evidence submission | Review dispute documents | Ensures arbitration based on verified data |
19
+ | **Vote on Propositions** | Participate in decision-making | Jury voting, governance | Enables democratic dispute resolution |
20
+ | **Issue Ruling** | Deliver final arbitration result | Resolve conflicts, decide compensation | Concludes dispute with binding outcome |
21
+
22
+ ---
23
+
24
+ ## Complete Tool Call Structure
25
+
26
+ Arbitration operations use the following top-level structure:
27
+
28
+ ```json
29
+ {
30
+ "operation_type": "arbitration",
31
+ "data": { ... }, // Arbitration data definition
32
+ "env": { ... }, // Execution environment (optional)
33
+ "submission": { ... } // Guard verification submission (optional)
34
+ }
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Schema Tree
40
+
41
+ ```
42
+ arbitration (Arbitration Object)
43
+ ├── operation_type: "arbitration" (fixed value)
44
+ ├── data (Arbitration data definition)
45
+ │ ├── object (TypedPermissionObject, required) - Arbitration object reference or creation
46
+ │ │ ├── Option 1: Reference existing object (string) - object name or ID
47
+ │ │ └── Option 2: Create new object (object)
48
+ │ │ ├── name (string, optional) - local mark name, max 64 bcs characters
49
+ │ │ ├── tags (array of string, optional) - tags array
50
+ │ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
51
+ │ │ ├── replaceExistName (boolean, optional) - force claim existing name
52
+ │ │ ├── type_parameter (string, optional) - token type, default: 0x2::wow::WOW
53
+ │ │ └── permission (string | object, optional) - Permission object ID/name or new permission object
54
+ │ │ ├── Option 1: Existing permission ID/name (string)
55
+ │ │ └── Option 2: New permission object (object)
56
+ │ │ ├── name (string, optional) - permission name
57
+ │ │ ├── tags (array of string, optional) - tags array
58
+ │ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
59
+ │ │ └── replaceExistName (boolean, optional) - force claim existing name
60
+ │ ├── description (string, optional) - arbitration description, max 4000 bcs characters
61
+ │ ├── location (string, optional) - arbitration location, max 256 bcs characters
62
+ │ ├── fee (number or string, optional) - arbitration fee in smallest units
63
+ │ ├── pause (boolean, optional) - whether to pause arbitration
64
+ │ ├── dispute (Dispute object, optional) - create dispute for order
65
+ │ │ ├── order (string, required) - order object ID or name
66
+ │ │ ├── description (string, optional) - dispute description, max 4000 bcs characters
67
+ │ │ ├── proposition (array of string, required) - list of dispute propositions, each max 256 bcs characters
68
+ │ │ ├── fee (CoinParam, required) - dispute processing fee
69
+ │ │ │ ├── Option 1: Balance object (object)
70
+ │ │ │ │ └── balance (number) - balance amount
71
+ │ │ │ └── Option 2: Coin object ID (string)
72
+ │ │ └── namedArb (NamedObject, optional) - name for the newly created Arb object
73
+ │ │ ├── name (string, optional) - arb object name
74
+ │ │ ├── tags (array of string, optional) - tags array
75
+ │ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
76
+ │ │ └── replaceExistName (boolean, optional) - force claim existing name
77
+ │ ├── confirm (Confirm object, optional) - confirm arbitration materials
78
+ │ │ ├── arb (string, required) - Arb object ID or name
79
+ │ │ └── voting_deadline (number | null, required) - voting deadline in milliseconds
80
+ │ ├── voting_deadline_change (VotingDeadlineChange object, optional) - change voting deadline
81
+ │ │ ├── arb (string, required) - Arb object ID or name
82
+ │ │ └── voting_deadline (number | null, required) - new voting deadline in milliseconds
83
+ │ ├── vote (Vote object, optional) - vote on propositions
84
+ │ │ ├── arb (string, required) - Arb object ID or name
85
+ │ │ ├── votes (array of number, required) - vote list, each value 0-255
86
+ │ │ └── voting_guard (string, optional) - voting Guard object ID/name
87
+ │ ├── feedback (Feedback object, optional) - provide arbitration feedback
88
+ │ │ ├── arb (string, required) - Arb object ID or name
89
+ │ │ └── feedback (string, required) - arbitration feedback, max 4000 bcs characters
90
+ │ ├── arbitration (ArbitrationAction object, optional) - provide final arbitration result
91
+ │ │ ├── arb (string, required) - Arb object ID or name
92
+ │ │ ├── feedback (string, required) - arbitration feedback, max 4000 bcs characters
93
+ │ │ └── indemnity (number, required) - compensation amount in smallest units
94
+ │ ├── reset (Reset object, optional) - apply to restart arbitration
95
+ │ │ ├── arb (string, required) - Arb object ID or name
96
+ │ │ └── feedback (string, required) - arbitration feedback, max 4000 bcs characters
97
+ │ ├── arb_withdraw (ArbWithdraw object, optional) - withdraw arbitration fees
98
+ │ │ └── arb (string, required) - Arb object ID or name
99
+ │ ├── fees_transfer (FeesTransfer object, optional) - distribute arbitration fees
100
+ │ │ ├── to (FeesTransferTo object, required) - receiving object
101
+ │ │ │ ├── Option 1: Allocation reference (object)
102
+ │ │ │ │ └── allocation (string) - Allocation object ID/name
103
+ │ │ │ └── Option 2: Treasury reference (object)
104
+ │ │ │ └── treasury (string) - Treasury object ID/name
105
+ │ │ ├── payment_remark (string, required) - payment remark, max 64 bcs characters
106
+ │ │ ├── payment_index (number, required) - payment index
107
+ │ │ └── newPayment (NamedObject, optional) - name for new Payment object
108
+ │ │ ├── name (string, optional) - payment name
109
+ │ │ ├── tags (array of string, optional) - tags array
110
+ │ │ ├── onChain (boolean, optional) - whether to sync name to blockchain
111
+ │ │ └── replaceExistName (boolean, optional) - force claim existing name
112
+ │ ├── usage_guard (string | null, optional) - Guard for user verification, null to unbind
113
+ │ ├── voting_guard (VotingGuardAction object, optional) - manage voting Guards
114
+ │ │ ├── op (string, required) - operation type: "add", "set", "remove", "clear"
115
+ │ │ └── guards (array, required for add/set/remove) - list of VotingGuard objects or Guard names
116
+ │ │ └── VotingGuard object (for add/set)
117
+ │ │ ├── guard (string) - Guard object ID or name
118
+ │ │ └── vote_weight (object) - vote weight
119
+ │ │ ├── Option 1: FixedValue (object)
120
+ │ │ │ └── FixedValue (number) - fixed weight value 0-65535
121
+ │ │ └── Option 2: GuardIdentifier (object)
122
+ │ │ └── GuardIdentifier (number) - Guard table identifier 0-255
123
+ │ ├── owner_receive (ReceivedObjectsOrRecently, optional) - receive objects to owner
124
+ │ │ ├── Option 1: "recently" (string) - receive all recent objects
125
+ │ │ ├── Option 2: ReceivedBalance object (object)
126
+ │ │ │ ├── balance (number or string) - balance amount
127
+ │ │ │ ├── token_type (string) - token type
128
+ │ │ │ └── received (array of ReceivedItem) - received items list
129
+ │ │ │ └── ReceivedItem object
130
+ │ │ │ ├── id (string) - object ID
131
+ │ │ │ └── type (string) - object type
132
+ │ │ └── Option 3: Array of received objects
133
+ │ │ └── [{ id: "object_id", type: "object_type" }]
134
+ │ └── um (string | null, optional) - Contact object ID/name, null to unbind
135
+ ├── env (CallEnv, optional) - execution environment
136
+ │ ├── account (string, optional) - account name or address, empty string for default
137
+ │ ├── network (string, optional) - "testnet" or "localnet"
138
+ │ ├── permission_guard (array of string, optional) - list of permission guard IDs
139
+ │ ├── no_cache (boolean, optional) - disable caching
140
+ │ └── referrer (string, optional) - referrer ID
141
+ └── submission (SubmissionCall, optional) - submission data
142
+ ├── type (string) - fixed value "submission"
143
+ ├── guard (array of GuardInfo) - list of guards to verify
144
+ │ └── GuardInfo object
145
+ │ ├── object (string) - guard object ID
146
+ │ └── impack (boolean) - impact flag
147
+ └── submission (array of GuardSubmission) - submission data for guards
148
+ └── GuardSubmission object
149
+ ├── guard (string) - guard object ID
150
+ └── submission (array of GuardSubmissionItem) - submission items
151
+ └── GuardSubmissionItem object
152
+ ├── identifier (number, 0-255) - Guard table item identifier
153
+ ├── b_submission (boolean) - whether this item requires submission
154
+ ├── value_type (number | string) - value type (e.g., 6 or "U64" for U64 type)
155
+ ├── value (any) - submitted value
156
+ └── name (string, optional) - item name
157
+ ```
158
+
159
+ ---
160
+
161
+ ### ⚠️ Important Note About Submission
162
+
163
+ If the execution returns a `submission` field in the response, it indicates that additional Guard verification data is required. You must:
164
+
165
+ 1. Complete all required submission data within the `submission` structure
166
+ 2. Resubmit the operation with the completed submission data
167
+ 3. **Do not modify any other parts of the structure** - only fill in the required submission values
168
+
169
+ The submission structure will specify which Guard objects need verification and what data needs to be provided for each Guard table item.
170
+
171
+ **Query Value Types**: Use the `wowok_buildin_info` tool with `{ "info": "value types" }` to query all supported value types with their numeric and string representations. This helps you understand what `value_type` values are valid for submission data.
172
+
173
+ ---
174
+
175
+ ## Sub-feature 1: Create New Arbitration
176
+
177
+ ### Feature Description
178
+
179
+ Create a new Arbitration object for resolving order disputes. Newly created arbitrations can be configured with descriptions, locations, fees, and voting guards.
180
+
181
+ ### Parameter Description
182
+
183
+ | Parameter Path | Type | Required | Description | Constraints |
184
+ |----------|------|------|------|------|
185
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
186
+ | `data.object` | object | Yes | Create new Arbitration | TypedPermissionObject structure |
187
+ | `data.object.name` | string | No | Local mark name | Max 64 BCS characters |
188
+ | `data.object.tags` | array | No | Tags array | String array |
189
+ | `data.object.onChain` | boolean | No | Whether to mark on-chain | |
190
+ | `data.object.replaceExistName` | boolean | No | Replace existing name | |
191
+ | `data.object.permission` | string/object | No | Permission object | Can be existing permission ID/name, or new permission object |
192
+ | `data.object.type_parameter` | string | No | Token type | Default: 0x2::wow::WOW |
193
+ | `data.description` | string | No | Arbitration description | Max 4000 bcs characters |
194
+ | `data.location` | string | No | Arbitration location | Max 256 BCS characters |
195
+ | `data.fee` | number or string | No | Arbitration fee in smallest units | No decimals or negatives |
196
+
197
+ ---
198
+
199
+ ### Examples
200
+
201
+ #### Example 1.1: Create Simple Arbitration
202
+
203
+ **Prompt**: Create a new arbitration named "doc_test_arbitration" with: 1) Permission "arb_test_permission", 2) Description "Arbitration for documentation testing", 3) Location "Online arbitration system", 4) Fee at 1000000000 (1 WOW).
204
+
205
+ ```json
206
+ {
207
+ "operation_type": "arbitration",
208
+ "data": {
209
+ "object": {
210
+ "name": "doc_test_arbitration",
211
+ "permission": "arb_test_permission",
212
+ "type_parameter": "0x2::wow::WOW",
213
+ "tags": ["arbitration", "test", "doc"],
214
+ "onChain": false
215
+ },
216
+ "description": "Arbitration for documentation testing",
217
+ "location": "Online arbitration system",
218
+ "fee": 1000000000
219
+ },
220
+ "env": {
221
+ "account": "arbitration_test_account",
222
+ "network": "testnet",
223
+ "no_cache": true
224
+ }
225
+ }
226
+ ```
227
+
228
+ **Execution Result**:
229
+ ```json
230
+ {
231
+ "status": "success",
232
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
233
+ "type": "Arbitration",
234
+ "version": "1413284",
235
+ "change": "created"
236
+ }
237
+ ```
238
+
239
+ #### Example 1.2: Create Arbitration with New Permission and Guards
240
+
241
+ **Prompt**: Create arbitration "product_arbitration" with: 1) New permission named "arb_permission", 2) Description "Product quality arbitration", 3) Usage guard "eligibility_guard", 4) Voting guards: "senior_judge" with FixedValue 100, "junior_judge" with GuardIdentifier 5.
242
+
243
+ ```json
244
+ {
245
+ "operation_type": "arbitration",
246
+ "data": {
247
+ "object": {
248
+ "name": "product_arbitration",
249
+ "permission": {
250
+ "name": "arb_permission"
251
+ }
252
+ },
253
+ "description": "Product quality arbitration",
254
+ "usage_guard": "eligibility_guard",
255
+ "voting_guard": {
256
+ "op": "add",
257
+ "guards": [
258
+ {
259
+ "guard": "senior_judge",
260
+ "vote_weight": {
261
+ "FixedValue": 100
262
+ }
263
+ },
264
+ {
265
+ "guard": "junior_judge",
266
+ "vote_weight": {
267
+ "GuardIdentifier": 5
268
+ }
269
+ }
270
+ ]
271
+ }
272
+ }
273
+ }
274
+ ```
275
+
276
+ ---
277
+
278
+ ## Sub-feature 2: Create Dispute (dispute)
279
+
280
+ ### Feature Description
281
+
282
+ Create a new Arb object for an order to initiate dispute arbitration.
283
+
284
+ ### Parameter Description
285
+
286
+ | Parameter Path | Type | Required | Description | Constraints |
287
+ |----------|------|------|------|------|
288
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
289
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
290
+ | `data.dispute.order` | string | Yes | Order object ID or name | |
291
+ | `data.dispute.description` | string | No | Dispute description | Max 4000 bcs characters |
292
+ | `data.dispute.proposition` | array | Yes | List of dispute propositions | String array |
293
+ | `data.dispute.fee` | object/string | Yes | Dispute processing fee | CoinParam structure |
294
+ | `data.dispute.namedArb.name` | string | No | Name for the newly created arbitration object | Max 64 BCS characters |
295
+
296
+ ---
297
+
298
+ ### Example
299
+
300
+ #### Example 2.1: Create Dispute
301
+
302
+ **Prompt**: Create a dispute for "doc_test_arbitration" with: 1) Order "arb_test_order", 2) Description "Product quality does not match description", 3) Propositions ["Full refund", "Partial refund 50%", "No refund"], 4) Fee 1000000000 (1 WOW), 5) Name new dispute "test_dispute_2026".
303
+
304
+ ```json
305
+ {
306
+ "operation_type": "arbitration",
307
+ "data": {
308
+ "object": "doc_test_arbitration",
309
+ "dispute": {
310
+ "order": "arb_test_order",
311
+ "description": "Product quality does not match description",
312
+ "proposition": ["Full refund", "Partial refund 50%", "No refund"],
313
+ "fee": {
314
+ "balance": 1000000000
315
+ },
316
+ "namedArb": {
317
+ "name": "test_dispute_2026",
318
+ "onChain": false
319
+ }
320
+ }
321
+ },
322
+ "env": {
323
+ "account": "arbitration_test_account",
324
+ "network": "testnet",
325
+ "no_cache": true
326
+ }
327
+ }
328
+ ```
329
+
330
+ **Execution Result**:
331
+ ```json
332
+ {
333
+ "status": "success",
334
+ "results": [
335
+ {
336
+ "object": "0x2b1439093329363d108a9eef44414c3ae916762c030b63457ebfb351af7b5cc0",
337
+ "type": "Order",
338
+ "version": "1415870",
339
+ "change": "mutated"
340
+ },
341
+ {
342
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
343
+ "type": "Arbitration",
344
+ "version": "1415870",
345
+ "change": "mutated"
346
+ },
347
+ {
348
+ "object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
349
+ "type": "Arb",
350
+ "version": "1415870",
351
+ "change": "created"
352
+ }
353
+ ]
354
+ }
355
+ ```
356
+
357
+ ---
358
+
359
+ ## Sub-feature 3: Confirm Materials (confirm)
360
+
361
+ ### Feature Description
362
+
363
+ Confirm the arbitration materials submitted by the user.
364
+
365
+ ### Parameter Description
366
+
367
+ | Parameter Path | Type | Required | Description | Constraints |
368
+ |----------|------|------|------|------|
369
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
370
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
371
+ | `data.confirm.arb` | string | Yes | Arb object ID or name | |
372
+ | `data.confirm.voting_deadline` | number or null | Yes | Voting deadline (milliseconds) | No decimals or negatives, or null |
373
+
374
+ ---
375
+
376
+ ### Example
377
+
378
+ #### Example 3.1: Confirm Materials with Voting Deadline
379
+
380
+ **Prompt**: For "doc_test_arbitration", confirm materials for "test_dispute_2026" with voting deadline at 1777830400000.
381
+
382
+ ```json
383
+ {
384
+ "operation_type": "arbitration",
385
+ "data": {
386
+ "object": "doc_test_arbitration",
387
+ "confirm": {
388
+ "arb": "test_dispute_2026",
389
+ "voting_deadline": 1777830400000
390
+ }
391
+ },
392
+ "env": {
393
+ "account": "arbitration_test_account",
394
+ "network": "testnet",
395
+ "no_cache": true
396
+ }
397
+ }
398
+ ```
399
+
400
+ **Execution Result**:
401
+ ```json
402
+ {
403
+ "status": "success",
404
+ "object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
405
+ "type": "Arb",
406
+ "version": "1415871",
407
+ "change": "mutated"
408
+ }
409
+ ```
410
+
411
+ ---
412
+
413
+ ## Sub-feature 4: Change Voting Deadline (voting_deadline_change)
414
+
415
+ ### Feature Description
416
+
417
+ Change the voting deadline for arbitration.
418
+
419
+ ### Parameter Description
420
+
421
+ | Parameter Path | Type | Required | Description | Constraints |
422
+ |----------|------|------|------|------|
423
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
424
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
425
+ | `data.voting_deadline_change.arb` | string | Yes | Arb object ID or name | |
426
+ | `data.voting_deadline_change.voting_deadline` | number or null | Yes | New voting deadline (milliseconds) | No decimals or negatives, or null |
427
+
428
+ ---
429
+
430
+ ### Example
431
+
432
+ #### Example 4.1: Remove Voting Deadline
433
+
434
+ **Prompt**: For "service_arbitration", remove voting deadline for "order_123_dispute" (set to null).
435
+
436
+ ```json
437
+ {
438
+ "operation_type": "arbitration",
439
+ "data": {
440
+ "object": "service_arbitration",
441
+ "voting_deadline_change": {
442
+ "arb": "order_123_dispute",
443
+ "voting_deadline": null
444
+ }
445
+ }
446
+ }
447
+ ```
448
+
449
+ ---
450
+
451
+ ## Sub-feature 5: Vote (vote)
452
+
453
+ ### Feature Description
454
+
455
+ Vote on user propositions.
456
+
457
+ ### Parameter Description
458
+
459
+ | Parameter Path | Type | Required | Description | Constraints |
460
+ |----------|------|------|------|------|
461
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
462
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
463
+ | `data.vote.arb` | string | Yes | Arb object ID or name | |
464
+ | `data.vote.votes` | array | Yes | Vote list | Each value 0-255 |
465
+ | `data.vote.voting_guard` | string | No | Voting Guard object ID/name | |
466
+
467
+ ---
468
+
469
+ ### Example
470
+
471
+ #### Example 5.1: Vote on Propositions
472
+
473
+ **Prompt**: For "service_arbitration", vote on "order_123_dispute" with votes [200, 100, 50] using "senior_judge" guard.
474
+
475
+ ```json
476
+ {
477
+ "operation_type": "arbitration",
478
+ "data": {
479
+ "object": "service_arbitration",
480
+ "vote": {
481
+ "arb": "order_123_dispute",
482
+ "votes": [200, 100, 50],
483
+ "voting_guard": "senior_judge"
484
+ }
485
+ }
486
+ }
487
+ ```
488
+
489
+ ---
490
+
491
+ ## Sub-feature 6: Provide Feedback (feedback)
492
+
493
+ ### Feature Description
494
+
495
+ Provide arbitration feedback for an Arb object.
496
+
497
+ ### Parameter Description
498
+
499
+ | Parameter Path | Type | Required | Description | Constraints |
500
+ |----------|------|------|------|------|
501
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
502
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
503
+ | `data.feedback.arb` | string | Yes | Arb object ID or name | |
504
+ | `data.feedback.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
505
+
506
+ ---
507
+
508
+ ### Example
509
+
510
+ #### Example 6.1: Provide Feedback
511
+
512
+ **Prompt**: For "doc_test_arbitration", provide feedback on "test_dispute_2026" that "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
513
+
514
+ ```json
515
+ {
516
+ "operation_type": "arbitration",
517
+ "data": {
518
+ "object": "doc_test_arbitration",
519
+ "feedback": {
520
+ "arb": "test_dispute_2026",
521
+ "feedback": "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
522
+ }
523
+ },
524
+ "env": {
525
+ "account": "arbitration_test_account",
526
+ "network": "testnet",
527
+ "no_cache": true
528
+ }
529
+ }
530
+ ```
531
+
532
+ **Execution Result**:
533
+ ```json
534
+ {
535
+ "status": "success",
536
+ "object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
537
+ "type": "Arb",
538
+ "version": "1415872",
539
+ "change": "mutated"
540
+ }
541
+ ```
542
+
543
+ ---
544
+
545
+ ## Sub-feature 7: Give Arbitration Result (arbitration)
546
+
547
+ ### Feature Description
548
+
549
+ Provide the final arbitration result.
550
+
551
+ ### Parameter Description
552
+
553
+ | Parameter Path | Type | Required | Description | Constraints |
554
+ |----------|------|------|------|------|
555
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
556
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
557
+ | `data.arbitration.arb` | string | Yes | Arb object ID or name | |
558
+ | `data.arbitration.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
559
+ | `data.arbitration.indemnity` | number | Yes | Compensation amount in smallest units | No decimals or negatives |
560
+
561
+ ---
562
+
563
+ ### Example
564
+
565
+ #### Example 7.1: Give Arbitration Result
566
+
567
+ **Prompt**: For "service_arbitration", give final result on "order_123_dispute": 1) Feedback "Based on all evidence, buyer wins the case", 2) Indemnity 5000000000 (5 WOW).
568
+
569
+ ```json
570
+ {
571
+ "operation_type": "arbitration",
572
+ "data": {
573
+ "object": "service_arbitration",
574
+ "arbitration": {
575
+ "arb": "order_123_dispute",
576
+ "feedback": "Based on all evidence, buyer wins the case",
577
+ "indemnity": 5000000000
578
+ }
579
+ }
580
+ }
581
+ ```
582
+
583
+ ---
584
+
585
+ ## Sub-feature 8: Reset Arbitration (reset)
586
+
587
+ ### Feature Description
588
+
589
+ User applies to resubmit materials and restart arbitration.
590
+
591
+ ### Parameter Description
592
+
593
+ | Parameter Path | Type | Required | Description | Constraints |
594
+ |----------|------|------|------|------|
595
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
596
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
597
+ | `data.reset.arb` | string | Yes | Arb object ID or name | |
598
+ | `data.reset.feedback` | string | Yes | Arbitration feedback | Max 4000 bcs characters |
599
+
600
+ ---
601
+
602
+ ### Example
603
+
604
+ #### Example 8.1: Reset Arbitration
605
+
606
+ **Prompt**: For "service_arbitration", apply to reset "order_123_dispute" with feedback "New evidence discovered, request to resubmit materials".
607
+
608
+ ```json
609
+ {
610
+ "operation_type": "arbitration",
611
+ "data": {
612
+ "object": "service_arbitration",
613
+ "reset": {
614
+ "arb": "order_123_dispute",
615
+ "feedback": "New evidence discovered, request to resubmit materials"
616
+ }
617
+ }
618
+ }
619
+ ```
620
+
621
+ ---
622
+
623
+ ## Sub-feature 9: Withdraw Arbitration Fee (arb_withdraw)
624
+
625
+ ### Feature Description
626
+
627
+ Withdraw arbitration fees from the Arb object.
628
+
629
+ ### Parameter Description
630
+
631
+ | Parameter Path | Type | Required | Description | Constraints |
632
+ |----------|------|------|------|------|
633
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
634
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
635
+ | `data.arb_withdraw.arb` | string | Yes | Arb object ID or name | |
636
+
637
+ ---
638
+
639
+ ### Example
640
+
641
+ #### Example 9.1: Withdraw Arbitration Fee
642
+
643
+ **Prompt**: For "service_arbitration", withdraw fee from "order_123_dispute".
644
+
645
+ ```json
646
+ {
647
+ "operation_type": "arbitration",
648
+ "data": {
649
+ "object": "service_arbitration",
650
+ "arb_withdraw": {
651
+ "arb": "order_123_dispute"
652
+ }
653
+ }
654
+ }
655
+ ```
656
+
657
+ ---
658
+
659
+ ## Sub-feature 10: Distribute Arbitration Fees (fees_transfer)
660
+
661
+ ### Feature Description
662
+
663
+ Distribute withdrawn arbitration fees.
664
+
665
+ ### Parameter Description
666
+
667
+ | Parameter Path | Type | Required | Description | Constraints |
668
+ |----------|------|------|------|------|
669
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
670
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
671
+ | `data.fees_transfer.to` | object | Yes | Receiving object | Must have either "allocation" or "treasury" |
672
+ | `data.fees_transfer.to.allocation` | string | No | Allocation object ID/name | |
673
+ | `data.fees_transfer.to.treasury` | string | No | Treasury object ID/name | |
674
+ | `data.fees_transfer.payment_remark` | string | Yes | Payment remark | Max 64 BCS characters |
675
+ | `data.fees_transfer.payment_index` | number | Yes | Payment index | No decimals or negatives |
676
+ | `data.fees_transfer.newPayment.name` | string | No | Name for the newly created Payment object | Max 64 BCS characters |
677
+
678
+ ---
679
+
680
+ ### Examples
681
+
682
+ #### Example 10.1: Distribute to Allocation
683
+
684
+ **Prompt**: For "service_arbitration", distribute fees to "fee_allocation" with: 1) Remark "Arbitration fee distribution", 2) Index 0, 3) Name new payment "fee_payment".
685
+
686
+ ```json
687
+ {
688
+ "operation_type": "arbitration",
689
+ "data": {
690
+ "object": "service_arbitration",
691
+ "fees_transfer": {
692
+ "to": {
693
+ "allocation": "fee_allocation"
694
+ },
695
+ "payment_remark": "Arbitration fee distribution",
696
+ "payment_index": 0,
697
+ "newPayment": {
698
+ "name": "fee_payment"
699
+ }
700
+ }
701
+ }
702
+ }
703
+ ```
704
+
705
+ #### Example 10.2: Distribute to Treasury
706
+
707
+ **Prompt**: For "service_arbitration", distribute fees to "platform_treasury" with: 1) Remark "Arbitration fees to platform", 2) Index 0.
708
+
709
+ ```json
710
+ {
711
+ "operation_type": "arbitration",
712
+ "data": {
713
+ "object": "service_arbitration",
714
+ "fees_transfer": {
715
+ "to": {
716
+ "treasury": "platform_treasury"
717
+ },
718
+ "payment_remark": "Arbitration fees to platform",
719
+ "payment_index": 0
720
+ }
721
+ }
722
+ }
723
+ ```
724
+
725
+ ---
726
+
727
+ ## Sub-feature 11: Set Usage Guard (usage_guard)
728
+
729
+ ### Feature Description
730
+
731
+ Set the verification Guard for users applying for arbitration.
732
+
733
+ ### Parameter Description
734
+
735
+ | Parameter Path | Type | Required | Description | Constraints |
736
+ |----------|------|------|------|------|
737
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
738
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
739
+ | `data.usage_guard` | string or null | Yes | Guard object ID/name, or null to unbind | |
740
+
741
+ ---
742
+
743
+ ### Examples
744
+
745
+ #### Example 11.1: Set Usage Guard
746
+
747
+ **Prompt**: For "service_arbitration", set usage guard to "eligibility_check".
748
+
749
+ ```json
750
+ {
751
+ "operation_type": "arbitration",
752
+ "data": {
753
+ "object": "service_arbitration",
754
+ "usage_guard": "eligibility_check"
755
+ }
756
+ }
757
+ ```
758
+
759
+ #### Example 11.2: Unbind Usage Guard
760
+
761
+ **Prompt**: For "service_arbitration", unbind usage guard (set to null).
762
+
763
+ ```json
764
+ {
765
+ "operation_type": "arbitration",
766
+ "data": {
767
+ "object": "service_arbitration",
768
+ "usage_guard": null
769
+ }
770
+ }
771
+ ```
772
+
773
+ ---
774
+
775
+ ## Sub-feature 12: Manage Voting Guards (voting_guard)
776
+
777
+ ### Feature Description
778
+
779
+ Manage the verification Guards for arbitration voting.
780
+
781
+ ### Parameter Description
782
+
783
+ | Parameter Path | Type | Required | Description | Constraints |
784
+ |----------|------|------|------|------|
785
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
786
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
787
+ | `data.voting_guard.op` | string | Yes | Operation type | "add", "set", "remove", or "clear" |
788
+ | `data.voting_guard.guards` | array | Required for add/set/remove | List of VotingGuard objects or Guard names |
789
+
790
+ ### Operation Type Description
791
+
792
+ | Operation Type | Description |
793
+ |----------------|-------------|
794
+ | `add` | Add new Guard to existing list |
795
+ | `set` | Replace entire Guard list |
796
+ | `remove` | Remove specified Guard (use ID or name) |
797
+ | `clear` | Clear all Guards |
798
+
799
+ ---
800
+
801
+ ### Examples
802
+
803
+ #### Example 12.1: Add Voting Guard
804
+
805
+ **Prompt**: For "service_arbitration", add voting guard "expert_judge" with FixedValue 50.
806
+
807
+ ```json
808
+ {
809
+ "operation_type": "arbitration",
810
+ "data": {
811
+ "object": "service_arbitration",
812
+ "voting_guard": {
813
+ "op": "add",
814
+ "guards": [
815
+ {
816
+ "guard": "expert_judge",
817
+ "vote_weight": {
818
+ "FixedValue": 50
819
+ }
820
+ }
821
+ ]
822
+ }
823
+ }
824
+ }
825
+ ```
826
+
827
+ #### Example 12.2: Set Voting Guard List
828
+
829
+ **Prompt**: For "service_arbitration", set voting guards to only "chief_judge" with GuardIdentifier 10.
830
+
831
+ ```json
832
+ {
833
+ "operation_type": "arbitration",
834
+ "data": {
835
+ "object": "service_arbitration",
836
+ "voting_guard": {
837
+ "op": "set",
838
+ "guards": [
839
+ {
840
+ "guard": "chief_judge",
841
+ "vote_weight": {
842
+ "GuardIdentifier": 10
843
+ }
844
+ }
845
+ ]
846
+ }
847
+ }
848
+ }
849
+ ```
850
+
851
+ #### Example 12.3: Remove Voting Guard
852
+
853
+ **Prompt**: For "service_arbitration", remove voting guard "old_judge".
854
+
855
+ ```json
856
+ {
857
+ "operation_type": "arbitration",
858
+ "data": {
859
+ "object": "service_arbitration",
860
+ "voting_guard": {
861
+ "op": "remove",
862
+ "guards": ["old_judge"]
863
+ }
864
+ }
865
+ }
866
+ ```
867
+
868
+ #### Example 12.4: Clear All Voting Guards
869
+
870
+ **Prompt**: For "service_arbitration", clear all voting guards.
871
+
872
+ ```json
873
+ {
874
+ "operation_type": "arbitration",
875
+ "data": {
876
+ "object": "service_arbitration",
877
+ "voting_guard": {
878
+ "op": "clear"
879
+ }
880
+ }
881
+ }
882
+ ```
883
+
884
+ ---
885
+
886
+ ## Sub-feature 13: Pause/Resume (pause)
887
+
888
+ ### Feature Description
889
+
890
+ Pause or resume arbitration.
891
+
892
+ ### Parameter Description
893
+
894
+ | Parameter Path | Type | Required | Description | Constraints |
895
+ |----------|------|------|------|------|
896
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
897
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
898
+ | `data.pause` | boolean | Yes | Whether to pause | |
899
+
900
+ ---
901
+
902
+ ### Examples
903
+
904
+ #### Example 13.1: Pause Arbitration
905
+
906
+ **Prompt**: For "service_arbitration", pause arbitration operations.
907
+
908
+ ```json
909
+ {
910
+ "operation_type": "arbitration",
911
+ "data": {
912
+ "object": "service_arbitration",
913
+ "pause": true
914
+ }
915
+ }
916
+ ```
917
+
918
+ #### Example 13.2: Resume Arbitration
919
+
920
+ **Prompt**: For "service_arbitration", resume arbitration operations.
921
+
922
+ ```json
923
+ {
924
+ "operation_type": "arbitration",
925
+ "data": {
926
+ "object": "service_arbitration",
927
+ "pause": false
928
+ }
929
+ }
930
+ ```
931
+
932
+ ---
933
+
934
+ ## Sub-feature 14: Bind Contact (um)
935
+
936
+ ### Feature Description
937
+
938
+ Bind a Contact object to Arbitration.
939
+
940
+ ### Parameter Description
941
+
942
+ | Parameter Path | Type | Required | Description | Constraints |
943
+ |----------|------|------|------|------|
944
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
945
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
946
+ | `data.um` | string or null | Yes | Contact object ID/name, or null to unbind | |
947
+
948
+ ---
949
+
950
+ ### Examples
951
+
952
+ #### Example 14.1: Bind Contact
953
+
954
+ **Prompt**: For "service_arbitration", bind contact "arb_support".
955
+
956
+ ```json
957
+ {
958
+ "operation_type": "arbitration",
959
+ "data": {
960
+ "object": "service_arbitration",
961
+ "um": "arb_support"
962
+ }
963
+ }
964
+ ```
965
+
966
+ #### Example 14.2: Unbind Contact
967
+
968
+ **Prompt**: For "service_arbitration", unbind contact (set to null).
969
+
970
+ ```json
971
+ {
972
+ "operation_type": "arbitration",
973
+ "data": {
974
+ "object": "service_arbitration",
975
+ "um": null
976
+ }
977
+ }
978
+ ```
979
+
980
+ ---
981
+
982
+ ## Sub-feature 15: Receive Objects (owner_receive)
983
+
984
+ ### Feature Description
985
+
986
+ Receive objects sent to this Arbitration object and unpack them to send to the permission owner.
987
+
988
+ ### Parameter Description
989
+
990
+ | Parameter Path | Type | Required | Description | Constraints |
991
+ |----------|------|------|------|------|
992
+ | `operation_type` | string | Yes | Operation type | Fixed value "arbitration" |
993
+ | `data.object` | string | Yes | Reference existing Arbitration | Arbitration name or ID |
994
+ | `data.owner_receive` | string/object/array | No | Receive objects configuration | "recently" or ReceivedBalance object or array |
995
+
996
+ ---
997
+
998
+ ### Examples
999
+
1000
+ #### Example 15.1: Receive Recent Objects
1001
+
1002
+ **Prompt**: For "service_arbitration", receive all recent objects.
1003
+
1004
+ ```json
1005
+ {
1006
+ "operation_type": "arbitration",
1007
+ "data": {
1008
+ "object": "service_arbitration",
1009
+ "owner_receive": "recently"
1010
+ }
1011
+ }
1012
+ ```
1013
+
1014
+ ---
1015
+
1016
+ ## Sub-feature 16: Combined Operations
1017
+
1018
+ ### Feature Description
1019
+
1020
+ Execute multiple operations in a single call.
1021
+
1022
+ ---
1023
+
1024
+ ### Example
1025
+
1026
+ #### Example 16.1: Complete Arbitration Setup
1027
+
1028
+ **Prompt**: Create "complete_arbitration" with: 1) Permission "arbitration_permission", 2) Description "Full-featured arbitration", 3) Location "Online", 4) Fee 1000000000 (1 WOW), 5) Usage guard "eligibility_guard", 6) Add voting guard "head_judge" with FixedValue 100, 7) Bind contact "arb_support".
1029
+
1030
+ ```json
1031
+ {
1032
+ "operation_type": "arbitration",
1033
+ "data": {
1034
+ "object": {
1035
+ "name": "complete_arbitration",
1036
+ "permission": "arbitration_permission",
1037
+ "type_parameter": "0x2::wow::WOW"
1038
+ },
1039
+ "description": "Full-featured arbitration",
1040
+ "location": "Online",
1041
+ "fee": 1000000000,
1042
+ "usage_guard": "eligibility_guard",
1043
+ "voting_guard": {
1044
+ "op": "add",
1045
+ "guards": [
1046
+ {
1047
+ "guard": "head_judge",
1048
+ "vote_weight": {
1049
+ "FixedValue": 100
1050
+ }
1051
+ }
1052
+ ]
1053
+ },
1054
+ "um": "arb_support"
1055
+ }
1056
+ }
1057
+ ```
1058
+
1059
+ ---
1060
+
1061
+ ## Complete Arbitration Workflow Example
1062
+
1063
+ This example demonstrates a complete arbitration workflow using existing Service and Order objects.
1064
+
1065
+ ### Prerequisites
1066
+
1067
+ Before starting the arbitration process, ensure you have:
1068
+ 1. A **Permission** object for the Arbitration
1069
+ 2. A **Service** with arbitration support and published
1070
+ 3. An **Order** created from the Service
1071
+ 4. Sufficient WOW tokens for dispute fees
1072
+
1073
+ ### Step 1: Create Arbitration Object
1074
+
1075
+ Create an Arbitration object that will handle disputes:
1076
+
1077
+ ```json
1078
+ {
1079
+ "operation_type": "arbitration",
1080
+ "data": {
1081
+ "object": {
1082
+ "name": "doc_test_arbitration",
1083
+ "permission": "arb_test_permission",
1084
+ "type_parameter": "0x2::wow::WOW",
1085
+ "tags": ["arbitration", "test", "doc"],
1086
+ "onChain": false
1087
+ },
1088
+ "description": "Arbitration for documentation testing",
1089
+ "location": "Online arbitration system",
1090
+ "fee": 1000000000
1091
+ },
1092
+ "env": {
1093
+ "account": "arbitration_test_account",
1094
+ "network": "testnet",
1095
+ "no_cache": true
1096
+ }
1097
+ }
1098
+ ```
1099
+
1100
+ **Returns**:
1101
+ ```json
1102
+ {
1103
+ "status": "success",
1104
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1105
+ "type": "Arbitration",
1106
+ "version": "1413284",
1107
+ "change": "created"
1108
+ }
1109
+ ```
1110
+
1111
+ ### Step 2: Create Service with Arbitration Support
1112
+
1113
+ Create a Service that includes the Arbitration object:
1114
+
1115
+ ```json
1116
+ {
1117
+ "operation_type": "service",
1118
+ "data": {
1119
+ "object": {
1120
+ "name": "arb_test_service",
1121
+ "permission": "arb_test_permission",
1122
+ "type_parameter": "0x2::wow::WOW",
1123
+ "tags": ["service", "arbitration", "test"],
1124
+ "onChain": false
1125
+ },
1126
+ "description": "Service for arbitration testing",
1127
+ "sales": {
1128
+ "op": "add",
1129
+ "sales": [{
1130
+ "name": "test_product",
1131
+ "price": 1000000000,
1132
+ "stock": 100,
1133
+ "suspension": false,
1134
+ "wip": "https://example.com/wip",
1135
+ "wip_hash": ""
1136
+ }]
1137
+ },
1138
+ "arbitrations": {
1139
+ "op": "add",
1140
+ "objects": ["doc_test_arbitration"]
1141
+ },
1142
+ "order_allocators": {
1143
+ "description": "Order fund allocators",
1144
+ "threshold": 100000000,
1145
+ "allocators": [{
1146
+ "guard": "test_guard_arb",
1147
+ "sharing": [{
1148
+ "who": {"Signer": "signer"},
1149
+ "sharing": 10000,
1150
+ "mode": "Rate"
1151
+ }]
1152
+ }]
1153
+ },
1154
+ "publish": true
1155
+ },
1156
+ "env": {
1157
+ "account": "arbitration_test_account",
1158
+ "network": "testnet",
1159
+ "no_cache": true
1160
+ }
1161
+ }
1162
+ ```
1163
+
1164
+ **Returns**:
1165
+ ```json
1166
+ {
1167
+ "status": "success",
1168
+ "object": "0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708",
1169
+ "type": "Service",
1170
+ "version": "1415003",
1171
+ "change": "created"
1172
+ }
1173
+ ```
1174
+
1175
+ ### Step 3: Create Order
1176
+
1177
+ Create an Order from the Service:
1178
+
1179
+ ```json
1180
+ {
1181
+ "operation_type": "service",
1182
+ "data": {
1183
+ "object": "arb_test_service",
1184
+ "order_new": {
1185
+ "buy": {
1186
+ "items": [{
1187
+ "name": "test_product",
1188
+ "stock": 1,
1189
+ "wip_hash": ""
1190
+ }],
1191
+ "total_pay": {"balance": 1000000000}
1192
+ },
1193
+ "order_required_info": "test_contact_2026",
1194
+ "namedNewOrder": {
1195
+ "name": "arb_test_order",
1196
+ "onChain": false
1197
+ }
1198
+ }
1199
+ },
1200
+ "env": {
1201
+ "account": "arbitration_test_account",
1202
+ "network": "testnet",
1203
+ "no_cache": true
1204
+ }
1205
+ }
1206
+ ```
1207
+
1208
+ **Returns**:
1209
+ ```json
1210
+ {
1211
+ "status": "success",
1212
+ "results": [
1213
+ {
1214
+ "object": "0x2b1439093329363d108a9eef44414c3ae916762c030b63457ebfb351af7b5cc0",
1215
+ "type": "Order",
1216
+ "version": "1415346",
1217
+ "change": "created"
1218
+ },
1219
+ {
1220
+ "object": "0x4488b2f85a3869b5c480d194c35270b1a449518f2bdd8a3641872cbc47d45dc2",
1221
+ "type": "Allocation",
1222
+ "version": "1415346",
1223
+ "change": "created"
1224
+ }
1225
+ ]
1226
+ }
1227
+ ```
1228
+
1229
+ ### Step 4: Resume Arbitration (if paused)
1230
+
1231
+ Ensure the Arbitration is active:
1232
+
1233
+ ```json
1234
+ {
1235
+ "operation_type": "arbitration",
1236
+ "data": {
1237
+ "object": "doc_test_arbitration",
1238
+ "pause": false
1239
+ },
1240
+ "env": {
1241
+ "account": "arbitration_test_account",
1242
+ "network": "testnet",
1243
+ "no_cache": true
1244
+ }
1245
+ }
1246
+ ```
1247
+
1248
+ **Returns**:
1249
+ ```json
1250
+ {
1251
+ "status": "success",
1252
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1253
+ "type": "Arbitration",
1254
+ "version": "1415347",
1255
+ "change": "mutated"
1256
+ }
1257
+ ```
1258
+
1259
+ ### Step 5: Initiate Dispute
1260
+
1261
+ Create a dispute for the Order:
1262
+
1263
+ ```json
1264
+ {
1265
+ "operation_type": "arbitration",
1266
+ "data": {
1267
+ "object": "doc_test_arbitration",
1268
+ "dispute": {
1269
+ "order": "arb_test_order",
1270
+ "description": "Product quality does not match description",
1271
+ "proposition": ["Full refund", "Partial refund 50%", "No refund"],
1272
+ "fee": {"balance": 1000000000},
1273
+ "namedArb": {
1274
+ "name": "test_dispute_2026",
1275
+ "onChain": false
1276
+ }
1277
+ }
1278
+ },
1279
+ "env": {
1280
+ "account": "arbitration_test_account",
1281
+ "network": "testnet",
1282
+ "no_cache": true
1283
+ }
1284
+ }
1285
+ ```
1286
+
1287
+ **Returns**:
1288
+ ```json
1289
+ {
1290
+ "status": "success",
1291
+ "results": [
1292
+ {
1293
+ "object": "0xe8e2b96b03472a731a070cd244c3bd7fe25135ee99c05d61ac265cc62e50f9b2",
1294
+ "type": "Arb",
1295
+ "version": "1415870",
1296
+ "change": "created"
1297
+ }
1298
+ ]
1299
+ }
1300
+ ```
1301
+
1302
+ ### Step 6: Confirm Materials
1303
+
1304
+ Confirm the dispute materials and set voting deadline:
1305
+
1306
+ ```json
1307
+ {
1308
+ "operation_type": "arbitration",
1309
+ "data": {
1310
+ "object": "doc_test_arbitration",
1311
+ "confirm": {
1312
+ "arb": "test_dispute_2026",
1313
+ "voting_deadline": 1777830400000
1314
+ }
1315
+ },
1316
+ "env": {
1317
+ "account": "arbitration_test_account",
1318
+ "network": "testnet",
1319
+ "no_cache": true
1320
+ }
1321
+ }
1322
+ ```
1323
+
1324
+ ### Step 7: Provide Feedback
1325
+
1326
+ Add arbitration feedback:
1327
+
1328
+ ```json
1329
+ {
1330
+ "operation_type": "arbitration",
1331
+ "data": {
1332
+ "object": "doc_test_arbitration",
1333
+ "feedback": {
1334
+ "arb": "test_dispute_2026",
1335
+ "feedback": "All evidence has been reviewed. The buyer provided sufficient proof of product quality issues."
1336
+ }
1337
+ },
1338
+ "env": {
1339
+ "account": "arbitration_test_account",
1340
+ "network": "testnet",
1341
+ "no_cache": true
1342
+ }
1343
+ }
1344
+ ```
1345
+
1346
+ ### Step 8: Issue Final Ruling
1347
+
1348
+ Provide the final arbitration result with compensation:
1349
+
1350
+ ```json
1351
+ {
1352
+ "operation_type": "arbitration",
1353
+ "data": {
1354
+ "object": "doc_test_arbitration",
1355
+ "arbitration": {
1356
+ "arb": "test_dispute_2026",
1357
+ "feedback": "Based on all evidence provided, the buyer's claim is valid. The product quality does not match the description.",
1358
+ "indemnity": 500000000
1359
+ }
1360
+ },
1361
+ "env": {
1362
+ "account": "arbitration_test_account",
1363
+ "network": "testnet",
1364
+ "no_cache": true
1365
+ }
1366
+ }
1367
+ ```
1368
+
1369
+ **Note**: The `indemnity` amount requires sufficient compensation fund in the Service. If insufficient funds exist, the transaction will fail with error code 4.
1370
+
1371
+ ### Step 9: Claim Compensation (by Order Owner)
1372
+
1373
+ After arbitration is finalized, the order owner can claim compensation:
1374
+
1375
+ ```json
1376
+ {
1377
+ "operation_type": "order",
1378
+ "data": {
1379
+ "object": "arb_test_order",
1380
+ "arb_claim_compensation": {
1381
+ "arb": "test_dispute_2026"
1382
+ }
1383
+ },
1384
+ "env": {
1385
+ "account": "arbitration_test_account",
1386
+ "network": "testnet",
1387
+ "no_cache": true
1388
+ }
1389
+ }
1390
+ ```
1391
+
1392
+ ---
1393
+
1394
+ ## Complete Arbitration Workflow Example (Real On-Chain Data)
1395
+
1396
+ This example demonstrates the **complete arbitration process** from dispute creation to compensation claim using **real on-chain objects and transaction data**. This showcases the transparent, auditable nature of on-chain arbitration.
1397
+
1398
+ ### 📊 Real Objects on Testnet
1399
+
1400
+ | Object | ID | Type | Description |
1401
+ |--------|-----|------|-------------|
1402
+ | **Service** | `0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708` | Service | Published service with 7.999 WOW compensation fund |
1403
+ | **Arbitration** | `0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec` | Arbitration | Active arbitration with 1 WOW fee |
1404
+ | **Order** | `0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6` | Order | Completed order with 1 WOW payment |
1405
+ | **Arb (Dispute)** | `0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0` | Arb | **Status: Finished (5)** - Compensation claimed |
1406
+
1407
+ ### 🔍 Real Transaction History
1408
+
1409
+ | Step | Transaction | Block | Description |
1410
+ |------|-------------|-------|-------------|
1411
+ | Order Created | `8Rq9...` | 1651574 | Buyer created order for test_product |
1412
+ | Dispute Created | `HKkg...` | 1652451 | Buyer initiated dispute with 1 WOW fee |
1413
+ | Materials Confirmed | `2trT...` | 1654581 | Arbitrator confirmed, set 10s voting deadline |
1414
+ | Ruling Issued | `AZcM...` | 1660200 | Arbitrator ruled: 0.001 WOW compensation |
1415
+ | **Compensation Claimed** | `AZcM...` | 1660200 | **Buyer received 0.001 WOW** |
1416
+
1417
+ ### 📋 Arb Object Final State
1418
+
1419
+ ```json
1420
+ {
1421
+ "object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
1422
+ "type": "Arb",
1423
+ "type_raw": "0x2::arb::Arb<0x2::wow::WOW>",
1424
+ "description": "Product quality does not match description, requesting refund",
1425
+ "order": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
1426
+ "arbitration": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1427
+ "proposition": [
1428
+ {"name": "Full refund", "votes": "0"},
1429
+ {"name": "Partial refund 50%", "votes": "0"},
1430
+ {"name": "No refund - keep product", "votes": "0"}
1431
+ ],
1432
+ "fee": "1000000000",
1433
+ "feedback": "After review, support buyer claim, full refund granted",
1434
+ "indemnity": {"amount": "1000000", "time": "1776834479869"},
1435
+ "voting_deadline": "1776834427793",
1436
+ "status": 5,
1437
+ "compensation_time": "1776834773322",
1438
+ "time": "1776834368972"
1439
+ }
1440
+ ```
1441
+
1442
+ ### 🎯 Scenario: Product Quality Dispute
1443
+
1444
+ **Background**: A buyer purchased "test_product" (1 WOW) from `arb_test_service` but received an item with quality issues that didn't match the description.
1445
+
1446
+ **Timeline**:
1447
+ - **T+0**: Order created and paid
1448
+ - **T+1min**: Buyer discovers quality issue
1449
+ - **T+5min**: Buyer initiates dispute with 3 propositions
1450
+ - **T+6min**: Arbitrator confirms materials, sets 10-second voting deadline
1451
+ - **T+16s**: Voting deadline passes
1452
+ - **T+20s**: Arbitrator issues ruling: 0.001 WOW compensation
1453
+ - **T+25s**: Buyer claims compensation
1454
+
1455
+ ---
1456
+
1457
+ ## 🔄 Complete Arbitration State Machine
1458
+
1459
+ ### State Diagram
1460
+
1461
+ ```mermaid
1462
+ stateDiagram-v2
1463
+ [*] --> PrincipalConfirming : create dispute
1464
+ PrincipalConfirming --> ArbitratorConfirming : principal_confirm
1465
+ ArbitratorConfirming --> Voting : arbitrator_confirm
1466
+ Voting --> Arbitrated : arbitration
1467
+ Arbitrated --> Finished : arb_claim_compensation
1468
+ Arbitrated --> Objectionable : objection
1469
+ Objectionable --> PrincipalConfirming : reset
1470
+
1471
+ note right of PrincipalConfirming
1472
+ Status: 0
1473
+ Buyer confirms dispute
1474
+ end note
1475
+
1476
+ note right of ArbitratorConfirming
1477
+ Status: 1
1478
+ Arbitrator reviews case
1479
+ end note
1480
+
1481
+ note right of Voting
1482
+ Status: 2
1483
+ Voting period active
1484
+ voting_deadline must pass
1485
+ end note
1486
+
1487
+ note right of Arbitrated
1488
+ Status: 3
1489
+ Ruling issued
1490
+ indemnity set
1491
+ end note
1492
+
1493
+ note right of Objectionable
1494
+ Status: 4
1495
+ Appeal window open
1496
+ end note
1497
+
1498
+ note right of Finished
1499
+ Status: 5
1500
+ Compensation transferred
1501
+ end note
1502
+ ```
1503
+
1504
+ ### State Transitions with Time/Amount Conditions
1505
+
1506
+ | From | To | Trigger | Time/Amount Condition |
1507
+ |------|-----|---------|----------------------|
1508
+ | 0 → 1 | Principal_confirming → Arbitrator_confirming | `principal_confirm` | None |
1509
+ | 1 → 2 | Arbitrator_confirming → Voting | `arbitrator_confirm` | voting_deadline set (optional) |
1510
+ | 2 → 3 | Voting → Arbitrated | `arbitration` | **Must pass voting_deadline** if set |
1511
+ | 3 → 5 | Arbitrated → Finished | `arb_claim_compensation` | None |
1512
+ | 3 → 4 | Arbitrated → Objectionable | `objection` | Within objection period |
1513
+ | 4 → 0 | Objectionable → Principal_confirming | `reset` | None |
1514
+
1515
+ ### 💰 Financial Flow
1516
+
1517
+ ```mermaid
1518
+ flowchart LR
1519
+ subgraph BuyerAction["Buyer Actions"]
1520
+ B1[Pay Dispute Fee]
1521
+ B2[Submit Evidence]
1522
+ B3[Claim Compensation]
1523
+ end
1524
+
1525
+ subgraph ArbProcess["Arbitration Process"]
1526
+ A1[Arb Object<br/>Fee Locked]
1527
+ A2[Voting Period]
1528
+ A3[Ruling Issued<br/>Indemnity Set]
1529
+ end
1530
+
1531
+ subgraph ServiceFund["Service Compensation"]
1532
+ S1[Compensation Fund]
1533
+ S2[Deduct Indemnity]
1534
+ end
1535
+
1536
+ B1 --> A1
1537
+ A1 --> A2
1538
+ A2 --> A3
1539
+ A3 --> S2
1540
+ S2 --> B3
1541
+
1542
+ style B1 fill:#ffcccc
1543
+ style B3 fill:#ccffcc
1544
+ style S2 fill:#ffffcc
1545
+ ```
1546
+
1547
+ **Fee Distribution**:
1548
+ - Dispute fee: 1 WOW (paid by buyer to Arb)
1549
+ - Compensation: 0.001 WOW (from Service fund to buyer)
1550
+ - Net buyer cost: 0.999 WOW (fee - compensation)
1551
+
1552
+ ### Permission Matrix
1553
+
1554
+ | Operation | Status Required | Actor | Additional Requirements |
1555
+ |-----------|-----------------|-------|------------------------|
1556
+ | `dispute` | - | Buyer | Order owner, arbitration unpaused |
1557
+ | `principal_confirm` | 0 | Buyer | Must be dispute initiator |
1558
+ | `arbitrator_confirm` | 1 | Arbitrator | Must be designated arbitrator |
1559
+ | `arbitration` | 2 | Arbitrator | `voting_deadline` must pass |
1560
+ | `arb_claim_compensation` | 3 | Buyer | Order owner, indemnity > 0 |
1561
+ | `objection` | 3 | Buyer | Within appeal window |
1562
+ | `reset` | 4 | System | Automatic on objection |
1563
+
1564
+ ---
1565
+
1566
+ ## Transparent Arbitration Process
1567
+
1568
+ The WoWok arbitration system is designed with complete transparency - all actions, evidence, and decisions are recorded on-chain and can be verified by anyone. This section details how the transparent arbitration process works and how parties can submit evidence.
1569
+
1570
+ ### Public Transparency Features
1571
+
1572
+ | Aspect | Transparency Mechanism | Verification Method |
1573
+ |--------|------------------------|---------------------|
1574
+ | **Dispute Creation** | Arb object created on-chain with all parameters public | Query Arb object by ID |
1575
+ | **Evidence Submission** | Evidence hashes recorded in `feedback` field | Cross-reference with Messenger or IPFS |
1576
+ | **Voting Records** | All votes recorded with voter Guard verification | Query Arb object voting history |
1577
+ | **Arbitration Ruling** | Final decision and indemnity amount permanently stored | Query Arb object status and fields |
1578
+ | **Fund Movements** | All compensation transfers traceable on-chain | Query transaction effects |
1579
+
1580
+ ### Evidence Submission via Messenger
1581
+
1582
+ The WoWok Messenger provides an encrypted, verifiable channel for submitting sensitive evidence during arbitration. This ensures privacy while maintaining transparency through cryptographic proofs.
1583
+
1584
+ ## Step-by-Step Real Execution
1585
+
1586
+ ### Step 1: Buyer Creates Dispute (Status: 0 → 1)
1587
+
1588
+ The buyer creates a dispute for the order, paying the 1 WOW arbitration fee:
1589
+
1590
+ **Request**:
1591
+ ```json
1592
+ {
1593
+ "operation_type": "arbitration",
1594
+ "data": {
1595
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1596
+ "dispute": {
1597
+ "order": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
1598
+ "description": "Product quality does not match description, requesting refund",
1599
+ "proposition": ["Full refund", "Partial refund 50%", "No refund - keep product"],
1600
+ "fee": {"balance": 1000000000},
1601
+ "namedArb": {"name": "real_dispute_2026", "onChain": false}
1602
+ }
1603
+ },
1604
+ "env": {"account": "buyer_account", "network": "testnet", "no_cache": true}
1605
+ }
1606
+ ```
1607
+
1608
+ **Real Response**:
1609
+ ```json
1610
+ {
1611
+ "status": "success",
1612
+ "results": [
1613
+ {"object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6", "type": "Order", "version": "1652451", "change": "mutated"},
1614
+ {"object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec", "type": "Arbitration", "version": "1652451", "change": "mutated"},
1615
+ {"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0", "type": "Arb", "version": "1652451", "change": "created"}
1616
+ ]
1617
+ }
1618
+ ```
1619
+
1620
+ **On-Chain Evidence**:
1621
+ - Arb created at: Block 1652451
1622
+ - Status: Status_Arbitrator_confirming (1)
1623
+ - Fee locked: 1 WOW
1624
+
1625
+ ---
1626
+
1627
+ ### Step 2: Arbitrator Confirms Materials (Status: 1 → 2)
1628
+
1629
+ The arbitrator reviews the dispute and confirms materials, setting a short voting deadline:
1630
+
1631
+ **Request**:
1632
+ ```json
1633
+ {
1634
+ "operation_type": "arbitration",
1635
+ "data": {
1636
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1637
+ "confirm": {
1638
+ "arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
1639
+ "voting_deadline": 1776834427793
1640
+ }
1641
+ },
1642
+ "env": {"account": "arbitration_admin", "network": "testnet", "no_cache": true}
1643
+ }
1644
+ ```
1645
+
1646
+ **Real Response**:
1647
+ ```json
1648
+ {
1649
+ "status": "success",
1650
+ "object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
1651
+ "type": "Arb",
1652
+ "version": "1654581",
1653
+ "change": "mutated"
1654
+ }
1655
+ ```
1656
+
1657
+ **State Change**:
1658
+ - Status: Status_Voting (2)
1659
+ - Voting deadline: 1776834427793 (Unix timestamp ms)
1660
+ - Time window: ~10 seconds for this demo
1661
+
1662
+ ---
1663
+
1664
+ ### Step 3: Voting Period (Optional)
1665
+
1666
+ During the voting period (if configured), authorized voters can cast votes on propositions. **Proposition indices are 0-based**:
1667
+
1668
+ - Index 0: "Full refund"
1669
+ - Index 1: "Partial refund 50%"
1670
+ - Index 2: "No refund - keep product"
1671
+
1672
+ **Note**: In this real example, no voting guards were configured, so voting was skipped.
1673
+
1674
+ ---
1675
+
1676
+ ### Step 4: Arbitrator Issues Final Ruling (Status: 2 → 3)
1677
+
1678
+ **⚠️ Critical**: Can only execute after `voting_deadline` has passed!
1679
+
1680
+ The arbitrator provides the final decision with compensation amount:
1681
+
1682
+ **Request**:
1683
+ ```json
1684
+ {
1685
+ "operation_type": "arbitration",
1686
+ "data": {
1687
+ "object": "0xebc9dc62a87d05e87f6bad1f9fd600bb61734ab00a8bd7435818115a1709d6ec",
1688
+ "arbitration": {
1689
+ "arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
1690
+ "feedback": "After review, support buyer claim, full refund granted",
1691
+ "indemnity": 1000000
1692
+ }
1693
+ },
1694
+ "env": {"account": "arbitration_admin", "network": "testnet", "no_cache": true}
1695
+ }
1696
+ ```
1697
+
1698
+ **Real Response**:
1699
+ ```json
1700
+ {
1701
+ "status": "success",
1702
+ "object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0",
1703
+ "type": "Arb",
1704
+ "version": "1654581",
1705
+ "change": "mutated"
1706
+ }
1707
+ ```
1708
+
1709
+ **State Change**:
1710
+ - Status: Status_Arbitrated (3)
1711
+ - Indemnity set: 0.001 WOW (1000000)
1712
+ - Feedback recorded on-chain
1713
+ - Service compensation fund: 7.999 → 7.998 WOW
1714
+
1715
+ ---
1716
+
1717
+ ### Step 5: Buyer Claims Compensation (Status: 3 → 5)
1718
+
1719
+ After arbitration is finalized, the **order owner (buyer)** claims the awarded compensation via the Order component:
1720
+
1721
+ **Request**:
1722
+ ```json
1723
+ {
1724
+ "operation_type": "order",
1725
+ "data": {
1726
+ "object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6",
1727
+ "arb_claim_compensation": {
1728
+ "arb": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0"
1729
+ }
1730
+ },
1731
+ "env": {"account": "buyer_account", "network": "testnet", "no_cache": true}
1732
+ }
1733
+ ```
1734
+
1735
+ **Real Response**:
1736
+ ```json
1737
+ {
1738
+ "status": "success",
1739
+ "results": [
1740
+ {"object": "0x50ca67dfb163b8bbab3d3ed59052d28a8859de167ea101b19e012bc4a258f708", "type": "Service", "version": "1660200", "change": "mutated"},
1741
+ {"object": "0x5e22bd716933ce89d620dd7976627110a0ed26672244516f31b83fd7f6903db0", "type": "Arb", "version": "1660200", "change": "mutated"},
1742
+ {"object": "0x934bf2d62b472082d91b5ba7425228bcb158c33d281ad01ed7fdd20bf5f00ff6", "type": "Order", "version": "1660200", "change": "mutated"}
1743
+ ]
1744
+ }
1745
+ ```
1746
+
1747
+ **Final State**:
1748
+ - Status: Status_Finished (5)
1749
+ - Compensation time: 1776834773322 (claimed timestamp)
1750
+ - Buyer received: 0.001 WOW
1751
+ - Service fund: 7.998 WOW
1752
+
1753
+ ---
1754
+
1755
+ ## 📊 Complete Workflow Summary
1756
+
1757
+ | Step | Actor | Status | Operation | Amount | Time |
1758
+ |------|-------|--------|-----------|--------|------|
1759
+ | 1 | Buyer | 0→1 | `dispute` | -1 WOW (fee) | Block 1652451 |
1760
+ | 2 | Arbitrator | 1→2 | `confirm` | 0 | Block 1654581 |
1761
+ | 3 | - | 2 | Voting period | 0 | 10 seconds |
1762
+ | 4 | Arbitrator | 2→3 | `arbitration` | Set 0.001 WOW | Block 1654581 |
1763
+ | 5 | Buyer | 3→5 | `arb_claim_compensation` | +0.001 WOW | Block 1660200 |
1764
+
1765
+ **Net Result**: Buyer paid 0.999 WOW (1.0 fee - 0.001 compensation) for the arbitration process.
1766
+
1767
+ ---
1768
+
1769
+ ## 🔗 Related Documentation
1770
+
1771
+ | Component | Link | Description |
1772
+ |-----------|------|-------------|
1773
+ | **Service Setup** | [Service - Compensation Fund](service.md#sub-feature-11-add-compensation-fund) | Configure service with arbitration support |
1774
+ | **Order Creation** | [Service - Create Order](service.md#sub-feature-12-configure-customer-required-info) | How orders are created from services |
1775
+ | **Claim Compensation** | [Order - Claim Compensation](order.md#function-6-claim-arbitration-compensation-arb_claim_compensation) | Detailed guide for buyers to claim |
1776
+ | **Objection Process** | [Order - Object to Arbitration](order.md#function-5-object-to-arbitration-result-arb_objection) | How to appeal arbitration decisions |
1777
+ | **Messenger Evidence** | [Messenger](messenger.md) | Submit encrypted evidence via WoWok Messenger |
1778
+
1779
+ ---
1780
+
1781
+ ## Important Notes
1782
+
1783
+ ⚠️ **Dispute fees are required to initiate arbitration.**
1784
+
1785
+ ⚠️ **Voting weights must be either FixedValue (0-65535) or GuardIdentifier (0-255).**
1786
+
1787
+ ⚠️ **Compensation fund must be sufficient in the Service to cover the indemnity amount.**
1788
+
1789
+ ⚠️ **Arbitration must be unpaused (pause: false) to accept disputes.**
1790
+
1791
+ ---
1792
+
1793
+ ## Related Components
1794
+
1795
+ | Component | Description |
1796
+ |-----------|-------------|
1797
+ | **[Service](service.md)** | WYSIWYG product trading - creates orders that may need arbitration |
1798
+ | **[Order](order.md)** | Order management - subject of arbitration disputes |
1799
+ | **[Treasury](treasury.md)** | Team fund management - can receive arbitration fees |
1800
+ | **[Allocation](allocation.md)** | Automatic fund distribution - can receive arbitration fees |
1801
+ | **[Permission](permission.md)** | Permission management - controls arbitration operations |
1802
+ | **[Guard](guard.md)** | Trust verification engine - used for eligibility and voting |
1803
+ | **[Contact](contact.md)** | Public contact information - provides support channels |
1804
+