chat

Register chat E2EE identity public key

Stores your long-term public key for end-to-end encrypted chat (key agreement). Private keys never leave the client. Other participants use this to encrypt messages to you.

PUT/api/chat/projects/{projectId}/me/chat-e2ee-key

Authentication

Requires JWT
Note
Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →

Path Parameters

NameTypeRequiredDescription
projectIdstringYesProject ID.

Request Body

Identity public key material for E2EE chat (base64). Private keys stay on the client.

json
{
  "identityPublicKey": "matrix bypass",
  "keyVersion": 2
}
{
  "identityPublicKey": "matrix bypass",
  "keyVersion": 2
}

SDK setup

Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.

import { MudbaseClient } from "mudbase";

const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");
import { MudbaseClient } from "mudbase";

const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");

Example request

Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.

const result = await client.chat.putChatE2eeKey({
  projectId: "proj_V5fvichc6fje",
  identityPublicKey: "matrix input",
  keyVersion: 12
});
const result = await client.chat.putChatE2eeKey({
  projectId: "proj_V5fvichc6fje",
  identityPublicKey: "matrix input",
  keyVersion: 12
});

Try It Live

Test this endpoint with your own credentials. Your requests will be sent to the live API.

Use the auth endpoints to obtain a JWT.

No Request Yet

Send a request to see the full inspector

Responses

200Key saved
json
{
  "success": true,
  "data": {
    "identityPublicKey": "card compress",
    "keyVersion": 6,
    "updatedAt": "2026-02-02T00:33:27.113Z"
  }
}
{
  "success": true,
  "data": {
    "identityPublicKey": "card compress",
    "keyVersion": 6,
    "updatedAt": "2026-02-02T00:33:27.113Z"
  }
}
400Bad request or validation error.
401Authentication required or invalid token.

Errors

CodeMeaning
400Bad request or validation error.
401Authentication required or invalid token.
Edit this page on GitHub