signup

POST
https://keybase.io/_/api/1.0/signup.json
SAMPLE PARAMS
name:           "Chris"               # required
email:          "cc@chriscoyne.com"   # required
username:       "chris"               # required
pwh:            "f0909fe23409..."     # required
salt:           "7d34343eeeee..."     # required
invitation_id:  "0000000000123"       # required...for now
SAMPLE OUTPUT
{
  "status": {
      "code": 0
  },
  "csrf_token": "lgHZIDFjZmY0Nzlj..."
}
WATCH FOR
"BAD_SIGNUP_USERNAME_TAKEN"
"BAD_SIGNUP_USERNAME_RESERVED"
"BAD_SIGNUP_EMAIL_TAKEN"
"BAD_SIGNUP_TEAM_NAME"
"INPUT_ERROR"

Picking a salt

It is the client app's responsibility to generate a salt. Make sure to use a strong pseudo-random number generator. In the browser, for example, we collect entropy from a combination of window.crypto.getRandomValues and a bunch of extra CPU timing.

Your salt should be a 16-byte number, hex encoded. In other words, it should be sent to Keybase as a 32-character hex string.

Generating the password hash (pwh)

A user's password hash is hex-encoded scrypt(pw, salt)


Pssst, we're hiring.