EDELPrivate messenger
About Open web client

Verifiable security

Check us. Don't trust us.

Every security claim Edel makes is tied to an artifact you can download and check: a signed web manifest, an APK hash, a server build endpoint, an RFC 9116 security contact. This page also lists what we do not claim.

RU: каждое утверждение о безопасности привязано к артефакту, который можно скачать и проверить. Ниже честно перечислено и то, чего у нас нет.

Ed25519Manifest signature
SHA-256Per-file hashes
RFC 9116security.txt
Fail closedClient refuses mismatch

Claims

Claim → artifact → how to check

If a claim has no artifact here, it is not a claim we make.

#ClaimArtifactHow to check
1The web client is exactly the published code/manifest.json, /manifest.sigVerify the Ed25519 signature, then hash every .js/.mjs/.html
2The browser verifies the client before running itweb/src/integrity.jsRead verifyStatic(): signature first, hashes second, fail closed
3The APK is the published buildGET /api/v1/versionDownload /api/apk/file, compare SHA-256; the app pins the signing certificate
4The server is alive and reports its buildGET /api/healthRead status, version, build
5Messages are encrypted on the devicetestvectors/v1.json, charter §4/§6Reproduce the envelope with the published vectors (Go/Kotlin/JS)
6Offline messages are deleted after a signed ACKcharter §8/§13.11Read the invariant; covered by server tests and the e2e harness
7Requests are signed; replay and forgery are rejectedcharter §6, server/internal/cryptoRead the protocol and the server implementation
8The APK does not depend on Google Play ServicesAndroidManifest.xml, Gradle, live APKInspect the manifest/APK; install without GMS
9Access is paid and invite-onlyGET /api/v1/price, legal.en.htmlFetch the live price snapshot; read the Terms
10Tokens are not sold as accesscharter §7.9/§7.11, legal.*.htmlRead the legal texts; no token is accepted for access
11There is no iPhone app, by policycharter §1.1.1/§17, #iosRead the policy; no iOS binary is published
12A security contact exists/.well-known/security.txtFetch it (RFC 9116)

Reproduce

Verify the web client in four steps

  1. Fetch the manifest. GET https://edel.chat/manifest.json → {"version":"…","files":{"path":"sha256 hex"}}.
  2. Fetch the signature. GET https://edel.chat/manifest.sig → base64 Ed25519 signature over the exact manifest bytes.
  3. Verify with the pinned key. crypto_sign_verify_detached(sig, manifest, key) where key = dlCB6TeyJ3fRdbbY4rcIQQ5Qv0A4wAauJwUSFKhivTM=. The same key is in web/src/server-pub.js.
  4. Compare hashes. For every file matching \.(m?js|html)$/, download it and check sha256(bytes) == files[path]. Any mismatch means the official client refuses to run.

APK: GET https://edel.chat/api/apk/file, compute SHA-256, compare with sha256 from GET https://edel.chat/api/v1/version.

Honest limits

What we do not claim

Platforms

Android and web. No iPhone app.

Android

Direct APK for Android 7+, no Google Play Services, auto-update from our server.

Web

Any modern browser; keys stay on your phone; QR pairing.

iPhone

No app, by policy. Our threat model requires an OS we control and can reason about. Documented cases of data access at the OS level make iOS unsuitable for confidential messaging. This is the project's assessment, not an accusation against Apple. The web client remains usable in Safari.

Access

Paid, one-time packages — not a subscription

Access is paid and invite-only. Packages are one-time purchases: 2, 5 or 10 invitation codes, paid in USDC or USDT on Base directly to the treasury. There is no recurring membership fee. The money funds development and support. Live prices: GET /api/v1/price.

This is not an investment product: no income, buyback or liquidity is guaranteed. Terms · Privacy · Risk · Referrals

Contact

Security and abuse contacts