All public keys in Lysand **MUST** be encoded using the [ed25519](https://ed25519.cr.yp.to/) algorithm. This algorithm is favored due to its speed, security, and compact key size. Legacy algorithms such as RSA are not supported and **SHOULD NOT** be implemented using extensions due to security considerations.
The `public_key` field is a string that contains the user's public key. It **MUST** be encoded using base64.
Base64 encoding of public and private keys is defined as follows:
- The public key **MUST** be encoded using the `spki` format.
- The private key **MUST** be encoded using the `pkcs8` format.
- Both keys **MUST** be turned from raw bytes to base64 by turning the bytes into a sequence of UTF-16 code units, then encoding them as base64 (as shown in the example above).