chatClient
Initialize with
initializeFromShyConfig— see the Web SDK overview for the common setup pattern.
Non-standard options for this client:
deriveSealerKey.
Initialize
import { initializeFromShyConfig } from "shyware/sdk/web/chatClient.js";
const client = initializeFromShyConfig(shyconfig);
const state = client.initialize();
The returned state includes:
surfaceModelaccountModelparticipantBindingpayloadModelauditModelallowedPayloadFormats
Queue a dispatch
await client.queueDispatch({
mailboxId: "mbx-001",
recipientAddress: "operations@confidential.example",
subject: "Case packet",
body: "Readable content stays sealed off-canonical.",
deliveryWindow: "next attested close",
contentClass: "report",
payloadFormat: "json_form",
privateFields: {
case_id: "case-001",
reporter_email: "source@example.com"
},
auditMode: "delivery_commitment_only",
attachmentRefs: ["ipfs://sealed-packet-001"]
});
Audit model
shychat separates the canonical audit surface from the private payload surface.
delivery_commitment_only- canonical audit includes delivery continuity and payload commitments only
delivery_metadata_commitment- canonical audit may additionally include safe descriptors such as
content_classandpayload_format
- canonical audit may additionally include safe descriptors such as
Readable content, structured private fields, and attachment references remain sealed off-canonical under payload_model: "sealed_private_content".
Community launch, later migration
shychat is a natural fit for the community deployment tier: a tenant can
launch on a shared chain with a tenant manifest and tenant subdomain first,
then later move to dedicated or self-hosted infrastructure. See
Community-to-dedicated migration for the current
cutover design, the new Scytale checkpoint/export/import CLI, and what still
remains for full cross-chain bootstrap continuity. The same import/export path
works in reverse if a tenant later wants to move back into community hosting
without giving up continuity.