Introduction to HALO
HALO is a system of components for implementing decentralized identity designed around privacy, security, and collaboration requirements.
- The HALO SDK is part of the DXOS client library and provides user authentication, identity, and contact management capabilities.
 - The HALO protocol supports the verification, transport, and exchange of identity information between networked peers.
 
Features
- Public/private key-pair authentication mechanism integrated into ECHO
 - Passwordless log in
 - Local-first credentials and key storage
 - Multi-device synchronization of identities, credentials, ECHO spaces
 
Establishing user identity
There are a few ways a user can establish their identity (login) with DXOS on any given device.
- Initializing a new HALO identity for the user from a DXOS-powered application.
 - Accepting a device invitation will synchronize the user’s identity from another device.
 - Recovering an identity using a recovery code, sometimes referred to as paper key recovery.
 - Recovering an identity using a passkey.
 
Next steps
How to read the HALO identity in code:
- Use the 
useIdentityhook in react - Use the 
client.halo.profilefield in TypeScript