wallet/docs/petname_language.md

27 lines
1.4 KiB
Markdown

---
title:
Petname Language
---
Many different cryptographic identifiers get a petname, but the primary one of thought and concern is petnames for Zooko identifiers.
A Zooko identifier arrives as display name, nickname, public key, and signature binding the display name and nickname to the public key.
A petname for a Zooko name is derived from the nickname:
- remove all leading and trailing whitespace.
- If there are no alphabetic characters, prefix it with one at random.
- Move any leading characters that are not alphabetic from prefix to affix.
- Replace all whitespaces with hyphens.
- Replace all special characters with their nearest permitted equivalent.\
\"#%&'(),.:;<=>?@[]\\^{|} ~\` are special characters that allow escape
from plain text. In displayed text, @ will signify a petname
corresponding to a Zooko name.\
If someone's nickname is Bob, he will likely get the petname Bob,
which will be displayed in text as `@Bob`, indicating it is likely to
be translated in transmission and reception.
- If the result is a duplicate of an existing petname, append a number that renders it unique.
- The user gets the opportunity to revise the petname, but his petname has to be a valid identifier that conforms to the above rules, or else it gets revised again.
- The user may know that several petnames correspond to one entity, but he cannot assign several nicknames to one petname.
We will also eventually have local ids for receive addresses.