Naming of identity and fingerprint keys
We write "With Olm, devices have three types of keys that they need to maintain: a signing key (also referred to as a fingerprint key), an encryption key (also referred to as an identity key)," but later, we talk about the fingerprint key and the identity key, and define methods on DeviceKeysManager like identity_key and fingerprint_key.
I think if we are planning to use "fingerprint" and "identity", then we should introduce those as the main words, and mention "signing" and "encryption" in brackets.
Alternatively (and my preferred I think) we could use the "signing" and "encryption" names throughout the text. I think these names are easier to understand.
Additional small point: in the introductory text the order is fingerprint, then identity, so I would prefer if the code of DeviceKeysManager used the same order, but currently the order is reversed.
All of this reflects the fact that I find it very hard to remember which key is which, so need as much help as possible!