Hash and Ed25519 signature checks passed.
status: VALIDhash_matches: truesignature_valid: true
Embedded Verification
CommandLayer badges let apps display verifier results where users make decisions — verified, invalid, or unavailable.
Hash and Ed25519 signature checks passed.
status: VALIDhash_matches: truesignature_valid: true
Receipt payload changed or proof failed.
status: INVALIDhash_matches: falsesignature_valid: false
Verifier/runtime unavailable or request failed.
status: TRANSPORT_ERROR
metadata.proof presentjson.sorted_keys.v1 canonicalization (standard JSON receipt path)erc8211.composable.v1 — ERC-8211 composable execution canonicalization recognized. Merkle authorization verification is deferred pending the companion Merkle authorization ERC.signature.kid (vC4WbcNoq2znSCiQ)signer_id (runtime.commandlayer.eth)Canonical proof model (single-signature example):
metadata.proof.canonicalization = json.sorted_keys.v1metadata.proof.hash.alg = SHA-256metadata.proof.hash.valuemetadata.proof.signature = { alg, kid, value }metadata.proof.signer_id = runtime.commandlayer.ethmetadata.trace = { trace_id, span_id? } (optional)
Multi-signature shape is also supported for solver/relayer/batch workflows via metadata.proof.signature[] entries with role values of user, solver, relayer, agent, runtime, or verifier.
Runtime endpoint: https://runtime.commandlayer.org.
Manual verification: Paste and inspect a receipt at /verify.html.
Production proof: See runtime sign, verify, and tamper invalidation at /stack-proof-demo.html.
Automatic verification: Run the webhook auto-verify demo at /proof.html.
Embedded verification: Use this badge pattern to display the result wherever the receipt is used.
<div
class="commandlayer-verify-badge"
data-receipt-url="/receipts/demo-valid-receipt.json">
</div>
<script src="/js/verify-badge.js"></script>
The script fetches the receipt, calls the verifier, and renders the badge state.
Valid sample: /receipts/demo-valid-receipt.json
Tampered sample: /receipts/demo-tampered-receipt.json