Der private Schlüssel ist ein Seed (32 Byte bei Ed25519, 57 bei Ed448). Sein Hash liefert einen geheimen Skalar s und ein Präfix; beim Signieren werden die Nonce r = H(prefix ‖ M), R = r·B, die Challenge k = H(R ‖ A ‖ M) und S = (r + k·s) mod L berechnet, und die Signatur ist R ‖ S (64 Byte bei Ed25519, 114 bei Ed448; RFC 8032 §5.1.6 und §5.2.6). Die Nonce ist eine Funktion von Schlüssel und Nachricht, daher braucht EdDSA beim Signieren keinen Zufall und kann für verschiedene Nachrichten keine Nonce wiederholen.
PureEdDSA (Ed25519, Ed448) signiert die Nachricht selbst und liest sie zweimal; HashEdDSA (Ed25519ph, Ed448ph) signiert stattdessen einen SHA-512- oder SHAKE256-Digest; Ed25519ctx und Ed448 akzeptieren zur Domain-Separation einen Kontext-String von bis zu 255 Byte. FIPS 186-5 §7 lässt EdDSA und HashEdDSA (§7.8) zu.
Die Prüfung ist weniger einheitlich als das Signieren. RFC 8032 §5.1.7 verlangt, dass S kleiner als die Gruppenordnung L ist, und erlaubt entweder die Gleichung mit Kofaktor [8][S]B = [8]R + [8][k]A' oder die ohne Kofaktor; zudem unterscheiden sich Bibliotheken bei Punkten kleiner Ordnung und nicht kanonischen Kodierungen. Konsenssysteme legen sich deshalb auf ein Regelwerk fest, etwa Zcash mit ZIP 215.
Kennungen: die X.509-OIDs 1.3.101.112 (Ed25519) und 1.3.101.113 (Ed448) aus RFC 8410; die JOSE-Werte Ed25519 und Ed448 für alg aus RFC 9864, das das polymorphe EdDSA aus RFC 8037 für veraltet erklärt; COSE −19 und −53 (und das ältere −8); TLS 1.3 ed25519 (0x0807) und ed448 (0x0808); SSH ssh-ed25519. NIST IR 8547 (Entwurf) schlägt vor, EdDSA nach 2035 nicht mehr zuzulassen.