Jump to: navigation, search

OneName

This has been transcribed in part from https://github.com/onenameio/onename

Introduction

OneName is a protocol for a decentralized identity system (DIS) with a user directory comprised of entries in a decentralized key-value store. OneName currently uses the Namecoin blockchain, but any decentralized key-value store may be used.

Users are added to the OneName directory via an entry into the key-value store, where the *key* is the username and the *value* is the profile data (in JSON format).

The OneName protocol provides formatting specifications for usernames and profiles and defines conventions for OneName profile crawlers/explorers (which read from the key-value store, digest profile data, and display profiles).

Nobody owns or controls OneName and users are in complete control of their data.

With Bitcoin, private keys provide us with complete control over our funds - nobody can move it without our permission. In the same way, OneName private keys provide us with complete control over our identities - no individual or entity can usurp our usernames or modify our public data or control the release of our private data without our permission.

OneName is open source, has a public design, and is for all to take part.

Syntax

  • namespace : u/
  • namespace : i/


Profile Format v0.2

Field Name Description Example(s)
name The user's name, including his/her given name and family name. { "formatted": "John Smith" }
avatar A url to an image that serves as the user's avatar. { "url": "http://example.com/avatar.jpg"}
cover A url to an image that serves as the user's cover photo. { "cover": "http://example.com/cover.jpg" }
location The user's current location. { "formatted": "New York, NY" }
website The user's website or blog. "http://example.com"
bio The user's biography/self-summary. "Just a guy with his head in the cloud."
bitcoin The user's bitcoin address. { "address": "1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T", "signature": "Gyk26Le4ER0...", "message": "This is a signed message." }
pgp The user's PGP key and fingerprint. { "fingerprint": "D34987E8FAD4AE18C8680B4604DE396333BDC0E1", "url": "https://s3.amazonaws.com/97p/pubkey.txt" }
twitter The user's twitter account. { "username": "someuser", "proof": "https://twitter.com/someuser/status/958360498327054801" }
github The user's github account. { "username": "someuser", "proof": "https://gist.github.com/someuser/e8dd382ccf7c19c2e041" }
facebook The user's facebook account. { "username": "someuser" }
linkedin The user's linkedin account. { "url": "http://www.linkedin.com/in/someuser" }
bitmessage The user's message account. { "address": "BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb" }
[name of service or social network] The user's account on a given service or social network. { "username": "someuser" }
v The version number of the profile data format. "0.2"

Sample profile

"u/username"

{
    "name": { "formatted": "John Smith" },
    "location": { "formatted": "New York, NY" },
    "website": "http://example.com",
    "github": { "username": "someuser" },
    "facebook": { "username": "someuser" },
    "twitter": { "username": "someuser" },
    "bitcoin": { "address": "1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T" },
    "bitmessage": { "address": "BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb" },
    "pgp": {
        "fingerprint": "D34987E8FAD4AE18C8680B4604DE396333BDC0E1",
        "url": "https://s3.amazonaws.com/97p/pubkey.txt"
    },
    "v": "0.2",
    "next": "i/username-1"
}

"i/username-1"

{
    "avatar": { "url": "http://example.com/avatar.jpg" },
    "cover": { "url": "http://example.com/cover.jpg" },
    "bio": "Just a guy with his head in the cloud.",
    "linkedin": { "url": "http://www.linkedin.com/in/someuser" }
}