Authentication
The wallet proves control of its key by signing a server-issued challenge, then exchanges the signature for an access / refresh token pair:
- Call Get sign-in challenge with the user's public key. The response contains the data to sign (
messageToSign). - Sign that data with the corresponding private key.
- Submit the signature to Get access tokens to receive an
accessTokenand arefreshToken. - Send every authenticated request with
Authorization: Bearer <accessToken>. - When the access token expires, get a fresh pair via Refresh access tokens.
Rendering diagram…