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
<divclass="grid"><articleclass="card"><h3>Webhook Auto-Verify</h3><p>Working example of automatic receipt verification.</p><aclass="link" href="/webhook-auto-verify.html">Open demo</a></article></div>
<h2class="section-h2">Valid receipts are accepted. Tampered receipts are rejected.</h2>
1290
+
<pclass="section-p">CommandLayer verification is not limited to manual paste. A webhook can receive a receipt, verify it server-side, accept the valid event, and reject the same receipt after payload tampering.</p>
<pclass="section-p" style="max-width: 52ch;">Runtime <code>/verify</code> has been validated against production runtime receipts. Website <code>/api/verify</code> is a public verifier surface and should align with the same canonical proof model.</p>
1341
+
<pclass="section-p" style="max-width: 52ch;">Runtime <code>/verify</code> has been validated against production runtime receipts. Website <code>/api/verify</code> is a public verifier surface and should align with the same canonical proof model. Webhook sender authentication is separate from receipt verification.</p>
<h2>Trust the proof.<br><spanclass="grad">Not the agent.</span></h2>
1349
-
<p>Start adding cryptographic verification to your AI agent actions in minutes.</p>
1378
+
<p>Start adding cryptographic verification to your AI agent actions in minutes.<br><spanstyle="opacity:.92;">Now with manual verification, production proof, and automatic webhook verification.</span></p>
1350
1379
<divclass="cta-actions">
1351
1380
<aclass="btn btn-white btn-lg" href="/verify.html">Verify a Receipt</a>
1352
1381
<aclass="btn btn-ghost-white btn-lg" href="https://github.com/commandlayer/agent-sdk" target="_blank" rel="noopener">View SDK on GitHub</a>
Copy file name to clipboardExpand all lines: public/verify.html
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -57,7 +57,7 @@
57
57
<sectionclass="verify-hero"><divclass="container"><divclass="hero-badge"><spanclass="badge-dot"></span>Verifier</div><h1class="verify-h1">Verify agent receipts by proof, not claim.</h1><pclass="verify-sub">Paste a CommandLayer receipt, inspect its canonical proof, and confirm whether the hash and Ed25519 signature still match.</p><divclass="hero-actions"><aclass="hero-btn primary" href="#manual-verifier">Verify a receipt</a><aclass="hero-btn" href="/stack-proof-demo.html">View production proof</a></div><divclass="proof-status"><strong>Receipts are not trusted by claim. They are verified by proof.</strong><br/>Runtime production is live. Runtime signs canonical Trust Verification receipts. MCP E2E against production runtime passes: STEP 1 SIGNED, STEP 2 VERIFIED, STEP 3 TAMPERED INVALID. Runtime signer: <code>runtime.commandlayer.eth</code> with <code>kid=vC4WbcNoq2znSCiQ</code>. Canonical proof uses <code>metadata.proof.canonicalization=json.sorted_keys.v1</code>, <code>metadata.proof.hash.alg=SHA-256</code>, and <code>metadata.proof.signature.alg=Ed25519</code>.</div></div></section>
58
58
<sectionclass="section"><divclass="container"><divclass="section-eyebrow">What gets checked</div><h2class="section-h2">Manual verifier checks, not just shape.</h2><divclass="cards"><divclass="card">Receipt structure</div><divclass="card">Canonical metadata.proof envelope</div><divclass="card">json.sorted_keys.v1 canonical hash</div><divclass="card">SHA-256 hash match</div><divclass="card">Ed25519 signature validity</div><divclass="card">Signer identity and key id</div><divclass="card">Supported capability verb</div><divclass="card">Tamper resistance</div></div><divclass="warn">A receipt is only verified when hash and signature checks pass. Schema-valid alone is not verified.</div></div></section>
59
59
<sectionclass="verifier-section" id="manual-verifier"><divclass="container layout"><divclass="tool-card"><labelclass="label" for="receiptInput">Manual verifier input</label><textareaid="receiptInput" spellcheck="false" placeholder="Paste a CommandLayer receipt JSON here..."></textarea><divclass="btn-row"><buttonid="loadSampleBtn">Load Sample</button><buttonid="loadTamperedBtn">Load Tampered</button><buttonid="clearBtn">Clear</button><buttonclass="primary" id="verifyBtn">Verify</button></div></div><divclass="tool-card"><divclass="result-card" id="resultCard"><divclass="result-state" id="resultState">—</div><divclass="result-note" id="resultNote">Run verification to see verdict.</div></div><ulclass="checks" id="checksList"></ul><divclass="meta" id="metaRows"></div></div></div></section>
60
-
<sectionclass="section"><divclass="container"><divclass="section-eyebrow">Proof surfaces</div><divclass="cards"><divclass="card"><h3>Manual verifier</h3><p>Paste a receipt and inspect every verification check.</p></div><divclass="card"><h3>Proof URLs</h3><p>Open a receipt verification result from a shareable URL.</p></div><divclass="card"><h3>Embedded badges</h3><p>Display verified/invalid state inside an app or product UI.</p></div><divclass="card"><h3>Ambient verification</h3><p>Let systems verify receipts automatically through SDKs, APIs, webhooks, MCP tools, or agent-to-agent flows.</p></div></div></div></section>
60
+
<sectionclass="section"><divclass="container"><divclass="section-eyebrow">Proof surfaces</div><divclass="warn" style="margin-bottom:12px;"><strong>Need automatic verification?</strong> Use the webhook auto-verify demo to verify receipts without manual paste. <ahref="/webhook-auto-verify.html">Open demo</a>.</div><divclass="cards"><divclass="card"><h3>Manual verifier</h3><p>Paste a receipt and inspect every verification check.</p></div><divclass="card"><h3>Proof URLs</h3><p>Open a receipt verification result from a shareable URL.</p></div><divclass="card"><h3>Embedded badges</h3><p>Display verified/invalid state inside an app or product UI.</p></div><divclass="card"><h3>Ambient verification</h3><p>Let systems verify receipts automatically through SDKs, APIs, webhooks, MCP tools, or agent-to-agent flows.</p></div></div></div></section>
61
61
<sectionclass="section"><divclass="container"><divclass="section-eyebrow">Backed by CLAS Trust Verification</div><pclass="section-p">VerifyAgent validates canonical CLAS Trust Verification receipts using schemas where applicable, then checks canonical hash, Ed25519 signature, signer identity, and trust verb.</p><pclass="section-p">Schema validation supports verification, but does not replace cryptographic proof.</p><h3>Canonical receipt example</h3><preclass="example">{
0 commit comments