Skip to di tin dɛn we de insay
Bak na Nymchat

Di tin dɛn we pɔsin fɔ no bɔt Ɔnda di hud

Fɔ chɛk di bildin

Open source de ɛp nɔmɔ if di kɔd we yu de rɔn na di kɔd we bin de we dɛn dɔn pablish. Nymchat na bil deterministically so yu kin chɛk dat yusɛf, frɔm insay di ap ɔ frɔm wan tɛminal.

Bil dɛn we dɛn kin riprodyuz

Fɔ bil di ap de mek a build-manifest.json we gɛt di sɔs kɔmit, a SHA-256 hash fɔ ɛvri HTML, JavaSkript ɛn CSS ɛtɛt we dɛn de sav, ɛn wan singl bundleHash ova da ol ɛtɛt sɛt de.

Di autput dipen ɔl pan di sɔs kɔntinyu — ivin di rikodɔ bild tɛm na di commit in taimstamp pas di moment we di bild ron — so enibodi we de bil bak di sem commit get byte-identical fayl dem en di sem bundleHash.

Dɔn wan GitHub Akshɔn de bil bak ɛni kɔmit indipɛndɛnt wan ɛn sayn bil-provenans attesteshɔn fɔ di hash ɛn di manifest, so sayn rɛkɔd de we tay a bundleHash to wan kɔmit na di ripɔsitɔri, we sɔntin ɔda pas di diploymɛnt fɔ di wok.

Wetin di About dayalɔg de chɛk

Bɔt insay di hεda de rכn di chεk layv, insay yu bכwכz.

Di Nymchat About dayalɔg, we de sho di vɛshɔn, bil intɛgriti ɛn warrant kanari stetɔs.
Di About dayalɔg: vɛshɔn, bil intɛgriti, warrant kanari ɛn wan dairekt layn to di divɛlɔpa.

I de ri-fetch ɛni asɛt we di pej rili de rɔn, hash am wit di Wɛb Kripto API, ɛn kɔmpia agens di tin we de sho klia wan. Dɔn — ɛn dis na di pat we impɔtant — am rikompyuyt di bundleHash frɔm di hash dɛn i jɔs kɔlkul, nɔto frɔm ɛnitin we di manifest klem, ɛn luk dat ɔp na di ripɔsitɔri in sayn atɛsteshɔn dɛn tru di GitHub API.

Na dat de stɔp wan diploymɛnt fɔ vouch fɔ insɛf: fɔ sav modifyed fayl dɛn togɛda wit wan maching manifest stil de fel, bikɔs di rikɔmpyut hash nɔ gɛt ɛni atɛsteshɔn.

PozishɔnMin
&chɛk; Verified ofishal ap (n/n) we dɛn dɔn chɛk.Ɛvri ɛset mach, di rikɔmpyut bɔndɛl hash na di ripɔsitɔri atɛst am, . ɛn di pej de sav frɔm di ɔfishal domɛyn.
⚠ Verified build · nɔto di ɔfishal apDi kɔd na tru ɛn atɛst, bɔt dis na miro na ɔda domɛyn. Miro nɔ go ebul fɔ pul dis wɔnin if i nɔ ebul fɔ chɛk.
✗ Mismatch we nɔ gɛt wanwɔdWan asset nɔ de hash to wetin di manifest se.
✗ Nɔ ɔfishal bilDi rikɔmpyut bɔndɛl hash nɔ gɛt ɛni atɛsteshɔn frɔm di ripɔsitɔri — wan sɛlf-mɛd manifɔst.
⚠ Una nɔ go ebul fɔ rich usay i kɔmɔtDi GitHub API nɔ bin ebul fɔ rich, so dɛn nɔ bin ebul fɔ chɛk di atɛsteshɔn ɛni we.

Fɔ chɛk am yusɛf

Ribild di kɔmit di Bɔt dayalɔg nem dɛn ɛn kɔmpia:

git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build   # prints "Build hash: <bundleHash>"

Di hash we dɛn print fɔ mach ɔl tu di wan we de na di Bɔt dayalɔg ɛn di wan we de na da kɔmit de bild-provenans rɔn sɔmari. Yu kin chɛk di sayn bak dairekt wit di GitHub CLI:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

Di warrant kanari

Warrant kanari na stetmɛnt, we dɛn pablish pan wan fiks schedule, we di divɛlɔpa gɛt nɔto gɛt sikrit gɔvmɛnt ɔda we dɛn nɔ alaw dɛn fɔ tɔk bɔt — a Nashɔnal Sikyuriti Lɛta, we na FISA ɔda. Dɛn kin fos di pɔsin we de mek di tin fɔ lɛ i nɔ tɔk natin bɔt dis kayn ɔda, bɔt dɛn nɔ go ebul fɔ fos am fɔ lay, so di kanari we de go stayl ɔ we de lɔs na so insɛf na di signal.

I de liv insay canary.json na di rut fɔ di ripɔsitɔri ɛn dɛn kin tek am dairekt wan frɔm GitHub, so in istri na ɔditabl indipɛndɛnt frɔm ɛnitin we di sayt we dɛn dɔn diploy se. Di About dayalɔg de kɔlɔ-kɔd am:

KɔlɔMin
Grin — ɔl kliaSayn, kɔrɛnt, ɛn di sayn de mach di divɛlɔpa in ki. Dɛn nɔ dɔn gɛt ɛni sikrit ɔda.
Yala — ovadu, ɔ nɔto ɔl kliaI nɔ bin rifresh bay in deti we dɛn tɔk bɔt, ɔ in allClear flag na lay lay tin. Dɛn nɔ go ebul fɔ pul ɔda lɔ we dɛn mek we dɛn nɔ tɔk natin.
Rɛd — invalid signature, ɔ i dɔn goDi sayn nɔ mach di divɛlɔpa in ki, ɔ dɛn dɔn pul di fayl ɔl. Trit dis lɛk siriɔs wɔnin.

Di freshnɛs ankɔ

Di kanari we dɛn sayn de ɛmbas di laytst Bitcoin blɔk ayt ɛn hash di tɛm we dɛn sayn am. Dat hash nɔ bin fɔ dɔn no bifo di blɔk bin de, we pruv se di kanari bin de sayn we dɛn dɔn sayn afta wan patikyula pɔynt insay tɛm pas fɔ prɛ-sayn insay bɔku mɔnt bifo. Di About dayalɔg de link di ankɔ to wan blɔk ɛksplɔrɔ so yu kin chɛk am.