v0.1-alpha.12 — one name to chat, one name to pay

Sonar's biggest release yet: one @sonarprivacy.xyz handle now starts an encrypted chat (NIP-05) and receives Lightning payments (BIP-353) from any wallet — plus a production cutover to Signal-style transcripts, the Trill nudge, and mesh/group security fixes from an adversarial review.

Vincenzo Palazzo

25. Juli 2026July 25, 2026 · 4 Min. Lesezeit4 min read

v0.1-alpha.12 — one name to chat, one name to pay

Sonar's biggest release so far answers one stubborn question: why should you need one identity to message someone and a completely different one to pay them? Alpha.12 collapses that into a single handle, cuts over to a Signal-shaped chat engine across both apps, and hardens the mesh and group-join path after an adversarial review.

Roughly sixty commits and close to sixty pull requests landed between alpha.11 and now. Here is what shipped, and where to read deeper.

One handle for encrypted chat and Lightning payments#

The headline is PR #282 — unified handles. Claim a single name@sonarprivacy.xyz once, and that string does two jobs:

Handle ownership stays the account key. The handle is a pointer, not a second identity — exactly the rule we laid out when we shipped nicknames and NIP-05 handles. The account is still the secret; the handle is just how humans point at it. Read the full design there.

Signal-shaped transcripts, in production#

Opening a chat no longer waits on the network or rebuilds on every keyboard frame. PR #338 cut Sonar over to the Signal-style transcript engine we had been dogfooding: pre-measured cells, sticky day headers, and the pin / lockstep / ignore scroll contract that keeps you glued to the live edge when the composer inset changes. It shipped on iOS and Compose in the same change.

If you want the why-we-extracted-and-then-did-not-publish story — shared golden fixtures, monorepo twin packages, and why we dogfood before freezing a public Maven/SPM API — the transcript-engine dogfood post is the deep dive.

Trill: the nudge is back#

We could not ship this much chat work and skip the fun part. Trill (#336) is an MSN-style nudge — a shake and a ⚡ for the contact who needs reminding you are still waiting. It is small, it is per-chat mutable, and it has its own deep-dive post.

Hardened after an adversarial review#

An external pentest came back with three classes of forgery and flooding against the mesh and group path. They are fixed in the #411 / #414 / #422 set:

The thread underneath held: keys are identity, links are credentials. We just had to close the gaps where an attacker could abuse the transport to lie about who they were.

Mesh and background delivery, more reliable#

The offline road got real-world fixes this cycle:

The product rule did not change — open from local storage first, sync in the background — but the background updater is now much less likely to drop your messages on the floor.

Get it#

Alpha.12 is rolling out now.


Sonar is free and open source. Read the docs or get the app.

#engineering#sonarblogpost

Written by

Comments

No comments yet. Start the conversation.

Contents

6 sections

  1. One handle for encrypted chat and Lightning payments
  2. Signal-shaped transcripts, in production
  3. Trill: the nudge is back
  4. Hardened after an adversarial review
  5. Mesh and background delivery, more reliable
  6. Get it