xmtp-android provides a Kotlin implementation of an XMTP message API client for use with Android apps.
Use xmtp-android to build with XMTP to send messages between blockchain accounts, including DMs, notifications, announcements, and more.
Note: This SDK is now part of the libxmtp monorepo. For issues and contributions, please use the main repository.
To learn how to use the XMTP Android SDK, see Get started with the XMTP Android SDK.
Access the Kotlin client SDK reference documentation.
Use the XMTP Android quickstart app as a tool to start building an app with XMTP. This basic messaging app has an intentionally unopinionated UI to help make it easier for you to build with.
To learn about example app push notifications, see Enable the quickstart app to send push notifications.
You can find the latest package version on Maven Central.
implementation 'org.xmtp:android:X.X.X'Because xmtp-android is in active development, you should expect breaking revisions that might require you to adopt the latest SDK release to enable your app to continue working as expected.
Breaking revisions in an xmtp-android release are described on the Releases page.
XMTP communicates about deprecations in the XMTP Community Forums, providing as much advance notice as possible.
Older versions of the SDK will eventually be deprecated, which means:
- The network will not support and eventually actively reject connections from clients using deprecated versions.
- Bugs will not be fixed in deprecated versions.
The following table provides the deprecation schedule.
| Announced | Effective | Minimum Version | Rationale |
|---|---|---|---|
| No more support for XMTP V2 | May 1, 2025 | >=4.0.3 | In a move toward better security with MLS and the ability to decentralize, we will be shutting down XMTP V2 and moving entirely to XMTP V3. To learn more about V2 deprecation, see XIP-53: XMTP V2 deprecation plan. |
Bug reports, feature requests, and PRs are welcome in accordance with the libxmtp contribution guidelines.
This SDK is part of the libxmtp monorepo and uses Nix for reproducible builds.
-
Install Determinate Nix:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
-
(Optional) Install direnv for automatic environment setup:
# After installing direnv, allow this directory direnv allow
# Enter the Android development shell
nix develop ../../#android
# Build native bindings (.so files + Kotlin bindings)
./dev/bindings
# Build the full SDK
./dev/build# Format code
./gradlew spotlessApply
# Run lint checks
./gradlew :library:lintDebug# Run unit tests
./gradlew library:testDebug
# Run instrumented tests (requires emulator or device)
./gradlew connectedCheck