Manav signed the canonical JSON below with its server secret. Hash the JSON with HMAC-SHA256 using the MANAV_SERVER_SIGNING_SECRET and compare - if it matches, this proof is authentic.
Canonical proof JSON
{"actionPayloadHash":"7e83698364964e6fb8b9b216199dcb2e94a32c8cabd686f201b39673c47777ca","actionTitle":"Promote @opsbot to Workspace Owner · acme-ai-labs.slack.com","actionType":"admin_promote","actorHandle":"demo","externalReference":null,"organizationSlug":null,"signatureSlug":"mnav_sig_gfrICrbpuHTX","signedAt":"2026-06-02 11:40:49"}
Action payload hash · SHA-256 of the canonical action payload
7e83698364964e6fb8b9b216199dcb2e94a32c8cabd686f201b39673c47777ca
Server signature · HMAC-SHA256 over canonical JSON above
fcb75fd406490aefd2fc8158091783c64e581ce16eeb97a585199d4c754b560f
Recompute it yourself
$ printf '%s' '{"actionPayloadHash":"7e83698364964e6fb8b9b216199dcb2e94a32c8cabd686f201b39673c47777ca","actionTitle":"Promote @opsbot to Workspace Owner · acme-ai-labs.slack.com","actionType":"admin_promote","actorHandle":"demo","externalReference":null,"organizationSlug":null,"signatureSlug":"mnav_sig_gfrICrbpuHTX","signedAt":"2026-06-02 11:40:49"}' \
| openssl dgst -sha256 -hmac "$MANAV_SERVER_SIGNING_SECRET" -hex
$ # expected: fcb75fd406490aefd2fc8158091783c64e581ce16eeb97a585199d4c754b560f