Di tin dɛn we pɔsin fɔ no bɔt Ɔnda di hud
Protokɔlɔ ɛn di tin dɛn we apin
Wetin Nymchat rili put pan di waya, fɔ ɛnibɔdi we de bil agens am, ɔditin am, ɔ rid ivintɛns frɔm ɔda Nostr klaynt.
Dɛn translet dis pej wit mashin fɔ mek i izi fɔ am. Di Inglish ɔrijinal na di vɛshɔn we de aplay.
Ivent kayn dɛn
| Kayn | Yuz fɔ | Notis dɛn |
|---|---|---|
0 | Profayl mɛtadata | Standard Nostr profayl: nem, pikchɔ, baner, bɔt, lud16. |
5 | Dilishɔn rikwest dɛn | NIP-09 we dɛn kɔl. |
7 | Di we aw pipul dɛn kin biev | NIP-25, wit wan ['k', originalKind] tag so wan riakshɔn de fayl agens di rayt chanɛl tayp. |
13 | Stamp | Di midul layt fɔ wan NIP-17 mɛsej. |
14 | Prayvet mɛsej rɔmɔr | Nɔ sayn, ɛn nɔ ɛva pablish fɔ insɛf. |
1059 | Gift wrap we dɛn kin rap | NIP-59 we dɛn kɔl. Wetin rili rich wan rilay fɔ prayvet mɛsej ɛn grup chat. |
1984 | Fɔ ripɔt | NIP-56 we dɛn kɔl. |
9734 / 9735 | Zap rikwest ɛn zap risit | NIP-57 we dɛn kɔl. |
10030 | Kastom emoji pak list dɛn | NIP-30 we dɛn kɔl. |
20000 | Geohash chanɛl mɛsej | Ephemeral, we dɛn dɔn tag ['g', geohash]. |
23333 | Nem chanɛl mɛsej | Ephemeral, we dɛn dɔn tag ['d', channel]. |
24420 / 24421 | Pɔblik tayp indikɛtɔ ɛn rid risit | Nymchat-spɛsifi k, fɔ pɔblik chanɛl dɛn. |
25051 / 25052 | Pia-to-pia signal ɛn fayl-transfa stetɔs | Nymchat-spɛsifi k. |
30030 | Kastom imɔji sɛt dɛn | NIP-30 we dɛn kɔl. |
30078 | Aplikeshɔn data | NIP-78 we dɛn kɔl. Poll, ɛn ɛnkript sɛtin dɛn de sink. |
69420 | Prayvet rid risit ɛn dilivri stetɔs | Nymchat-spɛsifi k, we dɛn kin kɛr as rɔmɔr insay gift wrap. Wan sɛpret kayn frɔm 14 bay wilful, so ɔda NIP-17 klaynt dɛn nɔ de rɛnd blank dairekt mɛsej fɔ ɛvri risit. |
NIPs Nymchat de impliment
| NIP we dɛn kɔl | Wetin i de gi Nymchat |
|---|---|
| NIP-07 we dɛn kɔl | Login wit wan brɔwza ɛkstenshɔn. |
| NIP-09 we dɛn kɔl | Dilishɔn rikwest dɛn. |
| NIP-13 we dɛn kɔl | Pruf fɔ se yu dɔn wok. Mesej dɛn we de kɔmɔt, dɛn kin mayn to at le 16 bit. |
| NIP-17 we dɛn kɔl | Prayvet dairekt mɛsej, ɛn di bɛnifit fɔ grup chat. |
| NIP-25 we dɛn kɔl | Di we aw pipul dɛn kin biev. |
| NIP-30 we dɛn kɔl | Kastom emoji. |
| NIP-40 we dɛn kɔl | Expiration timestamps — mɛsej dɛn we de lɔs. |
| NIP-44 we dɛn kɔl | Versioned encryption, we dɛn kin yuz fɔ sil, rap ɛn sɛtin dɛn we dɛn kin sink. |
| NIP-46 we dɛn kɔl | Rimot sayn — . bunker://. |
| NIP-56 we dɛn kɔl | Fɔ ripɔt. |
| NIP-57 we dɛn kɔl | Laytnin de zap. |
| NIP-59 we dɛn kɔl | Gift we dɛn kin rap. |
| NIP-78 we dɛn kɔl | Data we dɛn kin yuz fɔ aplikeshɔn we dɛn nɔ want. |
| NIP-98 we dɛn kɔl | HTTP auth, fɔ di ɛndpɔynt dɛn we dɛn dɔn ɔs. |
Kriptografi we dɛn kin yuz
| Usay | Wetin |
|---|---|
| Aydentiti ɛn sayn dɛn | secp256k1 wit Schnorr signature (BIP-340), as Nostr spɛsifa. |
| Prayvet mɛsej ɛn grup chat | NIP-44 v2: ECDH pan secp256k1, HKDF-SHA256, ChaCha20 wit HMAC-SHA256, ɛn pad so sayfatɛks lɔng nɔ de gi di mɛsej lɔng away. |
| Bluetooth mesh seshɔn dɛn | Noys XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 fɔ anɔys sayn, SHA-256 ɛn HMAC ɔnda. |
| Aydentiti we yu de rɛst | AES-GCM-256 we de na di wɔl. Di ki kɔmɔt frɔm PBKDF2-SHA256 na 310,000 itɛreshɔn fɔ paswɔd ɔ PIN, ɔ frɔm WebAuthn PRF autput tru HKDF-SHA256 fɔ paski ɔ bayometrik. |
| Kɔl ɛn fayl transfa | WebRTC in yon DTLS-SRTP, we dɛn negoshiet oba NIP-17-rap signal. |
| Na random tin we pɔsin kin du | Di pletfɔm CSPRNG ɔlsay — ki, nonces, ɛn di gift-wrap tɛmstamp jitter. |
Metadata protɛkshɔn
Tu ditel dem fo di gift-wrap path na im fit kol out, bikos na dem separet NIP-59 frɔm "ɛnkript, bɔt i klia se frɔm yu to dɛn":
- Ɛvri wrap gɛt sayn wit a wan tɛm ki we dɛn mek fɔ da mɛsej de nɔmɔ, . so no tu wrap nɔ de sheb wan pɔsin we de sɛn.
- Everi wrap's
created_atna randomly bakdɛt bay te to tu awa dɛn yuz di CSPRNG, so dɛn nɔ go ebul fɔ layn di tɛm fɔ sɛn ɛn gɛt.
Grup chat ad rotating ephemeral di pɔsin we de gɛt am ki dɛn pan tap dat — si Aw grup ɛnkripshɔn de wok.
Di kripto primitiv dɛn de insay js/nym-crypto.js ɛn
js/modules/key-vault.js insay di wɛb ap, ɛn ɔnda
android-ios-app/lib/core/crypto/ ɛn
lib/services/mesh/noise/ insay di Flutter ap. Di
di say usay dɛn de kip tin dɛn
na AGPL-3.0 ɛn kɔmplit — nɔ klos kɔmpɔnɛnt nɔ de fɔ tek pan trɔst.