Package-level declarations

Types

Link copied to clipboard
interface Disposable
Link copied to clipboard
data class FfiApiStats(var uploadKeyPackage: ULong, var fetchKeyPackage: ULong, var sendGroupMessages: ULong, var sendWelcomeMessages: ULong, var queryGroupMessages: ULong, var queryWelcomeMessages: ULong, var subscribeMessages: ULong, var subscribeWelcomes: ULong)
Link copied to clipboard
data class FfiArchiveOptions(var startNs: Long?, var endNs: Long?, var elements: List<FfiBackupElementSelection>)
Link copied to clipboard
data class FfiAttachment(var filename: String?, var mimeType: String, var content: ByteArray)
Link copied to clipboard
data class FfiBackupMetadata(var backupVersion: UShort, var elements: List<FfiBackupElementSelection>, var exportedAtNs: Long, var startNs: Long?, var endNs: Long?)
Link copied to clipboard
data class FfiConsent(var entityType: FfiConsentEntityType, var state: FfiConsentState, var entity: String)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class FfiContentTypeId(var authorityId: String, var typeId: String, var versionMajor: UInt, var versionMinor: UInt)
Link copied to clipboard
Link copied to clipboard
data class FfiConversationDebugInfo(var epoch: ULong, var maybeForked: Boolean, var forkDetails: String, var isCommitLogForked: Boolean?, var localCommitLog: String, var remoteCommitLog: String, var cursor: Long)
Link copied to clipboard
Link copied to clipboard
data class FfiConversationMember(var inboxId: String, var accountIdentifiers: List<FfiIdentifier>, var installationIds: List<ByteArray>, var permissionLevel: FfiPermissionLevel, var consentState: FfiConsentState)
Link copied to clipboard
Link copied to clipboard
data class FfiCreateDmOptions(var messageDisappearingSettings: FfiMessageDisappearingSettings?)
Link copied to clipboard
data class FfiCreateGroupOptions(var permissions: FfiGroupPermissionsOptions?, var groupName: String?, var groupImageUrlSquare: String?, var groupDescription: String?, var customPermissionPolicySet: FfiPermissionPolicySet?, var messageDisappearingSettings: FfiMessageDisappearingSettings?)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class FfiDecodedMessageMetadata(var id: ByteArray, var sentAtNs: Long, var kind: FfiGroupMessageKind, var senderInstallationId: ByteArray, var senderInboxId: String, var contentType: FfiContentTypeId, var conversationId: ByteArray)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class FfiEncodedContent(var typeId: FfiContentTypeId?, var parameters: Map<String, String>, var fallback: String?, var compression: Int?, var content: ByteArray)
Link copied to clipboard
data class FfiEnrichedReply(var inReplyTo: FfiDecodedMessage?, var content: FfiDecodedMessageBody?, var referenceId: String) : Disposable
Link copied to clipboard
Link copied to clipboard
data class FfiGroupUpdated(var initiatedByInboxId: String, var addedInboxes: List<FfiInbox>, var removedInboxes: List<FfiInbox>, var metadataFieldChanges: List<FfiMetadataFieldChange>)
Link copied to clipboard
data class FfiHmacKey(var key: ByteArray, var epoch: Long)
Link copied to clipboard
data class FfiIdentifier(var identifier: String, var identifierKind: FfiIdentifierKind)
Link copied to clipboard
Link copied to clipboard
data class FfiIdentityStats(var publishIdentityUpdate: ULong, var getIdentityUpdatesV2: ULong, var getInboxIds: ULong, var verifySmartContractWalletSignature: ULong)
Link copied to clipboard
data class FfiInbox(var inboxId: String)
Link copied to clipboard
interface FfiInboxOwner
Link copied to clipboard
data class FfiInboxState(var inboxId: String, var recoveryIdentity: FfiIdentifier, var installations: List<FfiInstallation>, var accountIdentities: List<FfiIdentifier>)
Link copied to clipboard
data class FfiInstallation(var id: ByteArray, var clientTimestampNs: ULong?)
Link copied to clipboard
data class FfiKeyPackageStatus(var lifetime: FfiLifetime?, var validationError: String?)
Link copied to clipboard
data class FfiLifetime(var notBefore: ULong, var notAfter: ULong)
Link copied to clipboard
data class FfiListConversationsOptions(var createdAfterNs: Long?, var createdBeforeNs: Long?, var lastActivityBeforeNs: Long?, var lastActivityAfterNs: Long?, var orderBy: FfiGroupQueryOrderBy?, var limit: Long?, var consentStates: List<FfiConsentState>?, var includeDuplicateDms: Boolean)
Link copied to clipboard
data class FfiListMessagesOptions(var sentBeforeNs: Long?, var sentAfterNs: Long?, var limit: Long?, var deliveryStatus: FfiDeliveryStatus?, var direction: FfiDirection?, var contentTypes: List<FfiContentType>?)
Link copied to clipboard

Enum representing log levels

Link copied to clipboard

Enum representing log file rotation options

Link copied to clipboard
data class FfiMessage(var id: ByteArray, var sentAtNs: Long, var conversationId: ByteArray, var senderInboxId: String, var content: ByteArray, var kind: FfiConversationMessageKind, var deliveryStatus: FfiDeliveryStatus, var sequenceId: ULong?)
Link copied to clipboard
Link copied to clipboard
data class FfiMessageDisappearingSettings(var fromNs: Long, var inNs: Long)

Settings for disappearing messages in a conversation.

Link copied to clipboard
data class FfiMessageWithReactions(var message: FfiMessage, var reactions: List<FfiMessage>)
Link copied to clipboard
Link copied to clipboard
data class FfiMetadataFieldChange(var fieldName: String, var oldValue: String?, var newValue: String?)
Link copied to clipboard
Link copied to clipboard
data class FfiPasskeySignature(var publicKey: ByteArray, var signature: ByteArray, var authenticatorData: ByteArray, var clientDataJson: ByteArray)
Link copied to clipboard
data class FfiPermissionPolicySet(var addMemberPolicy: FfiPermissionPolicy, var removeMemberPolicy: FfiPermissionPolicy, var addAdminPolicy: FfiPermissionPolicy, var removeAdminPolicy: FfiPermissionPolicy, var updateGroupNamePolicy: FfiPermissionPolicy, var updateGroupDescriptionPolicy: FfiPermissionPolicy, var updateGroupImageUrlSquarePolicy: FfiPermissionPolicy, var updateMessageDisappearingPolicy: FfiPermissionPolicy)
Link copied to clipboard
Link copied to clipboard
sealed class FfiPreferenceUpdate
Link copied to clipboard
Link copied to clipboard
data class FfiReactionPayload(var reference: String, var referenceInboxId: String, var action: FfiReactionAction, var content: String, var schema: FfiReactionSchema)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class FfiRemoteAttachment(var url: String, var contentDigest: String, var secret: ByteArray, var salt: ByteArray, var nonce: ByteArray, var scheme: String, var contentLength: ULong, var filename: String?)
Link copied to clipboard
data class FfiRemoteAttachmentInfo(var url: String, var contentDigest: String, var secret: ByteArray, var salt: ByteArray, var nonce: ByteArray, var scheme: String, var contentLength: UInt?, var filename: String?)
Link copied to clipboard
data class FfiReply(var reference: String, var referenceInboxId: String?, var content: FfiEncodedContent)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class FfiTextContent(var content: String)
Link copied to clipboard
data class FfiTransactionMetadata(var transactionType: String, var currency: String, var amount: Double, var decimals: UInt, var fromAddress: String, var toAddress: String)
Link copied to clipboard
data class FfiTransactionReference(var namespace: String?, var networkId: String, var reference: String, var metadata: FfiTransactionMetadata?)
Link copied to clipboard
data class FfiUpdateGroupMembershipResult(var addedMembers: Map<String, ULong>, var removedMembers: List<String>, var failedInstallations: List<ByteArray>)
Link copied to clipboard
data class FfiWalletCall(var to: String?, var data: String?, var value: String?, var gas: String?, var metadata: FfiWalletCallMetadata?)
Link copied to clipboard
data class FfiWalletCallMetadata(var description: String, var transactionType: String, var extra: Map<String, String>)
Link copied to clipboard
data class FfiWalletSendCalls(var version: String, var chainId: String, var from: String, var calls: List<FfiWalletCall>, var capabilities: Map<String, String>?)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
suspend fun applySignatureRequest(api: XmtpApiClient, signatureRequest: FfiSignatureRequest)
Link copied to clipboard
suspend fun connectToBackend(host: String, isSecure: Boolean, appVersion: String?): XmtpApiClient
Link copied to clipboard
suspend fun createClient(api: XmtpApiClient, syncApi: XmtpApiClient, db: String?, encryptionKey: ByteArray?, inboxId: String, accountIdentifier: FfiIdentifier, nonce: ULong, legacySignedPrivateKeyProto: ByteArray?, deviceSyncServerUrl: String?, deviceSyncMode: FfiSyncWorkerMode?, allowOffline: Boolean?, disableEvents: Boolean?): FfiXmtpClient

It returns a new client of the specified inbox_id. Note that the inbox_id must be either brand new or already associated with the account_identifier. i.e. inbox_id cannot be associated with another account address.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun enterDebugWriter(directory: String, logLevel: FfiLogLevel, rotation: FfiLogRotation, maxFiles: UInt)

turns on logging to a file on-disk in the directory specified. files will be prefixed with 'libxmtp.log' and suffixed with the timestamp, i.e "libxmtp.log.2025-04-02" A maximum of 'max_files' log files are kept.

Link copied to clipboard
fun enterDebugWriterWithLevel(directory: String, rotation: FfiLogRotation, maxFiles: UInt, logLevel: FfiLogLevel)

turns on logging to a file on-disk with a specified log level. files will be prefixed with 'libxmtp.log' and suffixed with the timestamp, i.e "libxmtp.log.2025-04-02" A maximum of 'max_files' log files are kept.

Link copied to clipboard

Flush loglines from libxmtp log writer to the file, ensuring logs are written. This should be called before the program exits, to ensure all the logs in memory have been written. this ends the writer thread.

Link copied to clipboard
fun generateInboxId(accountIdentifier: FfiIdentifier, nonce: ULong): String
Link copied to clipboard
suspend fun getInboxIdForIdentifier(api: XmtpApiClient, accountIdentifier: FfiIdentifier): String?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
suspend fun isConnected(api: XmtpApiClient): Boolean
Link copied to clipboard
suspend fun revokeInstallations(api: XmtpApiClient, recoveryIdentifier: FfiIdentifier, inboxId: String, installationIds: List<ByteArray>): FfiSignatureRequest