The mesh address is one new entry form, fipsmesh://<npub>/, in lists you already use:
the media server list (kind:10063) and, later, the relay list (kind:10002). In a
relay list it goes in its own fipsmesh tag, not an r entry, so clients without mesh
support never try to connect to it; Nostr Vault doesn't publish that tag yet. No new event kinds. Requests are plain Blossom GET /<sha256>, with the same hash
check.
A client that doesn't know the form skips it and carries on with the other servers in the list. A client that does can ask the device for the photo by its fingerprint, the same way it asks any media server, and throws the photo away if the fingerprint doesn't match.
Draft, not yet submittedNIP-F1: Nostr over the FIPS Mesh
The address form, transport, safety rules for serving and reading, and where Nostr Vault implements each part.
How it works for people using the app is on The mesh.
Build Nostr Vault
Everything is in one repository, btcforplebs/nostr-vault:
HavenApp/: the iPhone, iPad and Mac app (Swift).just ios-buildorjust macos-build.NostrVault/: the Android app (Kotlin).just android-build.haven-go/: the relay (Go), compiled into the apps aslibhaven.web-vault/: the web app.npm ci, thennpm run devornpm run build.web-relay/: the browser vault.linux/: aDockerfileto build the vault for a Linux box yourself (no published image yet).docs/: the NIP drafts, including NIP-F1.