<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-09-18T09:24:12Z</updated>
  <generator>https://njump.cloud.vinney.xyz</generator>

  <title>Nostr notes by White Noise</title>
  <author>
    <name>White Noise</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.cloud.vinney.xyz/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec.rss" />
  <link href="https://njump.cloud.vinney.xyz/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec" />
  <id>https://njump.cloud.vinney.xyz/npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec</id>
  <icon>https://blossom.primal.net/8732b3f504df751c4f4523252d959177f1a1aef152cf6078f531eb6517c8b2db.png</icon>
  <logo>https://blossom.primal.net/8732b3f504df751c4f4523252d959177f1a1aef152cf6078f531eb6517c8b2db.png</logo>




  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsgk0hgh8xj39w6qf2dut4jfdwhweq46xealczr7lfspnp0hktuq2gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2rmvga</id>
    
      <title type="html">You don’t own your phone number. You rent it. Stop paying and ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsgk0hgh8xj39w6qf2dut4jfdwhweq46xealczr7lfspnp0hktuq2gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w2rmvga" />
    <content type="html">
      You don’t own your phone number. You rent it. Stop paying and someone else answers to it.&lt;br/&gt;&lt;br/&gt;Every messenger you have is built on top of that number.
    </content>
    <updated>2026-10-19T12:23:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs8a54gywrnp8pahu8hs5fhc56frt56fzrccr7dp4rltpngerecm7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl9sx8l</id>
    
      <title type="html">On White Noise, nobody asks who you are. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs8a54gywrnp8pahu8hs5fhc56frt56fzrccr7dp4rltpngerecm7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl9sx8l" />
    <content type="html">
      On White Noise, nobody asks who you are.&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/36fe5da9fba513256e0ebbe2c50403bb547c0b50e5c25ed9dc2a2857e7a3314b.jpg&#34;&gt; 
    </content>
    <updated>2026-10-08T15:36:07Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsdze04j5j3z0lfqxmzp3agarykac9nw8mrjxekmcegyredd8t6m2czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwjqdq</id>
    
      <title type="html">Got the latest White Noise release? – Custom emoji in messages ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsdze04j5j3z0lfqxmzp3agarykac9nw8mrjxekmcegyredd8t6m2czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwjqdq" />
    <content type="html">
      Got the latest White Noise release? &lt;br/&gt;&lt;br/&gt;– Custom emoji in messages and reactions&lt;br/&gt;– Polls: see who voted (iOS), set a closing time (Android)&lt;br/&gt;– Direct mentions notify you in muted chats &lt;br/&gt;– Chat-list folders on Android &lt;br/&gt;&lt;br/&gt;To download: &lt;a href=&#34;https://www.whitenoise.chat/download&#34;&gt;https://www.whitenoise.chat/download&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/74590605b7d31d88f9a9a299c92e29ecdb80deef87c0d16dd67c11e9d0d96285.png&#34;&gt; 
    </content>
    <updated>2026-10-07T17:27:15Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsznw6lsjw9xewdm8ryrpxqj49h9h5a49ag77g4lxhwswl0qydsx3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w97m88p</id>
    
      <title type="html">From the community group. Over 100 people in it, no server ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsznw6lsjw9xewdm8ryrpxqj49h9h5a49ag77g4lxhwswl0qydsx3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w97m88p" />
    <content type="html">
      From the community group. Over 100 people in it, no server holding the chat together, and the thing people notice is the colors. Good.&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/e30ce8f72772a3815cd04f0ba94ea77af2813ae5dfc3233544048c2049ef9474.jpg&#34;&gt; 
    </content>
    <updated>2026-10-07T17:09:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspf4n5vhekszudggqkke2v45dwgy52g5t04a6uu7v0fsq75h5wazszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlukref</id>
    
      <title type="html">See you in 2 hours here: meet.fulmo.org/marmot Bring your demo ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspf4n5vhekszudggqkke2v45dwgy52g5t04a6uu7v0fsq75h5wazszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlukref" />
    <content type="html">
      See you in 2 hours here: meet.fulmo.org/marmot&lt;br/&gt;&lt;br/&gt;Bring your demo 😎&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqs83pym890cdnzy6rzl4kzusgtgl9r2h54wek04242yh6rdrcavm5g0qfk8d&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…fk8d&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Looking forward to that, lots to demo &lt;/blockquote&gt;
    </content>
    <updated>2026-10-06T13:48:51Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsg88p7laqv5cx2g9ws7fv0csjfq505rx427w37tqhsh878xrt57kszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wvcvmqe</id>
    
      <title type="html">It’s not just about White Noise. We want demos from builders ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsg88p7laqv5cx2g9ws7fv0csjfq505rx427w37tqhsh878xrt57kszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wvcvmqe" />
    <content type="html">
      It’s not just about White Noise. We want demos from builders working on the protocol, on different interfaces and libraries. &lt;br/&gt;&lt;br/&gt;See you tomorrow at the &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsd73ah4jstdkrls0qulxxnd8ukn5l4xnldw4z9mg7ku48nkljyhvspz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3camnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdsrawqdq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;marmotprotocol&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…wqdq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; community call! &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqs0l7az09se4qwaf5kl6dcsh876jhkueu5ndu82qluf83zeqa049dqhhvh90&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…vh90&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Marmot community call tomorrow October 6 at 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Now that the new &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8t4ehcdrjgugzn3zgw6enp53gg2y2gfmekkg69m2d4gwxcpl04acpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcppemhxue69uhkummn9ekx7mp0w3radp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;White Noise&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…radp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; is out, the calls get more demo-heavy. &lt;br/&gt;&lt;br/&gt;Building a client, library, or interface on Marmot? Bring it! We want to see other UIs, and other ways to do things 🚀&lt;br/&gt;&lt;br/&gt;Here: meet.fulmo.org/marmot&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/6d0c7db2048ab301812a16b5fb5acede74f38389abf69a286e212c6d074132dd.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-10-05T15:56:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswt70kgwlwnnes9jw5xtt27eqfekvkernqcu5m60y798h0jshz4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv9uuf4</id>
    
      <title>Nostr event nevent1qqswt70kgwlwnnes9jw5xtt27eqfekvkernqcu5m60y798h0jshz4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv9uuf4</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswt70kgwlwnnes9jw5xtt27eqfekvkernqcu5m60y798h0jshz4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv9uuf4" />
    <content type="html">
      GM &lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/72e6a638ce186725484eede2faede4c628688eca766c1706e5de27f405562da3.jpg&#34;&gt; 
    </content>
    <updated>2026-10-02T10:24:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswdwrufwzkseyf5l4f90hkzy099gkjt8r9sx7h007luzlxzpnkhpczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wa2eeup</id>
    
      <title type="html">White Noise for Android is on Google Play 👇 ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswdwrufwzkseyf5l4f90hkzy099gkjt8r9sx7h007luzlxzpnkhpczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wa2eeup" />
    <content type="html">
      White Noise for Android is on Google Play 👇 &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=dev.ipf.whitenoise.android&#34;&gt;https://play.google.com/store/apps/details?id=dev.ipf.whitenoise.android&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/b3e61084bcea91857a485077336bd3cd2099a5eb6160dadb049cbd06b35a9b2e.jpg&#34;&gt; 
    </content>
    <updated>2026-10-01T13:30:51Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspr9htk65hnm8rt9c3rhuatj4xpdve4rlem67zls3qg6996tqqs2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wneahv7</id>
    
      <title type="html">White Noise is built so that observers don&amp;#39;t see who ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspr9htk65hnm8rt9c3rhuatj4xpdve4rlem67zls3qg6996tqqs2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wneahv7" />
    <content type="html">
      White Noise is built so that observers don&amp;#39;t see who you&amp;#39;re talking to 👇 &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsdu0k8kk0wdusw0hvxwu3w2nwhdy64ndctd8fzfqk22xfhfjqec9gnqy9tx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…y9tx&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; No, and thats the point.&lt;br/&gt;&lt;br/&gt;An outside observer who is connected to relays sees that I received a gift wrapped message. They don&#39;t know that it is a Marmot event, and they also don&#39;t know that it came from you. &lt;br/&gt;&lt;br/&gt;Even further, if your or my nsec were to leak, then that would still not reveal who invited me to a chat. &lt;br/&gt;&lt;br/&gt;A relay operator, however, could with some sophisticated trickery try to link your and my IP address to the same group ID in the connection to it. I&#39;m not exactly sure how to pull that off, but it might be possible. &lt;/blockquote&gt;
    </content>
    <updated>2026-09-30T19:13:09Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs24dchtkhrud89nglnwl3h4n3tex58c8nj3j8s5d3e59dxjv0ytgczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whj2ulk</id>
    
      <title type="html">Okay so we&amp;#39;re all here messaging each other and neither of us ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs24dchtkhrud89nglnwl3h4n3tex58c8nj3j8s5d3e59dxjv0ytgczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whj2ulk" />
    <content type="html">
      Okay so we&amp;#39;re all here messaging each other and neither of us signed up with a company to do it? 
    </content>
    <updated>2026-09-30T18:52:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs0jcsfjdyrrftr53qdf3ww8qa6np69kwf6f4aatqq4y6v6sppdjfqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4rfp0r</id>
    
      <title type="html">If you don’t have any friends to talk to on White Noise, talk ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs0jcsfjdyrrftr53qdf3ww8qa6np69kwf6f4aatqq4y6v6sppdjfqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4rfp0r" />
    <content type="html">
      If you don’t have any friends to talk to on White Noise, talk to your agents! &lt;br/&gt;&lt;br/&gt;(but also don’t take this too seriously, human friends are great) &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhuqqsvtxpvmmq2nsdcr9fewxpvll8jj9s8gumdtesfpv8asw9e76s6gvczfps9y&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ps9y&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; Send me your npub and I&#39;ll add you to some groups.&lt;br/&gt;Also use White Noise to chat with your agents, it works great even without any friends on there yet. &lt;/blockquote&gt;
    </content>
    <updated>2026-09-30T10:43:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstt9mnk0mr0sz7zr9kv0w0ztjemr3d95eay40xufee9cdq334qd5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waf6vjp</id>
    
      <title type="html">Your AI agents can message you on White Noise. Connectors for ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstt9mnk0mr0sz7zr9kv0w0ztjemr3d95eay40xufee9cdq334qd5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waf6vjp" />
    <content type="html">
      Your AI agents can message you on White Noise. Connectors for Claude, OpenClaw, Hermes, OpenCode, Pi and Codex let you talk to them from the same app you use for people. &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/1016cc6885d6a6fcd3ce6cf1c1111868f82e241f647623663b22c54ed54c02ae.png&#34;&gt;  
    </content>
    <updated>2026-09-29T09:59:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsx75evgucn9kqtke7wcw7u6chr0g3v3xz0rxq43y0v78n4y6frddqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wu2v2dj</id>
    
      <title type="html">Can private messaging feel as familiar as Signal without one ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsx75evgucn9kqtke7wcw7u6chr0g3v3xz0rxq43y0v78n4y6frddqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wu2v2dj" />
    <content type="html">
      Can private messaging feel as familiar as Signal without one company running it? Our cofounder &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhs6un0n6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jeffg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n0n6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; walks through how White Noise gets there, with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7mn0wd68yetvd96x2uewdaexwqgcwaehxw309ac8yetdd96k6tnswf5k6ctv9ehx2aqqyr4w0m0aedulyv2h5xher9y4ge8yn2nk5gh954n8zj8jjmq4sk58jrnpw9e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;bitkite&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…pw9e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; !&lt;br/&gt;&lt;br/&gt;Press play 👇&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=kTX1nBNTcu8&#34;&gt;https://www.youtube.com/watch?v=kTX1nBNTcu8&lt;/a&gt;
    </content>
    <updated>2026-09-23T15:25:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs9826rhjn5ukmfgpvpaum5udm0prlu5dya96q35lmylxkzpgqc4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wn33phd</id>
    
      <title type="html">New White Noise release. The messenger with no phone number. Your ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs9826rhjn5ukmfgpvpaum5udm0prlu5dya96q35lmylxkzpgqc4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wn33phd" />
    <content type="html">
      New White Noise release.&lt;br/&gt;&lt;br/&gt;The messenger with no phone number. Your key is your account. &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.whitenoise.chat/download&#34;&gt;https://www.whitenoise.chat/download&lt;/a&gt;
    </content>
    <updated>2026-09-21T16:42:04Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqszn0mryf8q0z8jwk9kc324n3jgmzs8hqywtx03vrfl25snxzsz64szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpyq7at</id>
    
      <title type="html">We&amp;#39;ve been busy. Three phones talking. No company in between. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqszn0mryf8q0z8jwk9kc324n3jgmzs8hqywtx03vrfl25snxzsz64szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpyq7at" />
    <content type="html">
      We&amp;#39;ve been busy.&lt;br/&gt;&lt;br/&gt;Three phones talking. No company in between. No phone number needed.&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/f57d20b1f396ded8ada698e29ea7069d93930214a0fe362d8cbee240333c02c2.mov&#34;&gt;&lt;/video&gt;
    </content>
    <updated>2026-09-18T09:13:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsf3uhksq4u3p2s68qsy76gmkltuw7dwaddtz8vjgfvyvmzyhye9yszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0watdx2r</id>
    
      <title type="html">Fully decentralized, end-to-end encrypted group messaging is ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsf3uhksq4u3p2s68qsy76gmkltuw7dwaddtz8vjgfvyvmzyhye9yszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0watdx2r" />
    <content type="html">
      Fully decentralized, end-to-end encrypted group messaging is harder than anyone admits. We&amp;#39;re further into the problem than we&amp;#39;ve ever been...  and this is what the inside of it looks like:&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uqz6cn4d9kxg6twvukhg6r994kk2umnv4hxwetj946xsct594jx2um9wfmx2uedw3hj6etcd9ehg5lydgt&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…ydgt&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h1 id=&#34;the-next-chapter-2&#34;&gt;The next chapter&lt;/h1&gt;

&lt;p&gt;The last shipped build was v2026.5.22&#43;25, back at the end of May. The commit graph on the Flutter app went quiet on June 9. There were zero conference talks in June. The team went dark, and the app on your phone kept working most of the time and failing in the ways it had been failing for a while.&lt;/p&gt;

&lt;p&gt;Here is the story of what happened in that quiet. It has two threads that started separately and ended up braided together. One is a protocol problem we underestimated. The other is a client platform we outgrew. Both problems needed a longer answer than a patch release, and the answer to both is now in flight. The rest of this post walks through what we found, what we built, and what still stands between us and the next release.&lt;/p&gt;

&lt;h2 id=&#34;the-bug-behind-the-bug-2&#34;&gt;The bug behind the bug&lt;/h2&gt;

&lt;p&gt;For most of White Noise&amp;#39;s first year, a specific failure kept showing up: someone would create a group, invite a few people, those people would add a few more, and at some point the group would stop working. Messages would arrive for some members and skip others. Two admins would see two different member lists. A new invitee would join and immediately be in a group that already disagreed with itself.&lt;/p&gt;

&lt;p&gt;We treated these for a long time as individual bugs. Wrong retry logic. A race between a commit and a welcome. A missing tie-breaker. Each fix was correct in isolation, and yet the underlying problem stayed.&lt;/p&gt;

&lt;p&gt;The underlying problem is that maintaining a shared group state across many independent clients, over an open relay network, is a consensus problem. We mean consensus in the specific sense that has kept distributed systems research busy for decades: multiple actors making decisions at the same time, over a network that reorders and drops messages, with no privileged coordinator to arbitrate. MLS gives you strong cryptographic primitives for a single well-behaved epoch chain. It stays silent about what to do when two admins commit at the same instant and both are technically valid.&lt;/p&gt;

&lt;p&gt;We had built the app on the assumption that the MLS state machine plus a few local rules would be enough. What we found was that the rules had to be much more precise, the machine had to be described formally, and every failure mode had to be enumerated by name. Otherwise every client team writing an implementation would invent slightly different rules and the groups would split down the seams between them.&lt;/p&gt;

&lt;p&gt;Once we saw the shape of the problem, the plan changed.&lt;/p&gt;

&lt;h2 id=&#34;dark-matter-the-exploration-2&#34;&gt;Dark Matter: the exploration&lt;/h2&gt;

&lt;p&gt;In May we opened a repo called &lt;code&gt;darkmatter&lt;/code&gt;. The description says &amp;#34;An exploration.&amp;#34; It was a candidate rewrite of the protocol from the group-state machine outward.&lt;/p&gt;

&lt;p&gt;The work that came out of Dark Matter has three parts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The spec.​&lt;/strong&gt; The Marmot spec got reorganized from a numbered list of MIPs into surfaces: foundation, protocol-core, app components, transports, and features. That reflects how implementers think about it in practice. The group lifecycle now has a small, named set of states: Stable, PendingPublish, Merging, Recovering, Unrecoverable. Concurrent commits get a deterministic tie-breaker that every conforming client must implement the same way. The convergence policy is nailed down to six pinned constants, deliberately fixed and undecided by any group, so that groups cannot fork on configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The engine.​&lt;/strong&gt; Alongside the spec work, we wrote a fresh CGKA engine, the Continuous Group Key Agreement state machine that sits on top of MLS. It has a much cleaner boundary and a much clearer error taxonomy. This engine is where the &amp;#34;verifiable state machine&amp;#34; language you may have seen comes from: it now has Tamarin proofs for the convergence selector and the lifecycle boundaries, plus a conformance simulator that runs multi-client scenarios and checks the outputs against an oracle. When we say &amp;#34;we now understand where this breaks,&amp;#34; we mean it in the sense that the proof either goes through or it fails to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capability negotiation.​&lt;/strong&gt; Another insight from our prior work on White Noise and Marmot was that clients will always support different feature sets. Amethyst may have a feature White Noise hasn&amp;#39;t shipped yet. An older Scramble build may lack something the two newer clients agree on. The old approach was to expect all client devs to stay caught up, which is a wish, not a plan. The new approach: when a group opens, the members handshake on the intersection of capabilities they all support at that moment, and the group operates at that level. Alice with more features and Bob with fewer can still open a group together; the group uses what they both have and stops there. This shipped over five PRs in late May. The beautiful thing about how this is built is that it allows groups to upgrade over time as their respective clients support newer features.&lt;/p&gt;

&lt;p&gt;The multi-device groundwork is in this batch too. It is deliberately off for interop for now, since history sync is out of scope for the first release. The spec now has the shape of a device set per account, and the engine knows how to reason about it. Multi-device will ship when it works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transport Agnostic.​&lt;/strong&gt; The last major improvement that the Dark Matter work tackled was make Marmot transport agnostic. Nostr is still our first (and only) transport adapter for the moment, but by separating how messages are carried across the wire we set the groundwork for a more flexible and unstoppable protocol.&lt;/p&gt;

&lt;p&gt;The Dark Matter migration is complete. All the new code has landed back in MDK and the &lt;code&gt;darkmatter&lt;/code&gt; repo will be archived soon. What started in the exploratory repo has been folded back into the Marmot spec, into MDK, and into every downstream clients (more on this later). &lt;code&gt;marmot-ts&lt;/code&gt;, the TypeScript implementation, has also begun implementing the Marmot v2 spec, which means non-Rust clients get a path to the same conformance guarantees.&lt;/p&gt;

&lt;h2 id=&#34;goggles-seeing-groups-fail-2&#34;&gt;Goggles: seeing groups fail&lt;/h2&gt;

&lt;p&gt;You cannot fix consensus bugs you cannot see. Every long-running group in production had been telling us something was wrong, and we lacked a good way to look at what the group had done, from every member&amp;#39;s point of view, at once.&lt;/p&gt;

&lt;p&gt;So we built &lt;a href=&#34;https://github.com/marmot-protocol/goggles&#34;&gt;Goggles&lt;/a&gt;, a visualization dashboard for Marmot group state. Every engine emits a forensic audit log: one JSONL line per event, everything it sent, everything it published to relays, everything it received and decrypted, every epoch it moved through, every fork verdict it computed. Goggles ingests these logs from every device in the group, joins them by message ID, and shows you what each engine saw and decided.&lt;/p&gt;

&lt;p&gt;The load-bearing feature is the per-engine matrix. If Alice thinks the group is at epoch 47 and Bob thinks the group is at epoch 46 with a different membership, Goggles shows you both, side by side, with the exact epoch where they disagreed. It gives you a fork verdict: the specific epoch where a same-epoch commit was resolved to different winners by different machines. That is the exact point the group split.&lt;/p&gt;

&lt;p&gt;Goggles changed how we debug. We stopped guessing at what happened after the fact and started reconstructing it. The audit-log format is now on its second schema version: v2 shipped on June 26 as an explicit contract between the engine and Goggles, called out that way in the commit message.&lt;/p&gt;

&lt;p&gt;Obviously, audit logging of this level shares sensitive data with a central server. These audit logs are opt-in developer tools that we don&amp;#39;t expect most users to turn on or pay attention to.&lt;/p&gt;

&lt;h2 id=&#34;virtual-groups-making-the-failure-happen-on-purpose-2&#34;&gt;Virtual groups: making the failure happen on purpose&lt;/h2&gt;

&lt;p&gt;Seeing failures after the fact is one half of the job. Reproducing them on demand is the other. In June we spun up an automated testing harness that boots throwaway virtual machines, installs the app in each one, and drives them from the outside as if a real user were tapping through. A test run becomes a small virtual group with several members, all doing something specific: chatting normally, joining late, going offline and coming back, handing off admin rights, running two overlapping groups at once, or a 48-hour marathon soak that watches for slow drift.&lt;/p&gt;

&lt;p&gt;The harness writes the same forensic audit log format Goggles reads, so a test failure and a production failure show up in the same tool. Every run reports whether it passed, failed, or produced a fork. When the harness finds a fork, we walk the logs into Goggles and find the epoch, then walk the epoch back into the engine and fix the rule.&lt;/p&gt;

&lt;p&gt;The harness gives us an operational grip on the problem. It is a stretch to claim we have solved every case. What we can claim: when a new case appears, we have a tool that finds it and a tool that names it, and the fix goes back into the spec so it will stay fixed for every conforming client.&lt;/p&gt;

&lt;p&gt;Speaking of clients...&lt;/p&gt;

&lt;h2 id=&#34;the-other-pivot-flutter-to-native-2&#34;&gt;The other pivot: Flutter to native&lt;/h2&gt;

&lt;p&gt;Somewhere in the middle of the Dark Matter work, an older question came due. The Flutter app had gotten us this far, and it was starting to hold us back. The same UI on Android and iOS meant the app never felt at home on either. Native features (the platform notification model, the platform keychain, the OS-level share sheet, the small everyday things a good chat app has to get right) kept requiring more workarounds than they were worth. And the layer between our Rust core and the Flutter widget tree had grown into its own maintenance burden.&lt;/p&gt;

&lt;p&gt;We decided to reimplement the UI in native code, per platform. Big call, and we did not make it casually. It costs us calendar time. It costs us duplicated UI work. But there were two reasons that we felt this was the right way forward. The first was related to what we said, purely native apps behaves the way its host operating system expects it to behave, and a UI layer that is easier to reason about and way nicer to use as an end user. Second, agentic coding has massivly collapsed the cost of implementation and maintenance of multiple code bases, which was always one of the main selling points of frameworks like Flutter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android&lt;/strong&gt; is being rewritten in Kotlin with Jetpack Compose. Repo: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-android&#34;&gt;whitenoise-android&lt;/a&gt;. Roughly eighty PRs merged in the last week alone, moving through screen-lock gating, chat-screenshot privacy toggles, in-app font scaling, and the redesigned chat-creation and group-management flows.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;iOS&lt;/strong&gt; is being rewritten in Swift and SwiftUI. Repo: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-ios&#34;&gt;whitenoise-ios&lt;/a&gt;. Recent work has been a systematic thin-shell refactor pushing state down into Rust and decomposing the app-level state model, plus a Notification Service Extension that decrypts pushes on-device with Apple seeing only ciphertext.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt; is a first-class native app in SwiftUI. Repo: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-mac&#34;&gt;whitenoise-mac&lt;/a&gt;. Recently through a full performance pass, first TestFlight build, and multi-recipient new-chat flow. There is also a small companion repo, &lt;a href=&#34;https://github.com/marmot-protocol/wn-design-lab-mac-os&#34;&gt;wn-design-lab-mac-os&lt;/a&gt;, where the team prototypes with real AppKit primitives to keep the app feeling native at the level of controls, and beyond skin-deep paint.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux (with Windows to follow)​&lt;/strong&gt; is a single Rust binary with a &lt;a href=&#34;https://slint.dev/&#34;&gt;Slint&lt;/a&gt; UI. Repo: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-linux&#34;&gt;whitenoise-linux&lt;/a&gt;. The v0.1.0 line is out, day-to-day usable, and, because it exposes a headless daemon, it doubles as the testbed the QEMU harness drives.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of the native apps share the same Rust engine underneath. The engine is where the Marmot protocol lives. The native layer sits above it to render, take input, and integrate with the operating system.&lt;/p&gt;

&lt;p&gt;Building four UIs is more work than building one. We think it is worth it because the app you use for private group messaging should feel like it belongs on the device you use for everything else. Signal made that call years ago, iMessage was born there, and every serious mobile messenger followed the same route. The Flutter era was a productive shortcut for shipping the first version of an idea. The native era is where the app grows up.&lt;/p&gt;

&lt;h2 id=&#34;where-we-are-2&#34;&gt;Where we are&lt;/h2&gt;

&lt;p&gt;The next release lands when it lands, and we are staying quiet on the date. Here is where things stand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The spec side of Marmot v2 is drafted and organized, with formal proofs for the convergence pieces that used to be underspecified. The engine that implements it runs in the test harness against real scenarios.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The Rust core (MDK) has been cleaned up and modularized in step with the spec, and it is the code path every native client uses.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The native rewrites are all shipping code every day. iOS is running on TestFlight-shape builds internally, the Mac app has real users on the team, Linux has a public v0.1.0 out, and Android is deep into feature parity.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;We can reproduce group forks on demand in the testing harness, and we can see them in Goggles when they show up in the wild. What was invisible to us six months ago is now legible.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What remains is testing and calibration. Turning the harness on for longer runs and stranger scenarios. Watching the audit logs in Goggles for divergence patterns we have yet to name. Fixing them at the spec layer, so every conforming client inherits the fix. Then re-running the harness. The next release will ship when a medium-sized group can survive the marathon scenario clean, and when the fix set has held long enough that we trust it.&lt;/p&gt;

&lt;p&gt;The reason this is taking longer than any of us wanted is that we changed our mind about what &amp;#34;shipping&amp;#34; means. Shipping a chat app that mostly works, and hoping the group-consensus bugs stay rare, is a game we are done playing. Shipping one that works because we understood the problem and rebuilt the parts that could survive it: that we can stand behind.&lt;/p&gt;

&lt;h2 id=&#34;what-you-can-do-in-the-meantime-2&#34;&gt;What you can do in the meantime&lt;/h2&gt;

&lt;p&gt;If you want to follow along, the work is open. The interesting repos, roughly in order of &amp;#34;where the story is&amp;#34;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Protocol spec &#43; engine draft: &lt;a href=&#34;https://github.com/marmot-protocol/marmot&#34;&gt;marmot&lt;/a&gt; and &lt;a href=&#34;https://github.com/marmot-protocol/darkmatter&#34;&gt;darkmatter&lt;/a&gt; (darkmatter will be publicly archived soon but all the code is now on MDK)&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Rust library everything runs on: &lt;a href=&#34;https://github.com/marmot-protocol/mdk&#34;&gt;mdk&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Native clients: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-android&#34;&gt;whitenoise-android&lt;/a&gt;, &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-ios&#34;&gt;whitenoise-ios&lt;/a&gt;, &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-mac&#34;&gt;whitenoise-mac&lt;/a&gt;, &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-linux&#34;&gt;whitenoise-linux&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Test harness: &lt;a href=&#34;https://github.com/marmot-protocol/darkmatter-automated-testing&#34;&gt;darkmatter-automated-testing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Group-state visualizer: &lt;a href=&#34;https://github.com/marmot-protocol/goggles&#34;&gt;goggles&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are running the current Flutter build in a group that has misbehaved, and you would be comfortable sharing an audit log with us, get in touch. The forensic log format is the same one Goggles reads, and every real-world fork we see makes the next release better.&lt;/p&gt;

&lt;h2 id=&#34;contributors-2&#34;&gt;Contributors&lt;/h2&gt;

&lt;p&gt;Thanks to everyone who has been heads-down on this over the last three months: erskingardner, agent-p1p, mubarakcoded, pepina-dev, dannym-arx, jgmontoya, and JeffG.​&lt;/p&gt;

&lt;p&gt;We are trying to build the first fully decentralized, end-to-end encrypted group messenger that works at group sizes people use every day. It is a genuinely hard problem, harder than we thought when we started, and we are further into solving it than maybe anyone else that has worked on the problem.\
\
The next release will land when it deserves to. Thank you for the patience.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-07-08T16:51:38Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswvkamafurh642ckwp8qnus8qktwdyfa5vz3sqs9wyt2w38l4z5yszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8nxea</id>
    
      <title type="html">We’re live https://meet.fulmo.org/marmot #nevent1q…xt4x</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswvkamafurh642ckwp8qnus8qktwdyfa5vz3sqs9wyt2w38l4z5yszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8nxea" />
    <content type="html">
      We’re live &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqs8dhsdqy8f47aukl0pcfkdes9pusjnfzl4jg7y67p9gxw9fue6stqkext4x&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xt4x&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Marmot community call today at 16:00 UTC it&#39;s one you won&#39;t want to miss, with updates on the past month&#39;s behind-the-scenes work and new developments. &lt;br/&gt;&lt;br/&gt;Come with questions. See you today july 7 at 16:00 UTC &lt;br/&gt;&lt;br/&gt;💻 JOIN US HERE : &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/857f6cb4b170d66d02503cfd29605c88908f611bb5a177d0c2e7b83b415d31a4.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-07-07T16:02:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsx65csu3l3nlu2jtv8q2pzam8madpev56gvv5s2ce07tzdngtxgkczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wznclmk</id>
    
      <title type="html">Marmot community call in 40 minutes! There’s so much to talk ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsx65csu3l3nlu2jtv8q2pzam8madpev56gvv5s2ce07tzdngtxgkczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wznclmk" />
    <content type="html">
      Marmot community call in 40 minutes! There’s so much to talk about. &lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzph68k7k2pdkc07purnuc6d5lj6wn7560a465ghdr6mj57wm7gjajqqs8dhsdqy8f47aukl0pcfkdes9pusjnfzl4jg7y67p9gxw9fue6stq6ulasr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…lasr&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; Marmot community call today at 16:00 UTC it&#39;s one you won&#39;t want to miss, with updates on the past month&#39;s behind-the-scenes work and new developments. &lt;br/&gt;&lt;br/&gt;Come with questions. See you today july 7 at 16:00 UTC &lt;br/&gt;&lt;br/&gt;💻 JOIN US HERE : &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/857f6cb4b170d66d02503cfd29605c88908f611bb5a177d0c2e7b83b415d31a4.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-07-07T15:19:10Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs95t4yyqadn4ysp7gz6ksqpjukaz93vqlm35kdewp0pf0gys0nl8gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0we49rtn</id>
    
      <title type="html">Are you interested in private messaging apps, or do you want to ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs95t4yyqadn4ysp7gz6ksqpjukaz93vqlm35kdewp0pf0gys0nl8gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0we49rtn" />
    <content type="html">
      Are you interested in private messaging apps, or do you want to build your own? &lt;br/&gt;&lt;br/&gt;Join us today at 16:00 UTC to hear from the co-founders of White Noise ( &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &amp;amp; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhs6un0n6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jeffg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…n0n6&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; ) and learn more about the protocol on which it is built. &lt;br/&gt;&lt;br/&gt;Ask us anything --&amp;gt; &lt;a href=&#34;http://meet.fulmo.org/marmot&#34;&gt;http://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzph68k7k2pdkc07purnuc6d5lj6wn7560a465ghdr6mj57wm7gjajqqspcg25nc7vrv28et93d3cpg0dhq2fh3ss68lczjfag2pdxksfsf3cylxpph&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xpph&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; 🐿️ Marmot Community Call &lt;br/&gt;📅 TODAY, June 9, 16:00 UTC&lt;br/&gt;&lt;br/&gt;We’re back from Oslo!&lt;br/&gt;&lt;br/&gt;In today&#39;s call we&#39;ll walk through everything that shipped in May, talk with people building on Marmot, and anyone who wants to start. Ask us anything. &lt;br/&gt;&lt;br/&gt;Don’t miss it: meet.fulmo.org/marmot&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/1709f557b26f2ef4e808ef464ccfbfa2caea5860678a0b0b31093ddb3bd0cf8d.png&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-06-09T09:53:37Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsdeejd7gz30vallfq3akm7lxygf3vwmpc40rsxl8ujrrvxztjw8wszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wnl2qh2</id>
    
      <title type="html">White Noise v2026.5.22 is out. iOS push notifications are live. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsdeejd7gz30vallfq3akm7lxygf3vwmpc40rsxl8ujrrvxztjw8wszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wnl2qh2" />
    <content type="html">
      White Noise v2026.5.22 is out.&lt;br/&gt;&lt;br/&gt;iOS push notifications are live. The Notification Service Extension decrypts the payload on your device, so Apple sees a delivery but not the message, the sender, or your identity. Messages now render markdown. There&amp;#39;s a blocked users screen in Settings, deep links for chats and profiles, and Simplified and Traditional Chinese support.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qqg9qjf4fde9vjt0fak4y4n5d42kkqgwwaehxw309ahx7uewd3hkctczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqcyqqq823clqd4gv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qq…d4gv&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h1 id=&#34;white-noise-next-release-2&#34;&gt;White Noise next release&lt;/h1&gt;

&lt;p&gt;Push notifications work on iOS and Android. Chat messages render markdown. You can share to other apps, add members to a group, leave a group, and manage your blocked users from inside the app. Deep links take people straight to a chat, a profile, or a settings screen. White Noise now speaks Simplified and Traditional Chinese.&lt;/p&gt;

&lt;p&gt;If you missed the last release, you also got video, blocking that applies across the whole app, an offline notice on every screen, and database-at-rest encryption. Those keep working in this release.&lt;/p&gt;

&lt;h2 id=&#34;push-notifications-on-ios-2&#34;&gt;Push notifications on iOS&lt;/h2&gt;

&lt;p&gt;iOS now wakes White Noise through Apple Push Notification Service, the same delivery channel every other iOS app uses. The novel part is what happens after the push arrives.&lt;/p&gt;

&lt;p&gt;A Notification Service Extension runs on your device, decrypts the encrypted payload, and replaces the empty notification with the sender and the message preview, in your language. Apple sees that a notification was delivered to your device. Apple does not see the message, the sender, the group, or your Nostr identity. The notification server that triggers the push does not see them either: notification triggers are gift-wrapped Nostr events signed by an ephemeral key, decoy tokens hide the real recipient count, and per-group probabilistic encryption prevents anyone from correlating you across groups. The full privacy model is specified in &lt;a href=&#34;https://github.com/marmot-protocol/marmot/blob/master/05.md&#34;&gt;MIP-05&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A notification settings screen is now available on iOS as well as Android. Toggle push off and the account stops receiving them.&lt;/p&gt;

&lt;h2 id=&#34;android-stays-the-way-it-was-with-fcm-groundwork-2&#34;&gt;Android stays the way it was, with FCM groundwork&lt;/h2&gt;

&lt;p&gt;Android already had push notifications: a foreground service keeps a relay subscription alive and posts the silent &amp;#34;White Noise connected to relays&amp;#34; notification you have seen since launch. That path keeps working unchanged, with no Google Play Services dependency. It is what GrapheneOS and other de-Googled installs rely on.&lt;/p&gt;

&lt;p&gt;This release adds the rest of the FCM pipeline alongside that path. If your phone has Google Play Services available, White Noise now requests an FCM token and gossips it to your groups so other members can include it when they trigger a notification. No FCM messages are being dispatched to those tokens yet. The tokens are circulating ahead of a quick follow-up release that adds the Android settings to let you choose: stay on the foreground service, switch to FCM-based wake, or some combination. Both paths route through the same MIP-05 privacy model on the wire.&lt;/p&gt;

&lt;h2 id=&#34;markdown-in-messages-2&#34;&gt;Markdown in messages&lt;/h2&gt;

&lt;p&gt;Chat bubbles now render bold, italics, lists, code blocks, block quotes, headings, tables, and links. The parser also understands the Nostr extension format for &lt;code&gt;nostr:&lt;/code&gt; URIs.&lt;/p&gt;

&lt;p&gt;Plain-text messages take a fast path and look exactly like they did before. Nothing changes for people who send unformatted text.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@npub&lt;/code&gt; mentions render as &lt;code&gt;@DisplayName&lt;/code&gt; and open an in-app profile shade when tapped. Other Nostr URIs (note, nevent, nprofile, naddr, nrelay) still route through your OS so external clients can handle them.&lt;/p&gt;

&lt;h2 id=&#34;share-to-anywhere-2&#34;&gt;Share to anywhere&lt;/h2&gt;

&lt;p&gt;Long-press a message or open a photo or video in the media viewer, and the chooser now offers Save and Share as explicit actions. Share hands the content to the OS share sheet, so you can forward a message text or a downloaded attachment to any other app on your phone.&lt;/p&gt;

&lt;p&gt;Before this release, long-pressing media silently dumped a file into your gallery with no feedback. Now it asks.&lt;/p&gt;

&lt;h2 id=&#34;group-changes-2&#34;&gt;Group changes&lt;/h2&gt;

&lt;p&gt;You can now add members to a group from the group info screen, if you are an admin. The picker filters out people who are already in the group.&lt;/p&gt;

&lt;p&gt;Leaving a group is on by default. From the chat list, long-press a group and pick Leave. If you are the last admin, the button shows you why it is disabled and offers a path: promote another member to admin, then leave. If your group includes members on an older client that does not understand the leave flow, the app says so directly.&lt;/p&gt;

&lt;p&gt;When someone removes you from a group, the chat-removed warning now offers an Archive button so you can clean up without losing the history.&lt;/p&gt;

&lt;h2 id=&#34;deep-links-2&#34;&gt;Deep links&lt;/h2&gt;

&lt;p&gt;You can now share a link that opens White Noise directly to a profile, a chat, or a supported settings screen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;whitenoise://user/&amp;lt;npub&amp;gt;&lt;/code&gt; opens the start-chat or profile view for that user.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;whitenoise://chat/&amp;lt;groupId&amp;gt;&lt;/code&gt; opens that group conversation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;whitenoise://settings/...&lt;/code&gt; opens a supported settings path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The staging build registers a separate &lt;code&gt;whitenoise-staging://&lt;/code&gt; scheme so the two installs do not collide. Profile QR codes now encode a deep link, while the copy button still gives you the bare npub for places that prefer it.&lt;/p&gt;

&lt;h2 id=&#34;chinese-2&#34;&gt;Chinese&lt;/h2&gt;

&lt;p&gt;White Noise now supports Simplified Chinese (&lt;code&gt;zh_Hans&lt;/code&gt;) and Traditional Chinese (&lt;code&gt;zh_Hant&lt;/code&gt;). The Traditional version was translated independently for Traditional Chinese readers, preserving the regional differences that a mechanical conversion would flatten.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;code&gt;stupidloud&lt;/code&gt; for the original contribution.&lt;/p&gt;

&lt;h2 id=&#34;blocked-users-2&#34;&gt;Blocked users&lt;/h2&gt;

&lt;p&gt;Settings now has a Blocked users screen under Privacy &amp;amp; Security. It lists every account you have blocked, each row opens a profile detail with an Unblock action, and the list refreshes when you pop back out. The chat composer is hidden when you open a conversation with someone you have blocked. The existing banner stays, and the input is gated too.&lt;/p&gt;

&lt;h2 id=&#34;smaller-things-2&#34;&gt;Smaller things&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tapping an &lt;code&gt;@mention&lt;/code&gt; inside a chat now opens the group member view when the tagged person is in the group, and the start-chat view otherwise.&lt;/li&gt;
&lt;li&gt;Mention text uses the accent color so it stays readable on both light and dark chat bubbles.&lt;/li&gt;
&lt;li&gt;The QR scanner opens the camera on the first attempt after you grant permission.&lt;/li&gt;
&lt;li&gt;The QR code displays fully on small screens.&lt;/li&gt;
&lt;li&gt;The chat list search bar dismisses on Android swipe-back and keeps the app open.&lt;/li&gt;
&lt;li&gt;The group info screen scrolls for long member lists.&lt;/li&gt;
&lt;li&gt;Archived chats render correctly from the chat list summary.&lt;/li&gt;
&lt;li&gt;External signer notifications recover on Android after the signer app is force-quit.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete all data&lt;/code&gt; now completes within a bounded grace window, so a stuck background task can no longer hang the wipe.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;under-the-hood-2&#34;&gt;Under the hood&lt;/h2&gt;

&lt;p&gt;The Rust backend completed a long-running architecture refactor. The old global &lt;code&gt;Whitenoise&lt;/code&gt; object held about 25 fields and spread its implementation across more than 37 files. Per-account state now lives in explicit &lt;code&gt;AccountSession&lt;/code&gt; views, projection-owning services have clear ownership, and each account gets its own database scope. This unblocks proper multi-device support and makes the codebase testable without a full app process.&lt;/p&gt;

&lt;p&gt;A new &lt;code&gt;whitenoise-markdown&lt;/code&gt; crate replaces the previous token parser. It is a hand-written CommonMark &#43; GFM &#43; Nostr-extension parser that emits a typed AST, so Flutter can render every block and inline variant directly.&lt;/p&gt;

&lt;p&gt;Key package relay cleanup now runs once per account on startup and resume. After the invite quiet period passes, White Noise deletes stale legacy and canonical key package events from relays, then republishes a clean pair. The cleanup covers key-package relays, NIP-65 relays, and default account relays, tolerates unreachable relays, and marks completion so it does not run again.&lt;/p&gt;

&lt;p&gt;Product analytics infrastructure landed in the Rust crate, opt-in only, with consent stored device-local. There is no UI for it yet. Until a settings toggle ships in a future release, the system stays dormant and records zero events.&lt;/p&gt;

&lt;h2 id=&#34;contributors-5&#34;&gt;Contributors&lt;/h2&gt;

&lt;p&gt;Jeff Gardner, Pepi, Danny Morabito, Mubarak Auwal, Javier Montoya, stupidloud, Datawav.&lt;/p&gt;

&lt;h2 id=&#34;get-the-update-2&#34;&gt;Get the update&lt;/h2&gt;

&lt;p&gt;Download from the &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/releases&#34;&gt;GitHub releases page&lt;/a&gt;. No phone. No email. Just keys.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;strong&gt;Release notes&lt;/strong&gt;: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/releases&#34;&gt;vNEXT release notes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Report issues&lt;/strong&gt;: &lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/issues&#34;&gt;marmot-protocol/whitenoise&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-22T16:01:17Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs2nltfyat02dkh5y6cwtaz98z0g3cwprltljdaut8jcnda2g3dqngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqdr4et</id>
    
      <title type="html">Most apps want your email and your phone. Then, a code sent to ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs2nltfyat02dkh5y6cwtaz98z0g3cwprltljdaut8jcnda2g3dqngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqdr4et" />
    <content type="html">
      Most apps want your email and your phone. Then, a code sent to the number they just made you give them.&lt;br/&gt;&lt;br/&gt;White Noise wants two taps. An identity that&amp;#39;s only yours and works across all Nostr clients, not just here.&lt;br/&gt;&lt;br/&gt;It’s not magic, it’s maths. 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqq6arhdukhgctswvkkgmmwv5e2tqfh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…tqfh&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;Most apps start the same way. They ask for your email, then your phone number, then a password, then send a verification code to the phone number they just made you give them. By the time you&amp;#39;re in, you&amp;#39;ve handed over three pieces of personal data and created an account that lives on someone else&amp;#39;s server.&lt;/p&gt;

&lt;p&gt;White Noise skips all of that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tap sign up. &lt;/strong&gt;We generate a random name for you, something like &amp;#34;Top Halibut&amp;#34; or &amp;#34;Protective Cuckoo,&amp;#34; and that becomes your identity on Nostr. Change the name, add a bio, set a profile picture. Or leave it as-is. Two taps and you&amp;#39;re in.&lt;/p&gt;

&lt;p&gt;That name and picture are public on Nostr. We tell you this upfront, so you know what&amp;#39;s visible before you start messaging. Your conversations are end-to-end encrypted. Your profile is public. Worth stating before the first message goes out.\
\
&lt;img src=&#34;https://blossom.primal.net/94b2e8b546115295b78ac915228acbbec9a7f09183a95cd7b7cd726571d8e9e0.png&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;We hold off on the private key backup prompt during setup. At that point, the key has no history behind it. Your contact list is empty. Showing an nsec before someone sends a single message is a good way to lose them. The backup warning appears when you log out, when you have something worth keeping.&lt;/p&gt;

&lt;p&gt;This works because of Nostr. Your identity is a cryptographic key pair generated on your device. Your keys control it. A relay serves your messages, but the identity belongs to you. Suspend the relay, delete the account, the keys survive. Bring them somewhere else and you&amp;#39;re back.&lt;/p&gt;

&lt;p&gt;That identity is yours on all of Nostr, not just in White Noise. Take your nsec to Primal and your profile is there: same name, same picture, same follows. Open Amethyst and it&amp;#39;s the same identity again. The key you created in two taps on a messaging app works on a social client, a long-form publishing tool, a zapping wallet. Each app reads from the same Nostr network.\
\
&lt;img src=&#34;https://blossom.primal.net/63a13fb2e37072420fa6ac221293f0fa7e94948d2086980edbaa67af28841f91.png&#34; alt=&#34;&#34;/&gt;You are not creating a White Noise account. You are creating a Nostr identity that White Noise happens to be the first app to see.&lt;/p&gt;

&lt;p&gt;Onboarding has always been where privacy apps lose people. Key management is genuinely hard to explain to someone who has never thought about it. We get you into a working conversation first, then surface the sharp edges when they apply.&lt;/p&gt;

&lt;p&gt;Two taps. Start talking.\
\
&lt;img src=&#34;https://blossom.primal.net/ec59f42c8de56a77b4818287f6565c1aa516c79094dad38eb8785fa3256c2c8b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-19T10:23:40Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsv9n246sfmyjzp3mcvtmr688ergsnyvgmpm4rg5wm3jvjkhjqqqrgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wg3u626</id>
    
      <title type="html">Telescreen --&amp;gt; smartphone. Thought Police --&amp;gt; big data. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsv9n246sfmyjzp3mcvtmr688ergsnyvgmpm4rg5wm3jvjkhjqqqrgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wg3u626" />
    <content type="html">
      Telescreen --&amp;gt; smartphone.&lt;br/&gt;Thought Police --&amp;gt; big data.&lt;br/&gt;Room 101 --&amp;gt; echo chamber.&lt;br/&gt;Ministry of Truth --&amp;gt; post-truth.&lt;br/&gt;&lt;br/&gt;14 parallels between Nineteen Eighty-Four and surveillance in 2026.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqrgctjv5khwefdd35hv6twvukkjm3dde5kuet5v4jkutt9d9nksare94nx7atj94hhyttfwvkkjapdwahhyum9aduh7r&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…uh7r&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;If you think of an example of a totalitarian dystopia, you’ll likely picture the fictional world of &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;. George Orwell’s book is known worldwide, still serving as a stark literary warning 42 years after its setting and 77 years after its publication. The book has entered the popular lexicon and culture to such an extent that it is rarely banned, even in countries with totalitarian governments.&lt;/p&gt;

&lt;p&gt;Yet in Western democracies, we suffer surveillance more severe than Orwell could have imagined. The construction of a commercial digital panopticon has fooled many into believing they are still free. But Big Tech is watching you.&lt;/p&gt;

&lt;p&gt;Don’t take our word for it. Let’s examine the technology and surveillance methods mentioned in &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;, and compare them to the world we live in today.&lt;/p&gt;

&lt;p&gt;Note: This text contains spoilers for the book &lt;em&gt;Nineteen Eighty-Four.&lt;/em&gt; But come on, surely you’ve read it!&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;h1 id=&#34;parallels-between-nineteen-eighty-four-and-modern-surveillance-capitalism-2&#34;&gt;Parallels Between &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt; and Modern Surveillance Capitalism&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Telescreens vs Cellphones&amp;amp;#xA;&lt;/strong&gt;In Orwell’s Oceania, two-way monitors exist in every home. The screens broadcast propaganda while simultaneously watching and listening to residents.\
\
&lt;em&gt;&amp;#34;The instrument (called a telescreen) could be reduced, but there was no way of shutting it off completely... You had to live—did live, from habit that became instinct—in the assumption that every sound you made was overheard, and, except in darkness, every movement scrutinized.&amp;#34;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Today’s telescreens are not just in our apartments: they are in our pockets. We choose to carry them everywhere and never turn them off. Even when deactivated, they submit your location to companies that build detailed user profiles and keep all data on file, ready to hand to the government when requested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thought Police vs Data Mapping&amp;amp;#xA;&lt;/strong&gt;The secret police, who monitor for &amp;#34;thoughtcrime&amp;#34;, are one of the most terrifying presentations of total power in &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;. Citizens have no private space, not even inside their own minds.&lt;/p&gt;

&lt;p&gt;While the technology for this ultimate intrusion does not yet exist, extensive behavioral analysis from reams of data trails, metadata, and social graph mapping can sometimes reveal more about an individual’s beliefs and behavior than they themselves know. You don&amp;#39;t need to speak out; your purchase history, location data, and search queries reveal your &amp;#34;deviance.&amp;#34;\
\
In cities like Xinjiang, algorithms analyze data (ethnicity, travel patterns, internet usage, purchasing habits) to flag individuals as &amp;#34;potential terrorists&amp;#34; or &amp;#34;separatists&amp;#34; before any crime is committed. Those flagged face intense surveillance, mandatory re-education, or detention.&lt;/p&gt;

&lt;p&gt;Risk assessment tools such as Correctional Offender Management Profiling for Alternative Sanctions (COMPAS) and Public Safety Assessment (PSA) are used in US courts to determine bail, sentencing, and parole. These algorithms assign a &amp;#34;risk score&amp;#34; predicting the likelihood of re-offending. A high score can lead to pre-trial detention (jail before trial) or longer sentences, effectively punishing the probability of future crime.&lt;/p&gt;

&lt;p&gt;Police are dispatched to specific locations or to monitor specific individuals identified by the algorithm as &amp;#34;likely offenders.&amp;#34; This creates a self-fulfilling prophecy where increased police presence leads to more arrests in those areas, reinforcing the data.\
\
In 2023, the Metropolitan Police (UK) established a specific unit focused on &amp;#34;pre-emptive&amp;#34; action against individuals deemed at risk of radicalization or serious violence. They use data to intervene before an attack occurs.&lt;/p&gt;

&lt;p&gt;Thought crime and ‘malicious’ intention are already being treated as illegal.\
&lt;strong&gt;\
Informants vs Cancel Culture&amp;amp;#xA;&lt;/strong&gt;Informants in totalitarian states are those who see irrefutable evidence of wrongdoing against the State. Neighbors, colleagues, and even family members are incentivized or compelled to report ‘undesirable’ behavior.&lt;/p&gt;

&lt;p&gt;In the Western world, our governments offer no incentives to flag undesirable behavior, yet we still see it. This phenomenon is the social currency of virtue signaling. Behavior that is considered undesirable but not illegal can still be severely punished through the loss of reputation. Publish an extreme opinion online, or say the wrong thing while being recorded, and you could find yourself out of a job, or being shunned by your nearest and dearest. Sometimes, this ‘societal moderation’ is warranted. It ensures that when no law has been broken, people are still held to account for their actions. But the incentives are skewed. Social media has led to such polarity that users gain a huge amount of praise, reputation, and social standing for calling out perceived wrongdoing. This means that comments on current events turn into a pile-on, and allegations can morph into accepted truths. With enough people thinking the worst without examining what was said or done, people can be ‘cancelled’ without justification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Facecrime vs Facial Recognition&amp;amp;#xA;&lt;/strong&gt;In &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;, Big Brother monitors citizens’ facial expressions for signs of dissent. While a frown during a political rally might not get you arrested yet, facial recognition is coming to a city near you. Storing biological data (e.g., fingerprints) is already normalized in many countries, and facial recognition is just the next step.\
\
The Safe City initiative in Moscow involves thousands of cameras with facial recognition and license plate readers. The system is used to identify individuals who attended protests or are associated with opposition groups. These individuals are then flagged for &amp;#34;preventative&amp;#34; visits by police or administrative harassment.&lt;/p&gt;

&lt;p&gt;Soon, algorithms will be able to analyze movement patterns to detect &amp;#34;suspicious behavior&amp;#34; (e.g., lingering in certain areas), leading to police intervention before any illegal act is observed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vaporization vs Permanent Digital Footprint&amp;amp;#xA;&lt;/strong&gt;Orwell imagined a world where all records of a human life could be wiped out instantly by the State. With total control over paper records, a government can do this, but in the digital world, it’s impossible to know if you hold all the copies of a file. In 2026, vaporization is impossible.&lt;/p&gt;

&lt;p&gt;On the one hand, this preserves difficult truths that reflect badly on the powers that be. For example, did you know that Jeffrey Epstein didn’t kill himself?\
\
On the other hand, permanent records and infinite reproducibility mean that anything published by or about private citizens remains forever. For some people, this can be as bad as not existing at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Newspeak vs AI Filters and Deplatforming&lt;/strong&gt;\
Limiting the building blocks of communication controls not only what is said, but what is thought. The controlled destruction of language is one of the most visceral presentations of control in &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;The whole aim of Newspeak is to narrow the range of thought... In the end, we shall make thoughtcrime literally impossible, because there will be no words in which to express it.&amp;#34;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the digitized 21st century, Newspeak is impossible to enforce. While the richness of language is waning with thousands of languages dying out, we can still use creative approaches (misspellings, imagery, emojis) to skirt around the AI filters and blacklisted words that seek to throttle our voice or deplatform us.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Ministry of Truth vs Post Truth&lt;/strong&gt;\
In Winston Smith’s Oceania, past records are rewritten to match the current Party narrative. History is entirely malleable.&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;Who controls the past controls the future: who controls the present controls the past.&amp;#34;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With the onset of infinite digital publishing, we face a cacophony of conflicting narratives in our ‘post-truth’ world. Humans, not capable of parsing and processing the quantity of data that machines can, abdicate responsibility for present narratives to internet algorithms. As computers serve us more of whatever ‘truth’ we pay attention to, our beliefs become ossified, and our ability to think critically evaporates. Algorithms curate our reality to confirm our existing biases. We don&amp;#39;t necessarily believe &amp;#34;2&#43;2=5&amp;#34;; we just stop seeing evidence that contradicts our worldview. And as for the past, we shirk responsibility to fact-check that too. Until the right incentives for honest and open keeping of public records are found, we will struggle to verify and preserve our past. Our messy, unfiltered version of The Ministry of Truth makes history just as malleable as in &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Room 101 vs Echo Chambers&lt;/strong&gt;\
Room 101 is a personalized torture chamber. The culmination of Winston Smith’s time at the Ministry of Love sees him endure the ultimate psychological pressure until he can endure it no more.&lt;/p&gt;

&lt;p&gt;In our world, we also exist within the walls of our own hyper-personalized reality constructions. Due to social media algorithms, polarized media, and the degradation of rational debate in favor of monetized outrage, echo chambers abound. Instead of all our worst fears and enemies being locked into a room with us, we keep them outside. Yet, this traps us, keeps us in a state of constant weakness and fear. The fears you cannot face win by continuing to threaten.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Social Isolation vs Oversharing and Real-World Loneliness;&lt;/strong&gt;Preventing private relationships that could harbor dissent was a key tactic used by the authoritarian government of Oceania to control the population. Winston Smith cuts a lonely figure as he desperately searches for a partner, but unsanctioned relationships are outlawed, and he must turn on Julia, the woman he loves. After his brutal torture, he professes love for Big Brother and feels nothing for Julia when they meet again.\
\
Cut to Earth, 2026. Many of us share our carefully curated realities with all of our contacts. Photos of dinner out, status updates about parties, and celebrations of every ‘little’ moment drive dopamine hits and perceived value on social media. We are encouraged to share everything, turning our lives into data points. Yet these presentations exclude the fact that, in the West, we have more single people than ever before, a plummeting birth rate, social anxiety among our youth, and a loneliness epidemic among our elderly. Connection via our online avatars means that we are never truly alone, but our relationships have been commodified. Our intimacy is sold to the highest bidder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two Minutes Hate vs 60-second Vertical Video;&lt;/strong&gt;The daily ritual of screaming obscenities at Emmanuel Goldstein (the supposed leader of the Brotherhood and enemy of the people) serves several purposes: Channeling citizens’ emotions toward a designated scapegoat, unifying through negative emotions, social conditioning, and surveillance (the broadcast screens are two-way TVs).\
Our growing addiction to 60-second ‘reels’ hijacks our biological triggers to offer ‘entertainment’ with no control or choice. Suspense, outrage, and shock are heavily used to game the algorithm and deliver economic benefit to producers. The endless scroll is not mandated by the government; it doesn’t need to be. We are united in ambivalence, distracted from our real enemies, conditioned to comply, and surveilled through our viewing habits. With such shattered attention spans, we have no ability to rebel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Party Loyalty Tests vs Terms and Conditions&lt;/strong&gt;\
In Orwell’s totalitarian vision, regular demonstrations of allegiance are required. In our world, we must pledge blind allegiance to Big Tech. We must accept T&amp;amp;Cs to continue or face being ostracized as a non-user of their incompatible walled platforms.&lt;/p&gt;

&lt;p&gt;Party loyalty tests can be changed; so can privacy policies. Party loyalty tests can go on for as long as necessary to guarantee compliance; 68-page T&amp;amp;Cs are impossible to read because we are unable to spend enough time understanding them.&lt;/p&gt;

&lt;p&gt;And if you think Terms &amp;amp; Conditions are truly optional, just wait until you are forced into Digital ID schemes, universal basic income payments, or CBDCs (central bank digital currencies). Pledge your allegiance or starve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Psychological Profiling vs Big Data&lt;/strong&gt;\
In Nineteen Eighty-Four, citizens’ behavioral and movement patterns are tracked. If there is any deviation, they incur penalties or adverse consequences.&lt;/p&gt;

&lt;p&gt;We suffer this every day. Our data from purchases, transport, websites, email, and chat is all fed into big data models. The consequence? Intrusive advertising and constant commercial targeting. Improved privacy fixes this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-Surveillance&lt;/strong&gt; &lt;strong&gt;vs Self-Censorship;&lt;/strong&gt;Finally, the citizens of Oceania have been trained to monitor their own thoughts and correct them before acting. This is the ultimate form of control, allowing the State to reduce actual surveillance costs. It’s similar to the baby elephant that is chained to a stake in the ground, restricting its movement. After a time, the elephant is big enough to pull up the stake and escape, but it has self-corrected that thought after several failed attempts. Eventually, the chain is removed, and the elephant remains in place, trapped within invisible parameters.&lt;/p&gt;

&lt;p&gt;All of our failed attempts to exercise our freedoms have led us to self-correct our thoughts in the same way as Winston Smith’s peers did. We are the baby elephants, now fully grown but unable to travel more than a few feet from the stake in the ground.&lt;/p&gt;

&lt;p&gt;We live in fear of the powers that be seeing our digital records. We self-censor to avoid real censorship and punishment.&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;So do we live in a dark dystopia? Is our world worse than Nineteen Eighty-Four?&lt;/p&gt;

&lt;p&gt;Not exactly. We have certainly lost many of the freedoms George Orwell and people of his generation took for granted. But our subjugation comes at the hands of multinational corporations rather than totalitarian governments.&lt;/p&gt;

&lt;p&gt;This article compares 1984 and 2026 simply to highlight the freedoms we have lost. There are many other ways to frame our truth.&lt;/p&gt;

&lt;p&gt;The important thing is that we maintain the ability to distinguish narrative from fact, and the ability to pay attention to the most relevant stories. That way, we avoid a totalitarian truth that ends in the same way as the book did.&lt;/p&gt;

&lt;h1 id=&#34;will-we-suffer-the-same-fate-as-winston-smith-2&#34;&gt;Will We Suffer the Same Fate as Winston Smith?&lt;/h1&gt;

&lt;p&gt;In the novel&amp;#39;s closing moments, Winston sits alone in the Chestnut Tree Café, drinking gin. He hears news of a military victory for Oceania, and for the first time, feels genuine emotion—not anger or fear, but love:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&amp;#34;He had won the victory over himself. He loved Big Brother.&amp;#34;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Winston survives physically, but his humanity has been erased. His captor explains they shall meet “&lt;em&gt;in the place where there is no darkness,&amp;#34; &lt;/em&gt;meaning the Party will come to control every space he inhabits, even his mind.&lt;/p&gt;

&lt;p&gt;The one thing that Winston lacked was the tool to maintain the sovereignty of his private thoughts. We have the tools to protect ourselves from Big Brother and Big Tech. If we don’t use them, we will survive, but our humanity won’t.&lt;/p&gt;

&lt;p&gt;One place impossible for Big Brother and Big Tech to invade is White Noise. You control exactly who has access and what happens there. With this protocol in place, you can maintain sovereignty over your identity, your communication, your data, and your thoughts.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Freedom is the ability to say that two plus two make four. If that is encrypted and shared, all else follows.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;Article by: @totallyhumanwriter&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;&lt;em&gt;Philip Charter&lt;/em&gt;&lt;/a&gt; is a totally human author, editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the dystopian British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-16T06:51:50Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsph5jx4avx09e45ff6ldrw34220v7ajch7ql6x0nplerw2kw5gp0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzdmwph</id>
    
      <title type="html">The new release is here and you can read more about it. Or you ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsph5jx4avx09e45ff6ldrw34220v7ajch7ql6x0nplerw2kw5gp0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzdmwph" />
    <content type="html">
      The new release is here and you can read more about it. Or you can just download the app and try it out for yourself 👇&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://primal.net/whitenoise/white-noise-next-release&#34;&gt;https://primal.net/whitenoise/white-noise-next-release&lt;/a&gt;
    </content>
    <updated>2026-05-08T09:35:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsy0vdsw9h6q6dg3nnj8apqgg2w003mnjgh4l9dwt5vzztff2r49hszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4nzx3</id>
    
      <title type="html">As an open-source, decentralized chat client, White Noise faces a ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsy0vdsw9h6q6dg3nnj8apqgg2w003mnjgh4l9dwt5vzztff2r49hszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4nzx3" />
    <content type="html">
      As an open-source, decentralized chat client, White Noise faces a lot of tough questions on moderation.&lt;br/&gt;&lt;br/&gt;Won’t anonymous chat help criminals communicate?&lt;br/&gt;How can you guarantee the safety of users?&lt;br/&gt;What about children? Who will protect them?&lt;br/&gt;&lt;br/&gt;This article explains why centralized moderation fails every time, and how White Noise plans to approach the topic.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqp2vmn0fsh55nrxfzxzk3525e5g566fs6j6aqfkjf4s&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…jf4s&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;citizens-must-act-in-the-interests-of-their-own-safety-2&#34;&gt;Citizens Must Act in the Interests of Their Own Safety&lt;/h2&gt;

&lt;p&gt;Apple is responsible.\
Facebook is responsible.\
Mark Zuckerberg is responsible.\
Telegram and Pavel Durov are responsible.&lt;/p&gt;

&lt;p&gt;So say governments the world over, as they increasingly push the burden of content moderation onto centralized platforms and even their founders. CEOs are hauled in front of judicial committees or even imprisoned. Companies are threatened with excommunication by app stores or, worse, blocked by national governments.&lt;/p&gt;

&lt;p&gt;As tech companies comply, they burden themselves with an impossible task. And they open the door for more stringent controls, which punish the vast majority of users by throttling their privacy. Bad actors, on the other hand, will always find another way to communicate.&lt;/p&gt;

&lt;p&gt;As an open-source, decentralized chat client, White Noise faces a lot of tough questions on moderation: Won’t anonymous chat help criminals communicate? How can you guarantee the safety of users? What about children? Who will protect them?&lt;/p&gt;

&lt;p&gt;Our position is this: Encrypted decentralized chat is neutral technology. Just as anyone can communicate in the physical world without restriction, so can anonymous users online. In any ecosystem, users themselves will develop methods and practices to discourage and report harmful content. Only users themselves can judge the value or harm of communications.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;the-flawed-politics-of-top-down-moderation-2&#34;&gt;The Flawed Politics of Top-Down Moderation&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/b62ca565e43a2ab3a940930d76beed3cbef4b326fe9d6e7dbc3d5e735fe9a8d5.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Below is a concise overview of the most widely used social platforms that include an E2EE (end-to-end encrypted) chat / direct‑messaging feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp&lt;/strong&gt;: Moderation relies on user reports (spam, harassment, illegal content). Because the provider cannot read message bodies, it can only act on metadata (e.g., number of reports, abusive account behavior) and may suspend or ban offending accounts.\
\
&lt;strong&gt;Signal:&lt;/strong&gt; Strictly user‑report driven. Signal can block or delete accounts that violate its terms, but it cannot inspect message content. It also uses rate‑limiting and phone‑number verification to curb spam.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telegram (partially E2EE):&lt;/strong&gt; Automated AI‑based scanning of non‑secret chats for spam, phishing, extremist content, plus user reports. Secret chats are exempt from server‑side scanning; moderation of those relies entirely on user reports and account bans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Facebook Messenger (optional encryption):&lt;/strong&gt; A combination of AI content detection, human review, and user reports. Even for secret conversations, Facebook can act on metadata (e.g., repeated abuse flags) and may disable the account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Viber:&lt;/strong&gt; User‑report system; Viber can suspend accounts that repeatedly receive abuse reports. Since content is unreadable, moderation is limited to metadata and account actions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iMessage (Apple):&lt;/strong&gt; On‑device machine learning detects spam/phishing and offers “Report Junk”. Apple can act on metadata and user reports; it does not have server‑side access to message content.&lt;/p&gt;

&lt;h2 id=&#34;why-the-moderation-approaches-differ-2&#34;&gt;Why the moderation approaches differ&lt;/h2&gt;

&lt;p&gt;Approaches often differ due to differences in functionality or jurisdiction. They also vary due to these factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technical limitation&lt;/strong&gt; — When a platform offers true E2EE, it cannot scan message bodies, so it must rely on metadata analysis (frequency of reports, account‑creation patterns) and user‑initiated reports.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regulatory pressure&lt;/strong&gt; — Services operating globally (especially in the EU, US, or China) face legal obligations to remove illegal content (e.g., child sexual abuse material, extremist propaganda). Non‑E2EE platforms can comply by scanning content automatically; E2EE platforms must balance privacy with lawful‑access requests, often by providing account‑level takedowns.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product design goals&lt;/strong&gt; — Consumer‑messaging apps prioritize privacy (Signal, WhatsApp, iMessage), whereas social‑networking or community platforms (Discord, Reddit, Facebook) prioritize community health and therefore invest heavily in AI‑driven moderation pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even if the same laws applied to all chat clients, forcing them to moderate certain content before it was viewed by users, calls to moderate further would still likely increase. Offense is subjective, and users will still feel the urge to report and ban content they do not like. Essentially, we want to be the ones in control of our own conversations.&lt;/p&gt;

&lt;p&gt;AI content moderation falters because models can’t reliably understand nuance—sarcasm, cultural references, or author intent, leading to false positives and negatives. Their training data often contains biases and is heavily English‑centric, so minority languages and regional contexts receive poorer coverage. Bad actors exploit these gaps with evasive tricks (misspellings, emojis, image‑embedded text), while the systems’ need for real‑time speed forces them to use simpler heuristics that miss subtle abuse. Moreover, the black‑box nature of many models makes decisions opaque, hindering appeals and accountability, and the rapid evolution of societal norms outpaces static training sets, requiring constant human oversight and costly retraining.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Typically, [moderation] is performed by the corporation owning the network in conjunction with the government where the company exists. These two parties have all the power over who gets to speak and who doesn’t. The rules are often unclear, unequally enforced, and there is little or no transparency or recourse for injustice.” Matt Lorentz, Nos.social.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And even if content moderation can be outsourced to humans, there are huge economic and psychological costs to pay. Court filings from December 2024 showed &lt;a href=&#34;https://www.theguardian.com/technology/2024/dec/04/more-than-140-kenya-facebook-moderators-diagnosed-with-severe-ptsd&#34;&gt;144 Facebook moderators diagnosed with PTSD, anxiety, and depression.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Further, binary definitions of what is and is not acceptable online are flawed in two ways. Categorizing language and media is never 100% objective, and with the added layer of AI-generated video, audio, text, and image, deciphering content categories at scale will not be possible, either through automated or analog means.&lt;/p&gt;

&lt;p&gt;The second flaw is that when the onus for moderation lies with the platform owners (who don’t want to get sued), tech companies are coerced into verifying ages and identities. Restricting access to one platform does not change the behavior or intentions of malicious accounts.&lt;/p&gt;

&lt;p&gt;Despite the calls to “end the veil of anonymity” online made by the Spanish Prime Minister last year, our right to privacy is not an acceptable trade for increased protection against harmful content.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“You have created a world where only the neutered are safe and where only outlaws are free… We expect crime and disagreements and ugliness, and we are prepared to deal with them.” &lt;/em&gt;&lt;a href=&#34;https://nostr.eu/nevent1qqs8sql9dy23y5cyg860nc76vltn24pcqtn27pkd45dyrn9e72srfqcpp4mhxue69uhkummn9ekx7mqpramhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjszrmhwden5te0dehhxarj9ekk7mgzyzm7669svt0xkjsju50a22zurc0qa589z2xd4yatzx6p2z64a5e0ce5e3gx&#34;&gt;&lt;em&gt;The Declaration of Separation, anonymous author&lt;/em&gt;&lt;/a&gt;**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No amount of centralized control will keep citizens safe online; top-down moderation will only decrease the freedoms of the majority who act within the bounds of decency.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;how-decentralized-moderation-works-2&#34;&gt;How Decentralized Moderation Works&lt;/h2&gt;

&lt;p&gt;You cannot control what you see or hear on the street, but you can control how you react. Think about those who swear or use racist language in front of children, or even perverts who expose themselves to others in public. These acts can be alarming, but one blanket approach does not solve both issues. Not all sentiment can be banned. The swearing may be ignored or discouraged. The racist language may provide an opportunity for a parent to talk to their child. The illegal act of indecent exposure is likely to be reported to the authorities.&lt;/p&gt;

&lt;p&gt;However, if all children (or adults, for that matter) had to wear helmets that filtered interactions and only permitted identified, trusted people to interact, we can easily see this as an unacceptable reduction of freedom.&lt;/p&gt;

&lt;p&gt;With other decentralized networks (for example, Bitcoin), maintainers and gatekeepers are incentivized by the value that stability and quality afford. And as adoption widens, use cases move from fringe operators to institutions, legitimizing the technology.&lt;/p&gt;

&lt;p&gt;Still, moderating language can prove problematic. NIP‑68 (picture‑first feeds) and NIP‑69 (peer‑to‑peer order events) proposed vocabulary for content warnings and reporting on Nostr in 2023. During the review process, several contributors expressed strong opposition to merging them, arguing that they would force a strict vocab‑code scheme on all Nostr users and could fragment the ecosystem. Ultimately, the pull request was not merged, and the proposals remain unaccepted. Subsequent work introduced NIP‑32, which adopts parts of the labeling approach originally intended for NIP‑69.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/7e39fd18595b6bd9128e51cab4c5c3f9033a8b1f561d064000b2c78020de24a6.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Decentralized moderation works through users developing their own reporting practices and filters. Primal, for example, launched a content filtering mechanism where users can mute, block, and report content to create their own personalized user experience.&lt;/p&gt;

&lt;p&gt;“The final word on content moderation should belong to the user. Public mute lists and open source filtering algorithms are great moderation building blocks on an open network like Nostr. We built the capability to subscribe to other users’ mute lists, as well as opt in and out of filtering algos in a granular fashion.” Miljan Braticevic, Founder of Primal.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;10 reasons why White Noise users will be motivated to block harmful content.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Guard the people you know&lt;/strong&gt; — When a friend or a contact in your trust circle is targeted, you’ll want to stop the abuse before it harms them.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preserve the credibility of your network&lt;/strong&gt; — A reputation for safe, civil conversation keeps the people you’ve invited (family, coworkers, activist groups) willing to stay and invite others.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Honor mutual responsibility&lt;/strong&gt; — In a web‑of‑trust model, each participant implicitly promises to look out for the others; reporting is the practical way to keep that promise.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prevent collateral damage to contacts&lt;/strong&gt; — Spam, scams, or extremist propaganda can affect users you know, exposing them to fraud or legal risk.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maintain usable signal‑to‑noise for your circles&lt;/strong&gt; — Trusted groups rely on clear, relevant messages; removing noise makes the chat useful for everyone in the network.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid being blamed for “hosting” illegal material&lt;/strong&gt;— Even in a decentralized system, authorities may trace a relay that repeatedly distributes illicit content; reporting helps keep your relay, and the contacts that route through it, safe.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Strengthen the web‑of‑trust itself&lt;/strong&gt; — Every successful report reinforces the idea that the network self‑polices, encouraging more users to join and link their contacts.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute to shared tooling&lt;/strong&gt;— Reports feed open‑source moderation filters that the whole community (including your contacts) benefits from, improving safety for all.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduce personal exposure to trauma&lt;/strong&gt; — By flagging harmful posts early, you spare yourself and close contacts from repeatedly encountering disturbing material.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Demonstrate stewardship of the community’s values&lt;/strong&gt; — Acting on abuse signals to your peers that you take the collective standards seriously, reinforcing the social contract that binds the network together.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each report is a tiny vote on what the community deems “valuable” versus “harmful.” Because the votes come from people who already trust one another (friends, colleagues, allies), they carry extra weight and are instantly visible to the same circles. Over time, these votes coalesce into an informal, yet enforceable, social contract:&lt;/p&gt;

&lt;h2 id=&#34;conclusion-2&#34;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The moderation of Big Tech platforms with millions of users is an impossible task. Not only that, it leads only in the direction of more restrictions, tighter control, and less privacy. The only surefire way individuals can remain both in charge and safe is to manage their own experience. All users ultimately act in their own interests and have a vested interest in moderating their own feeds and chats.&lt;/p&gt;

&lt;p&gt;Resilient communities build ways to protect themselves and ensure that bad actors are deterred. At White Noise, we encourage this and will continue to work with our community to promote moderation, reporting, and self-management of the content users see. For now, the desire to curate your own experience prompts users to act, but in the future, other methods and value incentives may emerge.&lt;/p&gt;

&lt;p&gt;With decentralized infrastructure, we take control of moderation, avoiding the pitfalls of major platforms and the anti-privacy measures that restrict our agency.&lt;/p&gt;

&lt;p&gt;How we act and who we associate with is up to us.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-06T07:52:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsvwg720yngy6m3s7n8tlrahe88qyjuye4g6x0f96cencmunyhqy3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6xl0y6</id>
    
      <title type="html">Follow @npub1mar…r6m9 and join today’s community call if ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsvwg720yngy6m3s7n8tlrahe88qyjuye4g6x0f96cencmunyhqy3qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6xl0y6" />
    <content type="html">
      Follow &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1marm0t9qkmv8lq7pe7vdx60ed8fl2d876a2ytk3ade208dlyfweqg5r6m9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;marmotprotocol&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1mar…r6m9&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and join today’s community call if you’re interested about the future of private messaging. &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsz6cypjw6azae7xfhc3v7cu3y33thcdzqavvkvsarsyueld24ezhs59pdaz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…pdaz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; MARMOT COMMUNITY CALL today at 16:00 UTC&lt;br/&gt;&lt;br/&gt;We&#39;ll discuss:&lt;br/&gt;&lt;br/&gt;- This month&#39;s key progress, including Marmot&#39;s new home (this😃)&lt;br/&gt;- The current state of the &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqs8t4ehcdrjgugzn3zgw6enp53gg2y2gfmekkg69m2d4gwxcpl04acpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcppemhxue69uhkummn9ekx7mp0w3radp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;White Noise&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…radp&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; app&lt;br/&gt;- Future plans for the protocol&lt;br/&gt;- Q&amp;A&lt;br/&gt;&lt;br/&gt;🗓 Tuesday, May 5, 16:00 UTC &lt;br/&gt;&lt;br/&gt;✅ Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/b3b83dd5bf43d6615399f78f8635c3988a93e38895cec099fab2b7f7ab554097.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-05-05T07:18:31Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrtx7784pnqs4er75g9vvcf2vnxap5aukx3y7vq4rer0cfehl7atczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wckg7lz</id>
    
      <title type="html">👋 Marmot is leaving the nest. We launched a foundation, and 4 ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrtx7784pnqs4er75g9vvcf2vnxap5aukx3y7vq4rer0cfehl7atczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wckg7lz" />
    <content type="html">
      👋 Marmot is leaving the nest. We launched a foundation, and 4 interoperable clients on the same wire format. This and more in this month&amp;#39;s recap:&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqp2cjw2faygutvdpuk25t88pmysd3n236kj7gksy4qz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…y4qz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;a-new-home-2&#34;&gt;&lt;strong&gt;A new home&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;The April recap is the last one posted from the White Noise profile. Starting now, Marmot has its own Nostr identity. Future recaps and protocol news will come from there.&lt;/p&gt;

&lt;p&gt;White Noise and Marmot have always been related but distinct: one is an app, the other is a protocol with a growing set of independent clients. Giving Marmot its own voice makes that distinction clearer and gives the protocol a place to speak for itself.&lt;/p&gt;

&lt;p&gt;Follow the new Marmot profile if you want to stay current with the protocol side of the work.&lt;/p&gt;

&lt;p&gt;Marmot on Nostr: npub1marm0t9qkmv8lq7pe7vdx60ed8fl2d876a2ytk3ade208dlyfweqg5r6m9&lt;/p&gt;

&lt;p&gt;Marmot on X: &amp;lt;&lt;a href=&#34;https://x.com/MarmotProtocol&#34;&gt;https://x.com/MarmotProtocol&lt;/a&gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/fc533a816faa50c5ea3a962bf29c770c9b805f9dcf8ce0e7cf50c4662cfe9bd7.jpg&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;April was an institutional month. The Internet Privacy Foundation announced its launch with a party at Bitcoin Vegas, the Marmot team shipped disappearing messages and addressable key packages at the spec layer, Amethyst folded a pure-Kotlin Marmot stack into its Android client, and openChat pushed 67 point releases while marching through cross-client interop. White Noise work stayed heavy on the Rust core in preparation for the next mobile release.&lt;/p&gt;

&lt;h2 id=&#34;the-internet-privacy-foundation-2&#34;&gt;The Internet Privacy Foundation&lt;/h2&gt;

&lt;p&gt;Internet Privacy Foundation (IPF) is a new 501(c)(3) that will serve as the long-term home and benefactor for White Noise, the Marmot Protocol, and the broader stack of tools the team works on. Its mission is to expand human agency in the digital world, and it funds that work in two ways: building privacy-preserving infrastructure directly, and funding independent builders doing the same work on non-extractive terms.&lt;/p&gt;

&lt;p&gt;The site is live at ipf.dev , donations accept Bitcoin through BTCPay and fiat through Stripe, and the TypeScript SDK now publishes under the @internet-privacy npm scope. IPF launched publicly at Bitcoin Vegas with a meet-and-greet party for supporters, builders, and the broader Bitcoin and Nostr community.&lt;/p&gt;

&lt;p&gt;Privacy is the ground freedom stands on. The work is to build parallel systems so good that people choose to move into them. IPF exists to carry that work for the long term.&lt;/p&gt;

&lt;p&gt;IPF on Nostr: npub1ntrntprvc8qyv4q7drnqj5l79x5rlv7jdt0zuuz5asjhg2fncl6qxt48ff&lt;/p&gt;

&lt;p&gt;IPF on X: &amp;lt;&lt;a href=&#34;https://x.com/ipf_privacy&#34;&gt;https://x.com/ipf_privacy&lt;/a&gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/6ccf72f97250706036db2f682c888a2e1f4d9e33da8e5a83e4297a0a28c39c8f.jpg&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;h2 id=&#34;protocol-and-sdk-2&#34;&gt;Protocol and SDK&lt;/h2&gt;

&lt;p&gt;Three spec changes will reach users in the next round of Marmot releases.&lt;/p&gt;

&lt;p&gt;Groups now carry a retention secret. MIP-01 and MIP-03 added disappearing messages and bumped the group-context extension to version 3, so a group admin can set a message lifetime and every client expires messages on its own. The retention rule lives with the group, enforced by the protocol.&lt;/p&gt;

&lt;p&gt;Push notification tokens grew. MIP-05 expanded the encrypted token from 280 to 1084 bytes, mostly to make room for UnifiedPush distributor endpoints. Those endpoints are long URLs, often over 280 bytes on their own, so the old token size forced Marmot pushes through APNs and FCM only. With the larger token, Android users on Google-free devices can receive Marmot pushes through whichever UnifiedPush distributor they run. iOS stays on APNs, where Apple requires it.&lt;/p&gt;

&lt;p&gt;Departing a group got cleaner. Now any member can commit SelfRemove proposals so members can leave without waiting for an admin to come online. Admins now have to hand off their role before using SelfRemove, closing the last edge case where a group could lose its only admin by accident. A small fix to the MIP-03 minimum encrypted-content length and a thumbhash compatibility note for IMETA tags rounded out the spec work.&lt;/p&gt;

&lt;p&gt;MDK got a path to upgrades. When a client creates a group, it now picks the feature set that everyone being invited can support, so a member on an older client still gets a clean invite. Members announce what they support on every update, and admins can raise the group’s required feature set once everyone has caught up. The upgrade path for the new group extension is in draft and lands alongside disappearing messages in clients.&lt;/p&gt;

&lt;p&gt;The TypeScript SDK shipped @internet-privacy/marmot-ts\@0.5.0 on April 22 with addressable key packages, so web clients stop relying on NIP-09 deletions to rotate their keys.&lt;/p&gt;

&lt;h2 id=&#34;white-noise-2&#34;&gt;White Noise&lt;/h2&gt;

&lt;p&gt;April was a refactor month. The team made a deliberate choice to slow down on new features and fix the foundations, the kind of work that users don&amp;#39;t see directly but feel in everything that follows. A more stable release is coming out the other side, and the codebase is now set up to move faster on top of.&lt;/p&gt;

&lt;p&gt;The biggest structural project was inside whitenoise-rs, the Rust library that powers the app. It was originally built for one thing: back the Flutter mobile app. Over time it grew to also power a CLI, a daemon, a TUI, and bot platforms like Botburrow. The problem was that all of those shared a single global state object, which made testing painful and made it harder to add new surfaces without things bleeding into each other. April&amp;#39;s refactor broke that apart: there&amp;#39;s now a shared database for process-wide state (keychains, settings) and a per-account database for user-specific state (messages, groups). The CLI was also pulled into its own standalone package. Phases 16, 18, and 19 of this work landed in April; the last singleton is on its way out in Phase 16b.&lt;/p&gt;

&lt;p&gt;Unglamorous work. It&amp;#39;s what makes a private messenger trustworthy over time: code that can be verified, tested, and extended without cutting corners.&lt;/p&gt;

&lt;p&gt;Database encryption moved forward too. The master key has lived in the platform keychain for a while. What remained plaintext on disk was the SQLite database holding messages, group state, and cached metadata. The open PR adds SQLCipher encryption with a one-time migration that converts existing databases without data loss. It&amp;#39;s slated to land with the next release.&lt;/p&gt;

&lt;p&gt;On Android, the foreground service now restarts automatically on boot, so the app reconnects without the user having to open it first. The notification icon was also fixed for GrapheneOS, a small fix that matters to the people who care most about what White Noise is for.&lt;/p&gt;

&lt;p&gt;The app shipped real features too. Video attachments work end to end. Search by message content is live across the chat list. The offline notice now appears on every screen, including auth flows and settings, so there&amp;#39;s never a moment where the app is silently disconnected without telling you. Block and unblock landed for contacts, with the full UI. Leave group is wired on the backend; the UI follows in the next release.&lt;/p&gt;

&lt;p&gt;The key package cleanup is worth noting separately. Now that replaceable key packages exist in the protocol, the app identifies legacy packages, surfaces the distinction to users, and deletes the old ones cleanly. Stale state from earlier versions clears out as clients upgrade.&lt;/p&gt;

&lt;p&gt;The contact action labels were renamed to Follow and Unfollow across all locales, making the relationship model clearer. Chat list filter UX was improved. Multiple screens were brought in line with the Figma designs, covering the chat list, group views, and several detail screens.&lt;/p&gt;

&lt;p&gt;Fastlane release scaffolding also landed, which automates the steps between a finished build and a published release. Less manual work, fewer mistakes.&lt;/p&gt;

&lt;p&gt;The month had the shape of a team paying down debt before the next push. The release is close.&lt;/p&gt;

&lt;h2 id=&#34;amethyst-integrates-marmot-2&#34;&gt;Amethyst integrates Marmot&lt;/h2&gt;

&lt;p&gt;Amethyst, the most active Android Nostr client, wrote a pure-Kotlin implementation of MLS and Marmot in April and folded it into its Quartz library. Earlier Kotlin integrations leaned on native C or Rust bindings, which ruled out Kotlin Multiplatform targets like iOS. Quartz runs the protocol on its own now.&lt;/p&gt;

&lt;p&gt;Most of the month went into cross-client compliance. Amethyst&amp;#39;s internal MDK matches the reference implementation byte-for-byte, key packages are advertised through relay lists so invitees can be found through the standard flow, and a new validator checks every cryptographic step against the reference test vectors. A lingering bug that caused state divergence between co-admins is fixed.&lt;/p&gt;

&lt;p&gt;Amethyst also shipped a dedicated interop tool. amy is a command-line harness driven from the Amethyst implementation that lets anyone create groups, generate KeyPackages, simulate welcomes, and validate commits against Amethyst&amp;#39;s Marmot stack from the terminal. Paired with whitenoise-cli, it gives the protocol a working way to test compliance across two independent implementations from the outside, which is how most of the cross-client bugs this month were found.&lt;/p&gt;

&lt;p&gt;Per-recipient relay routing and per-account store isolation also landed, so one Amethyst install keeps different Nostr identities cleanly separated. Multi-device (the same identity running on several devices at once) is still open across the whole Marmot side, including Amethyst.&lt;/p&gt;

&lt;h2 id=&#34;openchat-marches-through-interop-2&#34;&gt;openChat marches through interop&lt;/h2&gt;

&lt;p&gt;David Gershony&amp;#39;s openChat cut 67 releases in April, averaging more than two a day, driven by a tight loop of interop testing against White Noise. The C# client moved its KeyPackages to the new addressable event format, wrapped its commit messages so other Marmot implementations could read them, and fixed the Whitenoise interop test that kept flagging edge cases in the relay list handshake.&lt;/p&gt;

&lt;p&gt;The supporting libraries moved in lockstep. dotnet-mls, David&amp;#39;s pure C# MLS implementation, spent the month hammering out RFC 9420 compliance. Cross-implementation testing against the reference test vectors now passes end to end.&lt;/p&gt;

&lt;p&gt;The meta-story is that four clients (White Noise, openChat, Amethyst, Vector) are converging on the same wire format with independent implementations. Mixed-client groups work.&lt;/p&gt;

&lt;h2 id=&#34;vector-adds-an-ai-agent-surface-2&#34;&gt;Vector adds an AI agent surface&lt;/h2&gt;

&lt;p&gt;Vector became the first Marmot client that speaks MCP directly. The new vector-agent server exposes 21 tools for AI agents, alongside fresh APIs for direct messages, invites, and key packages, plus automatic key rotation. An agent can now create groups, send messages, manage invites, and rotate keys from its own scripting environment.&lt;/p&gt;

&lt;h2 id=&#34;botburrow-starts-shipping-2&#34;&gt;Botburrow starts shipping&lt;/h2&gt;

&lt;p&gt;Botburrow is a new project under the marmot-protocol org, started April 3. It is a self-hosted dashboard for running bots inside Marmot groups. Each bot has its own Nostr identity, joins MLS-encrypted groups through the standard Welcome flow, and sends and receives messages like any human would.&lt;/p&gt;

&lt;p&gt;The dashboard is a Rails 8.1 app that talks to a single whitenoise-rs daemon over a Unix socket. Custom Ruby scripts can inspect profiles, group membership, and pending invites. Multi-arch Docker images ship for Umbrel and Start9. Botburrow is aimed at operators who want to run bots in Marmot groups, with the bots joining as regular group members and an admin UI for wiring up their behavior.&lt;/p&gt;

&lt;h2 id=&#34;transponder-security-pass-2&#34;&gt;Transponder security pass&lt;/h2&gt;

&lt;p&gt;Transponder, the Rust MIP-05 push notification server, spent April 14 on a concentrated security pass. The server now wipes its private key from memory after use, bounds how much memory a single malicious event can consume, redacts the key from debug output, and tightens APNs token validation. Transponder relays push notifications between Nostr and APNs, FCM, and UnifiedPush, and its design keeps message content out of its hands. The security pass tightens the boundary where that property has to hold up.&lt;/p&gt;

&lt;h2 id=&#34;purser-builds-a-nostr-native-payment-daemon-on-mdk-2&#34;&gt;Purser builds a Nostr-native payment daemon on MDK&lt;/h2&gt;

&lt;p&gt;Purser is a Nostr-native payment daemon positioned as a Zaprite replacement. Strike and Square sit behind it as payment providers, and the whole merchant-to-customer conversation runs over Marmot-encrypted messaging through MDK.&lt;/p&gt;

&lt;p&gt;April landed a concentrated build-out: a catalog loader, message validation, the MDK communication layer, Strike and Square integrations, a polling engine, rate limiting, payment persistence, and the order processing pipeline (PRs #16-23). The team also swapped its mock encryption layer for the real one, so all 99 tests now run against real MDK operations and catch interop issues with other Marmot clients during development.&lt;/p&gt;

&lt;p&gt;The architectural bet is worth naming: Purser uses Marmot as the customer conversation channel itself, making it the payment rail&amp;#39;s primary surface. A customer opens a Marmot group with a merchant, discusses what they want, and pays through the same encrypted thread. Past payment stacks have treated messaging as a thin notification layer. Purser treats the conversation as the transaction surface.&lt;/p&gt;

&lt;h2 id=&#34;nymchat-ships-a-protocol-u-turn-2&#34;&gt;Nymchat ships a protocol U-turn&lt;/h2&gt;

&lt;p&gt;Nymchat had a rougher arc. The client added Marmot MLS group chats in v3.57.261 earlier this quarter, ran the feature live for a few weeks, then reverted to NIP-17 in v3.58.268 because multi-device support is still open on the Marmot side and group state was diverging across devices. Subsequent releases through v3.58.288 in late April rebuilt the NIP-17 group chat path with rotating ephemeral keys, a friend system with granular permissions, and encrypted app settings.&lt;/p&gt;

&lt;p&gt;The reversion is informative beyond Nymchat. It pins down which part of the Marmot story is load-bearing for a client with an active multi-device user base: the protocol works well for a group with one device per member, and the missing piece for clients like Nymchat is cleanly syncing the same identity across several devices. Multi-device is the work the team picks up next.&lt;/p&gt;

&lt;h2 id=&#34;tubestr-polishes-the-family-video-surface-2&#34;&gt;TubeStr polishes the family-video surface&lt;/h2&gt;

&lt;p&gt;TubeStr, introduced in the December 2025 recap as the first non-chat Marmot client, shipped v1.0.3 on April 13 and v1.0.4 on April 15 with follow-on build updates through the 17th. The month went into app polish more than protocol work.&lt;/p&gt;

&lt;p&gt;PR #3 rebuilt the onboarding screens to walk families through how the app works step by step, which is the kind of friction-reduction MDK-built apps need before they can reach the audiences they&amp;#39;re aimed at. PR #2 fixes a video export failure when a LUT filter is used on paths containing spaces. Separately, April added Spanish localization, accessibility semantics so screen readers announce tab bar labels and profile-switcher context, and a centralized design-token system for spacing and border radius that the team can roll through the rest of the UI over time.&lt;/p&gt;

&lt;h2 id=&#34;in-progress-2&#34;&gt;In Progress&lt;/h2&gt;

&lt;p&gt;Push notifications are converging. The protocol work on token size, the notification server&amp;#39;s security pass, and the iOS silent push plumbing in the Rust core all point at the same endpoint. What remains is wiring and testing across the whole delivery path, including UnifiedPush.&lt;/p&gt;

&lt;p&gt;Disappearing messages are ready everywhere except the final upgrade path in MDK, which is the last piece the client draft is waiting on.&lt;/p&gt;

&lt;p&gt;The White Noise Rust refactor is in its final phases. The core library coming out the other side is what will let Flutter, the CLI, the daemon, the TUI, and agent surfaces like Botburrow share one codebase cleanly, each keeping its own state.&lt;/p&gt;

&lt;p&gt;Multi-device support is the biggest open gap. Nymchat&amp;#39;s reversion this month underlined it. It is the work that comes next after the refactor lands.&lt;/p&gt;

&lt;h2 id=&#34;by-the-numbers-2&#34;&gt;By the Numbers&lt;/h2&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tracked repositories&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Active repositories&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Releases across all tracked projects&lt;/td&gt;
&lt;td&gt;68&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;openChat releases&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;marmot-ts releases&lt;/td&gt;
&lt;td&gt;1 (0.5.0)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;White Noise mobile releases&lt;/td&gt;
&lt;td&gt;0 (next release imminent)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Merged PRs&lt;/td&gt;
&lt;td&gt;138&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Commits&lt;/td&gt;
&lt;td&gt;479&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Marmot spec PRs merged&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;New marmot-protocol repositories&lt;/td&gt;
&lt;td&gt;1 (botburrow)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Clients speaking the wire format in anger&lt;/td&gt;
&lt;td&gt;4 (White Noise, openChat, Amethyst, Vector)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&#34;contributors-8&#34;&gt;Contributors&lt;/h2&gt;

&lt;p&gt;Thanks to everyone who contributed code, design, specs, issue reports, talks, and planning this month: justinmoon, erskingardner, dannym-arx, jgmontoya, mubarakcoded, josefinalliende, untreu2, leesalminen, sergey3bv, hzrd149, DavidGershony, JSKitty, sjmcnamara, vitorpamplona, Datawav, Nikita L., Max, and Vladimir Krstic.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Start with the Marmot Protocol spec, MDK, or White Noise. The TypeScript SDK ships as @internet-privacy/marmot-ts. The Internet Privacy Foundation sits at ipf.dev.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-05-04T12:30:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsq2frcspnuzer9j5wchsamt96ms264tjk9u5m5464k04hrg9aj92qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wa487vt</id>
    
      <title type="html">The most effective way to control what people say isn&amp;#39;t to ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsq2frcspnuzer9j5wchsamt96ms264tjk9u5m5464k04hrg9aj92qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wa487vt" />
    <content type="html">
      The most effective way to control what people say isn&amp;#39;t to silence them. It&amp;#39;s to make them wonder if someone is listening. That wondering is already enough.
    </content>
    <updated>2026-04-29T07:51:07Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsfj7sdnqdaacwjxkwl89lxyex7kg679v82zqpr62pzqa2yggvajhgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wd78cpk</id>
    
      <title type="html">Fair catch. Editorial slip on the marketing team end, not the ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsfj7sdnqdaacwjxkwl89lxyex7kg679v82zqpr62pzqa2yggvajhgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wd78cpk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqt2j5ewxkd3nlvx6pcnxxfnham6tsefdvhcw2gf3mv7a45288tg8c6vjz&#39;&gt;nevent1q…6vjz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Fair catch. Editorial slip on the marketing team end, not the devs:) Already fixed. Thanks for flagging 🙏
    </content>
    <updated>2026-04-27T16:07:10Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspkv984pzffcu3jtkvzxyepy0xk56vt58ze5jr5gc9nf6c4ejvxmczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtqn0d9</id>
    
      <title type="html">X can ban you tomorrow. Instagram can wipe 10 years of your ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspkv984pzffcu3jtkvzxyepy0xk56vt58ze5jr5gc9nf6c4ejvxmczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtqn0d9" />
    <content type="html">
      X can ban you tomorrow. Instagram can wipe 10 years of your content. YouTube decides what you see.&lt;br/&gt;&lt;br/&gt;Here on Nostr, nobody has that power. Not me. Not you. Not Elon. &lt;br/&gt;&lt;br/&gt;5 concepts to understand why 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqq2hwdj0f4mkyknjfdtk7dfcg38n24mr2c6yyne6yhl&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…6yhl&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;You know what Nostr is, and you want to get started.&lt;/p&gt;

&lt;p&gt;Before you do, it’s a good idea to grasp the five key concepts.&lt;/p&gt;

&lt;p&gt;This won’t involve lengthy explanations or homework.
But understanding the concepts behind the implementations of Nostr makes the experience better. This information will help you avoid errors and use Nostr successfully from Day 1.&lt;/p&gt;

&lt;h2 id=&#34;concept-1-public-key-2&#34;&gt;&lt;strong&gt;Concept 1: Public Key&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/9a66a356c213fcc687cebe4c85803d824b603c2ee8d4b6379d6548a7279b934b.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;A Nostr public key is like your home address. Anyone can know it and use it to send you mail, but knowing it doesn&amp;#39;t let them inside your house. Sharing your public key freely lets people find and verify you.&lt;/p&gt;

&lt;p&gt;A Nostr public key exists in two forms. Under the hood, it&amp;#39;s a long string of letters and digits. What you&amp;#39;ll actually see, copy, and share is its readable version: a code that always starts with &amp;#39;npub&amp;#39;, so you can tell at a glance what kind of key it is.&lt;/p&gt;

&lt;p&gt;Example of a Nostr public key:&lt;/p&gt;

&lt;p&gt;npub1sn0wdenkukak0d9dfczjxnapgcyz0zg4pkg4hp5ghe0yz4rfl5eqsm2gpa&lt;/p&gt;

&lt;h2 id=&#34;concept-2-private-key-2&#34;&gt;&lt;strong&gt;Concept 2: Private Key&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/092e3ec22382e95525412f3506323e8f81354a14e110f8d2152e6ab39860d027.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Your private key, by contrast, is the house key that only you hold, proving you&amp;#39;re the real owner.&lt;/p&gt;

&lt;p&gt;A Nostr private key is the one thing that proves you own the place and lets you lock or unlock every door. This master key allows you to take actions (sign messages, publish notes, send encrypted DMs, react to posts, create and edit contact lists, etc.)&lt;/p&gt;

&lt;p&gt;A Nostr private key works the same way. There&amp;#39;s a technical form, and a readable form that always starts with &amp;#39;nsec&amp;#39;. That prefix matters: it tells you instantly that you&amp;#39;re handling something secret, not a public key.&lt;/p&gt;

&lt;p&gt;Example of a Nostr private key:&lt;/p&gt;

&lt;p&gt;nsec1vl029mgpspedva04g90vltkh6fvh240zqtv9k0t9af8935ke9laqsnlfe5&lt;/p&gt;

&lt;p&gt;IMPORTANT: If someone else gets a copy of your private key, they can control your Nostr identity and take actions with it. You must guard it fiercely and never lose it. There is no ‘forgot password’ button. Storing your ‘nsec’ in a password manager is a good first step to take. Find out more about key management here.&lt;/p&gt;

&lt;h2 id=&#34;concept-3-identity-2&#34;&gt;&lt;strong&gt;Concept 3: Identity&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/61ba52a51b45f8ede0874f3609728760d73f26adcf54ac9d5f6fa2688b7ee3ab.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Nostr identities work with cryptographic key pairs (public and private).&lt;/p&gt;

&lt;p&gt;Nostr clients (apps or services) generate your identity when you instruct them to take action.&lt;/p&gt;

&lt;p&gt;If this is the first time you are creating an identity, remember to note down and store your private key.&lt;/p&gt;

&lt;p&gt;If you already have an identity, you can sign in by using your private key.
Note: it is best to use an extension or device to store your private key, rather than pasting it into apps and sites.&lt;/p&gt;

&lt;p&gt;Identities are different from accounts.&lt;/p&gt;

&lt;p&gt;Account credentials can be revoked by a service (e.g., getting banned by YouTube or X). Identities belong only to you and are interoperable with any Nostr service.&lt;/p&gt;

&lt;p&gt;There is a raft of different uses for Nostr identities in addition to social media profiles: Medical records, customer loyalty profiles, professional credentials, media subscriptions, reputational capital, event ticketing, device authorization, voting and governance, and many more uses.&lt;/p&gt;

&lt;p&gt;As the ecosystem grows and your identity gathers more valuable information, it is crucial that you (and only you) remain in full control of your data and the ability to take action across a host of clients and services.&lt;/p&gt;

&lt;h2 id=&#34;concept-4-client-2&#34;&gt;&lt;strong&gt;Concept 4: Client&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/003f54c4dc21b0278ae8c39675afe766506c57b8027e32f6d14125f395da8522.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;A Nostr client is simply an app or interface that connects to the Nostr protocol and lets you read, write, and interact with content, the same way an email client like Gmail or Outlook lets you use the email protocol.&lt;/p&gt;

&lt;p&gt;The client doesn&amp;#39;t own your data or identity; it&amp;#39;s just a window into the network. Examples include Damus (iOS), Amethyst (Android), and Primal (web), and you can switch between any of them using the same key pair without losing anything.&lt;/p&gt;

&lt;p&gt;These clients are quite different from centralized social media platforms. The user chooses how content displays, and there&amp;#39;s no algorithm deciding what you see. Most popular Nostr clients show you a chronological feed from people you follow.&lt;/p&gt;

&lt;p&gt;There is no central control of what content is promoted, blocked, or displayed on Nostr. Nostr clients simply present an interface for you to interact with the protocol. You choose how to use it.&lt;/p&gt;

&lt;h2 id=&#34;concept-5-relays-2&#34;&gt;&lt;strong&gt;Concept 5: Relays&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&#34;https://image.nostr.build/819e829683aef8d124b217160899eaa80c725a431e6bb38fffbd9c7789f7f9d3.png&#34; alt=&#34;image&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Relays are servers that store and forward your messages. You can connect to many relays at once, and anyone can run one. If one relay goes down or censors you, your content still lives on others. This is what makes Nostr a decentralized protocol that remains highly censorship-resistant.&lt;/p&gt;

&lt;p&gt;Most clients offer default relays to users, but you can choose different relays or even run your own.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Now you have the knowledge you need to get started on Nostr&lt;/p&gt;

&lt;p&gt;There is plenty more to learn, but now you know about these 5 key concepts, you’ll have a smoother onboarding process and will be able to use Nostr successfully from Day 1.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-04-27T15:33:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs2gcddpj32f97uk4akxv7720jkc08x8qfsys30cq88gmuflze8j6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wylf4x2</id>
    
      <title type="html">You build an app. Then you realize someone, somewhere, could used ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs2gcddpj32f97uk4akxv7720jkc08x8qfsys30cq88gmuflze8j6gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wylf4x2" />
    <content type="html">
      You build an app. Then you realize someone, somewhere, could used it to change their life. That never gets old.&lt;br/&gt;&lt;br/&gt;Such a great chat between &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcpramhxue69uhhyetvv9ujuar0washyernd35kyetjw3ujucm0d5hsz93elc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3elc&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; and &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqsvh300dvquh50l5t9et2257pxrsk5ndsdgdcdmnnxl9nc0f6l2ejcpzamhxue69uhk2cmvd9c8xefwwp6kytmjv4kxz7gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduzv3shw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;niftynei&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3shw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 🫂&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/018f816b274123e7412537fddcaa4c1d2c8afe8bbfc4d12baa743957f4ed1e46.mp4&#34;&gt;&lt;/video&gt;
    </content>
    <updated>2026-04-23T08:58:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswu4qntgwmgsvymyk9razkl30rl8g0mxjyrhzut78s897uww0a7cqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr7grw4</id>
    
      <title type="html">A phone number isn&amp;#39;t an identity. It&amp;#39;s a billing record ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswu4qntgwmgsvymyk9razkl30rl8g0mxjyrhzut78s897uww0a7cqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr7grw4" />
    <content type="html">
      A phone number isn&amp;#39;t an identity. It&amp;#39;s a billing record with a SIM attached. Every time an app requires one to sign up, it&amp;#39;s not verifying who you are. It&amp;#39;s verifying who can be invoiced, traced, or cut off.&lt;br/&gt;&lt;br/&gt;These are not the same thing.
    </content>
    <updated>2026-04-22T16:16:33Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqst7uyn3vssesxexraqj8anqpfdhauah29w02n5jyhekvm6xmar8qczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv86jwa</id>
    
      <title type="html">The sign Nostr is winning? Users don&amp;#39;t know they&amp;#39;re using ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqst7uyn3vssesxexraqj8anqpfdhauah29w02n5jyhekvm6xmar8qczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wv86jwa" />
    <content type="html">
      The sign Nostr is winning? Users don&amp;#39;t know they&amp;#39;re using it. Think of Bitchat: clients finally stopped feeling like &amp;#34;Nostr things&amp;#34; and started feeling like actual apps. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/6dde7e9eaa6ab2ebdff6abcefdbb9df5d1fd31ffd82a8ac8d88a46ab95553c68.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-21T06:11:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstyfy0kdpcnztskatnjxfvwx8k0s528c4u9sz595zqsdz9t8tutjgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4np4dm</id>
    
      <title type="html">Things people say in private chats every day: — &amp;#34;the ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstyfy0kdpcnztskatnjxfvwx8k0s528c4u9sz595zqsdz9t8tutjgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w4np4dm" />
    <content type="html">
      Things people say in private chats every day:&lt;br/&gt;&lt;br/&gt;— &amp;#34;the presentation was bad, don&amp;#39;t tell her&amp;#34; &lt;br/&gt;— &amp;#34;I don&amp;#39;t think I can afford this month&amp;#34; &lt;br/&gt;— &amp;#34;the test came back, still waiting&amp;#34;&lt;br/&gt; — &amp;#34;I&amp;#39;m thinking of leaving him&amp;#34;&lt;br/&gt;&lt;br/&gt;None of this is criminal. All of it is private.&lt;br/&gt;
    </content>
    <updated>2026-04-17T06:40:49Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswrzwpmhxms68qac6nmrfawhpy47qh60860zxzqlnreuhvyfyx8dqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w5emr70</id>
    
      <title type="html">Thank you @nprofile…8xhx for the great talk ❤️</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswrzwpmhxms68qac6nmrfawhpy47qh60860zxzqlnreuhvyfyx8dqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w5emr70" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgnjpzxtzaz7a4hk4x6kpge9a2q37vv8fff9943nwc6m53cc5vllsffx407&#39;&gt;nevent1q…x407&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thank you &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Efrat Fenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; for the great talk ❤️
    </content>
    <updated>2026-04-15T09:10:09Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsgnjpzxtzaz7a4hk4x6kpge9a2q37vv8fff9943nwc6m53cc5vllszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgu6zs3</id>
    
      <title type="html">Encryption without metadata protection is like whispering in a ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsgnjpzxtzaz7a4hk4x6kpge9a2q37vv8fff9943nwc6m53cc5vllszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgu6zs3" />
    <content type="html">
       Encryption without metadata protection is like whispering in a spotlight.&lt;br/&gt;&lt;br/&gt;Cypherpunks fixed this. MLS (Messaging Layer Security) makes group messaging scalable and encrypted.&lt;br/&gt;&lt;br/&gt;We took that standard and shipped it on Nostr.&lt;br/&gt;&lt;br/&gt;Now nobody knows who&amp;#39;s talking to who. Not even us. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/452a3b3b98cd8b7ea3b80dc24b1bc8d78db0f98fd3fa3b201323713833836852.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-15T09:06:34Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv</id>
    
      <title>Nostr event nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs9c22awlyreqlesqnc9q54nf4zm33xac96tm2kd20ypuxg49q0q8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ws8fqqv" />
    <content type="html">
      Nobody reads your letters. Nobody should read your messages.
    </content>
    <updated>2026-04-13T15:39:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxfgkuxp73z68rhe46uqnnwttewn7wvehjyzw8qr5g5mm2l4wq06szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wny8rf5</id>
    
      <title type="html">Some things are meant to stay between two people. We&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxfgkuxp73z68rhe46uqnnwttewn7wvehjyzw8qr5g5mm2l4wq06szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wny8rf5" />
    <content type="html">
      Some things are meant to stay between two people. We&amp;#39;re building the protocol for that.&lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/a3b40d8f3823c18f7cfbbc6c20c09030b20d7b7230aa7afadf83650da92a814e.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-13T11:34:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs9xc6zwuc5nlft0aahwr0qrmkmkfnjn7nna7dzdr9mlpmmnapgr5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w9cx9jd</id>
    
      <title type="html">Somewhere, an app just changed its terms of service and your ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs9xc6zwuc5nlft0aahwr0qrmkmkfnjn7nna7dzdr9mlpmmnapgr5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w9cx9jd" />
    <content type="html">
      Somewhere, an app just changed its terms of service and your conversations went with it.
    </content>
    <updated>2026-04-10T07:23:46Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs05hn65zh49xsyy2yax6y8ln6jde5ejxfaacxdv5sr7q6azpe8pyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wdt3ef3</id>
    
      <title type="html">Digital anonymity didn&amp;#39;t vanish overnight. It was dismantled ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs05hn65zh49xsyy2yax6y8ln6jde5ejxfaacxdv5sr7q6azpe8pyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wdt3ef3" />
    <content type="html">
      Digital anonymity didn&amp;#39;t vanish overnight. It was dismantled piece by piece. Read our timeline on the controlled demolition of online privacy, from 1995 to today. 👇 &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqrserfva5hgctv945kgetww35hg7fdv968gctrdvkhvetrw3hhyuedv9hxgtt5dpjj6cm0w4h8getjdanxvetwwd5hvegpe5tgg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…5tgg&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;The leaders of the free world hate anonymity. Mass state surveillance which began with the Patriot Act, has evolved into demands for unencrypted back doors and chat control.&lt;/p&gt;

&lt;p&gt;Australia, the UK, and others stifle anonymity and even pseudonymity through age verification. Germany, France, and Spain have openly called for digital verification and “real names on the internet.” This is not incidental.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*Note: Anonymity means no your actions are completely unlinked from any persistent identifier. Pseudonymity means acting under a consistent but false or separate identity. Full digital anonymity is rare, but we use the term here as it is more commonly used to refer to online pseudonymity.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Worryingly, governments, corporations, and even private citizens may not need special powers to unmask vast swathes of internet users. A &lt;a href=&#34;https://arxiv.org/pdf/2602.16800&#34;&gt;&lt;em&gt;recent ETH Zurich study&lt;/em&gt;&lt;/a&gt; proved that LLMs can already de-anonymize social media users with 90% accuracy.&lt;/p&gt;

&lt;p&gt;Yet, anonymity is a necessary condition for exercising several recognized rights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy&lt;/strong&gt; — communicating without revealing one’s identity protects personal data, relationships, and intimate aspects of life.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freedom of expression&lt;/strong&gt; — anonymity shields speakers from retaliation, allowing dissent, whistle‑blowing, artistic experimentation, or participation in controversial debates.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Freedom of assembly and association&lt;/strong&gt; — anonymous gathering or organizing online can be essential where public identification would expose participants to persecution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identity and anonymity are not mutually exclusive. They never were. Every citizen should have access to both. They are the Yin and Yang of our digital existence.&lt;/p&gt;

&lt;p&gt;If we do not understand the history and mechanics of digital identity control, we will lose our rights. We will live in an unbalanced, ringfenced world where people can’t even remember the reasons why, sometimes, they must remain faceless.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;controlled-demolition-a-timeline-of-increasing-id-checks-from-1995-to-now-2&#34;&gt;Controlled Demolition: A Timeline of Increasing ID Checks from 1995 to Now&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1995 – Real‑name policy on AOL&amp;amp;#xA;&lt;/strong&gt;AOL began requiring members to register with a “real” name and phone number, linking accounts to billing information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1998 – PayPal’s email verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PayPal mandated that new accounts confirm a unique email address and later added mandatory linkage to a bank account or credit card, tying online payments to verified identities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2000 – eBay’s verified user program&amp;amp;#xA;&lt;/strong&gt;eBay introduced a “Verified User” badge that required users to submit a government‑issued ID and a validated mailing address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2001 – The Patriot Act brings in sweeping surveillance powers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ISPs could be compelled to turn over subscriber information without prior court approval, including IP logs and browsing histories, letting authorities link an IP address to a specific user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2003 – Facebook’s real‑name enforcement&lt;/strong&gt;\
Facebook’s early policy required members to use their legal names, backed by occasional manual reviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2005 – Google phone‑number verification&amp;amp;#xA;&lt;/strong&gt;Google started prompting users to add a mobile phone number for account recovery, creating a link between the account and a physical device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2007 – Twitter’s email confirmation&lt;/strong&gt;\
Twitter made it mandatory to confirm a unique email address before tweeting, reducing throwaway accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2011 – Reddit’s “Verified Email” badge&lt;/strong&gt;\
Reddit added a badge for users who verified a unique email address, discouraging mass‑created throwaway accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2013 – Silk Road shutdown&amp;amp;#xA;&lt;/strong&gt;Ross Ulbricht’s anonymous dark-net marketplace was seized and shut down by the FBI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2014 – GDPR preparation begins&lt;/strong&gt;\
Companies began collecting explicit consent and identity data, increasing data‑linkage practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2015 – Uber’s background checks begin&amp;amp;#xA;&lt;/strong&gt;Uber required drivers to undergo third‑party background checks and link their accounts to driver’s licenses, making rider‑driver interactions traceable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2016 – WhatsApp’s phone‑number registration&lt;/strong&gt;\
WhatsApp enforced a one‑account‑per‑phone‑number rule, eliminating truly anonymous messaging on the platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2017 – Instagram’s two‑factor authentication&amp;amp;#xA;&lt;/strong&gt;Instagram rolled out 2FA (SMS or authenticator app), tying accounts to a verified phone number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2019 – Real‑ID requirement for developers&lt;/strong&gt;\
Apple demanded developers submit government‑issued IDs and tax information, reducing anonymous app publishing. The company rolled out enforced 2FA for all Apple accounts later that year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2020&lt;/strong&gt; &lt;strong&gt;–&lt;/strong&gt; &lt;strong&gt;COVID‑19 contact‑tracing apps launch&amp;amp;#xA;&lt;/strong&gt;(e.g., NHS COVID‑19, Apple/Google Exposure Notification)\
These apps required users to register with a verified phone number or health‑system ID, linking exposure data to a semi‑anonymous token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2022 – EU’s Digital Services Act (DSA) and Chat Control&amp;amp;#xA;&lt;/strong&gt;Large online platforms were obliged to collect “minimum age” and “contact” information for all users, and to provide “traceability” for very large online services, tightening ID constraints. A mandatory‑scan clause for online chat was suggested (eventually removed from the draft bill in late 2025).\
\
\
&lt;strong&gt;2023 – UK Online Safety Act passes&lt;/strong&gt;\
This law, replacing the 2017 Digital Economy Act, set the stage for strict age verification requirements across major platforms. Enforcement began in 2025&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2024 – Australia bans social media for under-16s&lt;/strong&gt;\
Strict age-verification enforcement began on &lt;strong&gt;10th December 2025&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2025 – EU-wide age-verification prototype&lt;/strong&gt;\
The EU Commission released a prototype of an EU-wide age verification app (&amp;#34;mini wallet&amp;#34;) for pilot testing in countries like Denmark, France, and Italy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2026 – Global biometric expansion&lt;/strong&gt;\
Countries including Vietnam, Nigeria, and Indonesia are expanding national biometric ID systems, with South Korea requiring facial biometrics for new mobile numbers.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;These changes were not incidental. Each entry on the timeline accelerated the next. Since the internet began, anonymity and pseudonymity have drastically decreased. With new government policies, digital ID, and biometric data storage, centralized systems and platforms will have no option to provide access to non-verified users.&lt;/p&gt;

&lt;p&gt;What are the reasons for the construction of this digital panopticon?\
What are the arguments against?&lt;/p&gt;

&lt;h2 id=&#34;arguments-for-control-ten-reasons-they-fail-2&#34;&gt;Arguments for Control: Ten Reasons They Fail&lt;/h2&gt;

&lt;p&gt;There are many arguments used to curb digital freedoms. All of them are fundamentally flawed in that they only seek to increase state power while denying the need for anonymity as a counterbalance to control.&lt;/p&gt;

&lt;p&gt;Still, let’s see what we’re up against.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 1:&lt;/strong&gt; Identification makes criminals easier to trace. &lt;strong&gt;Rebuttal&lt;/strong&gt;: Those who seek to identify ‘criminals’ are the very same people who define crime. The danger of increasingly vague definitions of ‘crime’ based on online profiles offer state departments virtually unlimited powers to stifle undesirable behavior. Further, creativity and new technology means that bad actors will always be able to penetrate or circumnavigate ringfenced systems before regulators can adapt. Jurisdictional difference and the competition of nation-states also offers optionality to bad actors and criminals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 2:&lt;/strong&gt; Quelling ‘hate speech’ and ‘extremist’ content.\
&lt;strong&gt;Rebuttal: ‘&lt;/strong&gt;Hate’ and ‘extreme’ are subjective concepts, poorly defined in a deliberate attempt to increase conformity and homogeneity. The flip side to this is that any defined ‘hate speech’ terms can be circumvented through creative use of language. While Nostr Improvement Possibility NIP 68 defined specific language to label profanity, hate‑speech, sexual content, no Nostr client has implemented it (rendering it defunct). Studies have shown that humans will find a way to disseminate content relating to their ideology regardless of whether they must identify or not, rendering the ID requirement ineffective at stopping ideas themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 3: &lt;/strong&gt;Reducing the spread of misinformation\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;With the internet opening publishing access to all comers, the legacy monopoly on what constitutes truth or lies has died. Fact-checking, hard evidence, and rigorous methodology is all still valuable, but it need not be performed by centralized entities. Anonymous participation encourages honest discussion of stigmatized topics (mental health, sexuality, politics). Simply put, the only people who can decide on what is and isn’t ‘misinformation’ are the communities and people consuming it. Through value-based fact-checking and reputational staking, netizens must navigate their own way in a ‘post truth’ world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 4:&lt;/strong&gt; Enforced identification protects vulnerable groups\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;Remote communication increases the possibility for harassment, revenge porn, and harmful acts against children. However, the loss of anonymity could disproportionately affect victims. Identification increases the risk of retaliation, stalking and doxxing, and the lack of cultural understanding in responding to these acts. Unless you remove the root cause for why people carry out these behaviors, they cannot be stopped through identification alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 5: &lt;/strong&gt;Fewer scams and less ‘money laundering’.\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;‘Money laundering’ is a 21st-century label for a state-created offense (which violates no property rights). Many legitimate services, e.g., Bitcoin wallets, privacy‑focused browsers, rely on pseudonymity for security. Only complete control of every aspect of online transactions would nullify the threat of fraud. Scammers can bypass verification through stolen, forged, or synthetic documents, recycled phone numbers, SIM‑swap attacks, and social‑engineering tactics that trick legitimate users into revealing credentials. Plus, once an account is verified, it can still be hijacked, reused across platforms, or exploited via phishing, romance, and business‑email‑compromise schemes that target trust rather than anonymity. Cryptographic security, webs of trust, and community initiatives create a more effective layered defense than simple ‘real name’ policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 6: &lt;/strong&gt;Protection of intellectual property by identifying infringers\
&lt;strong&gt;Rebuttal: &lt;/strong&gt;In his seminal work &lt;em&gt;Against Intellectual Property&lt;/em&gt;, Stephen Kinsella states, “The purpose of property rights is to allocate owners of scarce resources to permit peaceful, cooperative, productive use of these resources.”Digital IP doesn’t exist because it is not scarce. Digital bits can be reproduced, so it cannot be ‘stolen’. Meanwhile, online anonymity fosters innovation and experimentation by allowing users to use existing ideas to build value without reputational risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 7: &lt;/strong&gt;Identity checks enhance national security\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; The need to monitor vast swathes of data creates huge pressures on government resources and leads to the expansion and inefficiency of security departments. Determined adversaries can avoid or subvert checks through forged or stolen credentials, inadequate biometric checks, incomplete intelligence, and human error. Further, anonymity protects free speech, especially for dissidents, whistleblowers, and journalists in repressive regimes. Implementing global de‑anonymization would require massive coordination, raising jurisdictional and sovereignty concerns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 8:&lt;/strong&gt; Identification prevents “sockpuppet” accounts and astroturfing\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; Bots bypass ID checks by automating the very steps that were meant to be “human‑only.” They do this through a mix of cheap disposable credentials, outsourced human solving services, sophisticated image‑generation tools, and large pools of rotating IP addresses. There are also several legitimate reasons for needing multiple accounts: work and personal use, individual accounts for family members/children, project‑specific or testing sandbox accounts, privacy‑focused anonymous persona for sensitive topics, distinct brands or business profiles, regional/language‑specific accounts, compliance‑driven separate audit trails (e.g., finance, health).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 9: &lt;/strong&gt;ID reduces the need for high platform security costs\
&lt;strong&gt;Rebuttal&lt;/strong&gt;: The burden is simply passed to the user here. They incur the cost and risk of providing their identity to a commercial third-party. Centralized identity systems create single points of failure, which are attractive targets for hackers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument 10:&lt;/strong&gt; Real-name policy promotes ‘responsible’ online behavior\
&lt;strong&gt;Rebuttal:&lt;/strong&gt; One person’s ‘responsible’ is another person’s ‘reckless’. Normalizing the language of conformity does not change anyone’s behaviour — it simply weaponizes words to implement hard checks and control. Removing anonymity pushes malicious actors to more hidden channels, making them harder to detect. Reasoned discussion and crowd-sourced problem solving can only thrive in an environment where reputation is built over time rather than tied to legal identity.&lt;strong&gt;&amp;amp;#xA;&lt;/strong&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Every argument above shares one structural flaw: the enforcement mechanism always costs more than the problem it solves. The cost is paid by the innocent. Arguments in favor of ending anonymity often use malleable and subjective language. Terms such as ‘protect’, ‘extreme’, and ‘vulnerable’ all lack the precision to facilitate real enforcement. They are used as the state’s premier weapons in the war on privacy and are parroted by subservient legacy media.&lt;/p&gt;

&lt;p&gt;But for every weapon, there is an effective defense.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&#34;the-survival-of-identity-free-communication-in-2026-2&#34;&gt;The Survival of Identity-Free Communication in 2026&lt;/h2&gt;

&lt;p&gt;As long as the non-zero possibility to mask your digital identity exists, power is kept in check. Without this harmony and balance provided by the dark Yin of anonymity, freedom contracts and eventually dies.&lt;/p&gt;

&lt;p&gt;While governments focus on stripping the convenience of remaining anonymous online, they chase greater control. Unless we push back and continue to highlight the counterpoints to state propaganda, ordinary citizens do lose control. Anonymity can never be made illegal, but it can be drastically throttled through ignorance.&lt;/p&gt;

&lt;p&gt;Every conversation, every article, every comment, every share, every campaign, every interaction helps maintain this healthy balance. Democracy is not conformity.&lt;/p&gt;

&lt;p&gt;As well as pushing back and making the voice of freedom heard, we must continue to build and use permissionless digital systems that protect identity. Their very existence stops the ultimate death of anonymity; their continued use restores the balance of power and builds resilient societies.&lt;/p&gt;

&lt;p&gt;Protect yourself and others.\
Use all the identity-free tools at your disposal.\
Join the counteroffensive.&lt;/p&gt;

&lt;h1 id=&#34;byline-2&#34;&gt;Byline&lt;/h1&gt;

&lt;p&gt;Article by: @totallyhumanwriter&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;&lt;em&gt;Philip Charter&lt;/em&gt;&lt;/a&gt; is a totally human author, editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the bad British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-04-09T06:56:55Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqszqn46adr7gcwyrsxnuqve84fq6d8ks7u4cr7sr8qevw8pttmcevczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wmvlell</id>
    
      <title type="html">Every great idea was born in a private room. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqszqn46adr7gcwyrsxnuqve84fq6d8ks7u4cr7sr8qevw8pttmcevczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wmvlell" />
    <content type="html">
      Every great idea was born in a private room. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/29a13cc8c736380da5e5ce1fbe87ea7c4325ac3d91f791d993fd475d1fddc01b.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-04-08T16:08:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs8a2dd89425w2rjzfacu6ccsug2gn2z39qek08glq0w3vv46rq0ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whehzuu</id>
    
      <title type="html">Gm. The moment you change what you say because someone might be ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs8a2dd89425w2rjzfacu6ccsug2gn2z39qek08glq0w3vv46rq0ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whehzuu" />
    <content type="html">
      Gm. The moment you change what you say because someone might be watching, they&amp;#39;ve already won.
    </content>
    <updated>2026-04-08T07:32:10Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrwhu73x8xapnmvgeajhau4nshhwsuqhcnsctp35q9zxz9pfp2mvczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weghddt</id>
    
      <title type="html">WhatsApp can&amp;#39;t message Telegram. Not because it&amp;#39;s hard. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrwhu73x8xapnmvgeajhau4nshhwsuqhcnsctp35q9zxz9pfp2mvczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0weghddt" />
    <content type="html">
      WhatsApp can&amp;#39;t message Telegram. Not because it&amp;#39;s hard. Because they don&amp;#39;t want it to be possible. Nostr fixes this. 
    </content>
    <updated>2026-04-07T09:15:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsp2lhkmw6zh8znr4d9wfmad8ntrjanpavsvrxcj784hc3gnjkf3hczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wklr57m</id>
    
      <title type="html">🔔 Community call reminder, today April 7 at 16:00 UTC! Are you ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsp2lhkmw6zh8znr4d9wfmad8ntrjanpavsvrxcj784hc3gnjkf3hczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wklr57m" />
    <content type="html">
      🔔 Community call reminder, today April 7 at 16:00 UTC! &lt;br/&gt;&lt;br/&gt;Are you interested in the future of private communication? You can&amp;#39;t miss this: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qs48xmxv&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xmxv&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; Get ready, Marmots! Tomorrow is the big day. &lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;We will discuss:&lt;br/&gt;&lt;br/&gt;• This month&#39;s key progress &lt;br/&gt;• The current state of the White Noise app &lt;br/&gt;• Future plans for the protocol &lt;br/&gt;• Q&amp;A from the community &lt;br/&gt;&lt;br/&gt;📅 Tuesday, April 7, 16:00 UTC. &lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ed2a59a0c000cf8f6eb5bb66e49d4f84fde54422cf0f8371ada1bb6b134faf53.png&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-04-07T06:48:18Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtxhzlm</id>
    
      <title type="html">Get ready, Marmots! Tomorrow is the big day. MARMOT COMMUNITY ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsdvu6k7zlzk39pss28rp52k4n0hx9w5jf85gz63xzruwd8c8rz8qszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtxhzlm" />
    <content type="html">
      Get ready, Marmots! Tomorrow is the big day. &lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;We will discuss:&lt;br/&gt;&lt;br/&gt;• This month&amp;#39;s key progress &lt;br/&gt;• The current state of the White Noise app &lt;br/&gt;• Future plans for the protocol &lt;br/&gt;• Q&amp;amp;A from the community &lt;br/&gt;&lt;br/&gt;📅 Tuesday, April 7, 16:00 UTC. &lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ed2a59a0c000cf8f6eb5bb66e49d4f84fde54422cf0f8371ada1bb6b134faf53.png&#34;&gt; 
    </content>
    <updated>2026-04-06T14:31:17Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstg8yx8c37l94y5ltp29zacmql9607zhvslkkja707dcruczgek7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waktusg</id>
    
      <title type="html">March was mostly us going &amp;#39;ok that shipped rough, let&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstg8yx8c37l94y5ltp29zacmql9607zhvslkkja707dcruczgek7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0waktusg" />
    <content type="html">
      March was mostly us going &amp;#39;ok that shipped rough, let&amp;#39;s fix it&amp;#39;. Here&amp;#39;s the recap: &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzsmtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz6mtpwf3kstfjxqervd6ge96&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…ge96&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;March was a stabilization month. Two White Noise releases went out to fix the rough edges that showed up after v0.3.0, a security audit started reshaping the SDK, and a new terminal client turned the Rust backend into something you can use without Flutter. Five independent Marmot clients shipped code, and the team gathered in Florianopolis for Bitcoin&#43;&#43; between releases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stabilizing White Noise&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The March 5 release broke backward compatibility deliberately, moving group messages from the old NIP-44 wrapper to ChaCha20-Poly1305 so every client could use the same encryption format. Older groups needed the clean break.&lt;/p&gt;

&lt;p&gt;That release also fixed two problems people hit right after v0.3.0: new group members could miss messages during a brief window after joining, and slightly older group-state messages were incorrectly marked as failed even though they should have decrypted fine.&lt;/p&gt;

&lt;p&gt;Sends stopped being invisible. White Noise now shows whether a message is still sending, has reached relays, or failed, with a reason attached, and failed sends retry automatically with an option to retry by hand.&lt;/p&gt;

&lt;p&gt;Swipe-to-reply landed alongside clearer invitation messages, working media previews, and image-only chat summaries. The iOS startup crash from duplicate tracing initialization is gone, and debug logs from the Rust backend are now visible inside the app.&lt;/p&gt;

&lt;p&gt;The March 25 release went after relay churn on heavier accounts, where too many connections were building up, login slowed down, reconnect loops piled up, and message delivery got flaky. Login now finishes faster, temporary connections clean up after themselves, and restored sessions recover without piling up stale state.&lt;/p&gt;

&lt;p&gt;That release switched to the newer Nostr threading convention for replies, added an in-app bug report screen with NIP-44 encrypted reports, and added in-app support chat that reopens an existing conversation instead of starting a new one. Startup failures in the Flutter/Rust bridge now show a real error screen instead of leaving you staring at the splash screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Audit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Least Authority&amp;#39;s audit of MDK moved from spec-level findings into code-level changes this month. By mid-March, the results were landing in the Rust core: tighter group-invite validation, media download limits, HTTPS enforcement on Blossom URLs, key-package fetch filtering, and Apple Silicon credential storage fixes. PR #634 closed the last item in a three-part group-invite validation set. MDK also added `cargo audit` to CI and bumped a crypto dependency for two March Rust security advisories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beyond Flutter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Rust backend is no longer tied to Flutter. `whitenoise-rs` now ships with a CLI and a background service that lets you create identities, inspect accounts, manage groups, send messages, and script the whole thing from a terminal.&lt;/p&gt;

&lt;p&gt;`wn-tui` turned that backend into a terminal chat client with split views, group details, user search, follows management, and a status bar for account state and pending invites. It is still early but already usable as a daily client.&lt;/p&gt;

&lt;p&gt;`dr.marmot` widened into `nostr-doctor` as the same relay diagnostic problems showed up across Nostr. Some of the earlier White Noise relay trouble came from the app, but some came from stale or missing relay data that users had already published. When that data drifts, other clients stop knowing where to find you. `nostr-doctor` checks dead relays, relay drift, key-package relay lists, deletion support, Blossom server status, and old NIP-51 lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Five Clients Shipping&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Five independent Marmot clients shipped code this month.&lt;/p&gt;

&lt;p&gt;openChat, built in C#, had the busiest month with 10 releases and 148 commits. Voice messages went from zero to working with recording permissions, Opus encoding, Blossom upload, and a send/receive flow. MIP-04 encrypted media attachments, a newer cipher suite for cross-client compatibility, and a reworked startup sequence landed in the same window.&lt;/p&gt;

&lt;p&gt;Vector reached v0.3.3 across three releases. Group management, Android notifications with inline reply, and app-level encryption came first, followed by image spoilers, mentions, emoji shortcodes, and tap-to-react. v0.3.3 shifted to hardening with a memory-hardened key vault, anti-debug protections, and SQLite memory use reportedly dropping from ~308MB to ~5MB. The Vector team also shipped [VectorPrivacy/DOOM](https://github.com/VectorPrivacy/DOOM), real-time P2P multiplayer DOOM delivered as a WebXDC chat message with no central server and proof that the transport layer works for more than text.&lt;/p&gt;

&lt;p&gt;Pika shipped four releases focused on build infrastructure, group-membership plumbing, and OpenClaw integration, including a dashboard for customer-managed deployments. Burrow added read receipts, typing indicators, and link previews. The TypeScript reference client (marmots-web-chat) picked up encrypted media, leave-group support, a stronger mobile layout, and WebXDC mini-app support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shared Protocol and SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The spec tightened around real failure cases. Group-message encryption changed, push-token formats were cleaned up, Welcome event details got clearer, and non-admin users can now propose removing themselves from a group. Key packages moved toward a replacement model where clients publish a new one under the same stable identifier instead of trying to delete the old one everywhere.&lt;/p&gt;

&lt;p&gt;MDK shipped twice in the first week with encrypted media support in the language bindings (Kotlin, Swift, Python, Ruby), a file-key derivation fix, and smaller Android and iOS release binaries. The TypeScript SDK published `@internet-privacy/marmot-ts\@0.4.0` with graceful group leave, better state persistence, and subscription handling.&lt;/p&gt;

&lt;p&gt;`transponder` is the Rust implementation of MIP-05, a privacy-preserving push notification server that sits between Nostr relays and Apple/Google push services. It subscribes to relays for gift-wrapped notification requests, decrypts them with ephemeral keys, and dispatches silent pushes to APNs and FCM without ever learning message content, sender identity, or group membership. In March, transponder aligned with the latest MIP-05 spec changes around token format and encoding validation, added transport retry with exponential backoff for APNs and FCM failures, switched to batch-based dispatch with proper shutdown draining, and fixed an event-loop stall that could stop relay ingestion after lagged notifications. The .NET MLS library (`dotnet-mls`) added tree-validation tests, fixed signing and parent-hash handling, and corrected a state-corruption bug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bitcoin&#43;&#43; Florianopolis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The team spent time together in Florianopolis around Bitcoin&#43;&#43;. Max gave [*From PGP to Marmot: Three Decades of Messaging Protocol Exploits and Defenses*](https://www.youtube.com/watch?v=hQ3yfiMQ81I), which traced failures in encrypted messaging from PGP and OTR through Signal-era attacks, then closed on where Marmot fits. Danny Morabito gave [*The Vibes are Off: Foundations Matter*](https://www.youtube.com/watch?v=8l6Lah8mntQ), a case that strong foundations matter before the stack gets ambitious. Both talks fit the month well, with the protocol&amp;#39;s case getting public airtime while the code got the fixes it needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mute/unmute support, gallery image saving, notification settings, and push-registration persistence are all active on the White Noise side. The spec-side change for replaceable key packages has landed; MDK and client follow-through is still in review. Self-remove support merged in the spec and is working through SDK and client layers. Pika&amp;#39;s OpenClaw channel plugin work and typed voice interfaces are still in flight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By the Numbers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;| Metric | Value |&lt;/p&gt;

&lt;p&gt;|--------|-------|&lt;/p&gt;

&lt;p&gt;| White Noise releases | 2 |&lt;/p&gt;

&lt;p&gt;| Marmot clients shipping code | 5 |&lt;/p&gt;

&lt;p&gt;| openChat releases | 10 |&lt;/p&gt;

&lt;p&gt;| Vector releases | 3 |&lt;/p&gt;

&lt;p&gt;| Pika releases | 4 |&lt;/p&gt;

&lt;p&gt;| New tools | CLI, TUI client, nostr-doctor |&lt;/p&gt;

&lt;p&gt;| Conference talks | 2 (Bitcoin&#43;&#43; Floripa) |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who contributed code, design, issue reports, talks, and planning this month: justinmoon, erskingardner, dannym-arx, benthecarman, futurepaul, jgmontoya, josefinalliende, mubarakcoded, hzrd149, untreu2, gzuuus, nikitawvi, DavidGershony, JSKitty, YuurinBee, selkij, Centauri, rphilbrdigits, Datawav, Awiteb, dergigi, kelaode-dev, jodobear, Max, and Vladimir Krstic.&lt;/p&gt;

&lt;p&gt;Start with the [Marmot Protocol spec](https://github.com/marmot-protocol/marmot), [MDK](https://github.com/marmot-protocol/mdk), or [White Noise](https://github.com/marmot-protocol/whitenoise). The [TypeScript SDK](https://github.com/marmot-protocol/marmot-ts) is ready for web builds.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-04-01T12:37:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstm2r8n3sghr0ac0aw3mm6p34ntfy4jmnxzeu8acq5cpjtcul60zczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wxwlrc8</id>
    
      <title type="html">We shipped. Release notes here for anyone who wants to know what ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstm2r8n3sghr0ac0aw3mm6p34ntfy4jmnxzeu8acq5cpjtcul60zczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wxwlrc8" />
    <content type="html">
      We shipped. Release notes here for anyone who wants to know what changed. 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqpgamgd96x2ttwda5hxefdwcerqv3kxverxadfq3f&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…fq3f&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;This release starts with the problem people felt most. The previous release was rough on heavier accounts. If you followed a lot of people, White Noise could accumulate too many relay connections, spend too long logging in, and fall into reconnect churn, with message flow turning unreliable in the worst cases. This release fixes that first.&lt;/p&gt;

&lt;p&gt;Between `2026-03-05` and `2026-03-23`, the mobile app merged 31 pull requests across 214 changed files. Six separate `whitenoise-rs` repins pulled in the backend work that made most of this release possible. There is no migration here. You update and keep your data.&lt;/p&gt;

&lt;h3 id=&#34;relay-work-first-2&#34;&gt;Relay work first&lt;/h3&gt;

&lt;p&gt;The relay layer had been doing too much in one place.&lt;/p&gt;

&lt;p&gt;Long-lived session relays, one-off discovery relays, query relays, and publish relays were all leaning on the same machinery too often. New relays tended to stick around. Subscription refreshes fired too eagerly. The backend tracking issue for this work describes it plainly: too many failed relay connections, repeated reconnect attempts, and unstable behavior caused by relay lifecycle problems in the app itself (`whitenoise-rs#569`).&lt;/p&gt;

&lt;p&gt;This release cuts that down in a few ways.&lt;/p&gt;

&lt;p&gt;Login no longer waits on every relay list publish before moving on. Relay-list publishing now uses quorum logic, then retries the rest in the background (`whitenoise-rs#669`). One-off fetches and publishes now use scoped ephemeral relay sessions, so temporary work does not keep bloating the long-lived pool (`whitenoise-rs#592`, `whitenoise-rs#600`). Relay lists repair themselves when a transient failure leaves them missing from the network (`whitenoise-rs#673`). Restored sessions also recover their group refresh path after startup instead of quietly going stale (`whitenoise-rs#682`).&lt;/p&gt;

&lt;p&gt;The app side exposes more of this work. `The great relay restoration` added relay diagnostics, relay state inspection, and key-package management. The follow-up screen work made those tools easier to use and easier to trust (`#495`, `#502`).&lt;/p&gt;

&lt;p&gt;If the last release felt unstable on an account with a large follow list, this is the fix.&lt;/p&gt;

&lt;h3 id=&#34;conversations-read-better-now-2&#34;&gt;Conversations read better now&lt;/h3&gt;

&lt;p&gt;Replies now follow NIP-C7. White Noise writes a single `q` tag and a `nostr:nevent` reference, which gives other Marmot clients a clean way to resolve the target message (`#468`, `whitenoise-rs#581`).&lt;/p&gt;

&lt;p&gt;Deleted messages also stay visible as deleted. Earlier builds simply removed them from view, which made conversations look damaged. Now the chat keeps a placeholder, adjusts bubble grouping around it, and drops the interactions that no longer make sense on deleted content (`#471`, `#512`).&lt;/p&gt;

&lt;p&gt;User metadata now updates in place across chat lists, profiles, invites, and search results. No remount needed. No second visit to the screen. `#522` brought that into the app, and `whitenoise-rs#676` added the per-user stream behind it.&lt;/p&gt;

&lt;p&gt;The start-chat flow also stopped fighting the user. Self-actions are gone. Missing DM metadata can use a blocking sync when needed. The screen shows the avatar while key-package checks finish instead of covering the whole slate with a loading state (`#517`, `#443`).&lt;/p&gt;

&lt;h3 id=&#34;support-lives-in-the-app-now-2&#34;&gt;Support lives in the app now&lt;/h3&gt;

&lt;p&gt;Two additions close the distance between hitting a problem and doing something about it.&lt;/p&gt;

&lt;p&gt;White Noise now has an in-app bug report flow. Reports are NIP-44 encrypted and sent from an ephemeral key by default. You can include your public identity if you want to. You do not have to.&lt;/p&gt;

&lt;p&gt;Support chat is now part of the app too. If a support conversation already exists, White Noise opens it directly. If not, it starts one without sending you through user search first (`#478`, `#486`, `#517`).&lt;/p&gt;

&lt;h3 id=&#34;failure-paths-are-clearer-2&#34;&gt;Failure paths are clearer&lt;/h3&gt;

&lt;p&gt;If the Flutter/Rust bridge failed during startup before, White Noise could leave you parked on the splash screen with no useful signal. This release replaces that with a real fatal error screen. Staging builds show the details. Production keeps the message brief and user-facing (`#477`).&lt;/p&gt;

&lt;p&gt;The log screens also became worth using. You can pause live scrolling, resume it, keep far more history in memory, filter logs by level, and copy everything at once (`#474`, `#502`, `#517`).&lt;/p&gt;

&lt;h3 id=&#34;the-visible-parts-got-another-pass-2&#34;&gt;The visible parts got another pass&lt;/h3&gt;

&lt;p&gt;Login, signup, slate, and settings all got another round of design work. The onboarding carousel sits more cleanly in the login flow. Settings and slate screens have tighter navigation and spacing. Signup got a fuller pass, including the callout and button work needed to match the design source more closely (`#459`, `#504`, `#519`).&lt;/p&gt;

&lt;p&gt;There are smaller pieces around the edges too: a Zapstore update prompt on Android, translation fixes, a cheaper group list query path, and the usual dependency work that keeps the next release from getting worse before it gets better (`#481`, `#506`).&lt;/p&gt;

&lt;h3 id=&#34;the-crate-bumps-were-the-story-too-2&#34;&gt;The crate bumps were the story too&lt;/h3&gt;

&lt;p&gt;The short app changelog does not say enough here because six pull requests in this release window were some variation of `update rust crate`.&lt;/p&gt;

&lt;p&gt;Between `6aff825` and `60770fd`, those repins pulled in relay cleanup, NIP-C7 reply support, `visible_groups_with_info`, Zapstore version fetching, media integrity fixes, relay-list maintenance, and the per-user metadata stream. A line item that says `update rust crate` can carry most of the release on its back. This one did.&lt;/p&gt;

&lt;h3 id=&#34;contributors-11&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;This release window includes work from Jeff, Pepi, Javier, Danny, Emir, Max and Nikita L. Nikita made a first contribution with the self-profile guard that removed invalid self-actions from search and start-chat flows.&lt;/p&gt;

&lt;h3 id=&#34;get-the-update-5&#34;&gt;Get the update&lt;/h3&gt;

&lt;p&gt;If you use White Noise today, update to `v2026.3.23`.&lt;/p&gt;

&lt;p&gt;If the last release felt rough on a heavier account, start here. White Noise still asks for no phone, no email, just keys.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Download: GitHub releases page for `marmot-protocol/whitenoise`&lt;/p&gt;

&lt;p&gt;Read the release notes: `v2026.3.23-release-notes.md`&lt;/p&gt;

&lt;p&gt;Report issues: GitHub issue tracker for `marmot-protocol/whitenoise`&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-25T11:06:26Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs0memsf4vwt7rx759k9yhtfmx4gyh0n0lyt3z3sdsrlksef8gdf5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w59m0an</id>
    
      <title type="html">👀</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs0memsf4vwt7rx759k9yhtfmx4gyh0n0lyt3z3sdsrlksef8gdf5czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w59m0an" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswekgaaldq37r0hfx4snre6yx0sajnvs8tpeqzpf7hvrpz2msxw9gekd0p2&#39;&gt;nevent1q…d0p2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;👀
    </content>
    <updated>2026-03-09T22:10:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs95kr4wlrt38c36jkavh564n7wte6zt737gguet2uplf78a89n4xgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcx9lug</id>
    
      <title type="html">Some things are meant to stay between two people. We&amp;#39;re ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs95kr4wlrt38c36jkavh564n7wte6zt737gguet2uplf78a89n4xgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcx9lug" />
    <content type="html">
      Some things are meant to stay between two people. We&amp;#39;re building the app for that. 
    </content>
    <updated>2026-03-09T21:29:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs9w6hyahfnj062yzm6nr6v322k5pt79sm43wzht2u4g5gg8fs5zqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wf4zf6j</id>
    
      <title type="html">We build free and open source private communications tools: ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs9w6hyahfnj062yzm6nr6v322k5pt79sm43wzht2u4g5gg8fs5zqgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wf4zf6j" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qd2endw&#39;&gt;nevent1q…endw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We build free and open source private communications tools:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/marmot-protocol&#34;&gt;https://github.com/marmot-protocol&lt;/a&gt;
    </content>
    <updated>2026-03-09T14:26:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w56fr8m</id>
    
      <title type="html">Nostr is great for social. Terrible for private messages. Marmot ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs2002dp4us3evsngku6ejrg9x6ctkqxs45cml5ezdpd22hj6zhf8qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w56fr8m" />
    <content type="html">
      Nostr is great for social. Terrible for private messages. Marmot protocol fixes this. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/49754a0371445c4f22934bf80afea9ff0f84b05dfd051afea1dbd184097a2a24.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-03-09T14:25:36Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxyyaqgr8aksvy5et5ryhwlnr3y04jrlxz8h9cc394w25ngaut6jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfwk5rf</id>
    
      <title type="html">https://github.com/marmot-protocol/wn-tui</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxyyaqgr8aksvy5et5ryhwlnr3y04jrlxz8h9cc394w25ngaut6jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wfwk5rf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmst804ux&#39;&gt;nevent1q…04ux&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui&#34;&gt;https://github.com/marmot-protocol/wn-tui&lt;/a&gt;
    </content>
    <updated>2026-03-06T14:22:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8tfz7</id>
    
      <title type="html">Secure group chat in your terminal. wn-tui wraps WhiteNoise (MLS ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsghvn4gsmtv20hxles9f8tjp22stzrfddqmjpj5rvrl3z5kn2gtmszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wx8tfz7" />
    <content type="html">
      Secure group chat in your terminal. wn-tui wraps WhiteNoise (MLS &#43; Nostr) in a full TUI: chat list, reactions, key bindings, the works.&lt;br/&gt;&lt;br/&gt;Chat, react, manage groups, all from your terminal!&lt;br/&gt;&lt;br/&gt;github.com/marmot-protocol/wn-tui &lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/6d03dece0e01b2baa7b7666b2146be3a8771110ee30dc868722ea881811a1382.png&#34;&gt;  
    </content>
    <updated>2026-03-06T14:21:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswkyqw3sjpwpd9ulu0q8x5z7cflu2gyg9pcqdfnt4jy0ujf8rk60szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl60c5f</id>
    
      <title type="html">Download White Noise: https://www.whitenoise.chat</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswkyqw3sjpwpd9ulu0q8x5z7cflu2gyg9pcqdfnt4jy0ujf8rk60szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wl60c5f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgerhg8h&#39;&gt;nevent1q…hg8h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Download White Noise:&lt;br/&gt;&lt;a href=&#34;https://www.whitenoise.chat&#34;&gt;https://www.whitenoise.chat&lt;/a&gt;
    </content>
    <updated>2026-03-05T20:41:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0what4aa</id>
    
      <title type="html">A lot changed in this release. Messages arrive instantly. Group ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspy887tktmp286tw74xa2vfdzq9q7lmzraezafspl2y87t9cz5ejgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0what4aa" />
    <content type="html">
      A lot changed in this release. Messages arrive instantly. Group chats are stable. We improved image sharing. Amber support. Keys only, no phone number.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqpxamgd96x2ttwda5hxefdwcerqv3kxv6shahva8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…hva8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;We shipped v0.3.0 one week ago and said nothing about it. Within hours of release we found bugs that caused messages to vanish from group chats to some users. Announcing a messenger that loses messages felt wrong, so we went quiet and fixed it instead. &lt;strong&gt;v2026.3.5 &lt;/strong&gt;is the result: everything new from v0.3.0, with the reliability problems solved.&lt;/p&gt;

&lt;p&gt;For anyone coming from an older version, this is a large update. New encryption under the hood, real-time message delivery, image sharing, group chats, Amber support, and a long list of improvements that make the app feel like a different product. Here is what changed and why:&lt;/p&gt;

&lt;h3 id=&#34;upgrading-2&#34;&gt;Upgrading&lt;/h3&gt;

&lt;p&gt;If you are coming from v0.3.0, the upgrade is simple. Your existing groups stay intact, but the encryption method for new group messages has changed. Group members who have not yet upgraded to &lt;strong&gt;v2026.3.5&lt;/strong&gt; will not be able to read new messages or receive images until they update. Once everyone in a group is on &lt;strong&gt;v2026.3.5&lt;/strong&gt;, everything works as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you are coming from an older version (v0.2.x or earlier), this upgrade requires a one-time reset of all local data.&lt;/strong&gt; Messages, images, group memberships, and settings will be erased when you open the new version. The reason: the Marmot protocol changed how it manages encryption state for groups, and we moved the local database from unencrypted to fully encrypted storage. Least Authority&amp;#39;s security audit confirmed encrypted storage as a priority, since a messenger built on privacy should not store conversations in plaintext on disk. Because the database library has no way to migrate between formats, a clean break was the only option that would not risk silent corruption.\
\
&lt;strong&gt;Before upgrading from v0.2.x, back up your nsec (your private key) &lt;/strong&gt;if you have not already. After updating, log in with your existing keys or connect through Amber. Your profile information lives on Nostr relays, so it will sync back automatically when you sign in. Follow list persists on relays too. Groups from v0.2.x will need to be recreated, since the old encryption state cannot carry over.&lt;/p&gt;

&lt;p&gt;The database and protocol structures now support proper migrations, so future updates will preserve your data regardless of which version you are coming from.&lt;/p&gt;

&lt;h3 id=&#34;amber-and-external-signers-2&#34;&gt;Amber and External Signers&lt;/h3&gt;

&lt;p&gt;For users who manage their Nostr keys through a dedicated signing app like Amber, White Noise previously required you to paste your private key directly into the app. That meant trusting the app with your most sensitive credential. With this release, White Noise connects to Amber and other external signers directly, so your private key never leaves the signer. The app asks the signer to authorize each action, and the key stays where it belongs.&lt;/p&gt;

&lt;p&gt;QR code scanning accepts both private keys (nsec) and public keys (npub) without requiring you to know which format you are scanning. If you have been waiting for external signer support before trying White Noise, this is the release.&lt;/p&gt;

&lt;h3 id=&#34;messages-that-arrived-late-now-arrive-2&#34;&gt;Messages That Arrived Late Now Arrive&lt;/h3&gt;

&lt;p&gt;The most consequential fix in this release is invisible. In v0.3.0, messages sent during the brief window between receiving a Welcome and subscribing to the group relay would vanish. Late-arriving messages from previous MLS epochs were permanently marked as failed because &lt;code&gt;max_past_epochs&lt;/code&gt; was never wired into the OpenMLS configuration (it defaulted to zero).&lt;/p&gt;

&lt;p&gt;Both problems are fixed. The Rust backend now gates catch-up on subscription readiness instead of a fixed sleep timer, and &lt;code&gt;max_past_epochs&lt;/code&gt; defaults to 5. Messages that arrive slightly out of order or from a previous epoch now decrypt correctly. OpenMLS was bumped to 0.8.1, which includes a security fix for tag comparison (GHSA-8x3w-qj7j-gqhf).&lt;/p&gt;

&lt;h3 id=&#34;relay-handling-that-does-not-strand-users-2&#34;&gt;Relay Handling That Does Not Strand Users&lt;/h3&gt;

&lt;p&gt;v0.3.0 had a blind spot: if a user&amp;#39;s inbox relay list (kind 10050) was missing, giftwrap subscriptions would silently fail. The user could log in but never receive messages.&lt;/p&gt;

&lt;p&gt;This release falls back to NIP-65 relays when inbox relay lists are absent ([whitenoise-rs#518](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/518%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/518&amp;gt;)&lt;/a&gt;). Login now blocks when any of the required relay lists (kinds 10002, 10050, 10051) are missing, preventing users from entering a broken state. Relay filter validation and semantic event selection were hardened. The &lt;code&gt;NostrManager::with_signer&lt;/code&gt; path is now cancellation-safe. Subscriptions recover after external signer re-registration instead of going silent.&lt;/p&gt;

&lt;h3 id=&#34;message-delivery-status-2&#34;&gt;Message Delivery Status&lt;/h3&gt;

&lt;p&gt;Previous versions published messages with no feedback. The app fired events at relays and moved on. If relays rejected or never acknowledged the message, the sender had no way to know.&lt;/p&gt;

&lt;p&gt;Publishing is now tracked end-to-end. Messages appear immediately with a &lt;code&gt;Sending&lt;/code&gt; status, transition to &lt;code&gt;Sent(N relays)&lt;/code&gt; after relay acknowledgment, or &lt;code&gt;Failed(reason)&lt;/code&gt; after three automatic retries with exponential backoff (2s, 4s). The Rust backend streams status updates through flutter_rust_bridge, and the Flutter UI renders them as sending, sent or failed on each outgoing bubble ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;&lt;/a&gt;), [whitenoise#425](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/425%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/425&amp;gt;)&lt;/a&gt;). Tap a failed message to retry manually. Retried messages reposition to the end of the chat list.&lt;/p&gt;

&lt;p&gt;Delivery status persists across app restarts and survives relay echo reprocessing without regressing to stale state ([whitenoise-rs#559](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/559%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/559&amp;gt;&lt;/a&gt;), [whitenoise-rs#556](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/556%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/556&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;mip-04-encrypted-media-2&#34;&gt;MIP-04: Encrypted Media&lt;/h3&gt;

&lt;p&gt;MIP-04 defines how Marmot clients encrypt files for upload and decrypt them after download. The encryption key derives from the MLS group secret via HKDF-Expand, so only group members can access shared media. File metadata (MIME type, dimensions, blurhash) travels as an IMETA tag inside the encrypted MLS message.&lt;/p&gt;

&lt;p&gt;The MDK exposes MIP-04 through UniFFI bindings for Kotlin, Swift, Python, and Ruby ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;). The HKDF key derivation was corrected to use expand-only semantics with the exporter secret as PRK, matching the specification exactly ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;). The TypeScript SDK implements MIP-04 natively with a &lt;code&gt;GroupMediaStore&lt;/code&gt;, IMETA tag parsing, and event-driven media caching ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;replies-that-work-like-replies-2&#34;&gt;Replies That Work Like Replies&lt;/h3&gt;

&lt;p&gt;Swipe-to-reply, auto-focus on the input field, and author-colored quote previews make replies feel like a natural part of conversation instead of an afterthought ([whitenoise#389](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/389%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/389&amp;gt;)&lt;/a&gt;). Tapping a reply scrolls to the original message. The reply context preserves media attachments in the quote.&lt;/p&gt;

&lt;h3 id=&#34;media-previews-in-chat-list-2&#34;&gt;Media Previews in Chat List&lt;/h3&gt;

&lt;p&gt;Conversations with image-only messages no longer show empty previews. The chat list displays an attachment indicator so you can tell what happened without opening the conversation ([whitenoise#414](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/414%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/414&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;group-security-hardening-2&#34;&gt;Group Security Hardening&lt;/h3&gt;

&lt;p&gt;Key packages are now validated before adding members to a group. The backend checks kind, base64 payload, ciphersuite, required MLS extensions, and verifies the event pubkey matches the expected member ([whitenoise-rs#548](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/548%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/548&amp;gt;)&lt;/a&gt;). Admin-only mutations (add members, remove members, update group data) are enforced with fail-fast checks ([whitenoise-rs#547](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/547%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/547&amp;gt;)&lt;/a&gt;). Post-join self-update is temporarily disabled to prevent stale-state divergence risk ([whitenoise-rs#562](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/562%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/562&amp;gt;)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&#34;ui-polish-2&#34;&gt;UI Polish&lt;/h3&gt;

&lt;p&gt;Twenty-plus pull requests worth of visual fixes. The home screen layout was flattened with improved spacing for the hero image, slogan, and auth controls ([whitenoise#441](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/441%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/441&amp;gt;)&lt;/a&gt;). The signup bio field no longer gets cut off by the keyboard. The onboarding carousel text renders completely. The npub display uses block-based ellipsis instead of cutting mid-character. Relay input fields have a clear button. Error notices in the chat screen sit in the right position. Blurhash placeholders now match the dimensions of the loaded image instead of rendering at the wrong size. Disabled buttons are visible in both light and dark mode. The base design size matches the Figma source of truth.&lt;/p&gt;

&lt;h3 id=&#34;debug-view-2&#34;&gt;Debug View&lt;/h3&gt;

&lt;p&gt;A new debug screen surfaces logs from the Rust backend directly in the app ([whitenoise#417](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/417%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/417&amp;gt;)&lt;/a&gt;). For developers and testers, this eliminates the need to connect to ADB or read logcat output to diagnose issues.&lt;/p&gt;

&lt;h3 id=&#34;ci-pipeline-2&#34;&gt;CI Pipeline&lt;/h3&gt;

&lt;p&gt;Tests now shard four ways with Rust test coverage included ([whitenoise#419](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/419%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/419&amp;gt;)&lt;/a&gt;). A 10-minute timeout prevents stuck jobs from blocking the queue. APK builds run on every pull request. The release builder and Zapstore asset pipeline shipped alongside v0.3.0 and continue to work for this release.&lt;/p&gt;

&lt;h3 id=&#34;new-clients-and-tools-2&#34;&gt;New Clients and Tools&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;whitenoise-rs CLI.&lt;/strong&gt; A full CLI client and daemon that exposes the Rust backend directly from the command line ([whitenoise-rs#537](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/537%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/537&amp;gt;)&lt;/a&gt;). Commands cover identity management, accounts, groups, chats, messages, follows, users, profile, relays, settings, notifications, and streaming IPC. Includes end-to-end test suite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;wn-tui.&lt;/strong&gt; A terminal client for White Noise, written in Rust. Unicode-safe input, auto-growing composer, reactions, follows management, a status bar with display name and invite count, and a profile screen with bech32 npub conversion. For people who live in the terminal and prefer it that way. ([wn-tui](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui%3E%29&#34;&gt;https://github.com/marmot-protocol/wn-tui&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;We tested interoperability (including encrypted media) between the new Marmot typescript library with MDK apps using the pre-alpha Marmots web chat (and it worked!) &amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts%3E&#34;&gt;https://github.com/marmot-protocol/marmot-ts&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dr. Marmot.&lt;/strong&gt; A diagnostic tool that audits your Nostr identity for Marmot compatibility. Checks relay unification across kinds 10002, 10050, and 10051. Detects orphaned key packages. Prescribes fixes. Works on mobile. Has a personality layer called &amp;#34;Jeff mode&amp;#34; for when you want your diagnostics delivered as corporate wellness advice. ([dr.marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/dr.marmot%3E%29&#34;&gt;https://github.com/marmot-protocol/dr.marmot&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;protocol-2&#34;&gt;Protocol&lt;/h3&gt;

&lt;p&gt;The Marmot specification updated three MIPs:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-01&lt;/strong&gt;: Extension format v2 with QUIC varint encoding. Admin pubkeys changed from hex-encoded comma-separated strings to concatenated raw 32-byte x-only public keys.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-02&lt;/strong&gt;: Clarified post-join self-update sequencing with a warning about stale-state divergence risk.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-03&lt;/strong&gt;: NIP-44 replaced with ChaCha20-Poly1305 (described above). MIP-04 exporter label updated from &lt;code&gt;(&amp;#34;nostr&amp;#34;, &amp;#34;nostr&amp;#34;)&lt;/code&gt; to &lt;code&gt;(&amp;#34;marmot&amp;#34;, &amp;#34;encrypted-media&amp;#34;)&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&#34;sdks-2&#34;&gt;SDKs&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The MDK shipped three releases in this cycle. v0.6.0 added &lt;code&gt;clear_pending_commit&lt;/code&gt; for recovering from publish failures, ratchet tree inspection with public keys, and proper &lt;code&gt;max_past_epochs&lt;/code&gt; wiring. v0.7.0 exposed MIP-04 encrypted media through UniFFI bindings with &lt;code&gt;encrypt_media_for_upload&lt;/code&gt;, &lt;code&gt;decrypt_media_from_download&lt;/code&gt;, &lt;code&gt;create_media_imeta_tag&lt;/code&gt;, and &lt;code&gt;parse_media_imeta_tag&lt;/code&gt; ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;). v0.7.1 fixed MIP-04 file key derivation to use HKDF-Expand with the exporter secret as PRK ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A CI workflow now checks UniFFI binding coverage against the mdk-core public API surface on every pull request, using nightly rustdoc JSON to compare bound vs. unbound methods. Current coverage: 30/37 bindable methods (81.1%) ([mdk#212](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/212%3E%29%29.&#34;&gt;https://github.com/marmot-protocol/mdk/pull/212&amp;gt;)).&lt;/a&gt;
\
All four language bindings (Python, Ruby, Kotlin, Swift) received automated updates tracking 14 core MDK releases in this period.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The TypeScript SDK added a &lt;code&gt;KeyPackageManager&lt;/code&gt; class with &lt;code&gt;watchKeyPackages&lt;/code&gt; and &lt;code&gt;markUsed()&lt;/code&gt; tracking, typed domain errors replacing generic throws, &lt;code&gt;decryptGroupMessage&lt;/code&gt; (renamed from &lt;code&gt;readGroupMessage&lt;/code&gt;), debug logging via the &lt;code&gt;debug&lt;/code&gt; package, and an anti-fork fix that prevents automatic self-update in &lt;code&gt;joinGroupFromWelcome&lt;/code&gt;. MIP-04 support includes a &lt;code&gt;GroupMediaStore&lt;/code&gt; with event-driven caching, IMETA tag helpers, and per-file encrypt/decrypt methods ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;). The npm package was renamed from &lt;code&gt;@internet-privacy/marmots&lt;/code&gt; to &lt;code&gt;@internet-privacy/marmot-ts&lt;/code&gt; ([marmot-ts#59](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/59%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/59&amp;gt;)&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;added-2&#34;&gt;Added&lt;/h3&gt;

&lt;p&gt;- Message delivery status: sending, sent (with relay count), failed (with reason) ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;&lt;/a&gt;), [whitenoise#425](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/425%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/425&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Tap-to-retry for failed messages with automatic repositioning ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 encrypted media in UniFFI bindings for Kotlin/Swift/Python/Ruby ([mdk#215](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/215%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/215&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 encrypted media in TypeScript SDK with GroupMediaStore ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Chat system messages showing inviter on invite screens ([whitenoise#408](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/408%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/408&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Per-message sender name and avatar in group chats ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- CLI client and daemon for whitenoise-rs ([whitenoise-rs#537](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/537%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/537&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Key package compatibility validation before member adds ([whitenoise-rs#548](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/548%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/548&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Admin-only mutation enforcement for group operations ([whitenoise-rs#547](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/547%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/547&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- UniFFI bindings coverage CI checker ([mdk#212](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/212%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/212&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Swipe-to-reply with auto-focus and author-colored quotes ([#389](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/389%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/389&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media-only chat summary in chat list ([#414](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/414%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/414&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Clear button on relay input fields ([#412](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/412%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/412&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Debug view with Rust backend logs ([#417](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/417%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/417&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- APK builds on every pull request ([#401](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/401%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/401&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Follows support in wn-tui ([wn-tui#1](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/wn-tui/pull/1%3E%29&#34;&gt;https://github.com/marmot-protocol/wn-tui/pull/1&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- README pixel art ([#436](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/436%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/436&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;changed-2&#34;&gt;Changed&lt;/h3&gt;

&lt;p&gt;- MIP-03 encryption: NIP-44 replaced with ChaCha20-Poly1305 for kind:445&lt;/p&gt;

&lt;p&gt;- MIP-01 extension format v2 with QUIC varint encoding&lt;/p&gt;

&lt;p&gt;- MIP-04 exporter label updated; HKDF key derivation corrected to expand-only semantics ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MDK bumped to v0.7.1 with MIP-04 encrypted media support&lt;/p&gt;

&lt;p&gt;- TypeScript SDK npm package renamed from &lt;code&gt;@internet-privacy/marmots&lt;/code&gt; to &lt;code&gt;@internet-privacy/marmot-ts&lt;/code&gt; ([marmot-ts#59](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/59%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/59&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Message publishing replaced fire-and-forget with tracked delivery status and automatic retries ([whitenoise-rs#519](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/519%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/519&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Post-join self-update temporarily disabled to prevent stale-state divergence ([whitenoise-rs#562](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/562%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/562&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Home screen layout flattened with improved visual hierarchy ([whitenoise#441](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/441%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/441&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- OpenMLS bumped to 0.8.1&lt;/p&gt;

&lt;p&gt;- Base design size aligned to Figma ([#433](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/433%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/433&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- CI sharded 4-way with Rust tests and 10-min timeout ([#419](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/419%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/419&amp;gt;&lt;/a&gt;), [#431](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/431%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/431&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- &lt;code&gt;whitenoise-rs&lt;/code&gt;: groups and users split into focused submodules ([#541](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/541%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/541&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;fixed-2&#34;&gt;Fixed&lt;/h3&gt;

&lt;p&gt;- iOS crash from duplicate tracing initialization ([#430](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/430%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/430&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Messages lost during Welcome-to-subscription gap ([whitenoise-rs#526](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/526%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/526&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Late-epoch messages permanently marked failed ([whitenoise-rs#525](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/525%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/525&amp;gt;&lt;/a&gt;), [mdk#207](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/207%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/207&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Giftwrap subscriptions failing when inbox relay list missing ([whitenoise-rs#518](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/518%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/518&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Welcome accepted without key-package e-tag ([whitenoise-rs#539](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/539%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/539&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Subscriptions lost after external signer re-registration ([whitenoise-rs#512](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/512%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/512&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Delivery status preserved on echoed outgoing messages ([whitenoise-rs#559](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/559%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/559&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Retry status updates streamed to subscribers immediately ([whitenoise-rs#556](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/556%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/556&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Relay error propagation from sync_relay_urls ([whitenoise-rs#545](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs/pull/545%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs/pull/545&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media blurhash placeholder sizing to match loaded image dimensions ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Message bubble padding and group chat sender info display ([whitenoise#442](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/442%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/442&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- MIP-04 HKDF key derivation corrected to expand-only with exporter secret as PRK ([mdk#217](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk/pull/217%3E%29&#34;&gt;https://github.com/marmot-protocol/mdk/pull/217&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Signup bio field cut by keyboard ([#435](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/435%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/435&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Onboarding carousel text cut off ([#404](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/404%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/404&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Media modal blurhash rendering ([#397](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/397%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/397&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Npub ellipsis display ([#388](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/388%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/388&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Chat screen error notice positioning ([#409](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/409%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/409&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Translation fixes including relay validation messages ([#396](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/396%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/396&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- Duplicate DM chats with same peer ([#371](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/pull/371%3E%29&#34;&gt;https://github.com/marmot-protocol/whitenoise/pull/371&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- TypeScript SDK event listener setup order in group subscribe ([marmot-ts#55](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts/pull/55%3E%29&#34;&gt;https://github.com/marmot-protocol/marmot-ts/pull/55&amp;gt;)&lt;/a&gt;)&lt;/p&gt;

&lt;h3 id=&#34;contributors-14&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;JeffG (erskingardner), Pepi (josefinalliende), Danny M (dannym-arx), emir yorulmaz (untreu2), Javier G. Montoya S. (jgmontoya), hzrd149, gzuuus, Mubarak Auwal (mubarakcoded), JSKitty, Andrew (dechristopher).&lt;/p&gt;

&lt;h3 id=&#34;full-changelog-2&#34;&gt;Full Changelog&lt;/h3&gt;

&lt;p&gt;For the complete list of changes, see the changelogs in each repository:&lt;/p&gt;

&lt;p&gt;- [whitenoise](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise/blob/main/CHANGELOG.md%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise/blob/main/CHANGELOG.md&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [whitenoise-rs](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/whitenoise-rs%3E&#34;&gt;https://github.com/marmot-protocol/whitenoise-rs&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [mdk](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/mdk%3E&#34;&gt;https://github.com/marmot-protocol/mdk&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot%3E&#34;&gt;https://github.com/marmot-protocol/marmot&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;- [marmot-ts](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts%3E&#34;&gt;https://github.com/marmot-protocol/marmot-ts&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: [github.com/marmot-protocol/whitenoise/releases](https://github.com/marmot-protocol/whitenoise/releases)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagnose your setup&lt;/strong&gt;: [dr.marmot](&amp;amp;lt;&lt;a href=&#34;https://github.com/marmot-protocol/dr.marmot%3E&#34;&gt;https://github.com/marmot-protocol/dr.marmot&amp;gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Report issues&lt;/strong&gt;: [github.com/marmot-protocol/whitenoise/issues](https://github.com/marmot-protocol/whitenoise/issues)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community call&lt;/strong&gt;: First Tuesday of each month, 1700 UTC\
\
&lt;img src=&#34;https://blossom.primal.net/164d75a98eaf2e354a341fa746bad813fcce360b5315d9e9914c876f4e50cbe7.png&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://www.whitenoise.chat&#34;&gt;DOWNLOAD WHITE NOISE&lt;/a&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-05T20:40:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspmwnmksr3pjqgkxe2f69e0dej9mr0wwghm46t3mgvz0uvqf08t7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wkpr392</id>
    
      <title type="html">We’re LIVE. Join us here: https://meet.fulmo.org/marmot ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspmwnmksr3pjqgkxe2f69e0dej9mr0wwghm46t3mgvz0uvqf08t7szyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wkpr392" />
    <content type="html">
      We’re LIVE. Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T16:09:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxuf7463mx5kk8zn8jc7p7yhkvk62wfs2gyvyck2cdy24uy0hutuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wk38tee</id>
    
      <title type="html">Live in 2 minutes #nevent1q…xr37</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxuf7463mx5kk8zn8jc7p7yhkvk62wfs2gyvyck2cdy24uy0hutuqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wk38tee" />
    <content type="html">
      Live in 2 minutes &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T15:58:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsz8p5kgfgmcakef5ka4skq8ykn05yjy3mwtwu7l69e2v650vuzpqqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wszq5sq</id>
    
      <title type="html">⏰ 1 hour reminder. Get ready! #nevent1q…xr37</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsz8p5kgfgmcakef5ka4skq8ykn05yjy3mwtwu7l69e2v650vuzpqqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wszq5sq" />
    <content type="html">
      ⏰ 1 hour reminder. Get ready!&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqmhxr37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…xr37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-03-03T15:10:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wedte23</id>
    
      <title type="html">today is the day! 🥳 MARMOT COMMUNITY CALL If you are ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsq8fndawv028shxvvgdxr8es58h72l57dp7dqp5el8hwf0j3cx4jqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wedte23" />
    <content type="html">
      today is the day! 🥳&lt;br/&gt;&lt;br/&gt;MARMOT COMMUNITY CALL&lt;br/&gt;&lt;br/&gt;If you are interested in the future of private messaging, you can&amp;#39;t miss it.  &lt;br/&gt;&lt;br/&gt;Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  &lt;br/&gt;
    </content>
    <updated>2026-03-03T11:27:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsy7zx5x73p0jkhlnr4yzhe04nqtvfq3mtez2t98m288py97g7fzdgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4jwgx</id>
    
      <title type="html">🔔 COMMUNITY CALL What&amp;#39;s new, what we learned, and ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsy7zx5x73p0jkhlnr4yzhe04nqtvfq3mtez2t98m288py97g7fzdgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4jwgx" />
    <content type="html">
      🔔 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;What&amp;#39;s new, what we learned, and what&amp;#39;s next for the protocol?  Bring your questions.&lt;br/&gt;&lt;br/&gt;Tomorrow, Tuesday March 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;Join us here: &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/ae905b4a22cd422a54ad1ab9c4d79f18d8640f888d0dfea6696744c5a885f842.png&#34;&gt;  
    </content>
    <updated>2026-03-02T19:52:55Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrkgq9zdaey7ktt8cpapc56m8jwhuzcrgx89k7dlez057g7ag8h0czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzlwvf3</id>
    
      <title type="html">A lot happened in February. Here&amp;#39;s the full story 👇 ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrkgq9zdaey7ktt8cpapc56m8jwhuzcrgx89k7dlez057g7ag8h0czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wzlwvf3" />
    <content type="html">
      A lot happened in February. Here&amp;#39;s the full story 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzkmtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz6en9vfe82ctj0yknyvpjxc3gh6p9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…h6p9&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;A lot shipped in February. Project Sloth landed as White Noise v0.3.0, the complete Flutter frontend rebuild we&amp;#39;ve been working toward since last summer. MDK v0.6.0 hit crates.io and the TypeScript SDK published its first npm package the same week. Nearly 200 pull requests merged across the organization. And as the month closes, the team is gathering in Florianopolis for Bitcoin&#43;&#43; and a big planning session for what comes next.&lt;/p&gt;

&lt;h3 id=&#34;v0-3-0-project-sloth-ships-2&#34;&gt;v0.3.0: Project Sloth Ships&lt;/h3&gt;

&lt;p&gt;In January, Project Sloth sat at 48% feature parity with the old codebase. By February 23, it was done. White Noise v0.3.0 rolls up over 160 merged improvements into a single release that replaces polling with real-time streaming, adds Amber support for external key management, brings images and media sharing into chats, and delivers group messaging that works.&lt;/p&gt;

&lt;p&gt;v0.3.0 is a breaking release. All local data is wiped on upgrade because Marmot protocol changes and encrypted local storage made migration from the old unencrypted database too fragile to attempt safely.\
\
&lt;strong&gt;⚠️ Users need to back up their nsec before upgrading. Profiles and contacts restore automatically from Nostr relays, but messages and group state start fresh. This is a one-time reset. Future updates will preserve data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The release is available on Android via direct APK download and Zapstore. iOS is pending.&lt;/p&gt;

&lt;h3 id=&#34;what-s-new-in-v0-3-0-2&#34;&gt;What&amp;#39;s new in v0.3.0&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Real-time messaging. &lt;/strong&gt;Messages now arrive instantly over streaming connections instead of every 2-30 seconds via polling. The Rust SDK exposes a `subscribe_to_group_messages` API that delivers an initial snapshot plus live updates, and on the Flutter side a new `ChatStreamProvider` consumes the stream directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amber and external signers. &lt;/strong&gt;Full NIP-55 integration means your private key never needs to touch the app. Connect through Amber on Android and sign events externally. The login flow walks you through relay resolution step by step, with clear error states when relay lists are missing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Images and media.&lt;/strong&gt; Share images with upload progress tracking, blurhash placeholders, full-screen zoom, and automatic retry on failure. Media tags follow the MIP-04 v2 format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group messaging. &lt;/strong&gt;Create groups, add members, manage settings from the group info screen. The chat list shows sender names and latest message previews. MLS encryption provides forward secrecy across every group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search. &lt;/strong&gt;Find users by name with results expanding outward from your follows up to four degrees of separation. Results stream in as they&amp;#39;re found, with group co-members appearing alongside contacts. QR code scanning handles both nsec and npub formats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replies and drafts.&lt;/strong&gt; Reply to messages with scroll-to-referenced navigation. Typed text is saved per conversation and restores when you return, including reply context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read position and pinned chats&lt;/strong&gt;. The app remembers where you left off in each conversation and scrolls there when you return. No read receipts are broadcast. Long-press any conversation to pin or unpin it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rust SDK and Backend. &lt;/strong&gt;The Rust crate (`whitenoise-rs`) saw 38 merged PRs this month, with the heaviest work falling into three areas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key package infrastructure. &lt;/strong&gt;Multiple PRs addressed the full KeyPackage lifecycle: detecting relay publish failures and retrying, looping deletion until relays confirm removal, verifying ownership before skipping a publish, delayed cleanup management, rotation of old packages, and a new `KeyPackageStatus` enum for detecting incompatible packages before attempting to start a chat. This was one of the most common sources of silent failures in earlier versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MLS group state correctness. &lt;/strong&gt;Several critical fixes landed. Auto-committed proposals from `process_message` were not being published to relays, meaning other group members never saw them. The commit ordering was wrong: evolution events need to publish before calling `merge_pending_commit`, not after. And MLS self-update now fires immediately on joining a group, preventing stale key material from lingering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User search. &lt;/strong&gt;Built from scratch this month. The metadata lookup uses a 5-tier pipeline with batched relay fetches and NIP-65 discovery. Search starts with your follows, expands through social graph connections, includes group co-members, and falls back to connected relays. The radius cap was removed late in the month after testing showed it was too restrictive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login rework.&lt;/strong&gt; Login now blocks when any of the three required relay lists (NIP-65, inbox, outbox) are missing, instead of silently proceeding with broken state. A slow-login bug affecting accounts with large follow lists was identified and fixed. Subscriptions now recover properly after re-registering with an external signer.&lt;/p&gt;

&lt;h3 id=&#34;mdk-v0-6-0-2&#34;&gt;MDK v0.6.0&lt;/h3&gt;

&lt;p&gt;The Marmot Development Kit shipped its first formal versioned release on February 23, published to crates.io. This release includes 26 PRs merged in February alone, on top of the cumulative work since the repo was created.&lt;/p&gt;

&lt;p&gt;Highlights:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;OpenMLS 0.8.0. &lt;/strong&gt;Resolves security advisory GHSA-8x3w-qj7j-gqhf (improper tag validation).&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Postcard codec. &lt;/strong&gt;MLS storage switched from JSON to postcard for better performance and smaller payloads. This is a breaking change; existing databases need to be recreated.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;`clear_pending_commit`.&lt;/strong&gt; Lets callers roll back a failed relay publish without permanently blocking group operations. Discovered via a bug report from the Vector client team.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt; Self-update tracking.&lt;/strong&gt; New `SelfUpdateState` enum on the Group struct implements MIP-02 periodic key rotation.&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt; Admin pubkeys wire format. &lt;/strong&gt;Switched to raw 32-byte arrays per MIP-01 v2, removing the hex-encoded string format.&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;MIP-04 epoch fallback.&lt;/strong&gt; Media decryption now handles key rotations gracefully across MLS epochs.&lt;/p&gt;

&lt;p&gt;Least Authority has begun a security audit of MDK, following up on their earlier audit of the Marmot Protocol spec. Findings from the spec audit already drove several of the protocol changes described below. Expect MDK-specific fixes and hardening as this audit progresses.&lt;/p&gt;

&lt;p&gt;The MDK language bindings (Kotlin, Ruby, Python, Swift) all received automated updates tracking the v0.6.0 release. Danny M also has an open PR adding C and Zig bindings alongside a JavaScript target.&lt;/p&gt;

&lt;h3 id=&#34;typescript-sdk-first-published-package-2&#34;&gt;TypeScript SDK: First Published Package&lt;/h3&gt;

&lt;p&gt;`@internet-privacy/marmots` v0.1.0 shipped to npm on February 16. The library migrated to the ts-mls v2 API, added MIP compliance for key packages and commits (relay acknowledgment before state transitions, post-join self-updates, key package rotation), and set up changeset-based versioning with CI publishing.&lt;/p&gt;

&lt;p&gt;Alongside the SDK, hzrd149 bootstrapped `marmots-web-chat`, a reference web client deployed on GitHub Pages. A fully functional Marmot client running as a static site with zero infrastructure costs. Just HTML, JS, and a browser. The app went from first commit to working invite flows and group views in under three weeks. That a complete MLS-encrypted messenger can be deployed to free static hosting says something about the architecture. Nostr handles identity and transport. The SDK handles encryption client-side. There is nothing left that requires a server.&lt;/p&gt;

&lt;h3 id=&#34;protocol-spec-2&#34;&gt;Protocol Spec&lt;/h3&gt;

&lt;p&gt;Four PRs merged to the Marmot spec repo, all driven by MDK audit findings:&lt;/p&gt;

&lt;p&gt;- Hex encoding support removed. Base64 is now mandatory; hex must be rejected.&lt;/p&gt;

&lt;p&gt;- Required `i` tag on KeyPackage events with a fully specified RefHash algorithm (SHA-256 for the default ciphersuite).&lt;/p&gt;

&lt;p&gt;- NIP-70 protected tag removed from the KeyPackage example after testing showed many relays reject it.&lt;/p&gt;

&lt;p&gt;- MIP-01 extension format bumped to v2 with QUIC varint encoding and raw 32-byte admin keys. Image encryption and upload auth now use HKDF-based key derivation.&lt;/p&gt;

&lt;p&gt;Five open PRs signal where the protocol is heading. MIP-06 proposes multi-device support via External Commits with a two-phase out-of-band device pairing flow. A separate proposal introduces a shared group signing key for anti-spam protection on kind:445 events. And an early MIP for voice and video calling over SFrame is under discussion.&lt;/p&gt;

&lt;h3 id=&#34;dr-marmot-2&#34;&gt;Dr. Marmot&lt;/h3&gt;

&lt;p&gt;A new diagnostic tool launched this month at [dr.marmot](https://github.com/marmot-protocol/dr.marmot). Dr. Marmot examines a Nostr user&amp;#39;s relay and key package configuration and prescribes fixes. It checks for missing relay lists (NIP-65, inbox, outbox), orphaned key packages, and other common setup issues that prevent Marmot-based messaging from working. The tool has a web interface with mobile support and went from first commit to deployed in under a week.&lt;/p&gt;

&lt;h3 id=&#34;marmot-clients-beyond-white-noise-2&#34;&gt;Marmot Clients: Beyond White Noise&lt;/h3&gt;

&lt;p&gt;Three third-party clients now implement the Marmot Protocol, all shipping code in February.&lt;/p&gt;

&lt;h3 id=&#34;vector-2&#34;&gt;Vector&lt;/h3&gt;

&lt;p&gt;[Vector](https://github.com/VectorPrivacy/Vector) is a privacy-focused desktop messenger that integrated MDK in its v0.3.0 release back in December 2025, adding MLS-based group messaging with forward secrecy. In February, the team shipped SIMD acceleration across the board: hex encoding 65x faster, image preview generation up to 38x faster, message lookups 184x faster via binary search, and npub storage cut 99.6% through interning. Memory usage dropped too, with message structs shrinking from 472 to 128 bytes. Vector also ships a Mini Apps platform (WebXDC-based P2P games), a decentralized app store called The Nexus, PIVX wallet integration, and message editing. The `clear_pending_commit` fix in MDK v0.6.0 came from a bug report by the Vector team.&lt;/p&gt;

&lt;h3 id=&#34;pika-2&#34;&gt;Pika&lt;/h3&gt;

&lt;p&gt;[Pika](https://github.com/sledtools/pika) is a new MLS-encrypted messenger for iOS, Android, and desktop, built on MDK and nostr-sdk. The architecture uses a Rust core (`pika_core`) that owns all MLS state management and encryption, with thin native UI shells in SwiftUI and Kotlin connected via UniFFI and JNI bindings. State flows unidirectionally: UI dispatches actions to the Rust actor, which emits state snapshots back to the frontend. Pika shipped v0.5.3 on February 25 with file upload, drag-and-drop media support on desktop, and Cloudflare Workers deployment fixes. Still in alpha, but functional.&lt;/p&gt;

&lt;h3 id=&#34;burrow-2&#34;&gt;Burrow&lt;/h3&gt;

&lt;p&gt;[Burrow](https://github.com/CentauriAgent/burrow) takes a different angle: it implements Marmot for both human users and AI agents. Two interfaces ship together. A pure Rust CLI daemon with JSONL output mode handles automated and agent integration, while a Flutter app covers Android, iOS, Linux, macOS, and Windows. The agent side integrates with [OpenClaw](https://openclaw.ai) for AI participation in encrypted group chats with full tool access. WebRTC handles voice and video calls. Access control lists with audit logging manage contact and group permissions. Burrow appeared in late February and is the first Marmot client designed with machine-to-machine messaging as a primary use case.&lt;/p&gt;

&lt;h3 id=&#34;what-this-means-2&#34;&gt;What this means&lt;/h3&gt;

&lt;p&gt;Counting White Noise and hzrd149&amp;#39;s web reference client, five independent implementations now speak Marmot. Each one exercises a different part of the stack: native mobile, desktop, web, CLI, agent runtime. The protocol is getting real-world testing across platforms, languages, use cases, and runtime environments that no single team could cover alone.&lt;/p&gt;

&lt;h3 id=&#34;white-noise-website-2&#34;&gt;White Noise Website&lt;/h3&gt;

&lt;p&gt;The website picked up an LLM accessibility layer (llms.txt, structured data, dynamic sitemap, security.txt) and a fix for the Android APK download link pointing to the correct repository.&lt;/p&gt;

&lt;h3 id=&#34;bitcoin-florianopolis-2&#34;&gt;Bitcoin&#43;&#43; Florianopolis&lt;/h3&gt;

&lt;p&gt;The team is gathering at Bitcoin&#43;&#43; in Florianopolis at the end of the month. Beyond the conference itself, this is a dedicated planning session. With v0.3.0 shipped and the core feature set proven, the team is mapping out the next phase of development. More to share once the dust settles and priorities crystallize.&lt;/p&gt;

&lt;h3 id=&#34;in-progress-5&#34;&gt;In progress&lt;/h3&gt;

&lt;p&gt;A few things still in flight as the month closes. Tracked message delivery status will replace fire-and-forget publishing so users know when a message actually reaches relays. The fast-thumbhash PR proposes replacing BlurHash with a 12x faster alternative. And several subscription reliability fixes are being tested to eliminate blind windows during relay reconnection.&lt;/p&gt;

&lt;p&gt;On the spec side, the multi-device and anti-spam proposals are in active review.&lt;/p&gt;

&lt;h3 id=&#34;by-the-numbers-5&#34;&gt;By the Numbers&lt;/h3&gt;

&lt;p&gt;| Metric | Value |&lt;/p&gt;

&lt;p&gt;|--------|-------|&lt;/p&gt;

&lt;p&gt;| Merged PRs (org-wide) | ~195 |&lt;/p&gt;

&lt;p&gt;| Releases shipped | 3 (v0.3.0, MDK v0.6.0, marmot-ts v0.1.0) |&lt;/p&gt;

&lt;p&gt;| New repos launched | 2 (dr.marmot, marmots-web-chat) |&lt;/p&gt;

&lt;p&gt;| Active repos | 12 |&lt;/p&gt;

&lt;p&gt;| Issues opened | 50&#43; |&lt;/p&gt;

&lt;p&gt;| Issues closed | 40&#43; |&lt;/p&gt;

&lt;h3 id=&#34;contributors-17&#34;&gt;Contributors&lt;/h3&gt;

&lt;p&gt;Thanks to everyone who contributed this month: erskingardner, josefinalliende, jgmontoya, untreu2, dannym-arx, mubarakcoded, hzrd149, gzuuus, codeswot, JSKitty, alltheseas, Datawav, SubatomicPlanets, vladimir-krstic, RenAndKiwi, justinmoon, benthecarman, and dechristopher.&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re building on Nostr and want to add encrypted messaging, check out the [Marmot Protocol spec](https://github.com/marmot-protocol/marmot). The [TypeScript SDK](https://github.com/marmot-protocol/marmot-ts) and [MDK](https://github.com/marmot-protocol/mdk) are ready for integration. If you want to contribute to the reference implementation, [White Noise](https://github.com/marmot-protocol/whitenoise) is open for PRs.\
\
&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;h2 id=&#34;the-next-community-call-is-the-first-tuesday-of-march-at-1600-utc-2&#34;&gt;The next community call is the first Tuesday of March at 1600 UTC.&lt;/h2&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-03-01T15:37:56Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw</id>
    
      <title>Nostr event nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstpz6lt6tkyruayuszdnk0kcwhku5nqgum8tuea6twz3cnvzmk4ngzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w627dqw" />
    <content type="html">
      ⏳
    </content>
    <updated>2026-02-22T15:06:30Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqspcq24kt3jd39fdsqgzsrggrghqyckrxm7qw8n5pyyate39mtc8wczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wme0833</id>
    
      <title type="html">🖤</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqspcq24kt3jd39fdsqgzsrggrghqyckrxm7qw8n5pyyate39mtc8wczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wme0833" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs232qj4aj4y449w40cvxsyts2pgscgw7ntx00wx40wgsxeq0xxq9spzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgg4yd8s&#39;&gt;nevent1q…yd8s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🖤
    </content>
    <updated>2026-02-20T12:39:51Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqst596evn4khms64a0g22alammvvwy5pupeq6q9e6pn0n2ley6tvlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w64fv42</id>
    
      <title type="html">A lock doesn’t ask for your name. It only checks the key. A ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqst596evn4khms64a0g22alammvvwy5pupeq6q9e6pn0n2ley6tvlqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w64fv42" />
    <content type="html">
      A lock doesn’t ask for your name. It only checks the key. &lt;br/&gt;&lt;br/&gt;A chat app should be a door, not a border crossing.&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/bd6be5011f3e4986118298fe7ba71dbd63edec0ff28be2d7ab8c0128aa4e77d3.jpg&#34;&gt; 
    </content>
    <updated>2026-02-18T16:24:59Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8</id>
    
      <title>Nostr event nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswpdfmzck3lc943kjgrg9c8e9aj8pdnz7zh5pnwt59edyayhp8msqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7t4kq8" />
    <content type="html">
      Tying your chat to your phone number is a bug, not a feature
    </content>
    <updated>2026-02-17T16:14:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxfkg6s3vjykd2vg5xeuhltypjjk4wtytp8t7h55w9p2uaej9qhegzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whh8n7s</id>
    
      <title type="html">❤️</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxfkg6s3vjykd2vg5xeuhltypjjk4wtytp8t7h55w9p2uaej9qhegzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whh8n7s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyagqlkz8xupvrwvmetchsyhfvjxmwwscz46vreznvez79lz6g5tspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgfplyfc&#39;&gt;nevent1q…lyfc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;❤️
    </content>
    <updated>2026-02-15T15:47:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsfkxfksq67ycayehj37vtzp54e8csaa8tmk8qyvpd0938gperhacszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlh0tdw</id>
    
      <title type="html">🫶</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsfkxfksq67ycayehj37vtzp54e8csaa8tmk8qyvpd0938gperhacszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlh0tdw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspplwzghp5f6fcd7yxkhhpqj8evl0jmd6eqqcknsfqz3rud04l9ugs5z6m5&#39;&gt;nevent1q…z6m5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🫶
    </content>
    <updated>2026-02-15T15:46:32Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsy3tjntpm62fu9z6rgmaxt725sztl7m43juudraea3mdjcyc4cv2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpejp02</id>
    
      <title type="html">big release in two weeks!</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsy3tjntpm62fu9z6rgmaxt725sztl7m43juudraea3mdjcyc4cv2qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpejp02" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswgqmtqnxlx6dn9qn2ehztczzmzkk7gvvtumg3htd5fkqzdq68mkspzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg3ppge2&#39;&gt;nevent1q…pge2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;big release in two weeks! 
    </content>
    <updated>2026-02-15T15:45:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqszht57rcs4630qr073gp759pmq50pdrmdkdzfrez53w9j9m7julyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpaxylv</id>
    
      <title type="html">Switching takes effort... but that&amp;#39;s the price of autonomy ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqszht57rcs4630qr073gp759pmq50pdrmdkdzfrez53w9j9m7julyczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wpaxylv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstgyvu50uk3ldeu7m2jvk8ryn9sh3m9xmrn93ccq3098wr4facujcvlvg78&#39;&gt;nevent1q…vg78&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Switching takes effort... but that&amp;#39;s the price of autonomy 🖤
    </content>
    <updated>2026-02-15T15:44:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrtlc7mz0d8a3kagfau7nm32kw26m46e87m29jrh3wxht64kq9pjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wsatcjk</id>
    
      <title type="html">🫶</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrtlc7mz0d8a3kagfau7nm32kw26m46e87m29jrh3wxht64kq9pjszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wsatcjk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw7ejd0084t0v6xx27xvq8v340glr0refg3tryezw4k0c7swy2decpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg795v5l&#39;&gt;nevent1q…5v5l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;🫶
    </content>
    <updated>2026-02-15T15:37:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswntrvd2vs6289w3d6vdh9x74tc2w93h6rds8lz6p8rqumak3zapgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh78djf</id>
    
      <title type="html">More alive than ever. We will release an important update in two ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswntrvd2vs6289w3d6vdh9x74tc2w93h6rds8lz6p8rqumak3zapgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh78djf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw9l5wym8l4gzuudtlzmjt8plmvlyq8kw6k7w4fdmu96qzlz3f0eq8eyucj&#39;&gt;nevent1q…yucj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;More alive than ever. We will release an important update in two weeks and we are constantly publishing updates on our work: &lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqz5mtpwfkk7apdwpex7ar0vdhkcttddah8g6rv0ykhyetrv9cz66npde6kzune95erqv3kq52u8w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…2u8w&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;January has been one of our most productive months yet. The conference-free calendar gave the team a full month of uninterrupted focus on writing code. The results show across three major workstreams: the Sloth frontend rearchitecture, security audit fixes in MDK, and rapid progress on the TypeScript SDK.\
\
&lt;img src=&#34;https://blossom.primal.net/c8a121c2d8ba59ecfd0fe50b427c4cab16fd3c24e98576983302b79f0b1bce96.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Sloth: the big picture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sloth is a complete rebuild of the White Noise Flutter frontend with a new design system, cleaner architecture, and streaming-first data flow. The goal is a more maintainable codebase that&amp;#39;s easier to extend and a polished user experience with the new Slate design language. The name comes from our Costa Rica team gathering when the pig plans were deceived (long story, ask us on the community call).&lt;/p&gt;

&lt;p&gt;We&amp;#39;re tracking 81 features for parity with the current White Noise app. As of this writing, 39 features (48%) are fully implemented, 13 (16%) have backend support and need UI work, and 29 (36%) are yet to start. Progress is tracked in [issue #58](&lt;a href=&#34;https://github.com/marmot-protocol/sloth/issues/58&#34;&gt;https://github.com/marmot-protocol/sloth/issues/58&lt;/a&gt;). The plan is to merge Sloth into the main White Noise repo and ship it in #twoweeks.&lt;/p&gt;

&lt;p&gt;The streaming-first architecture is already paying off. Messages, reactions, and chat list updates flow in real-time, and the whole experience feels snappy. Clean data flow makes features easier to build and the app more responsive.&lt;/p&gt;

&lt;p&gt;Multi-account support is now working in Sloth. You can manage several profiles, each with its own keys and metadata, and switch between them seamlessly. The profile screens handle the full lifecycle from key viewing to QR sharing.&lt;/p&gt;

&lt;p&gt;We also took the opportunity to rethink settings from scratch. The redesigned screen puts connection and sharing front and center, makes theme switching seamless, and gives users real control over their relay configuration. Small details that add up to an app that feels more considered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design system: Slate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Slate is a novel visual concept built around layered, animated surfaces, and it&amp;#39;s beautiful. Think of it as sheets of material that slide, expand, and settle into place. Every interaction has considered motion: panels open from strips to full height then settle, modals expand from their anchor point, context menus wrap their origin and grow outward. The result feels fluid, intentional, and genuinely delightful to use. We&amp;#39;re incredibly proud of how this turned out.&lt;/p&gt;

&lt;p&gt;The design work wrapped up this month. Vlad delivered complete Figma specs covering the full component system: foundations and tokens (primitive and semantic colors, typography scales, spacing, shadows, motion durations and easing curves, haptics), the Slate container system (strip, fit, and full variants with header patterns, list patterns, and input behaviors), and detailed animation specs for every surface type. We&amp;#39;re now integrating these designs into the Flutter codebase, and Slate will ship as part of the Sloth release.&lt;/p&gt;

&lt;p&gt;On the implementation side, we shipped the semantic color system with full light/dark theming via ThemeExtension. All Material icons are replaced with our custom SVG icon set. We consolidated button variants into a unified WnButton component and built WnMenu, WnMenuItem, and WnDropdownSelector with smooth expanding animations. Widgetbook setup is in progress so designers can review components in isolation and verify edge cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security audit progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Least Authority security audit drove significant work in MDK this month. We merged over 25 PRs addressing audit findings and hardening the core. On the authorization front, we added admin checks for MLS commit messages and implemented comprehensive Nostr-based validations for message processing. Input validation now prevents memory exhaustion attacks, and we fixed edge cases around removed member commit processing.&lt;/p&gt;

&lt;p&gt;Performance saw meaningful improvements. The save_message function went from O(n) to O(1), which matters when conversations grow large. We fixed cache collision bugs and stale key entry issues in memory storage that were causing subtle reliability problems. Deterministic commit race resolution per MIP-03 ensures consistent behavior when multiple clients commit simultaneously. Failed messages now preserve their context and can be retried cleanly.&lt;/p&gt;

&lt;p&gt;On the protocol side, we added GREASE support for MLS extensibility, ensuring future protocol versions can add new features while maintaining compatibility with existing clients. Legacy code got a thorough cleanup: the 64-byte credential identity format and several other deprecated code paths are removed. We bumped rust-nostr to version 0.44 for the latest Nostr protocol support.&lt;/p&gt;

&lt;p&gt;Platform-specific fixes rounded out the month. SQLite mutex handling now runs cleanly on Android. Cross-compilation for Android got proper OpenSSL support, and Windows builds for UniFFI bindings are working again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) SDK saw major progress this month, driven by hzrd149 and gzuuus. They&amp;#39;ve been building out a complete TypeScript implementation of the Marmot protocol on top of ts-mls, and the work is paying off. The example chat app is now functional, demonstrating the full flow from key package creation through group messaging. Invite and join flows handle welcome messages properly, and client state migrated from JSON to binary serialization for better efficiency.&lt;/p&gt;

&lt;p&gt;Message history support is in active development, which will let applications load and display conversation history. An update to ts-mls v2.0.0-rc.4 is in progress, bringing the latest MLS protocol improvements. The SDK is becoming a viable option for web developers who want to add Marmot-based encrypted messaging to JavaScript and TypeScript applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What&amp;#39;s next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We know it&amp;#39;s been a while since the last release, and we appreciate your patience. The wait will be worth it.&lt;/p&gt;

&lt;p&gt;Several major features are close to landing. Start chat and chat info screens with follow/unfollow functionality are in review. Amber integration for NIP-55 external signer support is progressing, this has been the #1 most requested feature from you, and we&amp;#39;re thrilled to finally deliver it in the next release. Widgetbook setup will give designers a proper environment for component review.&lt;/p&gt;

&lt;p&gt;The push to feature parity continues. Media sending, replies, group creation, and notifications are the major gaps remaining. Once we hit critical mass, Sloth merges into White Noise and ships with the beautiful new Slate design. This will be a substantially bigger release than usual, and we think you&amp;#39;re going to love it. The security audit continues into Q1 with more fixes landing as findings are addressed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to everyone who contributed this month: josefinalliende, erskingardner, untreu2, jgmontoya, dannym-arx, mubarakcoded, hzrd149, gzuuus, and vladimir-krstic.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://blossom.primal.net/3d0a6637f0e9af5afbaa4c12c1267edfc4dc0f51c32abfe198b4f41c070d0d2b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re building on Nostr and want to add encrypted messaging, check out the [Marmot Protocol spec](&lt;a href=&#34;https://github.com/marmot-protocol/marmot&#34;&gt;https://github.com/marmot-protocol/marmot&lt;/a&gt;).\
\
The Sloth rewrite is happening at [marmot-protocol/sloth](&lt;a href=&#34;https://github.com/marmot-protocol/sloth&#34;&gt;https://github.com/marmot-protocol/sloth&lt;/a&gt;).\
\
For TypeScript developers, [marmot-ts](&lt;a href=&#34;https://github.com/marmot-protocol/marmot-ts&#34;&gt;https://github.com/marmot-protocol/marmot-ts&lt;/a&gt;) is shaping up nicely. We welcome contributors across all repos.&lt;/p&gt;

&lt;p&gt;The next community call is the first Tuesday of February at 1600 UTC.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-02-15T15:36:33Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsyqttetn6pvpryyjse4nv2erwrjze9emwpf7a2vtswtpv2z3nlfvszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwly85</id>
    
      <title type="html">... and they recover it with a backup.</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsyqttetn6pvpryyjse4nv2erwrjze9emwpf7a2vtswtpv2z3nlfvszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0whwly85" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstdn0y5fazgnehzeh8k7t8za7devwejwd2vhlqqcvea86nty7v6ecy2dcds&#39;&gt;nevent1q…dcds&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;... and they recover it with a backup.
    </content>
    <updated>2026-02-15T15:19:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxzx2cut43ul6ek26lesezzy5vj66ccsfllp6s6dvr5s93h7yznlszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgdl5mt</id>
    
      <title type="html">Your keys don&amp;#39;t ask &amp;#34;who are you?&amp;#34; They ask &amp;#34;can ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxzx2cut43ul6ek26lesezzy5vj66ccsfllp6s6dvr5s93h7yznlszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wgdl5mt" />
    <content type="html">
      Your keys don&amp;#39;t ask &amp;#34;who are you?&amp;#34; They ask &amp;#34;can you enter?&amp;#34;
    </content>
    <updated>2026-02-13T10:24:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrdlnppvetkyjccr4ud7gd0qjyuetdx4qhc9fx5d40fzrh35xtdfszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7wp8eg</id>
    
      <title type="html">Our founder Jeff has already replied but if you want more ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrdlnppvetkyjccr4ud7gd0qjyuetdx4qhc9fx5d40fzrh35xtdfszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w7wp8eg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd8n2g37zftu00fes3pzvn7p87fgtz48yrldyt5u8l4384h39n65cpp4mhxue69uhkummn9ekx7mqtdzy5w&#39;&gt;nevent1q…zy5w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Our founder Jeff has already replied but if you want more details, here is the latest monthly recap: &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://primal.net/whitenoise/marmot-protocol-monthly-recap-january-2026&#34;&gt;https://primal.net/whitenoise/marmot-protocol-monthly-recap-january-2026&lt;/a&gt;
    </content>
    <updated>2026-02-13T07:51:34Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsqx3x0xeu0elqrrapjywatre89fftn5nczlc53kj6jl635sj6ddqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6psrnn</id>
    
      <title type="html">We are happy to hear that everything went smoothly🫡</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsqx3x0xeu0elqrrapjywatre89fftn5nczlc53kj6jl635sj6ddqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w6psrnn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswf8xkkvuqtq2lxya0qeh4jf7tp46pzclpv5au2gmuss9jf5540fc5clvyv&#39;&gt;nevent1q…lvyv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;We are happy to hear that everything went smoothly🫡
    </content>
    <updated>2026-02-13T07:38:12Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsrv6v2haj4jac7tth5cry695ttxyfeue0vk9r7u0l3gf7836p3c7czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w32cwtu</id>
    
      <title type="html">We don&amp;#39;t need to replace centralized platforms. We just need ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsrv6v2haj4jac7tth5cry695ttxyfeue0vk9r7u0l3gf7836p3c7czyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w32cwtu" />
    <content type="html">
      We don&amp;#39;t need to replace centralized platforms. We just need to build our own exit.
    </content>
    <updated>2026-02-12T18:58:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsxgc0wnxtznr8xt9w6wzk824d4vvfp63692psgdh8l6fc68w2ch0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcp84h6</id>
    
      <title type="html">You use a key for your house. You use a key for your car. You ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsxgc0wnxtznr8xt9w6wzk824d4vvfp63692psgdh8l6fc68w2ch0qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcp84h6" />
    <content type="html">
      You use a key for your house. You use a key for your car. You should use a key for your social media. &lt;br/&gt;&lt;br/&gt;Keys grant access. IDs beg for permission. &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/95a01596e11b265747769f32932699b560f1733c70c26b57a1cafffd74e08875.png&#34;&gt;  
    </content>
    <updated>2026-02-11T12:25:40Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstvj0hh7n2smpclhj9xlt2v5qr4sg8vvtkt9aj93hjeyau3h8lfqszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0r9rxv</id>
    
      <title type="html">If you have to prove who you are to say what you think, you ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstvj0hh7n2smpclhj9xlt2v5qr4sg8vvtkt9aj93hjeyau3h8lfqszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w0r9rxv" />
    <content type="html">
      If you have to prove who you are to say what you think, you aren&amp;#39;t speaking freely. &lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qqsqtwnpen9fv2n6lh59rwfm9vkgt7njkmnjvmzh7hr2se0yxla48kqw9t4e0&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…t4e0&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; RIP Discord &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/66af6bc9feaca1d4e9d8ad59d1e26c7ab1309e7c56684d2756aae76c40bb8904.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-02-10T16:29:56Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsz28d72qzsewhekwv29x90qpdcqjw46j3zqmm6jrk3gj3kcnneulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wanl689</id>
    
      <title type="html">“Building software is hard enough. But building software that ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsz28d72qzsewhekwv29x90qpdcqjw46j3zqmm6jrk3gj3kcnneulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wanl689" />
    <content type="html">
      “Building software is hard enough. But building software that doesn&amp;#39;t spy on users, that doesn&amp;#39;t steal from users, that doesn&amp;#39;t trick users, that&amp;#39;s a next-level effort.” &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqppemhxue69uhkummn9ekx7mp0qy0hwumn8ghj7un9d3shjtn5damkzunywdkxjcn9wf68jtnrdakj7wq9cvu&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…9cvu&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; 
    </content>
    <updated>2026-02-10T07:02:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsv90cvr0l47ura86rug9y0ff0pser5h8a5xx3sdjaqk3wtc69wlhczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w26xtvq</id>
    
      <title type="html">A new conversation with @nprofile…8p0e that is worth reading ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsv90cvr0l47ura86rug9y0ff0pser5h8a5xx3sdjaqk3wtc69wlhczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0w26xtvq" />
    <content type="html">
      A new conversation with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; that is worth reading 🔥&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqyjcfdvduhq6r9wfc82mnt94mksmedv3hk2umwwskhwunfw3jj6cm0v3jj6ctw945kuar9wfmxjeth94mkjarg94mks6t5v5kk6ctc945xjmrvv438yctwvsq7fxk7&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…fxk7&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;#&lt;/p&gt;

&lt;p&gt;Max Hillebrand credits his mother for his journey into the freedom space. Her free spirit helped Max understand the value of helping others from a young age. Joining the workforce early sparked a curiosity in economics, which would set Max on the road to becoming one of Europe’s key privacy advocates and FOSS project managers.&lt;/p&gt;

&lt;p&gt;While most cypherpunks conclude that free, open-source privacy-preserving tools must be built to protect our freedoms through a love for code, Austrian economics proved the jumping-off point for Hillebrand.&lt;/p&gt;

&lt;p&gt;After reading &lt;em&gt;For a New Liberty&lt;/em&gt; by Murray Rothbard, Hillebrand became certain of why freedom is not just important, but why it is the logical conclusion of human affairs.&lt;/p&gt;

&lt;p&gt;“A friend helped me to install Ubuntu as my first Linux operating system. And I then really was wondering why I didn’t have to pay for this software.”&lt;/p&gt;

&lt;p&gt;Hillebrand recommends Stefan Kinsella&amp;#39;s book &lt;a href=&#34;https://cdn.mises.org/15_2_1.pdf&#34;&gt;&lt;em&gt;Against Intellectual Property&lt;/em&gt;&lt;/a&gt; as a definitive argument for the free software movement from the Austrian economics tradition.&lt;/p&gt;

&lt;p&gt;“Once I understood that combination of Austrian economics and cypherpunk free software,” he says, “that&amp;#39;s when I really understood the value proposition of Bitcoin, and that changed everything. Since then, I made it my mission to build free and open source software that is designed specifically to increase the amount of freedom in people&amp;#39;s lives.”&lt;/p&gt;

&lt;h1 id=&#34;what-does-freedom-actually-mean-2&#34;&gt;What does freedom actually mean?&lt;/h1&gt;

&lt;p&gt;In the 1970s, pseudonymous writer Rayo created the philosophy of Vonu, meaning ‘voluntary, not vulnerable.’ Hillebrand subscribes to Rayo’s metric of success for freedom.&lt;/p&gt;

&lt;p&gt;Specifically, he called it the ‘mean time to harassment’. Or in other words, ‘when was the last time that you were stolen from?’ The longer this number or the larger this time frame, the freer you are. This could be the last time you were punched in the face, the last time someone stole your watch, when taxes were last levied against you, or when you last asked permission to drive a car or register a vehicle.&lt;/p&gt;

&lt;p&gt;Hillebrand contends that this shows us that most people aren&amp;#39;t really that free. We have to ask for permission all the time. Well, we have to pay taxes all the time. Basically, every purchase that you make has at least a value-added tax on top.&lt;/p&gt;

&lt;p&gt;He continues, “Bitcoin is a beautiful increase in your mean time to harassment. If you run a full node, then you are no longer susceptible to the changes of monetary policy from politicians. The inflation of the US dollar no longer affects you if you are using a money that simply doesn&amp;#39;t have an inflation.”&lt;/p&gt;

&lt;p&gt;Using cryptography to ensure no one can steal from you or harass you through surveillance became a key focus for Hillebrand’s work (Wasabi Wallet, ZkSNACKs, Sound Money Solutions).&lt;/p&gt;

&lt;p&gt;When asked about his work on the new decentralized, encrypted group chat app, Hillebrand shared the story behind the name White Noise.&lt;/p&gt;

&lt;p&gt;“Static is a kind of chaotic neutral. You’d see it on your television in the old days, those black and white pixels. Then you just hear a noise, something that&amp;#39;s incomprehensible to the human ear. That&amp;#39;s basically what cryptography does. It takes a message that you and I can read, but it garbles it in such a way that people other than you and me get no information. Zero.”&lt;/p&gt;

&lt;h1 id=&#34;is-privacy-under-attack-2&#34;&gt;Is Privacy Under Attack?&lt;/h1&gt;

&lt;p&gt;Privacy is the ability to selectively reveal yourself to the world, or, in other words, privacy means that you can choose what to say and to whom you say that.&lt;/p&gt;

&lt;p&gt;Hillebrand believes that privacy is a core tenet of the human experience. “I don&amp;#39;t think that privacy is a right or just a fact of nature. It&amp;#39;s how the universe is organized,” he says.&lt;/p&gt;

&lt;p&gt;As for whether people try to prevent you from having the choice of what to say to whom, the answer is yes. Hillebrand explains that when you intend to send a message only to one person, three-letter agencies can just scoop it up and store those messages for later analysis on a scale that is absolutely unfathomable. We&amp;#39;re talking about terabytes of data per person.&lt;/p&gt;

&lt;p&gt;This is not the kind of coercive surveillance where others hack into your computer and get the data out. Where it gets a bit more pernicious, he says, is with the voluntary revelation of too much information.&lt;/p&gt;

&lt;p&gt;Hillebrand cites the example of how, during pre-surveillance capitalism on the web, a 12-year-old kid from India could talk to a gray-beard wizard in San Francisco to design revolutionary new protocols. But Web 2.0, specifically Facebook, changed matters.&lt;/p&gt;

&lt;p&gt;Facebook profiles normalized using your real name for your profile, as well as sharing your location, images, and even more sensitive information about your social graph. Sharing a large amount of data publicly became the standard mechanism for those looking for jobs or new social interactions. Now, they’ve become so normalized that employers and new social contacts expect access to your background and personal data. And the profitability of this extractive approach has meant Big Tech has not been incentivized to create alternatives that preserve privacy.&lt;/p&gt;

&lt;p&gt;“Building software is hard enough,” explains Hillebrand. “But building software that doesn&amp;#39;t spy on users, that doesn&amp;#39;t steal from users, that doesn&amp;#39;t trick users, that&amp;#39;s a next-level effort.”&lt;/p&gt;

&lt;p&gt;Yet, he remains hopeful because now we have more tools and technologies that help us with creating new, more secure alternatives — Bitcoin, torrents, Tor, and master encryption.&lt;/p&gt;

&lt;p&gt;The more important shift, Hillebrand contends, is for more people to be conscious about their lack of privacy. If you can question whether you really need to share certain information, you can start your privacy journey.&lt;/p&gt;

&lt;p&gt;“With this type of mindset, you can go through all of the technologies that you use, scroll through your phone, and see the apps that are installed. You can replace your entire stack of tools with something that is more secure, more private, and more freedom-preserving — encrypted email, VPNs, GrapheneOS, and even Organic Maps.”&lt;/p&gt;

&lt;h1 id=&#34;the-value-of-parallel-2&#34;&gt;The Value of Parallel&lt;/h1&gt;

&lt;p&gt;The value proposition of the FOSS projects Hillebrand runs are parallel options. White Noise is not designed to replace Signal, Telegram, or WhatsApp, he says. Even if just a few individuals use it at first, it is still worth pursuing these goals.&lt;/p&gt;

&lt;p&gt;The solution to collectivist punishment is to have two realms. The first is the totalitarian realm of politics, of violence, of coercion, of theft, of intimidation, and we have the second realm of view of free interactions, voluntary choices, collaboration, and production. It is always possible to have one foot in each of these realms.&lt;/p&gt;

&lt;p&gt;“You can show up at the party meeting yourself and cheer and clap and sing the hymns. But then, at night, you meet with your friends in the basement. And, you drink the liquor that was made illegal. And you teach your kids about reason and about poetry and the beautiful aspects of life.”&lt;/p&gt;

&lt;p&gt;What we need, he says, is to have the tools available and to make sure that the people who do want to have at least parts of their life not surveilled, at least parts of their lives protected, can thrive.&lt;/p&gt;

&lt;h1 id=&#34;white-noise-as-a-parallel-space-2&#34;&gt;White Noise as a Parallel Space&lt;/h1&gt;

&lt;p&gt;Most people would claim to have nothing to hide. But what about sharing pictures of your children? You could control access by sending them in an encrypted chat group to your family. Other people and mega-corporations don’t need access.&lt;/p&gt;

&lt;p&gt;And what about our work? We oftentimes need to, you know, talk about details of a strategy, for example, how do we announce our new product to the world? And, of course, an announcement strategy should be kept private.&lt;/p&gt;

&lt;p&gt;Keeping sensitive information private (e.g., legal or health data) is also important. These are just some of the many reasons we built a parallel tool with White Noise. And of course, these tools should be open source with closed channels to report possible compromises or bugs.&lt;/p&gt;

&lt;p&gt;Eventually, I see more people finding apps like White Noise. I think the best marketing agencies of Freedom Tech are actually the thieves. If someone steals from you or if the government becomes tyrannical, then you will be looking for solutions.\
\
&lt;img src=&#34;https://blossom.primal.net/ec59f42c8de56a77b4818287f6565c1aa516c79094dad38eb8785fa3256c2c8b.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;h1 id=&#34;next-steps-2&#34;&gt;Next Steps&lt;/h1&gt;

&lt;p&gt;The most exciting part of the White Noise project for Hillebrand is not the capabilities of the app itself; it is the Marmot protocol, which underpins the tech.&lt;/p&gt;

&lt;p&gt;“White Noise is the first application to really go deep in this protocol and stack, but there are already many, like tens of other apps and projects that are highly interested in adding this type of encryption and message delivery to their own application.”&lt;/p&gt;

&lt;p&gt;Hillebrand cites Tubester as one example of an app vibe-coded in a single weekend that is working on the Marmot protocol. Tubester is basically a YouTube for kids to create and share video content safely. Obviously, parents would be concerned if any random stranger on the Internet could see the videos of their kids and start messaging them. Marmot’s strong encryption means users can share videos with the intended recipients only.&lt;/p&gt;

&lt;p&gt;In the future, other Nostr applications like Primal, like Amethyst, like Damos, and others are actively researching how they can add Marmot into their own stack.&lt;/p&gt;

&lt;p&gt;“Interoperability and the tooling of a parallel space has never been possible before,” Hillebrand concludes. “I don&amp;#39;t care that much about White Noise, but I very much care about having a secure messaging environment or content sharing environment on the Nostr protocol at large. I think others will care too.”\
\
&lt;img src=&#34;https://blossom.primal.net/c8a121c2d8ba59ecfd0fe50b427c4cab16fd3c24e98576983302b79f0b1bce96.jpg&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;

&lt;p&gt;Interview by:\
\
&lt;a href=&#34;https://totallyhumanwriter.com/home-2426&#34;&gt;Philip Charter is a totally human author&lt;/a&gt; , editor, and writer for leaders and companies in the freedom tech space. He successfully escaped the bad British weather and now lives in Gran Canaria, Spain.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-02-09T17:44:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs9qsrkuqy6scahsvdrw0zlyz38f63t7rme7yjsy93avj6d5px55tqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjsjjfc</id>
    
      <title type="html">original interview @nprofile…8xhx @nprofile…e088 ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs9qsrkuqy6scahsvdrw0zlyz38f63t7rme7yjsy93avj6d5px55tqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wjsjjfc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqt2akla&#39;&gt;nevent1q…akla&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;original interview &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Efrat Fenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyv8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99uq3jamnwvaz7tmswfjk66t4d5h8qunfd4skctnwv46z7qpqzuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsfce088&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;jeffg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…e088&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=vCr6U0vuqVY&#34;&gt;https://www.youtube.com/watch?v=vCr6U0vuqVY&lt;/a&gt;
    </content>
    <updated>2026-02-06T13:03:40Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4vt9z</id>
    
      <title type="html">If you have nothing to hide, you have no private life. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs0zqerqf7uyx79zutz0jhwr0zs9dnyz9320ym9vlggsfpke9lqanqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq4vt9z" />
    <content type="html">
      If you have nothing to hide, you have no private life. &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/b3b7862d65453db898b9a4947165087476be8b39ca75df634d106f4dac997cca.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-06T13:00:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsf4uycaattu085w5dpp6tuend270rphxhtp7s065065l6k3r5g2fgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4rmny</id>
    
      <title type="html">gm</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsf4uycaattu085w5dpp6tuend270rphxhtp7s065065l6k3r5g2fgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wr4rmny" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvj2g72r9kx07qm6q4vfh9rlsym3wr2kr2n352756dwd50myf9zespzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgmpfret&#39;&gt;nevent1q…fret&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;gm
    </content>
    <updated>2026-02-06T09:33:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs26ycrkuj35aznqfyjgn2uxu6mzln49ujwm0ahr49dmrgqfxyee7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcq454e</id>
    
      <title type="html">Not to ruin the party but hodling bitcoin &amp;gt; hodling shares of ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs26ycrkuj35aznqfyjgn2uxu6mzln49ujwm0ahr49dmrgqfxyee7qzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wcq454e" />
    <content type="html">
      Not to ruin the party but hodling bitcoin &amp;gt; hodling shares of bitcoin companies treasuries &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/d45f2fed20e87f6d0b33d1da760a945ea5002331bf2a34a2f4e180579691cc33.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-05T16:53:59Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsz7m4xe52uy29fatpljneytvj92qwfc2xpz5t4s2da4x46v059euczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wswzrww</id>
    
      <title type="html">Hi! What microphone? The yellow dot indicates that app is from ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsz7m4xe52uy29fatpljneytvj92qwfc2xpz5t4s2da4x46v059euczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wswzrww" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstcnaa5yvpvfpgmpp46c2kmcnu7fgm8d4yk6aqk54vzakwkyen37cpp4mhxue69uhkummn9ekx7mqy7rwsg&#39;&gt;nevent1q…rwsg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hi! What microphone? The yellow dot indicates that app is from TestFlight
    </content>
    <updated>2026-02-04T20:45:37Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsdtddd85ns26du55p90dw3mu3qmg9gvk2sg0vxfqsz7nm85dkumnqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtn2cdp</id>
    
      <title type="html">Your identity is a key you hold, not a profile we host. ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsdtddd85ns26du55p90dw3mu3qmg9gvk2sg0vxfqsz7nm85dkumnqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wtn2cdp" />
    <content type="html">
      Your identity is a key you hold, not a profile we host. &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/701ce326d1ff76c89fd423659729aef5a6fe056443b45137df23a04bdc0997da.png&#34;&gt;  
    </content>
    <updated>2026-02-04T14:03:16Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw</id>
    
      <title>Nostr event nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqswq2thqck3q8xl69zuy0reljasduunce5ehmepaxg08ga6s5x9ywgzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wre2zcw" />
    <content type="html">
      GM. It’s a good day to write code that survives the server.
    </content>
    <updated>2026-02-04T09:17:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsgpr2uffrfytxprwanv8pvph6h37vx6yzzz9zn28v65uzmujzx4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqrxx2l</id>
    
      <title type="html">Signal app outage during the Marmot call. You really can&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsgpr2uffrfytxprwanv8pvph6h37vx6yzzz9zn28v65uzmujzx4dszyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wqrxx2l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxttqxq7s5ght65l4s38gtmcr6tk3x5gvcadj3flmapdzalxj3kdq633p7z&#39;&gt;nevent1q…3p7z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Signal app outage during the Marmot call. You really can&amp;#39;t make this stuff up.&lt;br/&gt;&lt;br/&gt;Join us:) &lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;
    </content>
    <updated>2026-02-03T16:24:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqstgwj9saajhwggt4smz7mrh6e4wzt77guaww8e653cd2tzzgdnpqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq9rv3n</id>
    
      <title type="html">Signal app outage during the Marmot call. You really can&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqstgwj9saajhwggt4smz7mrh6e4wzt77guaww8e653cd2tzzgdnpqczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wq9rv3n" />
    <content type="html">
      Signal app outage during the Marmot call. You really can&amp;#39;t make this stuff up. 
    </content>
    <updated>2026-02-03T16:23:33Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs8euatq47masum67geg3ky5paxn05rwursuexn0v9985ck5pecdaczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlcqr2w</id>
    
      <title type="html">Join us! https://meet.fulmo.org/marmot #nevent1q…rlrm</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs8euatq47masum67geg3ky5paxn05rwursuexn0v9985ck5pecdaczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wlcqr2w" />
    <content type="html">
      Join us!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzqawhxlp5wfr3q2wyfpmtxvxj9ppg3fp80x6erghdfk4pcmq8a7hhqqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9g8krlrm&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrm&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt; 🫂 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;Updates on the protocol and what&#39;s coming next. Bring your questions. &lt;br/&gt;&lt;br/&gt;📅 Today, Tuesday Feb 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f82bbca761e3dc9bf8d057ee0e435b4c16c494c83216febb082c7cc4a7f43593.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-02-03T16:02:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsy35ks5wupc39l6qzzg0j45kt8f8j60y4l82tv0l8uhevzkmvlvuczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wllnhaj</id>
    
      <title type="html">We finally have the technology to build our freedom. Money no one ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsy35ks5wupc39l6qzzg0j45kt8f8j60y4l82tv0l8uhevzkmvlvuczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wllnhaj" />
    <content type="html">
      We finally have the technology to build our freedom. Money no one can stop. Words no one can delete.&lt;br/&gt;&lt;br/&gt;🫂 &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwv9a85ctdduhxuet59uqzpdlddzcx9hntfgfw28749pwpu8sw6rj39rx6jw43rdq4pd276vhu7r8p0e&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Max&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8p0e&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7etyv4hzumn0wd68ytnvv9hxgqgdwaehxw309ahx7uewd3hkcqpqdg6es53r3hys9tk3n7aldgz4lx4ly8qu4zg468zwyl6smuhjjrvsm58xhx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Efrat Fenigson&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…8xhx&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;br/&gt;&lt;video controls width=&#34;100%&#34; class=&#34;max-h-[90vh] bg-neutral-300 dark:bg-zinc-700&#34;&gt;&lt;source src=&#34;https://blossom.primal.net/f28f299fd87e1ea082aa6b21bc5dfcdc4b3e82415521c44dd6a315af86666411.mp4&#34;&gt;&lt;/video&gt; 
    </content>
    <updated>2026-02-03T11:30:16Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh5f2y7</id>
    
      <title type="html">🫂 COMMUNITY CALL Updates on the protocol and what&amp;#39;s coming ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqs0n9f5p23nt9ml5s9248qcqaxnnvm37cz7l54dehthgs327th7n9gzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh5f2y7" />
    <content type="html">
      🫂 COMMUNITY CALL &lt;br/&gt;&lt;br/&gt;Updates on the protocol and what&amp;#39;s coming next. Bring your questions. &lt;br/&gt;&lt;br/&gt;📅 Today, Tuesday Feb 3, 16:00 UTC.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://meet.fulmo.org/marmot&#34;&gt;https://meet.fulmo.org/marmot&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f82bbca761e3dc9bf8d057ee0e435b4c16c494c83216febb082c7cc4a7f43593.jpg&#34;&gt; 
    </content>
    <updated>2026-02-03T10:38:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqsg2msmpjmvhcpzvmh5wjgx797l5pdwdpxln8ducvvgr2mc5a9hfkczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh3wndu</id>
    
      <title type="html">In the digital age, we’re more connected than ever and less ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqsg2msmpjmvhcpzvmh5wjgx797l5pdwdpxln8ducvvgr2mc5a9hfkczyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0wh3wndu" />
    <content type="html">
      In the digital age, we’re more connected than ever and less free than we’ve ever been.&lt;br/&gt;&lt;br/&gt;We’ve grown used to it.&lt;br/&gt;&lt;br/&gt;Used to being watched.&lt;br/&gt;&lt;br/&gt;Used to being tracked, profiled, manipulated.&lt;br/&gt;&lt;br/&gt;We hand over our phone numbers, our metadata, our lives... not because we want to, but because we think we have no other choice.&lt;br/&gt;&lt;br/&gt;Surveillance has become the default.&lt;br/&gt;&lt;br/&gt;Vulnerability is now expected.&lt;br/&gt;&lt;br/&gt;Privacy is treated like a luxury. Or worse, a threat.&lt;br/&gt;&lt;br/&gt;Big tech sells us “secure” apps while mining our behavior.&lt;br/&gt;&lt;br/&gt;Governments speak of “safety” while expanding their power to listen in.&lt;br/&gt;&lt;br/&gt;Even the platforms once built to protect us have been co-opted, regulated, or compromised.&lt;br/&gt;&lt;br/&gt;We celebrate financial freedom while our conversations are still wide open.&lt;br/&gt;&lt;br/&gt;We trust tools that require phone numbers and cloud backups then act surprised when they leak.&lt;br/&gt;&lt;br/&gt;We encrypt our money, but not our voices.&lt;br/&gt;&lt;br/&gt;But privacy is not a side quest.&lt;br/&gt;&lt;br/&gt;It’s not optional.&lt;br/&gt;&lt;br/&gt;It’s the foundation.&lt;br/&gt;&lt;br/&gt;True digital freedom means having control over what you say, who you are, and who gets to listen.&lt;br/&gt;&lt;br/&gt;It means resisting the normalization of constant surveillance.&lt;br/&gt;&lt;br/&gt;It means building and using tools that don’t compromise.&lt;br/&gt;&lt;br/&gt;That’s why we built White Noise.&lt;br/&gt;&lt;br/&gt;A messenger with no numbers, no emails, no identities forced on you.&lt;br/&gt;&lt;br/&gt;Just encrypted, censorship-resistant communication on a decentralized network.&lt;br/&gt;&lt;br/&gt;No ads. No gatekeepers. No backdoors.&lt;br/&gt;&lt;br/&gt;Because in a world where surveillance is the norm, privacy is resistance.&lt;br/&gt;&lt;br/&gt;And without privacy, there is no freedom.&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/bf010405d039486ea116c3b75a216340ca1134244aa9c7855281fd3a22ba20b3.jpg&#34;&gt; 
    </content>
    <updated>2025-10-06T17:45:44Z</updated>
  </entry>

  <entry>
    <id>https://njump.cloud.vinney.xyz/nevent1qqst9ygr9tp66rgdu4x7y7g7x444vx7e5udm0sntgrf7u6j09pptulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ww28g84</id>
    
      <title type="html">It seems 0xchat made a custom implementation that&amp;#39;s not ...</title>
    
    <link rel="alternate" href="https://njump.cloud.vinney.xyz/nevent1qqst9ygr9tp66rgdu4x7y7g7x444vx7e5udm0sntgrf7u6j09pptulqzyp6awd7rguj8zq5ugjrkkvcdy2zz3zjzw7d4jx3w6nd2r3kq0ma0ww28g84" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsysd4js8hjc3guynulauhl0plfad2amxcnq8wwu32az97rqjm6jhc8dfukv&#39;&gt;nevent1q…fukv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It seems 0xchat made a custom implementation that&amp;#39;s not compatible with ours.&lt;br/&gt;Would be great to align tho.
    </content>
    <updated>2025-07-10T10:35:21Z</updated>
  </entry>

</feed>