You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 24, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+9-10Lines changed: 9 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,11 +29,11 @@ console.log(result.valid);
29
29
30
30
## What this repo now treats as canonical
31
31
32
-
-**Requests**: Commons requests are built around one explicit envelope: top-level `x402.verb`, `x402.version`, `actor`, and the verb body.
32
+
-**Requests**: Commons requests are built with an explicit verb + payload envelope, and receipts surface that canonical verb at top-level `receipt.verb`.
33
33
-**Responses**: the signed artifact is always `response.receipt`.
34
34
-**Unsigned runtime context**: optional execution details live in `response.runtime_metadata`.
35
-
-**Verification**: verification recomputes the receipt hash from the unsigned receipt, checks `metadata.receipt_id === metadata.proof.hash_sha256`, then verifies the Ed25519 signature over the UTF-8 hash string.
36
-
-**Verb semantics**: the verb is read from `receipt.x402.verb`.
35
+
-**Verification**: verification recomputes the receipt hash from the unsigned receipt, checks it against `metadata.proof.hash_sha256`, and verifies the Ed25519 signature over the UTF-8 hash string. `metadata.receipt_id` is optional compatibility metadata; when present it should match the proof hash.
36
+
-**Verb semantics**: the canonical verb is read from `receipt.verb`; `receipt.x402.verb` is legacy / commercial fallback only.
37
37
38
38
This repo no longer presents legacy blended envelopes as the primary contract. Legacy normalization remains only to accept older runtime responses that inlined `trace` beside the receipt.
39
39
@@ -84,10 +84,7 @@ pip install commandlayer
84
84
{
85
85
"receipt": {
86
86
"status": "success",
87
-
"x402": {
88
-
"verb": "summarize",
89
-
"version": "1.1.0"
90
-
},
87
+
"verb": "summarize",
91
88
"result": {
92
89
"summary": "..."
93
90
},
@@ -97,7 +94,7 @@ pip install commandlayer
97
94
"alg": "ed25519-sha256",
98
95
"canonical": "cl-stable-json-v1",
99
96
"signer_id": "runtime.commandlayer.eth",
100
-
"hash_sha256": "same-value-as-receipt_id",
97
+
"hash_sha256": "sha256-of-unsigned-receipt",
101
98
"signature_b64": "..."
102
99
}
103
100
}
@@ -160,6 +157,7 @@ Client methods now return a command response envelope:
160
157
{
161
158
"receipt": {
162
159
"status": "success",
160
+
"verb": "summarize",
163
161
"result": {
164
162
"summary": "..."
165
163
},
@@ -207,8 +205,9 @@ Verification reads exactly the current receipt contract:
207
205
2. remove `metadata.receipt_id` and the signed hash/signature fields,
Copy file name to clipboardExpand all lines: typescript-sdk/README.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,9 @@ Current-line TypeScript SDK for the CommandLayer Commons receipt contract (`1.1.
6
6
7
7
-`response.receipt` is the signed receipt.
8
8
-`response.runtime_metadata` is optional unsigned execution context.
9
-
-`receipt.metadata.receipt_id` is the receipt hash identifier and must match `receipt.metadata.proof.hash_sha256`.
10
-
- The verb lives at `receipt.x402.verb`.
9
+
-`receipt.metadata.proof.hash_sha256` is the signed/recomputed receipt proof hash.
10
+
- The canonical verb lives at `receipt.verb`; `receipt.x402.verb` is legacy / commercial fallback only.
11
+
-`receipt.metadata.receipt_id`, when present, should match the proof hash but is not required for verification `ok`.
11
12
12
13
## Install
13
14
@@ -44,6 +45,7 @@ Client methods return:
44
45
{
45
46
"receipt": {
46
47
"status": "success",
48
+
"verb": "summarize",
47
49
"result": {},
48
50
"metadata": {
49
51
"proof": {
@@ -117,5 +119,5 @@ npm run test:integration
117
119
-`receipt.verb` is the canonical verb field returned by the runtime.
118
120
-`receipt.metadata.receipt_id` is an identifier for the receipt instance.
119
121
-`receipt.metadata.proof.hash_sha256` is the SHA-256 hash over the unsigned canonical receipt payload.
120
-
-`verifyReceipt()` succeeds when the declared algorithm/canonicalization match, the recomputed payload hash matches `hash_sha256`, and the Ed25519 signature validates over that hash.
122
+
-`verifyReceipt()` succeeds when the declared algorithm/canonicalization match, the recomputed payload hash matches `hash_sha256`, and the Ed25519 signature validates over that hash. Any `receipt_id_matches` output is compatibility/diagnostic metadata and is not required for `ok`.
121
123
- Legacy receipts that still place the verb under `receipt.x402.verb` continue to parse, but that path is fallback-only.
0 commit comments