Skip to content

Commit 0be419f

Browse files
committed
Use X Chat for the product; keep Chat API and Chat XDK
Standalone references to Chat as the product are now X Chat. Chat API and Chat XDK stay as the API and encryption SDK names; code identifiers (Chat class, paths, event types) are unchanged.
1 parent 7d9a0ac commit 0be419f

8 files changed

Lines changed: 30 additions & 30 deletions

xchat/cryptography-primer.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
title: Cryptography Primer
33
sidebarTitle: Cryptography Primer
4-
description: Understand the encryption concepts behind Chat without diving into implementation details
5-
keywords: ["Chat cryptography", "E2EE primer", "encryption basics", "public key encryption", "ECDH", "digital signatures", "conversation keys"]
4+
description: Understand the encryption concepts behind X Chat without diving into implementation details
5+
keywords: ["X Chat cryptography", "E2EE primer", "encryption basics", "public key encryption", "ECDH", "digital signatures", "conversation keys"]
66
---
77

88
import { Button } from '/snippets/button.mdx';
99

10-
This primer explains the cryptographic ideas behind Chat at a conceptual level. You do not need this depth to build—the [Chat XDK](/xchat/xchat-xdk) performs encryption, decryption, signing, and key storage for you—but the mental model helps when you design your app or debug behavior.
10+
This primer explains the cryptographic ideas behind X Chat at a conceptual level. You do not need this depth to build—the [Chat XDK](/xchat/xchat-xdk) performs encryption, decryption, signing, and key storage for you—but the mental model helps when you design your app or debug behavior.
1111

1212
When you are ready to implement, use [Getting Started](/xchat/getting-started) for a full walkthrough and the [API reference](/x-api/chat/get-chat-conversations) in the sidebar for individual routes.
1313

@@ -19,7 +19,7 @@ When you are ready to implement, use [Getting Started](/xchat/getting-started) f
1919

2020
## The big picture
2121

22-
Chat uses a layered encryption system where:
22+
X Chat uses a layered encryption system where:
2323

2424
1. **Messages** are encrypted with a **conversation key** (fast symmetric encryption)
2525
2. **Conversation keys** are encrypted to each participant using their **identity public key** (asymmetric key exchange)
@@ -51,7 +51,7 @@ In the product flow, X transports **ciphertext and key envelopes**—not readabl
5151

5252
## Key types explained
5353

54-
Chat uses three kinds of key material, each with a specific purpose.
54+
X Chat uses three kinds of key material, each with a specific purpose.
5555

5656
### 1. Identity keypair
5757

@@ -110,7 +110,7 @@ Conversation keys are generated when a conversation is set up or when keys rotat
110110
The Chat XDK signs the encrypted payload with your signing private key, proving you authored this exact content.
111111
</Step>
112112
<Step title="Send to X">
113-
Your app sends the encrypted payload and signature to X through the Chat **send message** API. X stores and delivers bytes it cannot read as plaintext.
113+
Your app sends the encrypted payload and signature to X through the Chat API **send message** endpoint. X stores and delivers bytes it cannot read as plaintext.
114114
</Step>
115115
</Steps>
116116

@@ -166,7 +166,7 @@ Your app should:
166166

167167
## Juicebox: Distributed key storage
168168

169-
Your **private** identity and signing keys must be stored carefully. Chat integrates **Juicebox** so keys can be recovered with a PIN across devices without giving any single server the full secret.
169+
Your **private** identity and signing keys must be stored carefully. X Chat integrates **Juicebox** so keys can be recovered with a PIN across devices without giving any single server the full secret.
170170

171171
### The problem with traditional key storage
172172

@@ -208,7 +208,7 @@ You do not configure Juicebox servers by hand for the normal path. The Chat XDK
208208

209209
## Signatures explained
210210

211-
Every Chat message includes a **digital signature** that supports:
211+
Every X Chat message includes a **digital signature** that supports:
212212

213213
1. **Authenticity** — it was produced with the sender’s signing private key
214214
2. **Integrity** — the encrypted content was not modified after signing
@@ -230,7 +230,7 @@ The Chat XDK signs when you encrypt outbound messages and verifies when you decr
230230

231231
## Security properties
232232

233-
### What Chat protects against
233+
### What X Chat protects against
234234

235235
| Threat | Protection |
236236
|:-------|:-----------|
@@ -240,7 +240,7 @@ The Chat XDK signs when you encrypt outbound messages and verifies when you decr
240240
| **Trivial sender impersonation** | Valid signatures require the sender’s signing private key |
241241
| **Single-server key theft (with Juicebox)** | Shares are split across realms and PIN-gated |
242242

243-
### What Chat does **not** protect against
243+
### What X Chat does **not** protect against
244244

245245
| Threat | Why not |
246246
|:-------|:--------|
@@ -262,7 +262,7 @@ The Chat XDK signs when you encrypt outbound messages and verifies when you decr
262262
| **Keypair** | A linked public key and private key |
263263
| **ECDH / ECIES** | Algorithms used when wrapping conversation keys to identity keys |
264264
| **ECDSA** | Signature algorithm used for message authorship |
265-
| **P-256** | Elliptic curve used in Chat (secp256r1) |
265+
| **P-256** | Elliptic curve used in X Chat (secp256r1) |
266266
| **Conversation key** | Symmetric key shared by participants in one conversation (versioned over time) |
267267
| **Secret sharing** | Splitting a secret so multiple pieces are needed to reconstruct it |
268268
| **Realm** | An independent Juicebox server holding one share of your key material |

xchat/getting-started.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
title: Getting Started with Chat API
33
sidebarTitle: Getting Started
4-
description: Build end-to-end encrypted Chat messaging with the Chat XDK and X API
5-
keywords: ["Chat tutorial", "Chat quickstart", "Chat XDK", "encrypted DM", "Python", "TypeScript", "Go", "Rust", "C#", "Java"]
4+
description: Build end-to-end encrypted X Chat messaging with the Chat XDK and X API
5+
keywords: ["X Chat tutorial", "X Chat quickstart", "Chat XDK", "encrypted DM", "Python", "TypeScript", "Go", "Rust", "C#", "Java"]
66
---
77

88
Send and receive end-to-end encrypted direct messages on X: set up keys, initialize a conversation, send a message, and decrypt inbound traffic.
99

10-
Chat apps use two pieces together:
10+
X Chat apps use two pieces together:
1111

1212
| Component | Role |
1313
|:----------|:-----|

xchat/groups.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Group conversations
33
sidebarTitle: Groups
4-
description: Multi-participant Chat conversations, keys, and encrypted metadata
5-
keywords: ["Chat groups", "group DM", "conversation keys", "group name encryption"]
4+
description: Multi-participant X Chat conversations, keys, and encrypted metadata
5+
keywords: ["X Chat groups", "group DM", "conversation keys", "group name encryption"]
66
---
77

8-
Group chats use the **same encryption model** as 1:1 Chat: one **conversation key** shared by members, wrapped to each member’s **identity public key**, with messages encrypted and signed by the Chat XDK. What changes is **membership**, **how you create the thread**, and often **encrypted title/avatar** fields on the conversation.
8+
Group chats use the **same encryption model** as 1:1 X Chat: one **conversation key** shared by members, wrapped to each member’s **identity public key**, with messages encrypted and signed by the Chat XDK. What changes is **membership**, **how you create the thread**, and often **encrypted title/avatar** fields on the conversation.
99

1010
1:1 flows are in [Getting Started](/xchat/getting-started). Endpoint details are under **API reference → Conversations and messages**.
1111

xchat/introduction.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Grouped under **API reference** in the sidebar, including:
5252

5353
## Auth notes
5454

55-
Use **OAuth 2.0 user context** with DM-related scopes (`dm.read`, `dm.write`, plus `users.read` / `tweet.read` as required; `media.write` for uploads). Chat activity for a user requires that user’s authorization. Juicebox config for PIN storage is returned on **your** public-key record (`juicebox_config` field)—see Getting Started.
55+
Use **OAuth 2.0 user context** with DM-related scopes (`dm.read`, `dm.write`, plus `users.read` / `tweet.read` as required; `media.write` for uploads). X Chat activity for a user requires that user’s authorization. Juicebox config for PIN storage is returned on **your** public-key record (`juicebox_config` field)—see Getting Started.
5656

5757
---
5858

xchat/media.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Media and attachments
33
sidebarTitle: Media
4-
description: Encrypt, upload, send, download, and decrypt images and files in Chat
5-
keywords: ["Chat media", "encrypted images", "attachments", "encrypt_stream", "media upload"]
4+
description: Encrypt, upload, send, download, and decrypt images and files in X Chat
5+
keywords: ["X Chat media", "encrypted images", "attachments", "encrypt_stream", "media upload"]
66
---
77

88
Images and other files use the **same conversation key** as text. Encrypt bytes with the Chat XDK (`encrypt_stream` / `decrypt_stream`), upload via **`/2/chat/media/...`** (sidebar **API reference → Media**), then attach **`media_hash_key`** on `encrypt_message`.
99

1010
Include **`media.write`** with your DM scopes when uploading. Use hyphenated conversation ids in paths (`:``-`). Prefer MIME/dimensions from **decrypted** bytes.
1111

12-
This path is **not** the Posts media model (`expansions=attachments.media_keys`, `media.fields=variants`, etc.). Those parameters apply to **Posts**; E2EE Chat blobs are addressed by **`media_hash_key`** and Chat media download.
12+
This path is **not** the Posts media model (`expansions=attachments.media_keys`, `media.fields=variants`, etc.). Those parameters apply to **Posts**; E2EE X Chat blobs are addressed by **`media_hash_key`** and X Chat media download.
1313

1414
```mermaid
1515
flowchart LR

xchat/real-time-events.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
---
2-
title: Real-time Chat Events
2+
title: Real-time X Chat Events
33
sidebarTitle: Real-time events
44
description: Receive encrypted chat events via webhooks or the activity stream
55
---
66

7-
X delivers **`chat.received`**, **`chat.sent`**, and related chat activity with **ciphertext** in the payload. Decrypt with the [Chat XDK](/xchat/xchat-xdk).
7+
X delivers **`chat.received`**, **`chat.sent`**, and related X Chat activity with **ciphertext** in the payload. Decrypt with the [Chat XDK](/xchat/xchat-xdk).
88

99
| Layer | Role |
1010
|:------|:-----|
1111
| **Activity API** | `GET /2/activity/stream`; `POST` / `GET` / `PUT` / `DELETE` `/2/activity/subscriptions` (see OpenAPI security per operation) |
1212
| **Account Activity webhooks** | Optional `/2/account_activity/webhooks/...` subscription routes if you terminate on your own HTTPS URL |
1313
| **Chat XDK** | `extract_conversation_keys`, `decrypt_event` / `decrypt_events` |
1414

15-
Private chat event types need authorization for the user you monitor. Encrypted Chat file attachments use **`media_hash_key`** and Chat media download—not Post API `expansions=attachments.media_keys` / `media.fields=variants`.
15+
Private X Chat event types need authorization for the user you monitor. Encrypted X Chat file attachments use **`media_hash_key`** and X Chat media download—not Post API `expansions=attachments.media_keys` / `media.fields=variants`.
1616

1717
---
1818

xchat/troubleshooting.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Troubleshooting
33
sidebarTitle: Troubleshooting
4-
description: Chat encryption and Chat XDK issues
5-
keywords: ["Chat errors", "Chat XDK", "decryption", "Juicebox", "encryption"]
4+
description: X Chat encryption and Chat XDK issues
5+
keywords: ["X Chat errors", "Chat XDK", "decryption", "Juicebox", "encryption"]
66
---
77

8-
This page covers problems that are **specific to Chat encryption and the Chat XDK**—keys, Juicebox, decrypt/verify, and building encrypted send payloads.
8+
This page covers problems that are **specific to X Chat encryption and the Chat XDK**—keys, Juicebox, decrypt/verify, and building encrypted send payloads.
99

1010
For webhooks, OAuth, HTTP status codes, and rate limits, use the general [X API](/x-api/introduction) and [authentication](/fundamentals/authentication/overview) documentation.
1111

@@ -169,7 +169,7 @@ They may not have finished onboarding. After they register, load `public_key`, `
169169

170170
## Building the send payload
171171

172-
These mistakes are specific to Chat encryption (not general HTTP errors):
172+
These mistakes are specific to X Chat encryption (not general HTTP errors):
173173

174174
| Issue | Fix |
175175
|:------|:----|

xchat/xchat-xdk.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Chat XDK Reference
33
sidebarTitle: Chat XDK
4-
description: Encryption SDK for Chat (Python, TypeScript/JS, Rust, Go, C#, Java)
4+
description: Encryption SDK for X Chat (Python, TypeScript/JS, Rust, Go, C#, Java)
55
keywords: ["Chat XDK", "chat-xdk", "encryption SDK", "E2EE SDK"]
66
---
77

8-
The **Chat XDK** handles key management, encryption, decryption, and signing for Chat. It does **not** call the X HTTP API—pair it with the [Python](/xdks/python/overview) or [TypeScript](/xdks/typescript/overview) **XDK**, or with HTTPS and a user access token.
8+
The **Chat XDK** handles key management, encryption, decryption, and signing for X Chat. It does **not** call the X HTTP API—pair it with the [Python](/xdks/python/overview) or [TypeScript](/xdks/typescript/overview) **XDK**, or with HTTPS and a user access token.
99

1010
App walkthrough: [Getting Started](/xchat/getting-started). Sample bots: [chat-xdk/examples](https://github.com/xdevplatform/chat-xdk/tree/main/examples).
1111

0 commit comments

Comments
 (0)