Magic provides a key-based identity solution built on top of the Decentralized Identity (DID) standard where users’ identities are self-sovereign by leveraging blockchain public-private key pairs. These key pairs generate zero-knowledge proofs to authenticate users instead of relying on users' passwords to Magic or any identity provider. By leveraging elliptic curve cryptography, these proofs can be used to communicate with developers' resource servers securely. Since Magic’s authentication protocol is based on key pairs provided by decentralized blockchain networks, it is platform-independent and thus able to provide authentication services without relying on centralized identity providers.