
True P2P Email on top of Yggdrasil Network for Android
![]() | ![]() | ![]() | ![]() |
Tyr runs a complete mail server on your Android device and routes mail over the Yggdrasil mesh network — no central mail servers, no port forwarding, no STUN/TURN. Messages route directly between nodes, and Yggdrasil encrypts everything in transit.
Your address is derived from an Ed25519 public key (<64-hex>@yggmail), so it
cannot be spoofed. Standard SMTP/IMAP is exposed on localhost, so any mail client
works; DeltaChat/ArcaneChat give the best P2P messaging experience.
127.0.0.1:1025) and IMAP (127.0.0.1:1143) serversgraph LR
A[Tyr Chat] -->|built-in| B[Tyr service]
C[DeltaChat/ArcaneChat] -->|SMTP/IMAP| B
B -->|YMP| D[Yggdrasil network]
D -->|P2P encrypted| E[Recipient's Tyr]
The mail server is yggmail-ng
(Rust), embedded as a native library via UniFFI (libyggmail_mobile.so) and run
as a foreground service. On top of Yggdrasil it exposes SMTP and IMAP4rev1 on
localhost; any client can connect.
Built-in chat (since 1.8) uses the same encrypted P2P transport: text and photos, delivery/read receipts, tap-to-copy, auto-read on open, and suppressed notifications while a conversation is in the foreground.
Automatic: complete onboarding (password + peers), start the service, install DeltaChat or ArcaneChat, then tap Setup DeltaChat/ArcaneChat — Tyr opens the app pre-configured.
Manual: create a new profile → Use a different server → enter your @yggmail
address (from Tyr's main screen) and the password you set in Tyr.
<64-hex>@yggmail address127.0.0.1:1143 (no TLS) · SMTP: 127.0.0.1:1025 (no TLS)Tyr must be running for mail to flow — enable auto-start in settings. Use the QR Code button to share your address.
local.properties or ANDROID_HOME)Gradle is provided by the wrapper (./gradlew) — no separate install.
git clone https://github.com/JB-SelfCompany/Tyr.git
cd Tyr
./gradlew assembleDebug # debug APK → app/build/outputs/apk/debug/
./gradlew installDebug # install to a connected device
The prebuilt libyggmail_mobile.so files live in app/src/main/jniLibs/<abi>/ and
the UniFFI bindings in app/src/main/java/uniffi/yggmail_mobile/. To rebuild them
from yggmail-ng you additionally need:
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-androidcargo install cargo-ndkANDROID_NDK_HOME setcd Yggmail-ng && ./build-android.sh # then copy the .so + bindings per the script's hint
App: GPLv3 (see LICENSE). The embedded yggmail-ng library is MPL-2.0.
| Component | Details |
|---|
| Language | Kotlin 2.2.20 |
| Min / Target / Compile SDK | 23 / 33 / 36 |
| Architecture | Layered (UI → Service → Data) |
| Mail server | yggmail-ng (Rust) via UniFFI (libyggmail_mobile.so) |
| Network | Yggdrasil overlay mesh |
| Localization | English, Russian |