Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/layout.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const siteUrl =
: 'http://localhost:3000')

const description =
'A native Nostr ecosystem in Ziga foundational protocol library, utility libraries, and fast native apps like the Signet remote signer.'
'A native Nostr ecosystem in Zig: a foundational protocol library, utility libraries, and fast native apps like the Notary remote signer.'

export const metadata = {
metadataBase: new URL(siteUrl),
Expand Down
2 changes: 1 addition & 1 deletion content/_meta.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {
architecture: 'Architecture',
nips: 'NIP Support',
plaza: 'Plaza',
signer: 'Signet',
signer: 'Notary',
performance: 'Performance',
roadmap: 'Roadmap',
}
2 changes: 1 addition & 1 deletion content/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ The layer the native signer is built on:
- **NIP-42** client authentication, so a signer can serve over relays that gate
access behind auth.

The native signer built on this layer is **[Signet](/signer)**.
The native signer built on this layer is **[Notary](/signer)**.
8 changes: 4 additions & 4 deletions content/ecosystem.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,22 @@ More arrive as the ecosystem grows — they'll be listed here as they ship.
Real products built entirely on the core — proof it holds up under product weight,
and the reason the ecosystem exists.

### Signet: shipped
### Notary: shipped

A NIP-46 remote signer for macOS. Your key lives in a local daemon; every signing
request waits for your approval, and your `nsec` never leaves it.
→ [`zig-nostr/signet`](https://github.com/zig-nostr/signet) · [read more](/signer)
→ [`zig-nostr/notary`](https://github.com/zig-nostr/notary) · [read more](/signer)

### Plaza: in progress

The flagship client: browse and post within two minutes, with the feed rendered
from disk and reconciled in the background. Your key lives in Signet, a separate
from disk and reconciled in the background. Your key lives in Notary, a separate
process, or in your own signer.
→ [`zig-nostr/plaza`](https://github.com/zig-nostr/plaza) · [read more](/plaza)

### On the roadmap

- **A private messenger**NIP-17 gift-wrapped DMs, signing through Signet.
- **A private messenger**: NIP-17 gift-wrapped DMs, signing through Notary.
- **A document app** — Nostr-native notes and long-form (NIP-23).
- **More NIPs, payments, and platforms** — the ecosystem expands across desktop and mobile.

Expand Down
8 changes: 4 additions & 4 deletions content/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ title: The Nostr protocol, natively in Zig
<div className="zn-card">
<div className="zn-icon">🖥️</div>
<h3>Native apps</h3>
<p><a href="/signer">Signet</a> ships today, <a href="/plaza">Plaza</a> is the flagship client in progress, and a messenger and more are on the way across desktop and mobile. Real products, all on one core.</p>
<p><a href="/signer">Notary</a> ships today, <a href="/plaza">Plaza</a> is the flagship client in progress, and a messenger and more are on the way across desktop and mobile. Real products, all on one core.</p>
</div>
</div>

Expand All @@ -60,7 +60,7 @@ title: The Nostr protocol, natively in Zig
<div className="zn-card">
<div className="zn-icon">🛡️</div>
<h3>Native remote signer</h3>
<p>Signet, a NIP-46 bunker that signs for any client while your nsec never leaves the daemon — a downloadable macOS app.</p>
<p>Notary is a NIP-46 bunker that signs for any client while your nsec never leaves the daemon. A downloadable macOS app.</p>
</div>
<div className="zn-card">
<div className="zn-icon">🧭</div>
Expand All @@ -84,7 +84,7 @@ title: The Nostr protocol, natively in Zig
<div className="zn-apps">
<div className="zn-card">
<div className="zn-app-head">
<h3>Signet</h3>
<h3>Notary</h3>
<span className="zn-tag zn-tag-shipped">Shipped</span>
</div>
<p>A NIP-46 remote signer for macOS. Your nsec stays in a local daemon; every request waits for your approval.</p>
Expand All @@ -103,7 +103,7 @@ title: The Nostr protocol, natively in Zig
<h3>Messenger</h3>
<span className="zn-tag">Planned</span>
</div>
<p>A private DM appNIP-17 gift-wrapped messages, signing through Signet, rendering instantly from the local store.</p>
<p>A private DM app: NIP-17 gift-wrapped messages, signing through Notary, rendering instantly from the local store.</p>
</div>
</div>

Expand Down
10 changes: 5 additions & 5 deletions content/plaza.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@ something that does. Browse as a guest for as long as you like.
When you do want in, there are three ways and you pick the one that fits:

- **Create an identity.** A key is minted for you, in seconds, with nothing to
write down up front. Plaza never mints one itself: Signet does, in its own
write down up front. Plaza never mints one itself: Notary does, in its own
process, and Plaza is only told the public half.
- **Bring a key you already have.** The packaged app hands your paste straight
to Signet through a separate ceremony window, so Plaza itself never sees it.
to Notary through a separate ceremony window, so Plaza itself never sees it.
- **Use your own signer.** Paste a `bunker://` link and Plaza signs through
[Signet](/signer) or any other NIP-46 signer, with the key never leaving it.
[Notary](/signer) or any other NIP-46 signer, with the key never leaving it.

What you reached for when you were asked is remembered, and completed as soon as
signing in allows it, so signing in does not cost you the thing you were
doing.

## Your key is not in the app

Plaza does not hold your secret key. Signet, a separate process shipped inside
Plaza does not hold your secret key. Notary, a separate process shipped inside
the app, owns it and is reached over authenticated loopback; Plaza asks it to
sign and never sees the secret. Making a key goes the same way, so there is no
moment at which Plaza has held one. The ceremony that mints or imports runs in
Expand All @@ -44,7 +44,7 @@ in Plaza itself and is written to `~/.plaza`. In that state the sign-in card
stops promising otherwise and reads "Pasted here, and kept on this device." A
packaged build carries the window and does not have this path.

That is the same design as [Signet](/signer), and it is why connecting an
That is the same design as [Notary](/signer), and it is why connecting an
external signer is a first-class path rather than an advanced setting.

## What is in it today
Expand Down
6 changes: 3 additions & 3 deletions content/roadmap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ being built now, and the year ahead — roughly a milestone a month.
store grows.
- **Signer protocol** — NIP-44 v2 encryption, the NIP-46 remote-signing ("bunker") protocol,
and NIP-42 client authentication.
- **[Signet](/signer)** the native remote signer. Your key lives in a local daemon and
- **[Notary](/signer)**: the native remote signer. Your key lives in a local daemon and
every request waits for your approval. A downloadable macOS app.
- **Docs & benchmarks** — this site, the [NIP-support table](/nips), and reproducible
[performance numbers](/performance).
Expand All @@ -26,7 +26,7 @@ being built now, and the year ahead — roughly a milestone a month.
- **[Plaza](/plaza)**, the flagship client: a fast, local-first native Nostr client.
Two things done well:
- **Onboarding in under two minutes** — browse as a guest with no key; when you want to
post, generate a key or connect [Signet](/signer); a curated starter pack means the feed
post, generate a key or connect [Notary](/signer); a curated starter pack means the feed
is never empty.
- **Local-first performance** — the feed renders from disk instantly and reconciles from
relays in the background; posting is optimistic; nothing waits on the slowest relay.
Expand All @@ -42,7 +42,7 @@ Roughly one milestone a month, expanding the core and the ecosystem around it:
2. **A deeper client**: reposts, richer media (NIP-92 `imeta`), search, and mute lists.
Threads, reactions, quotes and inline media are in [Plaza](/plaza) today.
4. **A secure messenger** — private direct messages (NIP-17 gift wrap) on the local store,
signing through Signet.
signing through Notary.
5. **A document app** — Nostr-native notes and long-form (NIP-23), personal and shareable.
6. **Payments** — zaps (NIP-57) and Nostr Wallet Connect (NIP-47), wired into the apps.
7. **Reusable utility libraries** — the local store, outbox/discovery, onboarding, and the
Expand Down
16 changes: 8 additions & 8 deletions content/signer.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Signet — the native remote signer
# Notary: the native remote signer

**Signet** is a native macOS remote signer built on `zig-nostr`. It implements
**Notary** is a native macOS remote signer built on `zig-nostr`. It implements
the NIP-46 "bunker" protocol: your `nsec` lives in a local daemon on a machine
you control, and every signing request from a client waits for your explicit
approval. The key never leaves the daemon.

<img
src="/signet-demo.gif"
alt="Signet approving a Nostr signing request"
src="/notary-demo.gif"
alt="Notary approving a Nostr signing request"
style={{ borderRadius: '0.7rem', maxWidth: '420px', width: '100%', marginTop: '0.5rem' }}
/>

Expand All @@ -24,12 +24,12 @@ approval. The key never leaves the daemon.
## Install (macOS, Apple Silicon)

```sh
curl -fsSL https://raw.githubusercontent.com/zig-nostr/signet/main/scripts/install-macos.sh | bash
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bash
```

The installer resolves the latest release, verifies its SHA-256, installs
`Signet.app`, and launches it. Source, releases, and build instructions live at
[`zig-nostr/signet`](https://github.com/zig-nostr/signet).
`Notary.app`, and launches it. Source, releases, and build instructions live at
[`zig-nostr/notary`](https://github.com/zig-nostr/notary).

## Supported operations

Expand All @@ -41,7 +41,7 @@ allowlists, so you decide exactly what a connected client may ask for.
## Why it matters

The hard problem in Nostr UX is key custody: every web client that wants to post
on your behalf traditionally needs your `nsec`. Signet is the counter-example
on your behalf traditionally needs your `nsec`. Notary is the counter-example:
a fast, native key manager that signs for any client while the secret stays put.
It's the first of the `zig-nostr` [showcases](/roadmap); the messenger and reader
are next.
File renamed without changes
Loading