Keybase IDs Suffixes
With lots of different types of IDs floating around, we adopoted a convention of appending trailing bytes to otherwise opaque identifiers so that one can identify, at a glance, what type of ID it is. Here are the reserved public ID suffixes that are currently in use:
0x00— User ID version 1. The first Keybase User IDs were random 15-byte identifiers with a trailing
0x00byte. These identifiers were generated independently of username. We discovered, however, that the disassociation between the two gives the server an opportunity to confuse clients. Thus, all of the original keybase User IDs are permamently pinned to the sitewide Merkle tree. See
payload_json.body.legacy_uid_rootof the current Merkle tree.
0x0a— Key IDs
0x0f— Signature IDs
0x19— User ID version 2. Since March of 2015, all Keybase UIDs are the first 15 bytes of the SHA-256 hashes of the corresponding username. There was a bug early on where we didn't call
toLoweron these usernames, that was fixed in May 2015.
There are other suffixes used internally, which we may document in the future.
Pssst, we're hiring.