Avatar
Forever Laura
0114bb11dd8eb89bfb40669509b2a5a473d27126e27acae58257f2fd7cd95776
I’m either thinking about Italian food or the economic financial revolution.
Replying to Avatar White Noise

Aaand... we’re back with the monthly recap 😎

December was a big month for us: two conference talks, some real face time as a team, and solid progress toward real-time messaging.

🎤 Conferences and Speaking

- @Btrust Dev Day 🚀 Josefina + Javier presented MIP-5: private mobile notifications without leaking metadata (reliable push, hidden social graph)

Watch the presentation: https://www.youtube.com/watch?v=bDxhY5p1yKQ&t=6360s

- Africa Bitcoin Conference: nostr:nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqpzamhxue69uhhyetvv9ujuct60fsk6mewdejhgtcppemhxue69uhkummn9ekx7mp0gf8npz introduced Marmot and why MLS-based group encryption brings real group messaging to Nostr.

Interested? The talk is here: https://www.youtube.com/watch?v=g2qKOw0xWVU&t=3280s

- nostr:nprofile1qqspwwwexlwgcrrnwz4zwkze8rq3ncjug8mvgsd96dxx6wzs8ccndmcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszxrhwden5te0ve5kcar9wghxummnw3ezuamfdejj7n8dex9 also ran a two-hour hands-on workshop on building with Nostr and Marmot, unfortunately this was not recorded.

🏝️Team Gathering in Mauritius

With most of the team together for the conferences, we held a team meeting to discuss the streaming architecture work now underway.

Beyond the technical sessions, we answered questions from conference attendees curious about encrypted messaging on Nostr, met potential collaborators, and got to know each other better outside of GitHub and video calls.

👥 Community Call Highlights

The December community call (first Tuesday of each month, 1700 UTC) covered local WebSocket notifications and the battery and reliability tradeoffs for keeping connections alive on mobile.

We also did a deep dive on the privacy design decisions behind MIP-5.

🧩 The highlight was introducing Tubestr, the first non-chat Marmot client: Tubestr is a private video sharing app designed for kids to share their creations with a trusted circle only. Check it out at https://www.tubestr.app/

🔧Technical Progress

Real-Time Messaging Architecture

Until now, White Noise polled for new messages every 2 seconds in the foreground and every 30 seconds in the background.

This works, but it means messages never arrive instantly and background delivery feels sluggish.

The streaming architecture work underway will change this: messages arrive the moment they're sent.

This is early work that will roll out over several releases. The groundwork includes a new subscribe_to_group_messages API that delivers an initial snapshot plus live updates for new messages, reactions, and deletions.

On the Flutter side, a new ChatStreamProvider consumes the Rust SDK stream directly, handling sorting and member resolution.

We also added an enriched chat list API that returns summaries with latest message previews, and fixed message reordering loops by using stable sorting with createdAt plus message id as a tiebreaker.

📲 Android Platform Stability

Several fixes this month target real-world Android issues.

Notifications weren't arriving after device restart because the foreground service only initialized the Rust library without the full database configuration.

We created a WhitenoiseInitService that properly initializes the backend from both the foreground service and the main app, making it safe to call from either entry point.

We also fixed 🧼 data cleanup on uninstall so chats and profiles no longer persist after reinstalling, simplified the battery optimization permission flow to avoid stuck denial loops, and added graceful camera permission handling with an "Open Settings" link when access is denied.

💅 UI and UX Improvements

Chat bubbles now follow a standardized layout and dimension spec.

We added a new WarningBox widget used across profile screens to remind users that their profile information is public.

The media modal got fade animations and stable image positioning so the image no longer shifts when toggling overlays.

The language selector now correctly shows the system language on first load.

🦫 Marmot Protocol Spec

MIP-00 and MIP-02 now specify base64 encoding for KeyPackage and Welcome content instead of hex. This reduces payload size by roughly 33% and uses a tag-based encoding declaration.

This is a protocol hard fork, so readers must accept both formats during the transition period, but new implementations must write base64.

✏️ Marmot TypeScript SDK

The TypeScript SDK saw significant development this month with 9 merged PRs.

The main focus was building out the MarmotClient class as the primary interface for developers.

The proposals and commits flow is now implemented, allowing proper MLS group state management.

Group message reading now includes retry logic for handling unreadable messages gracefully.

Member addition and group membership methods were refactored into cleaner abstractions, and the SDK picked up base64 content encoding to match the spec change.

A new generic NostrNetworkInterface makes it easier to integrate with different Nostr implementations.

💻 MDK Language Bindings

MDK is now published to Rubygems and PyPI (as mdk-python), making it easier to integrate Marmot into Ruby and Python applications.

These join the existing Kotlin and Swift bindings, all generated via UniFFI from the core Rust crate.

💪 Security Audit

We're currently undergoing a security audit with Least Authority. This month several fixes landed based on their findings.

MDK now uses a v2 group image format with separate upload seed derivation, ensuring uploaded images use a derived keypair rather than the encryption key directly.

Migration tooling handles the transition from v1 to v2 automatically while maintaining backward compatibility.

🛠️ Expect more fixes and improvements in the coming months as the audit continues.

⏳ In Progress

A few notable PRs are still in flight.

The optimistic UI work will make messages and reactions appear instantly while syncing with the server.

NIP-55 support will enable integration with Amber and other external signers.

Media layout standardization will bring dynamic grid sizing that respects screen width constraints.

🌷 Ecosystem Growth

Several new projects have expressed interest in adding Marmot to their stack.

More to share as those conversations develop.

❤️ Contributors

Thanks to everyone who contributed this month: erskingardner, josefinalliende, hzrd149, gzuuus, untreu2, jgmontoya, codeswot, Quwaysim, ayushsaksena30, AbdulbasitSaid, mubarakcoded, dannym-arx, and kuba-04.

-

If you're building on Nostr and want to add encrypted messaging, check out the Marmot Protocol spec. https://x.com/whitenoisechat/status/2006075259406188550?s=46

If you want to contribute to the reference implementation, White Noise is open for PRs.

The next community call is the first Tuesday of January at 1700 UTC.

What 's the typical dessert for the holidays in your country? 🧡

🇮🇹 Panettone heree

GM. You can learn a lot about a person from the reason why they are into Bitcoin

How old were you when you realized Bitcoin doesn’t fix human behavior, it just stops rewarding the worst incentives?

El Salvador VS Europe

What worries me isn’t an openly hostile state. It’s the smiling one.

The one that calls surveillance and control ‘protection.’

Everything unfolding today was described in advance. Not by politicians, but by the Cypherpunks.

It was all written in the Cypherpunk Manifesto. This is exactly how it was supposed to go.

So I educate myself. I take initiative. I go peer-to-peer.

I’d be more afraid if my government pretended to be my friend.

I’d rather see the cage being built than be told I’m already free while it closes.

OK you made my day today. 🧡

Got so many kind messages + zaps after sharing something I’d been holding in for a long time.

It was about a project that mattered to me and my partner, and sometimes things end not because you didn’t care, but because the context doesn’t allow it.

I know Nostr is full of builders. You get the quiet heartbreak.

Thank you for making me feel seen. 🥹

LFG 🚀

I received $20 in bitcoin on Nostr for telling what me and nostr:npub13vepw9xdhjzhp87lv5h7z2jgzteltmzqe4scjsn9dtwwncz6ekms5p489d have seen in the past 4 years about why content creators in El Salvador are corrupt (high engagement & access, and threats from the Bitcoin Office).

Just a reminder that a world out there exists.

We traveled “in bitcoin” before it was a thing.

Me and Rikki started “Bitcoin Explorers“ in El Salvador in 2021, then kept moving: Central America, Asia, the Middle East, Europe, Africa. And I’m not saying this to flex. I’m saying it because the timeline is the timeline. The content exist. The story speaks for itself.

Now. El Salvador was an engagement cheat code (and everyone knows it).

The uncomfortable truth: when we posted El Salvador content, everything grew faster. Like… four times as fast.

My tweets got reposted by Bukele. I got 4000 followers in a day for this picture you see here.

Our videos about El Salvador hit 10k views while being shot like amateurs (because we were amateurs). We weren’t filmmakers. We weren’t a production studio. We were just there, documenting what we were seeing with the tools we had in the most honest possible way.

If we wanted, we could’ve turned that into a visibility machine.

We didn’t.

Because we didn’t want the easy path. We didn’t want to go where everyone goes just because it performs. We didn’t want to become a tourism brochure for an algorithm or even worse, a government.

And eventually we had to admit something most people won’t say out loud: realistic reportage takes time, money, and resources. We didn’t have enough of them to keep doing it the way we wanted...properly.

So we stepped back. I found other jobs I'm super happy with and my voice remained independent.

Now let me ask you something. genuinely.

Why do you think so many Bitcoin creators focus on El Salvador? Why do you think so many creators post about it like it’s the only place on Earth where Bitcoin exists?

Because it’s simple:

- Post a beach breakfast and you get quadruple the reposts of a normal post.

- Post a critique? You risk getting dogpiled, losing followers, losing access, losing 'opportunities.

That’s the part people don’t post.

And yes: there are people in the space who will make it personal, who will lean on social pressure, who will remind you that stepping out of line has a cost. I’ve seen and heard enough to know the incentives are real even if nobody wants to say it clearly.

The saddest part is who ends up paying for this illusion: not the insiders. Not the people doing the reposting. Not people who threaten you over tweets.

It’s the people at home:

- liking

- retweeting

- booking flights

- buying tickets

- chasing a “ Bitcoin paradise” that mostly exists in social media posts apart from a few exceptions and small communities

A lot of content creators aren’t documenting reality. They’re documenting what the algorithm and their paycheck rewards.

And at that point… what’s the difference between them and the journalists they love to hate?

Same dynamic:

- follow the narrative

- repeat what powerful people want amplified

- avoid the messy parts

- monetize the attention

Different ecosystem. Same playbook.

We didn’t want to be that. We could’ve milked it. We didn’t. Not because we’re morally superior, spare me that story.

Because it didn’t fit who we are, and it didn’t fit what we wanted to build long-term.

If I’m going to talk about Bitcoin “in the world,” I want it to be real:

- not just the pretty parts

- not just the safe parts

- not just the parts that get you reposted by the right accounts

Reality is complicated. Adoption is uneven. People are people. Politics are politics. Incentives are incentives.

And if your content never shows the trade-offs, the friction, the contradictions… then you’re not educating anyone. You’re doing marketing.

❤️ If you’re new here, read this twice: Bitcoin doesn’t need fairy tales. It needs adults.

It needs people who can handle nuance without turning it into a loyalty test.

So next time you see a creator post a perfect “Bitcoin country” shot, ask yourself:

- What are they not showing?

- What can’t they say without losing access?

- What gets rewarded here. and what gets punished?

The algorithm isn’t truth. It’s the incentive map. And most creators are just following it like obedient little tourists.

I 'm not sure who needs to hear this, but you're early in Bitcoin and you’re doing great

This and money that can’t be frozen

When they write ‘Delicious’ plums 😭😭😭❤️

What if the problem isn’t Bitcoin… but that some people were deliberately left out?

If the financial system wanted to include the excluded, it would have done it already.

It’s not “broken.” It’s elitist. By design.

And it will fight to stay that way.

8am. I’m waiting for the subway. Unusual for me on a Sunday morning. I look around:people dressed for hiking, work, brunch, a day trip. Everyone different, all going somewhere.

And I think: statistically, someone here has probably committed a crime.

So what should the subway do? Refuse to start? Close the doors and say: ‘Sorry, you can’t get on’? Sounds ridiculous, right?

The subway’s job is to take people from A to B. It doesn’t judge, it doesn’t ask questions. it just takes you there. It’s neutral. It’s infrastructure.

And that’s exactly how money should work too. A payment system should move value, not judge the person moving it.

But lately, those who control access to money are also deciding who deserves to use it.

You said the wrong thing? account blocked. You made an uncomfortable choice? access denied.

In the physical world, it sounds absurd to imagine a subway deciding who can board. In the digital world, we accept it without a fight.

And the worst part? People who rely on these shortcuts are avoiding the real work.

investigating, enforcing justice, solving real crimes. It’s easier to freeze a card ‘for security reasons’ than to go after political corruption.

Of course, those who commit crimes should be stopped by the state, through investigations, through law, through process.

But we can’t ask infrastructure to pick the “good” and the “bad.” Once it starts doing that, it’s no longer safety. it’s control. And control never ends well.

It’s like if a train stopped working because the driver didn’t like where you were going. Or because you once posted a tweet he disagreed with.

Every time we ask for more control, more sanctions, more rules, we’re wishing (even without realizing it) for a world where a train stops because you posted a joke on Instagram.

And with things like Chat Control or the digital euro, it’ll only get worse: a system even more ‘efficient’ at judging, punishing, and deciding who’s allowed to move and who isn’t.

It sounds extreme, but maybe it should be our daily concern. Because if we hate injustice today, imagine not being able to have a bank account tomorrow because of one.

I don’t go to the gym to become a supermodel. I just want to keep my lifestyle without gaining weight. Same with Bitcoin: I don’t want a new luxury life, I just want everything I’ve worked for to stay exactly where it f***ing is.

What I love about Bitcoin is that I, a 28 yo girl from a small Italian town have the same opportunity as a Harvard Business School graduate working at Wall Street.

No special permissions. Just a game where for once the rules are the same for everyone. It heals my soul.

10 days offline. What did I miss?

I've always hated those classic lines like:

“If you had bought Bitcoin in 2011, you’d be a millionaire today.”

Or worse: “If you had invested €100 in Bitcoin instead of going out to dinner…”

But seriously, what’s the point?

You can play that game with anything: Apple stock, real estate in Berlin, Basquiat paintings, even Panini football stickers. It’s always easy to look back and do the math with hindsight. Too bad that’s not how life works.

The truth is: you didn’t do it. And obsessing over it now doesn’t help.

It doesn’t teach you anything, it doesn’t bring you closer to understanding Bitcoin, and it definitely doesn’t motivate you to start. It’s like standing at the tracks staring at a train that already passed, forgetting that another one might be on the way.

But there’s one thing I do love about all-time highs.

For once, it feels like everyone holding Bitcoin is winning together.

Whether you bought ten years ago or yesterday. No one is “down.” No one “bought too high.” (Except maybe the ones who sold too early, but oh well 😬)

It feels like a collective reward. A quiet little moment of “you made it.” A small pat on the back for your patience. A whisper saying: “You’re not alone. You’re not crazy. You’re still here."

And let’s be honest, a bit of satisfaction for all the times they didn’t believe in you. 🩷

So, good job whoever is holding some sats!

Maybe the mistake I’ve always made when talking about Bitcoin was saying that the system was broken, like economists were stupid or something.

But it’s not broken. It works perfectly.

It took me a while to realize this.

We live in an era where we can cure once-incurable diseases, send people to Mars, and build AI that simulates human thought. And yet, we can’t ensure that two working adults can afford a stable life?

No, it’s not incompetence. They're not stupid. It’s not bad luck. It’s by design.

The economy isn’t in crisis. It’s just that we’re not at the center of it. It’s engineered to transfer wealth and power upward. The Cantillon Effect isn’t a side effect = it’s the engine of the system.

Money is the source code of power. And as long as it’s arbitrarily created by those who decide who gets it first, every effort within this system is doomed to be extracted.

Bitcoin doesn’t exist to fix anything. It exists to build an alternative outside this rigged game. A system where value isn’t distorted at its creation.

Realizing that the system works perfectly, just not for us, is the first step to opting out.

I opt out.

Me and nostr:npub13vepw9xdhjzhp87lv5h7z2jgzteltmzqe4scjsn9dtwwncz6ekms5p489d first explored El Salvador more than three years ago because of the bitcoin law.

45 memorable days in bitcoin only, without touching dollars or credit cards.

During our trip we immediately saw many wonders, but also many distortions bordering on the dystopian. People's poor bitcoin education, the government's pounding propaganda, the Chivo wallet (a spyware that no so-called Bitcoin president should ever have proposed to his people).

We have always been very critical of top-down adoption. It is no secret.

And at the same time it is undeniable that the Bitcoin Law was a historic event.

For the same reason today seeing the government of El Salvador kneeling before the God Dollar and the oligarchs of the IMF leaves a bitter taste in the mouth.

Today Bitcoin is no longer legal tender in El Salvador, the news is making the rounds around the world, and the regime media are happily feasting on it. This is also a historical event.

Anyone who denies this or is trying to minimize the consequences of this only shows that they are lobotomized by state propaganda.

It is what it is; you cannot sugarcoat it.

Our thoughts go as always to the people of El Salvador, to our many good friends there.

¡Que le vaya bien!