<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/src/concord.js, branch master</title>
<subtitle>coinos v3 — bitcoin, Ark, Lightning and nostr wallet (web + Android)</subtitle>
<id>https://git.coinos.io/coinosv3.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinosv3.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/'/>
<updated>2026-09-15T02:03:06Z</updated>
<entry>
<title>A community that has been refounded reads and writes at its current epoch.</title>
<updated>2026-09-15T02:03:06Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-15T02:03:06Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=718d7f2bf077ea27ced17c94f643592003e6bacc'/>
<id>urn:sha1:718d7f2bf077ea27ced17c94f643592003e6bacc</id>
<content type='text'>
Vector communities (Nostr Talk, FOSS Apps) sit at root epoch 1 after a
refounding. coinos derived every channel stream at epoch 0, so it read
and posted to an address nobody else used: five messages from coinos
users where Vector showed months of history. Public channels now follow
the base epoch (CORD-03), private ones their own key and epoch from the
join material; the epoch tag on every rumor matches the stream that
carried it.

The Control Plane is read at the invite's control_pk (CORD-02 §5 split)
and decrypted under the root-derived key, so metadata, icon and channel
definitions fold for a post-split community; the legacy derivation is
kept for the built-in coinos community, which still writes through it.
Guestbook snapshots (3312) from the owner seed members after a
refounding, so the count matches Vector's. Join material carries
control_pk and private channel keys through the Community List and
direct invites, and the list merge heals an entry that predates them.

A pasted invite previews under the Communities heading where the paste
box was, instead of at the top of a page the user had scrolled past.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>The page arrives light and paints at once: index.html shrinks to 46KB with a static boot shell baked in — brand row, and the profile frame when the path names one — while the 789KB bundle moves to a content-addressed app-&lt;hash&gt;.js the browser keeps (a repeat visit re-downloads kilobytes, not the app); the nostr-tools barrel import goes subpath, and the NIP-46 signer client ships as its own lazy file fetched on first bunker login</title>
<updated>2026-08-26T19:06:00Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-26T19:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=0427a1b02c21fd5fa9f5df8a86e435dbb84a8451'/>
<id>urn:sha1:0427a1b02c21fd5fa9f5df8a86e435dbb84a8451</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
</content>
</entry>
<entry>
<title>A message sends the instant you let go of it: the rumor hashes synchronously onto the screen as a dimmed bubble, crypto and relays catch up in the background, and one small tick marks the moment a relay takes it</title>
<updated>2026-08-18T19:06:04Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-18T19:06:04Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=a0374566a5c69d87e5a156f5fabecf5b9b45d6f9'/>
<id>urn:sha1:a0374566a5c69d87e5a156f5fabecf5b9b45d6f9</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_012u4oe1KPx9faCsDBLfZYqi
</content>
</entry>
<entry>
<title>Messages in the header, and a room you can tell is alive</title>
<updated>2026-08-04T04:04:09Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-04T04:04:09Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=dc8f4b841ff57f4ef74597c2f80b6f90b352db13'/>
<id>urn:sha1:dc8f4b841ff57f4ef74597c2f80b6f90b352db13</id>
<content type='text'>
The header carries a message button again, left of the wallet selector,
with a red dot when a conversation is waiting. Unread is a per-thread
watermark on the newest message from someone else, kept in the rumor's
own created_at so it means the same thing on every device it syncs to.
Rooms subscribe at startup now, or the dot could not speak for a
community nobody was listening to.

Communities no longer buzz a phone by default: push registration only
carries the stream keys of communities you have opted in, per community,
from a bell in the room header. DMs and payments are unchanged.

Presence and typing ride the channel stream as 21059 wraps, so who is
around stays inside the community's encryption rather than becoming a
public status. Measured against relay.coinos.io and nos.lol, neither
actually drops NIP-01 ephemeral kinds, so beats carry a NIP-40
expiration and relay.coinos.io sweeps kind 21059 hourly — and presence
is dated by the beat, never by arrival, or a replayed beat would light
up the whole member list.

The member list follows Telegram: online, then last seen in minutes and
hours, then a vague 'recently' rather than advertising how long someone
has been gone.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
<entry>
<title>Chat v2: DMs, invites, and multi-community — coinos is the default, not the only</title>
<updated>2026-08-02T20:40:54Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-02T20:40:54Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=95263c02a13a825a8d02dbe760f2a74de8f93f77'/>
<id>urn:sha1:95263c02a13a825a8d02dbe760f2a74de8f93f77</id>
<content type='text'>
- NIP-17 private DMs (src/dm.js): kind-14 rumors in sender-signed seals under
  ephemeral wraps; interops with other nostr DM clients. Login signers gained
  encryptTo/decryptFrom so extensions and bunkers can seal to a peer; the
  inbox listens for both the login npub and the wallet key and publishes a
  kind-10050 DM-relay list for the wallet key when none exists.
- Concord invites (CORD-05): mint shareable links (33301 bundle on relays,
  keys only in the URL fragment), join by pasting a link or opening
  v3.coinos.io/invite/…, and direct invites giftwrapped to an npub with the
  k-tag index hint. Bundles self-certify the founder before anything joins.
- Multi-community: home view lists DM threads and communities; found your own
  community in-app (owner-signed genesis). coinos stays baked in as default.
- Welcome DM: the names registrar DMs every first-time registrant from Adam's
  npub on claim (config: welcome{sk,message}; deduped in registrar state).
  Every new wallet auto-claims a payment address, so every new user gets one.
- relay.coinos.io write policy now allows 33301/13302/13303.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
<entry>
<title>Rebrand: hal → coinos v3</title>
<updated>2026-08-02T19:32:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-02T19:32:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=1fdaa920d7530ac2073ca50280d9531935446c7a'/>
<id>urn:sha1:1fdaa920d7530ac2073ca50280d9531935446c7a</id>
<content type='text'>
The app already presents as Coinos; this finishes the job in the repo:
package name, README, GitHub link, code comments, and the stale locale
lines that still explained the old "Hal Wallet" name (they fall back to
the English tribute line). Kept: the hal-nwc-pouch IndexedDB name (an
upgrade-compat identifier), the halwallet.app domain in the BIP-353
names feature (live infrastructure), and the Hal Finney tribute itself.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
<entry>
<title>Chat: Concord encrypted community messaging, with a default coinos room</title>
<updated>2026-08-02T17:09:42Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-02T17:09:42Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=3205acf157b7f1cfb857a383f374ef4d739d82cc'/>
<id>urn:sha1:3205acf157b7f1cfb857a383f374ef4d739d82cc</id>
<content type='text'>
Implements the Concord protocol (CORD-01..04) — private streams, the
control-plane fold, guestbook membership, owner-rooted authority — and
ships a built-in "coinos" community founded by Adam's npub (owner/admin).
Messages sign with the nostr login identity when a signer is live, else
the wallet's NIP-06 key; all encryption rides derived stream keys so
remote signers only ever sign seals.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
</feed>
