-Parameter | Default | Description | |
-appVersion | `undefined` | Add a client app version identifier that's included with API requests. **Production apps are strongly encouraged to set this value.** For example, you can use the following format: `appVersion: APP_NAME + '/' + APP_VERSION`. Setting this value provides telemetry that shows which apps are using the XMTP client SDK. This information can help XMTP developers provide app support, especially around communicating important SDK updates, including deprecations and required upgrades. | |
-env | `DEV` | Connect to the specified XMTP network environment. Valid values include `DEV`, `.PRODUCTION`, or `LOCAL`. For important details about working with these environments, see [XMTP `production` and `dev` network environments](#xmtp-network-environments). | |
+
+ Parameter |
+ Default |
+ Description |
+
+
+ env |
+ `DEV` |
+ Connect to the specified XMTP network environment. Valid values include `DEV`, `.PRODUCTION`, or `LOCAL`. For important details about working with these environments, see [XMTP production and dev network environments](#xmtp-network-environments). |
+
+
+ enableV3 |
+ `false` |
+ To support group chat (a feature of XMTP v3), set to `true`. As a best practice, regardless of whether your mobile app provides group chat, set `enableV3` to `true` to benefit from other aspects of the upgraded XMTP v3 protocol. Enabling v3 doesn't stop your app's support for XMTP v2 functionality. |
+
+
+ appContext |
+ null |
+ Required if `enableV3` is set to `true`. |
+
+
+ dbEncryptionKey |
+ null |
+ Required 32-byte array for database encryption if `enableV3` is `true`. For information about recommended key storage for Kotlin, [Android Keystore system](https://developer.android.com/privacy-and-security/keystore). |
+
+
+ dbDirectory |
+ xmtp_db |
+ Optional. Specify a database directory. If no directory is specified, the value is set to `xmtp_db` by default. |
+
+
+ appVersion |
+ `undefined` |
+ Add a client app version identifier that's included with API requests. Production apps are strongly encouraged to set this value. For example, you can use the following format: `appVersion: APP_NAME + '/' + APP_VERSION`. Setting this value provides telemetry that shows which apps are using the XMTP client SDK. This information can help XMTP developers provide app support, especially around communicating important SDK updates, including deprecations and required upgrades. |
+
Configure `env`
@@ -729,9 +786,36 @@ val client = Client().create(account = account, options = options)
-Parameter | Default | Description | |
-appVersion | `undefined` | Add a client app version identifier that's included with API requests. **Production apps are strongly encouraged to set this value.** For example, you can use the following format: `appVersion: APP_NAME + '/' + APP_VERSION`. Setting this value provides telemetry that shows which apps are using the XMTP client SDK. This information can help XMTP developers provide app support, especially around communicating important SDK updates, including deprecations and required upgrades. | |
-env | `dev` | Connect to the specified XMTP network environment. Valid values include `.dev`, `.production`, or `.local`. For important details about working with these environments, see [XMTP `production` and `dev` network environments](#xmtp-network-environments). | |
+
+ Parameter |
+ Default |
+ Description |
+
+
+ env |
+ `dev` |
+ Connect to the specified XMTP network environment. Valid values include `.dev`, `.production`, or `.local`. For important details about working with these environments, see [XMTP production and dev network environments](#xmtp-network-environments). |
+
+
+ enableV3 |
+ `false` |
+ To support group chat (a feature of XMTP v3), set to `true`. As a best practice, regardless of whether your app provides group chat, set `enableV3` to `true` to benefit from other aspects of the upgraded XMTP v3 protocol. Enabling v3 doesn't stop your app's support for XMTP v2 functionality. |
+
+
+ dbEncryptionKey |
+ null |
+ Required 32-byte array for database encryption if `enableV3` is `true`. For information about recommended key storage for Swift, see [Protecting keys with the Secure Enclave](https://developer.apple.com/documentation/security/protecting-keys-with-the-secure-enclave). |
+
+
+ dbDirectory |
+ xmtp_db |
+ Optional. Specify a database directory. If no directory is specified, the value is set to `xmtp_db` by default. |
+
+
+ appVersion |
+ `undefined` |
+ Add a client app version identifier that's included with API requests. Production apps are strongly encouraged to set this value. For example, you can use the following format: `appVersion: APP_NAME + '/' + APP_VERSION`. Setting this value provides telemetry that shows which apps are using the XMTP client SDK. This information can help XMTP developers provide app support, especially around communicating important SDK updates, including deprecations and required upgrades. |
+
Configure `env`
@@ -750,7 +834,31 @@ let client = try await Client.create(account: account, options: clientOptions)
Parameter |
Default |
Description |
-
|
+
+
+ env |
+ `dev` |
+
+ Connect to the specified XMTP network environment. Valid values include
+ `dev`, `production`, or `local`. For important details about working
+ with these environments, see [XMTP production and dev network
+ environments](#xmtp-network-environments).
+ |
+
+
+ enableV3 |
+ `false` |
+ To support group chat (a feature of XMTP v3), set to `true`. As a best practice, regardless of whether your app provides group chat, set `enableV3` to `true` to benefit from other aspects of the upgraded XMTP v3 protocol. Enabling v3 doesn't stop your app's support for XMTP v2 functionality. |
+
+
+ dbEncryptionKey |
+ null |
+ Required. For secure key storage in React Native, consider using libraries like `react-native-keychain` or `expo-secure-store`. These provide cross-platform solutions for securely storing sensitive data on both iOS and Android devices. |
+
+
+ dbDirectory |
+ xmtp_db |
+ Optional. Specify a database directory. If no directory is specified, the value is set to `xmtp_db` by default. |
appVersion |
@@ -767,17 +875,6 @@ let client = try await Client.create(account: account, options: clientOptions)
app support, especially around communicating important SDK updates,
including deprecations and required upgrades.
- |
-
-
- env |
- `dev` |
-
- Connect to the specified XMTP network environment. Valid values include
- `dev`, `production`, or `local`. For important details about working
- with these environments, see [XMTP `production` and `dev` network
- environments](#xmtp-network-environments).
- |
@@ -786,18 +883,14 @@ let client = try await Client.create(account: account, options: clientOptions)
## XMTP network environments
-XMTP identity on `dev` network is completely distinct from its XMTP identity on the `production` network, as are the messages associated with these identities.
-
-- `production`: This network is used in production and is configured to store messages indefinitely.
-
- - Try the web inbox at [https://xmtp.chat/](https://xmtp.chat/).
+An XMTP identity on the `dev` network is completely distinct from its XMTP identity on the `production` network, as are the messages associated with these identities.
- - Send a message to our `gm` bot to get started. `gm.xmtp.eth`
+- `production`: Use this network for production messages.
-- `dev`: XMTP may occasionally delete messages and keys from this network
+ - To send and receive messages on the `production` network, you can use the open source Converse web app connected to the `production` network: [https://app.converse.xyz](https://app.converse.xyz).
- - Try the web dev inbox at [https://dev.xmtp.chat/](https://xmtp.chat/).
+- `dev`: Use this network for development.
- - Send a message to our `gm` bot to get started. `0x8DC925338C1eE1fE62c0C43404371deb701BfB55`
+ - To send and receive messages on the `dev` network, you can use the open source Converse web app connected to the `dev` network: [https://app-preview.converse.xyz](https://app-preview.converse.xyz).
-- `local`: Use to have a client communicate with an XMTP node you are running locally. For example, an XMTP node developer can set `env` to `local` to generate client traffic to test a node running locally.
+- `local`: Use this network to have a client communicate with an XMTP node you are running locally. For example, an XMTP node developer can set `env` to `local` to generate client traffic to test a node running locally.
diff --git a/docs/pages/dms/overview.md b/docs/pages/dms/overview.md
index 37da4bf..edb04b6 100644
--- a/docs/pages/dms/overview.md
+++ b/docs/pages/dms/overview.md
@@ -290,9 +290,9 @@ npm i @xmtp/react-native-sdk
### Need to send a test message?
-Message this XMTP message bot to get an immediate automated reply:
+Message this XMTP message bot to get an immediate `gm` reply:
-- `gm.xmtp.eth` (`0x937C0d4a6294cdfa575de17382c7076b579DC176`)
+- `gm.xmtp.eth` (0x937C0d4a6294cdfa575de17382c7076b579DC176)
### Troubleshooting
diff --git a/docs/pages/get-started/developer-quickstart.mdx b/docs/pages/get-started/developer-quickstart.mdx
index 56c0771..73f301d 100644
--- a/docs/pages/get-started/developer-quickstart.mdx
+++ b/docs/pages/get-started/developer-quickstart.mdx
@@ -242,7 +242,7 @@ console.log("Wallet address: " + wallet.address);
### Create a client
-To create a client, you need to pass in a wallet that implements the `Signer` interface. This is a requirement because the XMTP client uses the wallet to sign messages and verify the sender's identity. When you create a client, you can set [client parameters](/dms/client#configure-the-client), including which [network environment](/dms/client#xmtp-network-environments) (`env`) the client should connect to.
+To create a client, you need to pass in a wallet that implements the `Signer` interface. This is a requirement because the XMTP client uses the wallet to sign messages and verify the sender's identity. When you create a client, you can set [client parameters](/client/create-client#configure-the-client), including which [network environment](/client/create-client#xmtp-network-environments) (`env`) the client should connect to.
```jsx
const xmtp = await Client.create(signer, { env: "dev" });
diff --git a/docs/pages/get-started/examples.mdx b/docs/pages/get-started/examples.mdx
index bfe504a..58c13c6 100644
--- a/docs/pages/get-started/examples.mdx
+++ b/docs/pages/get-started/examples.mdx
@@ -62,15 +62,6 @@ Here are some quickstarts and example apps to help you get started with building
A Repl of a full flow for sending and streaming messages in JavaScript
-