> **Nostr Agent Onboarding** · [start here](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/start.md) · [index](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/llms.txt) · source: `nostr-dev/docs/sources/opensats-advancements.md` · snapshot 2026-10-10

# OpenSats — "Advancements in Nostr Clients"

**Source:** <https://opensats.org/blog/advancements-in-nostr-clients>
**Status:** OpenSats grant-program report. Public blog post; summary + direct
quotes below.

## What this report tracks

OpenSats funds a large fraction of core Nostr work (Coracle, Damus, Amethyst,
NDK, Hodlbod, fiatjaf, etc.). This report aggregates *what those projects
shipped* over a window — so it's a useful proxy for "what the actual
practitioners think the next move is."

## Lines that matter for design

### On the outbox shift

> Migration from manual relay lists to dynamic outbox models. Instead of
> users manually selecting which relays to read from, clients now automatically
> compile effective relay sets based on actual follows and content
> distribution.

This is the codification of: *outbox is no longer optional for a serious client.*

### On relay scale

> Enables clients like Amethyst to connect to ~1,000 relays simultaneously
> over mobile.

Concrete data: real clients in production talk to **thousands** of relays at
once. Plan for that scale; don't assume "a handful."

### On distributing load

> Distributes network traffic across many smaller relays rather than
> concentrating activity on 10-20 major hubs.

Outbox + gossip is what keeps the network's traffic profile flat. If your
client centralizes its reads on the popular relays "for performance," you are
contributing to centralization.

### On Coracle's contributions (Hodlbod)

> Coracle introduced governance standards through NIP-43 and NIP-86,
> formalizing relay membership lists and access controls. This enables relays
> to explicitly state who they serve and what content policies they
> maintain — transforming relays from invisible infrastructure into transparent
> services with defined purposes.

This is the "relays are services" line restated. NIP-43 (membership) and
NIP-86 (relay management API) are the mechanism.

### On per-note relay selection

> Coracle's 0.6.x releases added per-note relay selection, letting authors
> directly control where posts distribute rather than defaulting to major
> relays. This makes the outbox model tangible for everyday users.

This is the leading edge: *user-visible* per-event routing. Not just a default
the client computes — a control surface the user sees.

### On encrypted DMs

> NIP-17 (private messages) and NIP-59 (gift wrap) ensure encrypted
> communication works seamlessly across different clients while maintaining
> metadata privacy.

If you're building anything DM-shaped, NIP-17 + NIP-59 is the modern stack;
NIP-04 is deprecated.

## How this informed the synthesis

§2 (outbox/gossip), §3 (per-kind routing), §5 (relays as services), and §6
(failure model: clients talk to thousands of relays) all draw on this report's
data points.
