Install
openclaw skills install @fidacy/fidacy-conversation-receiptsGive every AI conversation a verifiable receipt. Use when your agent talks to customers (support, claims, quotes, refunds) and either side may later ask "what exactly was said?". Hashes each message locally into a tamper-evident chain, anchors the digest through Fidacy, and hands both sides a public verify link. A court already held a company to what its chatbot said (Air Canada, 2024); this is the proof layer for that moment.
openclaw skills install @fidacy/fidacy-conversation-receiptsYour agent talks to customers about refunds, claims, prescriptions, contracts. When a dispute comes, the question is always the same: what exactly was said, and can either side prove the transcript was not edited afterwards? This skill gives every session a tamper-evident digest, computed locally (content never leaves your infrastructure; only a 64-hex hash travels), anchored through Fidacy onto an audit chain checkpointed to the Bitcoin blockchain.
Any conversation where what was said can bind someone: customer support, insurance quotes, claim intake, medical scheduling, order changes. Especially when the customer is a consumer who needs proof they can check themselves.
Install: npm i @fidacy/session (free; anchoring needs a free API key from
https://app.fidacy.com/signup, scope assess:write).
Wire the chain into your chat loop, one line per message:
import { createSession } from "@fidacy/session";
const session = createSession({ kind: "conversation", label: "case-4711" });
session.add("user", userMessage);
session.add("assistant", botReply);
Before the bot COMMITS to anything (a refund, an approved claim, a quote), gate it. Deny-by-default: anything but "approve" and the bot must refuse:
const verdict = await session.gate(
{ type: "refund", amount: 900, currency: "USD" },
{ apiKey: process.env.FIDACY_ENGINE_API_KEY, kind: "message_send" },
);
if (!verdict.allowed) refusePolitely();
The verdict is recorded into the chain, so the receipt itself proves the gate ran.
At session close, anchor and hand out the receipt:
const receipt = await session.anchor({ apiKey: process.env.FIDACY_ENGINE_API_KEY });
const linkForCustomer = session.verifyUrl(); // no account, no key needed
Anyone can check the receipt at https://fidacy.com/verify: paste the digest, a signed receipt, or the exported transcript (the digest recipe recomputes in the browser, nothing uploads). Changing one character of one message breaks the match; that mismatch is the tampering signal.
Fidacy never sees, stores or judges conversation content. This is integrity proof plus a commitment gate, not content moderation. The bot talks freely; it cannot obligate you outside what you authorized.