Slack
- CAIN posts a Block Kit message: who wants to do what, where, the quorum and the action digest, with Approve and Deny buttons (Deny asks for confirmation).
- Slack calls
POST /approval-keystone/slack/{workspace}/interactions. CAIN checks Slack's v0 signature (HMAC-SHA256 with the workspace signing secret, 5-minute window), the team id, and maps the Slack user to an approver through an allow-list. An unknown user cannot vote. - The message is refreshed only through
https://hooks.slack.com; an attacker-chosen URL is ignored. - Agent names, paths and summaries are escaped, including backticks since 2026-11-02, so text cannot fake "APPROVED".
See the message for a request
Open a request in the demo, then fetch GET /approval-keystone/requests/{id}/slack.
No Slack workspace is connected to the public demo (the endpoint answers 404 until one is configured).
FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.