Jump to: navigation, search

Identity

Namecoin ID : Manage your online identity

Description

The purpose of id/ is to manage a public online identity.

  • Any application can retrieve data associated with an identity.
  • An identity can be composed of email addresses, bitcoin/namecoin/*coin addresses, gpg key (fingerprint), xmpp address, and other things.
  • Namecoin addresses associated with the identity (either holding the name or via the 'signer' field) can be used to sign data on behalf of your identity, which can be used for online logins and other applications.
  • Each application type that want to store data associated with an identity must be added in the registered applications list with a description on how data will be formatted.

Syntax

  • namespace : id/
  • name :

- max 255 characters,

- lowercase,

- a-z, 0-9

- dash : max one space between other characters, not as first or last

- prefixed with "id/"

Regexp (to be confirmed) :

^id/[a-z0-9]+([-]?[a-z0-9])*$
  • value : max 1023 characters, json encoded

Examples

Fecthing all data from the identity of "khal" :

$ namecoind name_show "id/khal"
{
  "email":    "khal@dot-bit.org",
  "bitcoin":  "1J3EKMfboca3SESWGrQKESsG1MA9yK6vN4",
  "namecoin": "N2pGWAh65TWpWmEFrFssRQkQubbczJSKi9"
}

Fecthing bitcoin data from the identity of "khal" :

$ namecoind name_jsonget "id/khal" bitcoin
{
  "bitcoin": "1J3EKMfboca3SESWGrQKESsG1MA9yK6vN4"
}

Registered Applications

The following fields may be part of the JSON value of an identity name to specify a multitude of different data about an online identity:

Application Description Rules Examples
name
Name of the identity owner. A real name (first and last name) or pseudonym.
{
  "name": "Daniel Kraft"
}
email
Store an email address for the identity. Possible formats:
  • an email address, or
  • an array of addresses, or
  • an object with labels (label "default" is required)
$ namecoind name_show id/khal
{
  "email": "khal@dot-bit.org"
}
$ namecoind name_show id/khal
{
  "email":
    ["khal@dot-bit.org",
      "example@otherplace.info"]
}
$ namecoind name_show id/khal
{
  "email":
    {
      "default": "khal@dot-bit.org",
      "business": "khal@example.com"
    }
}
country
A country is the sovereign nation in which a person is located. The country is identified by the two-letter ISO 3166 code.
$ namecoind name_show id/khal
{
  "country": "AT"
}
locality
A locality is a defined place within the region in which a person is located. Sometimes also called a "city", "town", or "village". Possible formats:
  • a city, or
  • an array of cities
$ namecoind name_show id/khal
{
  "locality": "Vienna"
}
$ namecoind name_show id/khal
{
  "locality": ["Vienna","Вена"]
}
photo_url
A photograph provides a pictorial representation of a person. A photograph comes in form of URL
$ namecoind name_show id/khal
{
  "photo_url": "http://www.saint-andre.com/images/stpeter.jpg"
}
description
It can be helpful to provide a natural-language description of a person.
$ namecoind name_show id/khal
{
  "description": "I'm Bitcoin fanatic \:)"
}
hobby
A hobby is a non-work activity that a person enjoys pursuing. Possible formats:
  • an array
$ namecoind name_show id/khal
{
  "hobby": ["cryptography","cryptocurrency","blogging","geek","hiking"]
}
birthday
A date in which a person was born. Possible formats:
  • year/month/day
  • year/month
  • year
$ namecoind name_show id/khal
{
  "birthday": "1990/03/27"
}
gender
Gender is the self-defined gender of a person This is not limited to "male" and "female", although those are the expected values in most instances
$ namecoind name_show id/khal
{
  "gender": "male"
}
weblog
URI at which a person or other entity maintains a weblog. Comes in form of URL
$ namecoind name_show id/khal
{
  "weblog": "http://www.saint-andre.com/blog/"
}
namecoin
Namecoin address of the identity owner. Possible formats:
  • a namecoin address, or
  • an array of namecoin addresses, or
  • an object of namecoin addresses with labels (label "default" is required)
$ namecoind name_show id/khal
{
  "namecoin": "N2pGWAh65TWpWmEFrFssRQkQubbczJSKi9"
}
$ namecoind name_show id/khal
{
  "namecoin":
    ["N15mJsVMHNtVDedDnD8vu82M5hCfn3nJWq",
      "N2pGWAh65TWpWmEFrFssRQkQubbczJSKi9"]
}
$ namecoind name_show id/khal
{
  "namecoin":
    {
      "default": "N15mJsVMHNtVDedDnD8vu82M5hCfn3nJWq",
      "donation": "N2pGWAh65TWpWmEFrFssRQkQubbczJSKi9"
    }
}
bitcoin
Bitcoin address of the identity owner. See "namecoin" above.
bitmessage
Public Bitmessage address associated to the identity. A valid Bitmessage address.
{
  "bitmessage": "BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb"
}
xmpp
XMPP/Jabber contact. A valid XMPP address.
{
  "xmpp": "jabber@dot-bit.org"
}
otr
OTR public key fingerprint. Fingerprint or array of valid fingerprints. Each fingerprint is a hex string, case insensitive and may contain spaces for readability that are ignored.
{
  "otr": "D2A5E5E0704A117D0B43C7FC0caee72C8FE85CA9"
}
{
  "otr":
    ["D2A5 E5E0 704A 117D 0B43 C7FC 0cae e72C 8FE8 5CA9",
      "some other fingerprint"]
}
gpg
GPG key fingerprint. See the special section below.
signer
Addresses allowed to "sign" on behalf of this identity for certain applications. The address holding the name is always implied to be a "signer". Namecoin address or array of Namecoin addresses.
$ namecoind name_show id/domob
{
  "signer": "NDgQyGeyTdoopvbUD14GR536FmDiv6esuU"
}
{
  "signer":
    ["NDgQyGeyTdoopvbUD14GR536FmDiv6esuU",
      "NBNfCNHWa2HZqnjVSpavcUXRefUbNPP7Jj"]
}

GPG Fingerprints

TODO.

Known Implementations

Name Link Applications Description
Bitmessage [1]
bitmessage
Bitmessage can retrieve addresses from Namecoin identities if they specify an address.
NameID [2]
name
email
bitcoin
namecoin
xmpp
bitmessage
gpg
signer
Can display lots of fields for identities, and you can use the site's support for signing with either the name's address or one of the "signer" addresses to log into an OpenID provider.
Pidgin OTR+NMC [3]
otr
A proof-of-concept fork of the Pidgin OTR plugin that allows to verify fingerprints against Namecoin identities.