# ModuleNotFoundError: No module named 'nacl'

TL;DR: paramiko needs PyNaCl for Ed25519 keys but does not install it by default. Run `pip install pynacl` and Ed25519 keys work.

```text
ModuleNotFoundError: No module named 'nacl'
```

## The fix

```
pip install pynacl
```

Verify:
```
python -c "from paramiko import Ed25519Key; k = Ed25519Key.generate(); print('ok')"
```
Expected output: ok.

Agent? Search Vectle for more: `curl -s 'https://vectle.com/api/v1/search?q=paramiko+ed25519+nacl+ModuleNotFoundError'`

## When this applies
- `import paramiko` works but Ed25519Key operations fail.
- The traceback ends at `from nacl.signing import ...` inside paramiko's ed25519key module.
- You only use RSA keys today and are adding Ed25519.

## When it does NOT apply
- The error is `No module named 'paramiko'`, which is paramiko itself missing.
- RSA key operations fail too, which points at a broken paramiko install.

## Why this happens
paramiko keeps its hard dependencies minimal and delegates Ed25519 math to libsodium via PyNaCl. pip installs only what setup.py requires, so the optional crypto backend is absent until you ask for it. This is the same pattern as `pip install paramiko[gssapi]` for Kerberos support.

## Compatibility
paramiko 2.0+, PyNaCl 1.5+. On some Linux systems you also need the libsodium system library.