{"id":20597078,"url":"https://github.com/tradle/identity","last_synced_at":"2025-04-14T23:52:23.872Z","repository":{"id":29713216,"uuid":"33256235","full_name":"tradle/identity","owner":"tradle","description":"identity on chain","archived":false,"fork":false,"pushed_at":"2016-03-12T10:53:17.000Z","size":116,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-14T23:52:14.381Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tradle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-01T15:36:44.000Z","updated_at":"2016-07-31T09:08:08.000Z","dependencies_parsed_at":"2022-09-04T12:22:41.286Z","dependency_job_id":null,"html_url":"https://github.com/tradle/identity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fidentity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fidentity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fidentity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fidentity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tradle","download_url":"https://codeload.github.com/tradle/identity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981260,"owners_count":21193144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T08:20:09.092Z","updated_at":"2025-04-14T23:52:23.854Z","avatar_url":"https://github.com/tradle.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Identity\n\nlightweight identity with an arbitrary property set and an arbitrary collection of EC keys. Compliant with Openname spec.\n\n_this module is used by [Tradle](https://github.com/tradle/about/wiki)_\n\n## Usage\n\n```js\nvar midentity = require('midentity')\nvar Identity = midentity.Identity\nvar AddressBook = midentity.AddressBook\nvar Keys = require('kiki').Keys\nvar ted = new Identity()\n  .name({\n    firstName: 'Ted',\n    middleName: 'Theodore',\n    lastName: 'Logan',\n    formatted: 'Ted Theodore Logan'\n  })\n  .location({\n    country: 'USA',\n    region: 'California',\n    city: 'San Dimas',\n    street: '666 Wyld Stallyns Dr',\n    postalCode: 666,\n    formatted: '666 Wyld Stallyns Dr, San Dimas, California'\n  })\n  .summary('Bill\\'s best friend')\n  .addPhoto({\n    type: 'headshot',\n    url: 'http://scrapetv.com/News/News%20Pages/Entertainment/images-9/keanu-reeves-bill-and-ted.jpg'\n  })\n  .addWebsite({\n    url: 'wyldstallyns.com'\n  })\n  .addContact({\n    type: 'skype',\n    identifier: 'somebodyelse'\n  })\n\n// Add keys manually\nvar keys = [\n  Keys.EC.gen({\n    purpose: 'sign'\n  }),\n  Keys.Bitcoin.gen({\n    purpose: 'data',\n    networkName: 'bitcoin',\n    label: 'most excellent key'\n  }),\n  Keys.Bitcoin.gen({\n    purpose: 'payment',\n    networkName: 'testnet',\n    label: 'most triumphant key'\n  })\n]\n\n// Or add the default set of keys like so: \nvar keys = defaultKeySet({\n  networkName: 'testnet'\n})\n\nkeys.forEach(ted.addKey, ted)\n  \nvar addressBook = new AddressBook()\naddressBook.addIndex({ name: 'label', unique: true })\naddressBook.addIndex({ name: 'networkName', unique: false })\naddressBook.add(ted)\nvar keyMatch = addressBook.byKey(ted.keys()[0])\nvar labelMatch = addressBook.byLabel('most triumphant key')\nvar networkMatch = addressBook.byNetwork('testnet')\n```\n\n### toJSON()\n\n```js\nvar priv = ted.toJSON()\n```\n```json\n{\n  \"_t\": \"tradle.Identity\",\n  \"contact\": [\n    {\n      \"identifier\": \"somebodyelse\",\n      \"type\": \"skype\"\n    }\n  ],\n  \"location\": {\n    \"city\": \"San Dimas\",\n    \"country\": \"USA\",\n    \"formatted\": \"666 Wyld Stallyns Dr, San Dimas, California\",\n    \"postalCode\": 666,\n    \"region\": \"California\",\n    \"street\": \"666 Wyld Stallyns Dr\"\n  },\n  \"name\": {\n    \"firstName\": \"Ted\",\n    \"formatted\": \"Ted Theodore Logan\",\n    \"lastName\": \"Logan\",\n    \"middleName\": \"Theodore\"\n  },\n  \"photos\": [\n    {\n      \"type\": \"headshot\",\n      \"url\": \"http://scrapetv.com/News/News%20Pages/Entertainment/images-9/keanu-reeves-bill-and-ted.jpg\"\n    }\n  ],\n  \"pubkeys\": [\n    {\n      \"curve\": \"secp256k1\",\n      \"fingerprint\": \"f96c58d3b1ba077d342956cebe29e0a3a2e308b08e6e04615bbfa29ba24666c3\",\n      \"priv\": \"0f7448f5e2988ccbe16c238433b06005a529f074942d691af04b537851f27497\",\n      \"type\": \"ec\",\n      \"value\": \"024484b39afb8f4c177b53e05ae14d4294f4b971e69fcb7cca239d2436230d0b6c\"\n    },\n    {\n      \"fingerprint\": \"1M5ZYub5SJ7qHxhcGmApu1yXtPw132NnLq\",\n      \"label\": \"blah\",\n      \"networkName\": \"bitcoin\",\n      \"priv\": \"L5KGsDzVDy1mqdRcSp76UvexieTfqmSfcnUmaoHscZWAAWbVLySj\",\n      \"type\": \"bitcoin\",\n      \"value\": \"029ccebc79422477be278cd27efa396d619484680f230d7502f7bc3ff567e78db8\"\n    },\n    {\n      \"fingerprint\": \"mfZ8zdJ7Nu4TJah3fE9FNkvjpVvfHZiZy2\",\n      \"label\": \"yo!\",\n      \"networkName\": \"testnet\",\n      \"priv\": \"cPZdnDZ2dmV9Yk97siHjcUiybxBBKZb1NZLdXURFZ14DMtS9KRjq\",\n      \"type\": \"bitcoin\",\n      \"value\": \"02bbce019ff2392e6e39e7728a27394a29856bce59f7db645ca846d896914571eb\"\n    }\n  ],\n  \"summary\": \"Bill's best friend\",\n  \"v\": \"0.3\",\n  \"websites\": [\n    {\n      \"url\": \"wyldstallyns.com\"\n    }\n  ]\n}\n```\n\n### fromJSON(exportedIdentity)\n\n```js\n// export \u0026 recover\nted = Identity.fromJSON(ted.toJSON())\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Fidentity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftradle%2Fidentity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Fidentity/lists"}