Photon SDK
  • Photon SDK
  • Photon Key Server
  • Key Server API
  • Photon Lib
  • Demo App
    • Photon Privacy Policy
Powered by GitBook
On this page
  • Create Key
  • Get Key
  • Change PIN
  • Create User
  • Verify User
  • Reset PIN
  • Remove User

Was this helpful?

Key Server API

A documentation of the REST api for the Photon key server used for encrypted cloud backup of the user's wallet seed.

Create Key

POST https://keys-dev.photonsdk.com/v2/key

Create a new encryption key e.g. when a new user registers to backup their data during app sign up.

Request Body

Name
Type
Description

pin

string

A PIN required for authentication (at least 4 digits)

{
  "id": "36e6b967-eeeb-4b54-818b-13331416c9f4"
}
{
  "message": "Invalid request"
}

Get Key

GET https://keys-dev.photonsdk.com/v2/key/:keyId

Fetch the encryption key from the api endpoint.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

Headers

Name
Type
Description

Authorization

string

Basic Authentication as a base64 encoded PIN in a user:pass pair

{
  "id": "36e6b967-eeeb-4b54-818b-13331416c9f4",
  "encryptionKey": "kjXCstWMW3ed3zBTU3sDg/XyPxPkbaz3yVfB9bP+w7A="
}
{
  "message": "Invalid request"
}

Change PIN

PUT https://keys-dev.photonsdk.com/v2/key/:keyId

Change the PIN used for authenticating encryption key operations.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

Headers

Name
Type
Description

Authorization

string

Basic Authentication as a base64 encoded PIN in a user:pass pair

Request Body

Name
Type
Description

newPin

string

The new PIN (at least 4 digits)

{
  "message": "Success"
}

Create User

POST https://keys-dev.photonsdk.com/v2/key/:keyId/user

Create a new user for the key. A user can be identified either by email address or phone number.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

Headers

Name
Type
Description

Authorization

string

Basic Authentication as a base64 encoded PIN in a user:pass pair

Request Body

Name
Type
Description

userId

string

An email address or phone number

{
  "message": "Success"
}

Verify User

PUT https://keys-dev.photonsdk.com/v2/key/:keyId/user/:userId

Verify a new user via the code sent via email or sms (op = "verify"). This api endpoint is also called to verify a PIN reset (op = "reset-pin"). In order to mitigate a SIM swap attack the PIN reset must be verified twice with a 30 day time delay in between.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

userId

string

Email address or phone number

Request Body

Name
Type
Description

op

string

Verify operation: "verify" or "reset-pin"

code

string

Verification code sent via email or sms

newPin

string

The new PIN to be set after a PIN reset

{
  "message": "Success"
}
{
  "message": "Invalid params"
}
{
  "message": "Time locked until",
  "delay": "2020-12-16T13:56:45.848Z"
}

Reset PIN

GET https://keys-dev.photonsdk.com/v2/key/:keyId/user/:userId/reset

Initiate a PIN reset for the key. A verification code will be sent to the provided email address or phone number.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

userId

string

Email address or phone number

{
  "message": "Success"
}

Remove User

DELETE https://keys-dev.photonsdk.com/v2/key/:keyId/user/:userId

Delete an email address or phone number that is associated with a key.

Path Parameters

Name
Type
Description

keyId

string

ID of the key

userId

string

Email address or phone number

Headers

Name
Type
Description

Authorization

string

Basic Authentication as a base64 encoded PIN in a user:pass pair

{
  "message": "Success"
}
{
  "message": "Invalid request"
}
PreviousPhoton Key ServerNextPhoton Lib

Last updated 4 years ago

Was this helpful?