Soty

Install

Install Soty and send the first message

The Android app is one APK, the Linux build is an unpacked archive and the relay node is a single binary. Below: what to download, what you need and what the application shows on its first run.

Builds live in the GitHub releases only, next to a SHA256SUMS file.

What to download

The latest release: the application for phone and desktop, and the relay node for operators.

Latest release v1.3.0+10 published 16 October 2026

Android

The messenger as a single APK: download it, allow installing from an unknown source and open the file. Android 8.0 or newer.

soty-release.apk · 86 MB

Download

Linux x64

The same messenger for the desktop. Unpack the archive and run the soty binary; it needs GTK 3 and libsqlite3.

soty-linux-x64.tar.gz · 20 MB

Download

Relay host

An offline delivery and tracker node: one binary that only needs libsqlite3. For operators who run a relay themselves.

dtm_host.bin · 8 MB

Download
SHA-256 checksums are in the release notes and in the SHA256SUMS file. All releases on GitHub

Before you start

The requirements are short: no account, no phone number, no email address.

Android 8.0 or newer

The APK is about 86 MB and is installed by hand: the system asks once whether to allow installing from an unknown source.

Linux x64

An archive of about 20 MB. It needs the GTK 3 and libsqlite3 libraries, which a regular distribution already has.

A host needs x86-64 and libsqlite3

A relay host is one binary and one database file. The smallest server is enough.

Integrity check

Every release ships a SHA256SUMS file: compare the download before you run it.

Step by step

Pick what you are installing: the phone app, the desktop app or a relay node of your own. The steps and the screens below belong to the platform you select.

A phone or a tablet: download the APK, install it, create an identity and add the first contact.

  1. 1

    Download the APK

    Open the releases page and take the soty-release.apk file. The SHA256SUMS file and the release notes are right there.

    Do not take an APK from third-party sites. This file is built from the project sources, and only releases can be checked against a published checksum.

  2. 2

    Install the file

    Open the downloaded APK. Android warns about installing from an unknown source: allow it for the application you opened the file from, a browser or a file manager, and confirm the installation. Internet access is not required — without a network the app works over a mesh, while the local database is needed either way.

    Android 8.0 or newer is required. If the system says the file is damaged, download it again: the transfer was interrupted.

  3. 3

    First run: the name and the keys

    There is no sign-up: on the first run the app creates a key pair on the device and asks for a display name. The name is signed into the invite that others import to add you, while the Ed25519 and X25519 keys live on the Identity screen, where the invite is copied from.

    The first screen comes up in English: the app does not know which language you will pick yet. Russian is switched on in the next step and stays for every later launch.

    The Identity screen in Soty: display name, Ed25519 and X25519 keys and the Copy invite button
    Identity: the name and the keys others reach you by
  4. 4

    Switch to Russian and pick a theme

    Settings → Appearance → Language: the list holds ten languages, Russian among them. The row below is the theme: system, light or dark.

    The language picker in Soty with ten languages listed
    Appearance → Language
  5. 5

    Add a contact

    Show your own code through Settings → My QR code, scan theirs through Scan QR code. Without a camera the text invite works: Copy invite on your side and Import invite on theirs. The third way is manual: New chat → New chat and the X25519 key of the other side, optionally with a libp2p peer id and multiaddr.

    The My QR code screen in Soty
    My QR code
    The dialog for adding a peer by X25519 key
    Add a peer by hand
    The Peers tab in Soty with no contacts yet
    Added contacts collect on the Peers tab
  6. 6

    Check the network and the relays

    Settings → Network: how many peers are visible, how many direct connections are up, what the mesh reports and whether the relay nodes are connected. Two public project nodes are already in the build — they hold an envelope while the recipient is offline. Your own node is added right there with Add relay host: a soty://host link or a ws:// address.

    A relay stores encrypted envelopes only, but its operator still sees who talks to whom. That is why hosts are added to a list by hand instead of being swapped in silently.

    The Network section of the Soty settings: peers, active connections, mesh and relay hosts
    Network: both public nodes connected
  7. 7

    Allow background delivery

    To receive messages while the app is closed, switch on Settings → Background work → Work in background and look at Battery optimisation: a restricted app is put to sleep together with its mesh and relays. The same screen decides how long the conversation stays on the device.

    Not sure the notifications arrive? Tap Send test notification — it shows up at once when the system has not blocked them.

    Soty settings: keeping messages, background work, battery optimisation and appearance
    Storage and background work
    The Notifications section of the Soty settings with the status and a test notification
    Notifications: status and a test message
  8. 8

    Start a conversation

    The Chats tab lists conversations, the button in the bottom right corner creates a new chat or a group. The other side may be offline: the envelope waits for them on a relay or with a neighbour in the mesh. Under a message you can see where it is: Sent, Delivered or Read.

    The menu for creating a new chat or group in Soty
    A new chat or a new group
    The Chats tab in Soty with no conversations yet
    Chats: empty until there is somebody to write to

Checksums

Every release ships a SHA256SUMS file. Download it next to the file you want and check that the bytes did not change on the way:

The same sums are printed in the release notes, so they can be compared by eye.

When something does not work

The places where an installation usually stumbles.

Android refuses to install the APK

The permission is granted to one application at a time — the browser or the file manager you opened the file from. The dialog offers a shortcut to Unknown app sources; after that the installation can be repeated.

The camera is unavailable

This is how the application says it did not get the camera permission. Grant it in the system settings, or add the contact as text: an invite and an X25519 key work without a camera.

Notifications do not arrive

Open Settings → Notifications: the application shows its own status and, when the system blocked it, offers a way into the system settings. Send test notification checks the channel at once.

Background work keeps switching off

That is battery optimisation at work: the system puts the app to sleep together with its mesh and relays. The settings show the current state — unrestricted or restricted by the system — while the exemption is granted in the system battery settings.

The relay nodes are offline

Look at Settings → Network: a node may simply have become unreachable. Add your own, or switch on Relay switching → Automatic replacement so the application uses a relay it learned from the hosts.

What happens to messages after the app is removed

Nothing: the keys and the conversation live in a local database and no copy exists on a server. Once the app is gone they cannot be recovered — the project makes no backups.

Installed? All that is left is somebody to write to

From here the application needs a second participant: show the QR code or forward the invite, and the conversation can start.