xoonya 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/.env.example +10 -2
  2. package/CARRIED_HANDOFF_DEMO.md +60 -60
  3. package/COMPATIBILITY_NOTE.md +27 -27
  4. package/CROSS_RUNTIME_POSTURE.md +77 -77
  5. package/EXAMPLE_PATHS.md +53 -53
  6. package/FINAL_CONTRACT.md +445 -445
  7. package/LICENSE +201 -201
  8. package/NOTICE +3 -3
  9. package/PARTNER_READY_PATH.md +67 -67
  10. package/PUBLIC_DEMO_SCRIPT.md +79 -79
  11. package/README.md +839 -808
  12. package/RELEASE_NOTES.md +18 -15
  13. package/SERVICE_CONTRACT.md +207 -207
  14. package/START_HERE.md +159 -159
  15. package/TERMINOLOGY.md +55 -55
  16. package/WHY_XYTARA_XOONYA.md +43 -43
  17. package/XNYA_CONFORMANCE_MARK.md +78 -78
  18. package/XNYA_REFERENCE_IMPLEMENTATIONS.md +157 -157
  19. package/XOONYA_DEFAULT_PATH_MODEL.md +63 -63
  20. package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +63 -63
  21. package/XOONYA_NATIVE_ATOM_SPEC.md +184 -184
  22. package/XOONYA_NATIVE_PROOF_FORMAT.md +570 -527
  23. package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +119 -119
  24. package/XOONYA_PROOF_TRUTH_MODEL.md +58 -58
  25. package/bin/xoonya-first-run.js +184 -184
  26. package/bin/xoonya-release.js +1367 -1367
  27. package/bin/xoonya-review.js +70 -70
  28. package/bin/xoonya.js +82 -82
  29. package/examples/integration_boundary_walkthrough.js +37 -37
  30. package/examples/package_quickstart.js +1007 -1007
  31. package/examples/partner_proof_walkthrough.js +68 -68
  32. package/examples/proof_review_walkthrough.js +66 -66
  33. package/examples/review_carried_handoff.js +72 -72
  34. package/index.js +31 -31
  35. package/integrations/PROOF_INTEGRATION_PROCESS.md +45 -45
  36. package/integrations/examples/example-third-party-verifier-registration.record.json +22 -22
  37. package/integrations/registration-record.schema.json +99 -99
  38. package/integrations/registry-snapshot.schema.json +36 -36
  39. package/integrations/registry.js +636 -636
  40. package/integrations/views.js +36 -36
  41. package/lib/adapter_certification_contract.js +90 -90
  42. package/lib/announcement_pack.js +61 -61
  43. package/lib/artifact_distribution_lane_contract.js +54 -54
  44. package/lib/asyncapi_contract.js +135 -135
  45. package/lib/auth_interop_contract.js +69 -69
  46. package/lib/authority_binding_lifecycle_contract.js +182 -182
  47. package/lib/bridge_intelligence.js +102 -102
  48. package/lib/cloudevents_contract.js +79 -79
  49. package/lib/crypto_agility_matrix.js +125 -125
  50. package/lib/default_path_contract.js +380 -380
  51. package/lib/ecosystem_entry.js +64 -64
  52. package/lib/erc8004_proof_lane_contract.js +64 -64
  53. package/lib/event_system_lane_contract.js +76 -76
  54. package/lib/external_proof_import_lane_contract.js +87 -87
  55. package/lib/feature_control_lane_contract.js +54 -54
  56. package/lib/followthrough_truth_contract.js +214 -214
  57. package/lib/framework_lane_contract.js +76 -76
  58. package/lib/governance_disputes_summary.js +36 -36
  59. package/lib/governance_intelligence.js +108 -108
  60. package/lib/identity_interop_contract.js +83 -83
  61. package/lib/integration_matrix_contract.js +81 -81
  62. package/lib/launch_narrative.js +53 -53
  63. package/lib/machine_identity_registry_contract.js +199 -199
  64. package/lib/major_rails_proof_lane_contract.js +87 -87
  65. package/lib/offline_verifiability_recovery_contract.js +155 -155
  66. package/lib/openapi_contract.js +227 -227
  67. package/lib/operational_receipt_contract.js +165 -165
  68. package/lib/outreach_proof.js +71 -71
  69. package/lib/phase_10_closeout_pack.js +45 -45
  70. package/lib/phase_10_completion_pack.js +76 -76
  71. package/lib/phase_10_decision_record_pack.js +54 -54
  72. package/lib/phase_10_decision_resolution_pack.js +53 -53
  73. package/lib/phase_10_demand_signal_adapters_proof_pack.js +74 -74
  74. package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +74 -74
  75. package/lib/phase_10_freeze_baseline_pack.js +67 -67
  76. package/lib/phase_10_freeze_review_pack.js +64 -64
  77. package/lib/phase_10_gate_pack.js +57 -57
  78. package/lib/phase_10_long_tail_continuity_pack.js +80 -80
  79. package/lib/phase_10_long_tail_ecosystem_pack.js +68 -68
  80. package/lib/phase_10_niche_extension_registry_proof_pack.js +74 -74
  81. package/lib/phase_1_claude_mcp_pack.js +60 -60
  82. package/lib/phase_1_claude_mcp_proof_pack.js +57 -57
  83. package/lib/phase_1_ecosystem_pack.js +51 -51
  84. package/lib/phase_1_openai_codex_pack.js +60 -60
  85. package/lib/phase_1_openai_codex_proof_pack.js +57 -57
  86. package/lib/phase_2_base_proof_pack.js +71 -71
  87. package/lib/phase_2_base_usdc_proof_pack.js +72 -72
  88. package/lib/phase_2_closeout_pack.js +65 -65
  89. package/lib/phase_2_completion_pack.js +113 -113
  90. package/lib/phase_2_decision_record_pack.js +66 -66
  91. package/lib/phase_2_decision_resolution_pack.js +69 -69
  92. package/lib/phase_2_eth_proof_pack.js +70 -70
  93. package/lib/phase_2_evm_base_proof_pack.js +73 -73
  94. package/lib/phase_2_evm_proof_pack.js +71 -71
  95. package/lib/phase_2_flip_preview_pack.js +60 -60
  96. package/lib/phase_2_freeze_review_pack.js +99 -99
  97. package/lib/phase_2_gate_pack.js +77 -77
  98. package/lib/phase_2_payment_rails_pack.js +71 -71
  99. package/lib/phase_2_usdc_proof_pack.js +71 -71
  100. package/lib/phase_3_brc_proof_pack.js +81 -81
  101. package/lib/phase_3_bsv_teranode_proof_pack.js +81 -81
  102. package/lib/phase_3_closeout_pack.js +62 -62
  103. package/lib/phase_3_completion_pack.js +92 -92
  104. package/lib/phase_3_decision_record_pack.js +64 -64
  105. package/lib/phase_3_decision_resolution_pack.js +69 -69
  106. package/lib/phase_3_freeze_baseline_pack.js +67 -67
  107. package/lib/phase_3_freeze_review_pack.js +80 -80
  108. package/lib/phase_3_gate_pack.js +76 -76
  109. package/lib/phase_3_metanet_proof_pack.js +81 -81
  110. package/lib/phase_3_native_bsv_pack.js +89 -89
  111. package/lib/phase_3_native_continuity_pack.js +82 -82
  112. package/lib/phase_4_attestation_proof_pack.js +75 -75
  113. package/lib/phase_4_closeout_pack.js +45 -45
  114. package/lib/phase_4_completion_pack.js +82 -82
  115. package/lib/phase_4_decision_record_pack.js +54 -54
  116. package/lib/phase_4_decision_resolution_pack.js +45 -45
  117. package/lib/phase_4_erc8004_proof_pack.js +76 -76
  118. package/lib/phase_4_freeze_baseline_pack.js +67 -67
  119. package/lib/phase_4_freeze_review_pack.js +68 -68
  120. package/lib/phase_4_gate_pack.js +58 -58
  121. package/lib/phase_4_identity_registry_proof_pack.js +75 -75
  122. package/lib/phase_4_identity_trust_pack.js +73 -73
  123. package/lib/phase_4_trust_continuity_pack.js +86 -86
  124. package/lib/phase_5_antelope_proof_pack.js +76 -76
  125. package/lib/phase_5_closeout_pack.js +44 -44
  126. package/lib/phase_5_completion_pack.js +82 -82
  127. package/lib/phase_5_decision_record_pack.js +54 -54
  128. package/lib/phase_5_decision_resolution_pack.js +45 -45
  129. package/lib/phase_5_freeze_baseline_pack.js +67 -67
  130. package/lib/phase_5_freeze_review_pack.js +68 -68
  131. package/lib/phase_5_gate_pack.js +58 -58
  132. package/lib/phase_5_major_rails_continuity_pack.js +86 -86
  133. package/lib/phase_5_major_rails_pack.js +74 -74
  134. package/lib/phase_5_proton_xpr_proof_pack.js +76 -76
  135. package/lib/phase_5_solana_proof_pack.js +76 -76
  136. package/lib/phase_6_autogen_proof_pack.js +74 -74
  137. package/lib/phase_6_closeout_pack.js +46 -46
  138. package/lib/phase_6_completion_pack.js +77 -77
  139. package/lib/phase_6_decision_record_pack.js +54 -54
  140. package/lib/phase_6_decision_resolution_pack.js +53 -53
  141. package/lib/phase_6_framework_continuity_pack.js +81 -81
  142. package/lib/phase_6_framework_runtime_pack.js +68 -68
  143. package/lib/phase_6_freeze_baseline_pack.js +68 -68
  144. package/lib/phase_6_freeze_review_pack.js +65 -65
  145. package/lib/phase_6_gate_pack.js +59 -59
  146. package/lib/phase_6_langchain_proof_pack.js +74 -74
  147. package/lib/phase_6_langgraph_proof_pack.js +74 -74
  148. package/lib/phase_6_semantic_kernel_proof_pack.js +74 -74
  149. package/lib/phase_7_closeout_pack.js +45 -45
  150. package/lib/phase_7_completion_pack.js +85 -85
  151. package/lib/phase_7_decision_record_pack.js +53 -53
  152. package/lib/phase_7_decision_resolution_pack.js +53 -53
  153. package/lib/phase_7_event_system_continuity_pack.js +89 -89
  154. package/lib/phase_7_event_system_pack.js +76 -76
  155. package/lib/phase_7_freeze_baseline_pack.js +74 -74
  156. package/lib/phase_7_freeze_review_pack.js +65 -65
  157. package/lib/phase_7_gate_pack.js +58 -58
  158. package/lib/phase_7_kafka_proof_pack.js +76 -76
  159. package/lib/phase_7_mqtt_proof_pack.js +76 -76
  160. package/lib/phase_7_nats_proof_pack.js +76 -76
  161. package/lib/phase_7_webhook_event_bus_proof_pack.js +76 -76
  162. package/lib/phase_8_closeout_pack.js +46 -46
  163. package/lib/phase_8_completion_pack.js +82 -82
  164. package/lib/phase_8_decision_record_pack.js +54 -54
  165. package/lib/phase_8_decision_resolution_pack.js +53 -53
  166. package/lib/phase_8_external_receipt_import_proof_pack.js +74 -74
  167. package/lib/phase_8_external_result_import_proof_pack.js +74 -74
  168. package/lib/phase_8_freeze_baseline_pack.js +71 -71
  169. package/lib/phase_8_freeze_review_pack.js +64 -64
  170. package/lib/phase_8_gate_pack.js +58 -58
  171. package/lib/phase_8_proof_bridge_continuity_pack.js +86 -86
  172. package/lib/phase_8_proof_bridges_pack.js +72 -72
  173. package/lib/phase_8_proof_bundle_normalization_proof_pack.js +74 -74
  174. package/lib/phase_9_closeout_pack.js +46 -46
  175. package/lib/phase_9_completion_pack.js +82 -82
  176. package/lib/phase_9_custody_refs_proof_pack.js +74 -74
  177. package/lib/phase_9_decision_record_pack.js +54 -54
  178. package/lib/phase_9_decision_resolution_pack.js +53 -53
  179. package/lib/phase_9_freeze_baseline_pack.js +71 -71
  180. package/lib/phase_9_freeze_review_pack.js +64 -64
  181. package/lib/phase_9_gate_pack.js +58 -58
  182. package/lib/phase_9_operator_accounting_bridges_proof_pack.js +74 -74
  183. package/lib/phase_9_treasury_connectivity_pack.js +72 -72
  184. package/lib/phase_9_treasury_continuity_pack.js +86 -86
  185. package/lib/phase_9_treasury_destinations_proof_pack.js +74 -74
  186. package/lib/phase_program_pack.js +47 -47
  187. package/lib/proof_bridge_lane_contract.js +82 -82
  188. package/lib/proof_truth_contract.js +224 -224
  189. package/lib/provenance_lane_contract.js +54 -54
  190. package/lib/provider_lane_contract.js +67 -67
  191. package/lib/public_surface_policy_contract.js +111 -111
  192. package/lib/publish_plan.js +51 -51
  193. package/lib/release_candidate.js +50 -50
  194. package/lib/release_center.js +1037 -1037
  195. package/lib/release_history.js +206 -206
  196. package/lib/release_manifest.js +114 -114
  197. package/lib/release_pack.js +391 -391
  198. package/lib/result_package_trust_lane_contract.js +74 -74
  199. package/lib/review_intelligence.js +100 -100
  200. package/lib/role_freeze.js +436 -436
  201. package/lib/shared_signals_lane_contract.js +54 -54
  202. package/lib/signed_audit_provenance_contract.js +93 -93
  203. package/lib/telemetry_lane_contract.js +54 -54
  204. package/lib/treasury_proof_lane_contract.js +83 -83
  205. package/lib/trust_intelligence.js +106 -106
  206. package/lib/trust_portability_boundary_contract.js +66 -66
  207. package/lib/trust_portability_pack.js +224 -224
  208. package/lib/verification_service_pack.js +149 -149
  209. package/package.json +98 -97
  210. package/proof_sdk.js +6561 -6265
  211. package/reference/python/README.md +35 -35
  212. package/reference/python/__pycache__/xnya_reference.cpython-314.pyc +0 -0
  213. package/reference/python/requirements-optional.txt +1 -1
  214. package/reference/python/verify_vectors.py +223 -223
  215. package/reference/python/xnya_reference.py +810 -810
  216. package/reference/rust/Cargo.toml +11 -11
  217. package/reference/rust/README.md +28 -28
  218. package/reference/rust/src/lib.rs +87 -87
  219. package/scripts/registry_cli.js +157 -157
  220. package/scripts/verify_all.js +603 -603
  221. package/scripts/verify_control_plane_contracts.js +34 -34
  222. package/scripts/verify_control_plane_routes.js +70 -70
  223. package/scripts/verify_examples.js +19 -19
  224. package/scripts/verify_external_proof_import_gate.js +84 -84
  225. package/scripts/verify_forgery_resistance.js +281 -0
  226. package/scripts/verify_integrations.js +170 -170
  227. package/scripts/verify_native_hybrid_design_gate.js +114 -114
  228. package/scripts/verify_reference_promotion_gate.js +74 -74
  229. package/scripts/verify_reference_python.js +49 -49
  230. package/scripts/verify_reference_python_crypto.js +87 -87
  231. package/scripts/verify_reference_rust_scaffold.js +50 -50
  232. package/scripts/verify_release_candidate.js +131 -131
  233. package/scripts/verify_service.js +3038 -2940
  234. package/scripts/verify_tooling.js +1251 -1251
  235. package/scripts/verify_trust_portability.js +56 -56
  236. package/scripts/verify_vectors.js +192 -192
  237. package/scripts/verify_verification_services.js +56 -56
  238. package/server.js +4223 -4099
  239. package/vectors/adversarial-vectors.json +552 -552
  240. package/vectors/conformance-vectors.json +446 -446
  241. package/vectors/native-atom-vectors.json +101 -101
  242. package/vectors/native-payload-profile-vectors.json +50 -50
  243. package/OPERATIONS_RUNBOOK.md +0 -50
  244. package/OPERATOR_START_HERE.md +0 -67
  245. package/PROGRAM_COMPLETE_RELEASE.md +0 -52
  246. package/PROGRAM_STATUS.md +0 -57
  247. package/PUBLISH_PLAN.md +0 -25
  248. package/RELEASE_CHECKLIST.md +0 -16
package/FINAL_CONTRACT.md CHANGED
@@ -1,445 +1,445 @@
1
- # xoonya Final Contract
2
-
3
- ## Purpose
4
-
5
- `xoonya` is the neutral proof foundation for machine actions.
6
-
7
- It exists to make machine-action evidence:
8
-
9
- - deterministic
10
- - portable
11
- - minimal
12
- - verifiable
13
- - replayable
14
- - independent of payment rails, settlement systems, and workflow engines
15
-
16
- `xoonya` is not a commerce system, policy engine, or execution runtime.
17
-
18
- ## Public Release Stance
19
-
20
- This product is being prepared as a first public release.
21
-
22
- That means:
23
-
24
- - prior proof formats are design history, not public obligations
25
- - useful earlier decisions may be preserved where they strengthen the final product
26
- - older helper shapes do not automatically become the public contract
27
-
28
- The public baseline should therefore be chosen for correctness, clarity, determinism, and extensibility, not for backward compatibility with prior private repos.
29
-
30
- ## Product Boundary
31
-
32
- `xoonya` owns:
33
-
34
- - canonical event commitment rules
35
- - canonical hashing rules
36
- - receipt construction
37
- - proof bundle construction
38
- - receipt verification
39
- - proof bundle verification
40
- - conformance vectors
41
- - versioned proof schemas
42
-
43
- `xoonya` does not own:
44
-
45
- - pricing
46
- - balances
47
- - refunds
48
- - treasury logic
49
- - workflow semantics
50
- - task catalogs
51
- - execution orchestration
52
- - settlement orchestration
53
- - market rules
54
- - governance policy
55
-
56
- ## Core Doctrine
57
-
58
- The proof model is layered.
59
-
60
- ### Layer 1: Canonical Event Bundle
61
-
62
- This is the machine fact being committed.
63
-
64
- It is the canonical, deterministic representation of an externally consequential machine event.
65
-
66
- ### Layer 2: Receipt
67
-
68
- This is the minimal commitment artifact.
69
-
70
- It proves that a specific identity committed to a specific canonical event commitment under a specific versioned receipt contract.
71
-
72
- ### Layer 3: Proof Bundle
73
-
74
- This carries the richer proof context around the receipt:
75
-
76
- - anchors
77
- - attestation references
78
- - evidence references
79
- - batch inclusion material
80
- - metadata
81
-
82
- ### Layer 4: Profiles
83
-
84
- Profiles are optional domain-specific overlays for things like:
85
-
86
- - economic handoff
87
- - registry lifecycle
88
- - compliance
89
- - industry-specific evidence rules
90
-
91
- Profiles must not mutate the base proof contract.
92
-
93
- ## Non-Negotiable Invariants
94
-
95
- The following invariants must hold for all final versions.
96
-
97
- ### 1. Deterministic canonicalization
98
-
99
- The same logical event must always produce the same canonical byte representation.
100
-
101
- No implementation may depend on:
102
-
103
- - locale
104
- - timezone
105
- - object insertion order
106
- - language-specific serializer behavior
107
- - non-canonical map ordering
108
-
109
- ### 2. Deterministic hashing
110
-
111
- The same canonical event bytes must always yield the same commitment hash.
112
-
113
- Hashing must use explicit domain separation.
114
-
115
- ### 3. Minimal receipt
116
-
117
- The receipt must stay small and stable.
118
-
119
- It must not absorb:
120
-
121
- - economics
122
- - payment semantics
123
- - execution transcript detail
124
- - attestation bodies
125
- - anchor proofs
126
-
127
- ### 4. Optional anchoring
128
-
129
- Anchoring is optional.
130
-
131
- Proof validity must not depend on anchoring.
132
-
133
- Anchoring strengthens external assurance and chronology, but does not define whether the receipt is well-formed or verifiable.
134
-
135
- ### 5. Single machine truth format
136
-
137
- There must be one machine-native proof contract.
138
-
139
- Human-readable renderings are views or encodings of the same proof objects, not separate proof protocols.
140
-
141
- ### 6. Versioned stability
142
-
143
- Versions are explicit and strict.
144
-
145
- Older versions remain historically valid.
146
-
147
- New versions must not silently reinterpret older receipts.
148
-
149
- ## Canonical Event Bundle v1
150
-
151
- The canonical event bundle is the fact layer.
152
-
153
- Its purpose is to represent an externally consequential machine event in a deterministic and portable way.
154
-
155
- ### Required fields
156
-
157
- - `version`
158
- - `domain_id`
159
- - `sequence`
160
- - `actor_id`
161
- - `adapter_source`
162
- - `event_type`
163
- - `event_hash`
164
-
165
- ### Optional fields
166
-
167
- - `timestamp_ns`
168
- - `parent_refs`
169
- - `capability_refs`
170
- - `attestation_ref`
171
- - `semantic_slots`
172
-
173
- ### Rules
174
-
175
- - ordering is determined by explicit replay-safe fields, not by timestamps
176
- - timestamps may exist, but must not define event ordering
177
- - semantic slots are interpretation hints and must not change the event commitment semantics
178
- - attestation references are optional and external
179
-
180
- ### Commitment rule
181
-
182
- The canonical event bundle commitment must be derived from the canonical serialized form of the full event bundle object, not from a hand-picked concatenation of selected fields.
183
-
184
- This is the preferred rule because it:
185
-
186
- - reduces hidden ambiguity
187
- - reduces implementation drift
188
- - makes conformance easier to test
189
- - makes schema evolution cleaner
190
-
191
- ## Receipt v1
192
-
193
- The receipt is the minimal commitment artifact.
194
-
195
- ### Purpose
196
-
197
- The receipt proves:
198
-
199
- - which proof contract version applies
200
- - which identity issued the commitment
201
- - which canonical event commitment is being committed
202
- - that the issuer signed or committed that event commitment
203
-
204
- ### Required fields
205
-
206
- - `version`
207
- - `receipt_id`
208
- - `agent_identity`
209
- - `domain_id`
210
- - `sequence`
211
- - `event_commitment`
212
- - `signature`
213
-
214
- ### Optional fields
215
-
216
- - `algorithm`
217
-
218
- ### Rules
219
-
220
- - `receipt_id` must be deterministic or derivable in a stable way
221
- - `agent_identity` must be a stable identity reference, not a commerce-specific account handle
222
- - `event_commitment` must equal the canonical event bundle commitment
223
- - `signature` must verify against the exact commitment material defined by the contract
224
-
225
- ### Explicit exclusions
226
-
227
- The receipt must not directly carry:
228
-
229
- - prices
230
- - balances
231
- - refunds
232
- - quote details
233
- - settlement details
234
- - anchor records
235
- - Merkle paths
236
- - attestation bodies
237
- - execution transcripts
238
-
239
- ## Proof Bundle v1
240
-
241
- The proof bundle is the portable richer proof container.
242
-
243
- ### Required fields
244
-
245
- - `ceb`
246
- - `receipt`
247
-
248
- ### Optional fields
249
-
250
- - `anchors`
251
- - `attestations`
252
- - `evidence_refs`
253
- - `batch_refs`
254
- - `metadata`
255
-
256
- ### Purpose
257
-
258
- The proof bundle is where richer proof and portability features live without bloating the receipt.
259
-
260
- This is the correct place for:
261
-
262
- - chain or ledger anchors
263
- - block references
264
- - batch roots
265
- - inclusion proofs
266
- - external evidence references
267
- - optional attestation references
268
-
269
- ### Rules
270
-
271
- - the receipt remains valid without a proof bundle
272
- - the proof bundle must never alter the meaning of the receipt
273
- - all optional fields must be additive, not redefining
274
-
275
- ## Attestation Relationship
276
-
277
- Attestation is separate from proof.
278
-
279
- `xoonya` may reference attestation material, commit to attestation hashes, and verify attestation-shaped adjuncts if needed, but attestation must remain conceptually separate from the receipt core.
280
-
281
- ### Rule
282
-
283
- Attestation may be consumed.
284
- It must not become the receipt.
285
-
286
- ## Profiles
287
-
288
- Profiles are optional structured overlays built on top of base proof primitives.
289
-
290
- Examples:
291
-
292
- - economic receipt profile
293
- - registry lifecycle profile
294
- - compliance profile
295
-
296
- ### Profile rule
297
-
298
- Profiles may:
299
-
300
- - reference receipts
301
- - reference proof bundles
302
- - define domain-specific payload semantics
303
- - define domain-specific verification logic
304
-
305
- Profiles may not:
306
-
307
- - redefine base receipt meaning
308
- - redefine canonical event bundle meaning
309
- - create hidden alternate proof cores
310
-
311
- ## Batching
312
-
313
- Batching is supported, but not part of the minimal receipt core.
314
-
315
- ### Rule
316
-
317
- Multiple proof commitments may be compressed into a deterministic batch root.
318
-
319
- Batch-related material belongs in:
320
-
321
- - proof bundle
322
- - batch metadata
323
- - inclusion proofs
324
- - anchor references
325
-
326
- not in the base receipt itself.
327
-
328
- ## Verification Contract
329
-
330
- Verification must produce deterministic outcomes.
331
-
332
- ### Verification result fields
333
-
334
- - `ok`
335
- - `code`
336
- - `message`
337
- - optional `details`
338
-
339
- ### Canonical failure classes
340
-
341
- - invalid schema
342
- - unsupported version
343
- - hash mismatch
344
- - signature mismatch
345
- - receipt mismatch
346
- - bundle mismatch
347
- - profile mismatch
348
-
349
- ### Rule
350
-
351
- The same invalid input must fail the same way across conformant implementations.
352
-
353
- ## Versioning Strategy
354
-
355
- ### v1
356
-
357
- Freeze:
358
-
359
- - canonical event bundle v1
360
- - receipt v1
361
- - proof bundle v1
362
- - verification result contract v1
363
-
364
- ### Future versions
365
-
366
- A new version is justified only when:
367
-
368
- - commitment semantics change
369
- - canonicalization semantics change
370
- - identity/signature semantics change in a breaking way
371
- - proof container semantics change in a breaking way
372
-
373
- New profiles do not require a new core proof version unless they change base semantics.
374
-
375
- ## Conformance Requirements
376
-
377
- Any implementation claiming compatibility must pass:
378
-
379
- - canonicalization vectors
380
- - hashing vectors
381
- - receipt creation vectors
382
- - receipt verification vectors
383
- - proof bundle verification vectors
384
- - adversarial vectors
385
-
386
- ### Adversarial vector classes
387
-
388
- - field ordering drift
389
- - null / absent field ambiguity
390
- - unicode normalization edge cases
391
- - timestamp representation drift
392
- - duplicate proof entries
393
- - wrong anchor references
394
- - wrong batch inclusion paths
395
- - signature mismatch
396
- - tampered metadata
397
- - version mismatch
398
-
399
- ## Public API Direction
400
-
401
- The public API of `xoonya` should center on:
402
-
403
- - `canonicalizeEvent`
404
- - `hashEvent`
405
- - `emitReceipt`
406
- - `verifyReceipt`
407
- - `buildProofBundle`
408
- - `verifyProofBundle`
409
-
410
- Optional profile helpers may be added separately.
411
-
412
- ## What Should Be Carried Forward From Earlier Proof Iterations
413
-
414
- Keep:
415
-
416
- - minimal commitment philosophy
417
- - strict domain separation
418
- - optional anchoring
419
- - proof envelope / bundle layering
420
- - additive profile concept
421
- - strong conformance vector discipline
422
-
423
- Do not freeze directly:
424
-
425
- - historical implementation names
426
- - historical version labels
427
- - exact old byte-count decisions as sacred
428
- - old rail-shaped assumptions
429
-
430
- ## Final Product Position
431
-
432
- `xoonya` should become:
433
-
434
- - the neutral machine truth layer
435
- - the portable proof layer
436
- - the deterministic evidence layer
437
-
438
- It should be usable:
439
-
440
- - independently of `xytara`
441
- - independently of any chain
442
- - independently of any specific payment rail
443
- - independently of any specific runtime
444
-
445
- That independence is the foundation of the whole stack.
1
+ # xoonya Final Contract
2
+
3
+ ## Purpose
4
+
5
+ `xoonya` is the neutral proof foundation for machine actions.
6
+
7
+ It exists to make machine-action evidence:
8
+
9
+ - deterministic
10
+ - portable
11
+ - minimal
12
+ - verifiable
13
+ - replayable
14
+ - independent of payment rails, settlement systems, and workflow engines
15
+
16
+ `xoonya` is not a commerce system, policy engine, or execution runtime.
17
+
18
+ ## Public Release Stance
19
+
20
+ This product is being prepared as a first public release.
21
+
22
+ That means:
23
+
24
+ - prior proof formats are design history, not public obligations
25
+ - useful earlier decisions may be preserved where they strengthen the final product
26
+ - older helper shapes do not automatically become the public contract
27
+
28
+ The public baseline should therefore be chosen for correctness, clarity, determinism, and extensibility, not for backward compatibility with prior private repos.
29
+
30
+ ## Product Boundary
31
+
32
+ `xoonya` owns:
33
+
34
+ - canonical event commitment rules
35
+ - canonical hashing rules
36
+ - receipt construction
37
+ - proof bundle construction
38
+ - receipt verification
39
+ - proof bundle verification
40
+ - conformance vectors
41
+ - versioned proof schemas
42
+
43
+ `xoonya` does not own:
44
+
45
+ - pricing
46
+ - balances
47
+ - refunds
48
+ - treasury logic
49
+ - workflow semantics
50
+ - task catalogs
51
+ - execution orchestration
52
+ - settlement orchestration
53
+ - market rules
54
+ - governance policy
55
+
56
+ ## Core Doctrine
57
+
58
+ The proof model is layered.
59
+
60
+ ### Layer 1: Canonical Event Bundle
61
+
62
+ This is the machine fact being committed.
63
+
64
+ It is the canonical, deterministic representation of an externally consequential machine event.
65
+
66
+ ### Layer 2: Receipt
67
+
68
+ This is the minimal commitment artifact.
69
+
70
+ It proves that a specific identity committed to a specific canonical event commitment under a specific versioned receipt contract.
71
+
72
+ ### Layer 3: Proof Bundle
73
+
74
+ This carries the richer proof context around the receipt:
75
+
76
+ - anchors
77
+ - attestation references
78
+ - evidence references
79
+ - batch inclusion material
80
+ - metadata
81
+
82
+ ### Layer 4: Profiles
83
+
84
+ Profiles are optional domain-specific overlays for things like:
85
+
86
+ - economic handoff
87
+ - registry lifecycle
88
+ - compliance
89
+ - industry-specific evidence rules
90
+
91
+ Profiles must not mutate the base proof contract.
92
+
93
+ ## Non-Negotiable Invariants
94
+
95
+ The following invariants must hold for all final versions.
96
+
97
+ ### 1. Deterministic canonicalization
98
+
99
+ The same logical event must always produce the same canonical byte representation.
100
+
101
+ No implementation may depend on:
102
+
103
+ - locale
104
+ - timezone
105
+ - object insertion order
106
+ - language-specific serializer behavior
107
+ - non-canonical map ordering
108
+
109
+ ### 2. Deterministic hashing
110
+
111
+ The same canonical event bytes must always yield the same commitment hash.
112
+
113
+ Hashing must use explicit domain separation.
114
+
115
+ ### 3. Minimal receipt
116
+
117
+ The receipt must stay small and stable.
118
+
119
+ It must not absorb:
120
+
121
+ - economics
122
+ - payment semantics
123
+ - execution transcript detail
124
+ - attestation bodies
125
+ - anchor proofs
126
+
127
+ ### 4. Optional anchoring
128
+
129
+ Anchoring is optional.
130
+
131
+ Proof validity must not depend on anchoring.
132
+
133
+ Anchoring strengthens external assurance and chronology, but does not define whether the receipt is well-formed or verifiable.
134
+
135
+ ### 5. Single machine truth format
136
+
137
+ There must be one machine-native proof contract.
138
+
139
+ Human-readable renderings are views or encodings of the same proof objects, not separate proof protocols.
140
+
141
+ ### 6. Versioned stability
142
+
143
+ Versions are explicit and strict.
144
+
145
+ Older versions remain historically valid.
146
+
147
+ New versions must not silently reinterpret older receipts.
148
+
149
+ ## Canonical Event Bundle v1
150
+
151
+ The canonical event bundle is the fact layer.
152
+
153
+ Its purpose is to represent an externally consequential machine event in a deterministic and portable way.
154
+
155
+ ### Required fields
156
+
157
+ - `version`
158
+ - `domain_id`
159
+ - `sequence`
160
+ - `actor_id`
161
+ - `adapter_source`
162
+ - `event_type`
163
+ - `event_hash`
164
+
165
+ ### Optional fields
166
+
167
+ - `timestamp_ns`
168
+ - `parent_refs`
169
+ - `capability_refs`
170
+ - `attestation_ref`
171
+ - `semantic_slots`
172
+
173
+ ### Rules
174
+
175
+ - ordering is determined by explicit replay-safe fields, not by timestamps
176
+ - timestamps may exist, but must not define event ordering
177
+ - semantic slots are interpretation hints and must not change the event commitment semantics
178
+ - attestation references are optional and external
179
+
180
+ ### Commitment rule
181
+
182
+ The canonical event bundle commitment must be derived from the canonical serialized form of the full event bundle object, not from a hand-picked concatenation of selected fields.
183
+
184
+ This is the preferred rule because it:
185
+
186
+ - reduces hidden ambiguity
187
+ - reduces implementation drift
188
+ - makes conformance easier to test
189
+ - makes schema evolution cleaner
190
+
191
+ ## Receipt v1
192
+
193
+ The receipt is the minimal commitment artifact.
194
+
195
+ ### Purpose
196
+
197
+ The receipt proves:
198
+
199
+ - which proof contract version applies
200
+ - which identity issued the commitment
201
+ - which canonical event commitment is being committed
202
+ - that the issuer signed or committed that event commitment
203
+
204
+ ### Required fields
205
+
206
+ - `version`
207
+ - `receipt_id`
208
+ - `agent_identity`
209
+ - `domain_id`
210
+ - `sequence`
211
+ - `event_commitment`
212
+ - `signature`
213
+
214
+ ### Optional fields
215
+
216
+ - `algorithm`
217
+
218
+ ### Rules
219
+
220
+ - `receipt_id` must be deterministic or derivable in a stable way
221
+ - `agent_identity` must be a stable identity reference, not a commerce-specific account handle
222
+ - `event_commitment` must equal the canonical event bundle commitment
223
+ - `signature` must verify against the exact commitment material defined by the contract
224
+
225
+ ### Explicit exclusions
226
+
227
+ The receipt must not directly carry:
228
+
229
+ - prices
230
+ - balances
231
+ - refunds
232
+ - quote details
233
+ - settlement details
234
+ - anchor records
235
+ - Merkle paths
236
+ - attestation bodies
237
+ - execution transcripts
238
+
239
+ ## Proof Bundle v1
240
+
241
+ The proof bundle is the portable richer proof container.
242
+
243
+ ### Required fields
244
+
245
+ - `ceb`
246
+ - `receipt`
247
+
248
+ ### Optional fields
249
+
250
+ - `anchors`
251
+ - `attestations`
252
+ - `evidence_refs`
253
+ - `batch_refs`
254
+ - `metadata`
255
+
256
+ ### Purpose
257
+
258
+ The proof bundle is where richer proof and portability features live without bloating the receipt.
259
+
260
+ This is the correct place for:
261
+
262
+ - chain or ledger anchors
263
+ - block references
264
+ - batch roots
265
+ - inclusion proofs
266
+ - external evidence references
267
+ - optional attestation references
268
+
269
+ ### Rules
270
+
271
+ - the receipt remains valid without a proof bundle
272
+ - the proof bundle must never alter the meaning of the receipt
273
+ - all optional fields must be additive, not redefining
274
+
275
+ ## Attestation Relationship
276
+
277
+ Attestation is separate from proof.
278
+
279
+ `xoonya` may reference attestation material, commit to attestation hashes, and verify attestation-shaped adjuncts if needed, but attestation must remain conceptually separate from the receipt core.
280
+
281
+ ### Rule
282
+
283
+ Attestation may be consumed.
284
+ It must not become the receipt.
285
+
286
+ ## Profiles
287
+
288
+ Profiles are optional structured overlays built on top of base proof primitives.
289
+
290
+ Examples:
291
+
292
+ - economic receipt profile
293
+ - registry lifecycle profile
294
+ - compliance profile
295
+
296
+ ### Profile rule
297
+
298
+ Profiles may:
299
+
300
+ - reference receipts
301
+ - reference proof bundles
302
+ - define domain-specific payload semantics
303
+ - define domain-specific verification logic
304
+
305
+ Profiles may not:
306
+
307
+ - redefine base receipt meaning
308
+ - redefine canonical event bundle meaning
309
+ - create hidden alternate proof cores
310
+
311
+ ## Batching
312
+
313
+ Batching is supported, but not part of the minimal receipt core.
314
+
315
+ ### Rule
316
+
317
+ Multiple proof commitments may be compressed into a deterministic batch root.
318
+
319
+ Batch-related material belongs in:
320
+
321
+ - proof bundle
322
+ - batch metadata
323
+ - inclusion proofs
324
+ - anchor references
325
+
326
+ not in the base receipt itself.
327
+
328
+ ## Verification Contract
329
+
330
+ Verification must produce deterministic outcomes.
331
+
332
+ ### Verification result fields
333
+
334
+ - `ok`
335
+ - `code`
336
+ - `message`
337
+ - optional `details`
338
+
339
+ ### Canonical failure classes
340
+
341
+ - invalid schema
342
+ - unsupported version
343
+ - hash mismatch
344
+ - signature mismatch
345
+ - receipt mismatch
346
+ - bundle mismatch
347
+ - profile mismatch
348
+
349
+ ### Rule
350
+
351
+ The same invalid input must fail the same way across conformant implementations.
352
+
353
+ ## Versioning Strategy
354
+
355
+ ### v1
356
+
357
+ Freeze:
358
+
359
+ - canonical event bundle v1
360
+ - receipt v1
361
+ - proof bundle v1
362
+ - verification result contract v1
363
+
364
+ ### Future versions
365
+
366
+ A new version is justified only when:
367
+
368
+ - commitment semantics change
369
+ - canonicalization semantics change
370
+ - identity/signature semantics change in a breaking way
371
+ - proof container semantics change in a breaking way
372
+
373
+ New profiles do not require a new core proof version unless they change base semantics.
374
+
375
+ ## Conformance Requirements
376
+
377
+ Any implementation claiming compatibility must pass:
378
+
379
+ - canonicalization vectors
380
+ - hashing vectors
381
+ - receipt creation vectors
382
+ - receipt verification vectors
383
+ - proof bundle verification vectors
384
+ - adversarial vectors
385
+
386
+ ### Adversarial vector classes
387
+
388
+ - field ordering drift
389
+ - null / absent field ambiguity
390
+ - unicode normalization edge cases
391
+ - timestamp representation drift
392
+ - duplicate proof entries
393
+ - wrong anchor references
394
+ - wrong batch inclusion paths
395
+ - signature mismatch
396
+ - tampered metadata
397
+ - version mismatch
398
+
399
+ ## Public API Direction
400
+
401
+ The public API of `xoonya` should center on:
402
+
403
+ - `canonicalizeEvent`
404
+ - `hashEvent`
405
+ - `emitReceipt`
406
+ - `verifyReceipt`
407
+ - `buildProofBundle`
408
+ - `verifyProofBundle`
409
+
410
+ Optional profile helpers may be added separately.
411
+
412
+ ## What Should Be Carried Forward From Earlier Proof Iterations
413
+
414
+ Keep:
415
+
416
+ - minimal commitment philosophy
417
+ - strict domain separation
418
+ - optional anchoring
419
+ - proof envelope / bundle layering
420
+ - additive profile concept
421
+ - strong conformance vector discipline
422
+
423
+ Do not freeze directly:
424
+
425
+ - historical implementation names
426
+ - historical version labels
427
+ - exact old byte-count decisions as sacred
428
+ - old rail-shaped assumptions
429
+
430
+ ## Final Product Position
431
+
432
+ `xoonya` should become:
433
+
434
+ - the neutral machine truth layer
435
+ - the portable proof layer
436
+ - the deterministic evidence layer
437
+
438
+ It should be usable:
439
+
440
+ - independently of `xytara`
441
+ - independently of any chain
442
+ - independently of any specific payment rail
443
+ - independently of any specific runtime
444
+
445
+ That independence is the foundation of the whole stack.