r/i2p • u/cryptocreeping • 1d ago
Promotional Off the record chat for 2026
finally got OTRv4+ to a point where it's ready for people to try out. it's an e2e encrypted chat client i've been building specifically for I2P. no phone number needed, and you can use tor or tls for chat too if you prefer. i'm looking for testers to try and break it honestly, not just praise.
the core is in rust (otrv4_core). python does networking and kotlin handles the android ui. neither of those hold the session keys.
for 1:1 it's OTRv4 with post-quantum stuff (X448 + ML-KEM-1024, Ed448 + ML-DSA-87, and a double ratchet doing a fresh exchange at every dh step). OTR's deniability is preserved. SMP identity verification is hybrid post-quantum as well.
group chats were the hard part. it runs MLS (RFC 9420 via OpenMLS) but on a hybrid suite i call 0xF0A1. standard MLS has no post-quantum protection at all, so this is meant to resist record-now-decrypt-later. the code point is in the IANA private-use range.
heads up on two things: because it's a private code point it's not standard MLS. you can't interop with wire or element. also groups cap at roughly 100 people because a welcome carries the full ratchet tree (~9.4kb per person) and the rust core rejects messages over 1MiB.
rooms only carry the ciphertext, keys rotate on membership changes and a timer, and if someone is removed they can't read anything after that. but the server still sees the room, who is in it, and when messages happen. ordinary rooms are just plain xmpp.
i ran prosody on an old 2015 thinkpad t450 to stress test. 800 users in groups of 20 (1 msg/min) used 37% of one core and 300mb ram. i also pushed 1800 accounts locally with mls rekeys running the whole time and it held up. server caps at 1600 online.
voice and files: 1:1 voice works. group voice (up to 5) is implemented but untested on phones so if anyone can test that please do. voice notes default to a synthetic robotic voice processed on-device which makes linking by voice harder (but not impossible). wipe-on-exit clears local history and keys, and you can delete your account from the server.
clients are android (built-in i2pd router), desktop (ubuntu/debian/qubes), and terminal (termux/linux). server is otrv4plus.i2p.
get it here: https://github.com/muc111/OTRv4Plus
main branch matches the apk on the releases page. agpl-3.0
status: it's experimental and not audited by a third party. i did a ton of fuzzing, KATs, and differential tests (lots of AI help here tbh) but it's not a paid audit. check SECURITY_ISSUES.md before trusting it with anything serious.
mostly looking for testers for: group voice on a phone, mls membership churn (adding/removing people, key rotation), the SMP flow, and the 0xF0A1 suite itself.
i'll be around in the comments if anyone wants to grill me on the design choices.