{"_id":"@brave/eth-keyring-controller","_rev":"13-0d3db60f68425f85efc518d0d094c03e","name":"@brave/eth-keyring-controller","dist-tags":{"latest":"5.4.3"},"versions":{"5.4.1":{"name":"@brave/eth-keyring-controller","version":"5.4.1","keywords":["ethereum","metamask","accounts","keys"],"author":{"name":"Brave Software","email":"dev@brave.com"},"license":"ISC","_id":"@brave/eth-keyring-controller@5.4.1","maintainers":[{"name":"bcrypt","email":"yan@mit.edu"},{"name":"brianbondy","email":"bbondy@gmail.com"},{"name":"nejczdovc","email":"nejc.zdovc@3zsistemi.si"},{"name":"brave.com","email":"devops@brave.com"},{"name":"evq","email":"ev@7pr.xyz"},{"name":"mrose17","email":"mrose17@gmail.com"},{"name":"brave-kevin","email":"klawler@brave.com"},{"name":"ryanml","email":"rlanese@brave.com"},{"name":"petemill","email":"miller.pete+npm@gmail.com"}],"homepage":"https://github.com/brave/KeyringController#readme","bugs":{"url":"https://github.com/brave/KeyringController/issues"},"dist":{"shasum":"58da9c1736e2456b2ea0b773643c5776eb17481d","tarball":"https://registry.npmjs.org/@brave/eth-keyring-controller/-/eth-keyring-controller-5.4.1.tgz","fileCount":19,"integrity":"sha512-9wdLykRed4dsYtQcMGOKrCJHgIyYB8lhZAzbeRl6xZt7CqNRghx1Ze7dNjmSjaJgaMeFoYc8sHIZGWOSPmgD2g==","signatures":[{"sig":"MEQCIBiCz290jD2ebXmEI4876KY4SqoXHQ45oSAjagCFr7JZAiBjXQH4YDyrMxisckalcvs+kRowk8IGdZY5dpbPeYVs2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3abDCRA9TVsSAnZWagAAeUIQAJddjlJ0o6nOOBGCU4T/\n53oDPyqduPAJm1HnE8Xhy6Sy5GYUr94t1AdnPK0t2u+Hj5ww7zbMT37Vdxsk\nO2E70r3Ze8bFzv6mFbvj9tbmflj2Nz34OZkPqdTjllFijw9d/rlUM/ey9vqD\nb3knypvjOYXg8/Skq0d4a+pOV8Cu2bjvgdvsITwUx0/a3+oxAiV3yRyPhqQU\nEUBurpxvxHIF3dAtxJUJ4ZbESB9PoJTMH6bYuuG07RtYIzdcGku6F48rD37c\nRC+b8w105K77jVsJrov+RzvCrbKYxluTemI/znctk7pq12QI4f3nyU39/too\nP0P/WeFJbuibAz+TKRL0FWthJzKBPDQUwKcuNGle2sqySvZ8ye63Pbp3uiLY\nCMxHbELhpqu7lY4PwqYBCah2wJKHBJSRaiWb67CnF8hSXy2evscY8gQ+6nu5\nNq1siByqC4t9x7+3tqDQRFfOMU36NWn74xz5nKPAe5tEfnwPOQneAcRwM7Sz\nSB9z2eMfSF8tCX6sfnrZlgWxO8jrYzjc44z/075QNc1mmcL1Pyx0ZpDLhCLU\nm+OTA5+rW7HBnS0Aw67yrOlxAcdtVxXtI8COMyUq71tTZ4xxJ6dAkB66aP8X\ne+s2o8vKfY+m6uqfS7eqU+13Vp8Z5q6XbyVE+yNPqt49EyVsAgUuk/vYukYt\n7u+t\r\n=Yap/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"mocha --require test/helper.js test/index.js --timeout 6000"},"_npmUser":{"name":"bcrypt","email":"yan@mit.edu"},"repository":{"url":"git+ssh://git@github.com/brave/KeyringController.git","type":"git"},"description":"Brave's fork of the Metamask module for managing various keyrings of Ethereum accounts, encrypting them, and using them.","directories":{},"resolutions":{"serialize-javascript":"^3.1.0"},"dependencies":{"bip39":"^2.4.0","bluebird":"^3.5.0","loglevel":"^1.5.0","obs-store":"^4.0.3","argon2-wasm":"^0.9.0","brave-crypto":"^0.2.2","eth-sig-util":"^1.4.0","eth-hd-keyring":"brave/eth-hd-keyring#482acf341f01a8d1e924d55bfdbd309444a78e46","promise-filter":"1.1.0","ethereumjs-util":"^5.1.2","browser-passworder":"^2.0.3","eth-simple-keyring":"^3.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"clone":"^2.1.1","jsdom":"^11.12.0","mocha":"^8.0.1","sinon":"^7.2.7","eslint":"^6.2.0","@babel/core":"^7.5.5","jsdom-global":"^3.0.2","ethereumjs-wallet":"^0.6.3","eslint-plugin-mocha":"^6.0.0","polyfill-crypto.getrandomvalues":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eth-keyring-controller_5.4.1_1608361666689_0.8979934008772534","host":"s3://npm-registry-packages"}},"5.4.2":{"name":"@brave/eth-keyring-controller","version":"5.4.2","keywords":["ethereum","metamask","accounts","keys"],"author":{"name":"Brave Software","email":"dev@brave.com"},"license":"ISC","_id":"@brave/eth-keyring-controller@5.4.2","maintainers":[{"name":"bcrypt","email":"yan@mit.edu"},{"name":"brianbondy","email":"bbondy@gmail.com"},{"name":"nejczdovc","email":"nejc.zdovc@3zsistemi.si"},{"name":"brave.com","email":"devops@brave.com"},{"name":"evq","email":"ev@7pr.xyz"},{"name":"mrose17","email":"mrose17@gmail.com"},{"name":"brave-kevin","email":"klawler@brave.com"},{"name":"ryanml","email":"rlanese@brave.com"},{"name":"petemill","email":"miller.pete+npm@gmail.com"}],"homepage":"https://github.com/brave/KeyringController#readme","bugs":{"url":"https://github.com/brave/KeyringController/issues"},"dist":{"shasum":"80b25a3a12b9bfcb9118e04cbc0e3863b9147aa1","tarball":"https://registry.npmjs.org/@brave/eth-keyring-controller/-/eth-keyring-controller-5.4.2.tgz","fileCount":19,"integrity":"sha512-3P5j37BlUAuf6vwW8LJm+r2313Tuv4e8y+zbzpWjzaOYlmHUwJo81r0We2YL7mam5kLS06w2K4H5ZIakmn8GFg==","signatures":[{"sig":"MEYCIQDQ2sdNWmE8BTmE2pOQ+/IbySEfkYFrFcZ5EdTEQIcmbwIhAKtiBODOsPoBK2BufYP/JLeXrizZhWxl5Wpx79XK4MUI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf96v8CRA9TVsSAnZWagAAqNoP/iTd+mTCoxMlPw+lH4il\naFjZJ1DHk0Q8nSPrBnhYQWVKtHiPDBA99JN0mQ1Pa5X20xzUpRQElYWnrUJu\n0e0XMIOgFduHsmapLdSopOtDL8md/OPYextEYZrxgGPlSuNvRKCb0PJVQPzP\naqQcwMI8DtoeL4XVz3hgjUfVbSK5xxNo4sIX2XqYDCO7nP40jZ8peZfjdHAd\n8fH8XSFVtPJrMP6L5KL2h1HU9TwfoX5eNcGzXPFXUqbBcRRqiT5/Y2BmRJ8J\n/4NKWR7O7KSvi9XsnS3k/SIwDK2wTXJstkokZuldK2kcFDykizfxjFCazy4U\nW6B1Gb3rfmhko4jfM186/y78rtf1yApLsD8HBsMUlsIMHfatjx1qs231tRrL\nd0HHSYrvZvdq4Ub+qwBhaR+AZ2dkPHeV2lt2Tuq172FPNHofOQ7FyDqhXyxy\naq2ZxhIhyxjfDlz+C4liO2SjuEFFmCAfc2ovqh39ihXtCvL/4wwpMrwlt1YA\nJRz3kqAFV8FarrJcFLm5iEJRhXBaQiDeatpvRnr3OmqcZlIHwI4h5X/TJiSV\nsrriJICKT0e+352uBJVdptbCuXso15/yxVUqFvOU+XZsy14v/wisFXfF55hc\nNfJD2KHziq99gjA4q0UAO2a94xnaomswerFUI5igm3Nksaq5xgQrcyQqYGoy\nTnZ9\r\n=HcXE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"mocha --require test/helper.js test/index.js --timeout 6000"},"_npmUser":{"name":"bcrypt","email":"yan@mit.edu"},"repository":{"url":"git+ssh://git@github.com/brave/KeyringController.git","type":"git"},"description":"Brave's fork of the Metamask module for managing various keyrings of Ethereum accounts, encrypting them, and using them.","directories":{},"resolutions":{"serialize-javascript":"^3.1.0"},"dependencies":{"bip39":"^2.4.0","bluebird":"^3.5.0","loglevel":"^1.5.0","obs-store":"^4.0.3","argon2-wasm":"^0.9.0","brave-crypto":"^0.3.1","eth-sig-util":"^1.4.0","eth-hd-keyring":"brave/eth-hd-keyring#bb10a3502568597197260f39165fd44af74a401e","promise-filter":"1.1.0","ethereumjs-util":"^5.1.2","browser-passworder":"^2.0.3","eth-simple-keyring":"^3.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"clone":"^2.1.1","jsdom":"^11.12.0","mocha":"^8.0.1","sinon":"^7.2.7","eslint":"^6.2.0","@babel/core":"^7.5.5","jsdom-global":"^3.0.2","ethereumjs-wallet":"^0.6.3","eslint-plugin-mocha":"^6.0.0","polyfill-crypto.getrandomvalues":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eth-keyring-controller_5.4.2_1610066940028_0.5160124320080846","host":"s3://npm-registry-packages"}},"5.4.3":{"name":"@brave/eth-keyring-controller","version":"5.4.3","keywords":["ethereum","metamask","accounts","keys"],"author":{"name":"Brave Software","email":"dev@brave.com"},"license":"ISC","_id":"@brave/eth-keyring-controller@5.4.3","maintainers":[{"name":"bcrypt","email":"yan@mit.edu"},{"name":"brianbondy","email":"bbondy@gmail.com"},{"name":"nejczdovc","email":"nejc.zdovc@3zsistemi.si"},{"name":"brave.com","email":"devops@brave.com"},{"name":"evq","email":"ev@7pr.xyz"},{"name":"mrose17","email":"mrose17@gmail.com"},{"name":"brave-kevin","email":"klawler@brave.com"},{"name":"ryanml","email":"rlanese@brave.com"},{"name":"petemill","email":"miller.pete+npm@gmail.com"}],"homepage":"https://github.com/brave/KeyringController#readme","bugs":{"url":"https://github.com/brave/KeyringController/issues"},"dist":{"shasum":"e46331a78f4681fa9eb36bd5c07bb5de46f549f1","tarball":"https://registry.npmjs.org/@brave/eth-keyring-controller/-/eth-keyring-controller-5.4.3.tgz","fileCount":19,"integrity":"sha512-ESbsyQGj38I31el1IXPWhKV4Bd2lX45NiG1pg1XJlLbiSyNrcPucpWl2BooB1gocA466iWiEazrqqXOh+u5YNw==","signatures":[{"sig":"MEYCIQCr2ZQOUyAQNkP/Xx2ohQsyQt+IBWVSJQLqwGe0ZPd0/QIhAOO1fPsY/hADfdbGonIbc2awbcW4BeU90wM1y2lkUA5+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB3gsCRA9TVsSAnZWagAA5x0QAIY2qC8vpIOlwx2DkSqD\nypGJozoRXdC/mMoFliMpB5W8swHJjM+JjmV2q4koaX8PWBX88l9XF1bQCj6G\nqXeDnkDgjH6w0pdj9p5ZUwNrTuttSQkpJz+89iMu80HAXFQSGzaedAa2VvSF\nhcaZkwK9TDSEa81Y2CiWR9Ya3/vObPKfVT/Ip7uGNJ4dUKYB4FvWS56BnLEi\nluuastvOfqqLlOG0IC8l2gNjdvtLSlHnZDlTBl137JyxILp72BojmgOvilp0\nzw9myfzJjYA727/fOnhVC7+FJeMjAwCSkeDl2p+sG9nmxh24tNzwMw+K+1AY\nimokzVM1zFs73OcNvjqHLH6jO1mtqDXGSI8+WKxewJgsVYlTpJN4eKTTjnFm\n14HqpUqg0i95/LFtRO0//1pTmQc40fXp/SVs8BbUWCN6Cy4ujUL9emWoA7oE\nb3EwqXJyfMSxcxY9jA1RNYde6ER/pNUaNKjfDrbh1lgrZNiSiu+rUmitRnld\n6KcmbzcQe/T8+2IzHWfu7fEOLa6i8zcnoGgYYHz9pJX/qqs/zHayf2lekD/K\nOfzeX5biakS4dyq9Yz2Z/7B1lCtpDgoU4PV5oBk1KaLP6PxTmHoTU2uYZUCP\nnx0rhkqN0GD4roGJsqSSDYez0E6+wd1TKeIAhIlIXZ3qCaUtCw9B0J1VxIRs\nZL7Q\r\n=P3DH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"mocha --require test/helper.js test/index.js --timeout 10000"},"_npmUser":{"name":"bcrypt","email":"yan@mit.edu"},"repository":{"url":"git+ssh://git@github.com/brave/KeyringController.git","type":"git"},"description":"Brave's fork of the Metamask module for managing various keyrings of Ethereum accounts, encrypting them, and using them.","directories":{},"resolutions":{"serialize-javascript":"^3.1.0"},"dependencies":{"bip39":"^2.4.0","bluebird":"^3.5.0","loglevel":"^1.5.0","obs-store":"^4.0.3","argon2-wasm":"^0.9.0","brave-crypto":"^0.3.1","eth-sig-util":"^1.4.0","eth-hd-keyring":"brave/eth-hd-keyring#bb10a3502568597197260f39165fd44af74a401e","promise-filter":"1.1.0","ethereumjs-util":"^5.1.2","browser-passworder":"^2.0.3","eth-simple-keyring":"^3.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"weak":"^1.0.1","clone":"^2.1.1","jsdom":"^11.12.0","mocha":"^8.0.1","sinon":"^7.2.7","eslint":"^6.2.0","@babel/core":"^7.5.5","jsdom-global":"^3.0.2","ethereumjs-wallet":"^0.6.3","eslint-plugin-mocha":"^6.0.0","polyfill-crypto.getrandomvalues":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eth-keyring-controller_5.4.3_1611102251575_0.14853636145959825","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-12-19T07:07:46.579Z","modified":"2026-06-18T20:53:48.627Z","5.4.1":"2020-12-19T07:07:46.831Z","5.4.2":"2021-01-08T00:49:00.276Z","5.4.3":"2021-01-20T00:24:11.859Z"},"bugs":{"url":"https://github.com/brave/KeyringController/issues"},"author":{"name":"Brave Software","email":"dev@brave.com"},"license":"ISC","homepage":"https://github.com/brave/KeyringController#readme","keywords":["ethereum","metamask","accounts","keys"],"repository":{"url":"git+ssh://git@github.com/brave/KeyringController.git","type":"git"},"description":"Brave's fork of the Metamask module for managing various keyrings of Ethereum accounts, encrypting them, and using them.","maintainers":[{"email":"yan@mit.edu","name":"bcrypt"},{"email":"bbondy@gmail.com","name":"brianbondy"},{"email":"devops@brave.com","name":"brave.com"},{"email":"darkdh@gmail.com","name":"darkdh"},{"email":"mrose17@gmail.com","name":"mrose17"},{"email":"miller.pete+npm@gmail.com","name":"petemill"},{"email":"sceli@brave.com","name":"claucece9"},{"email":"pes@peteresnyder.com","name":"pes10k"},{"email":"jjdsampson@gmail.com","name":"jonathansampson"},{"email":"alazarev@brave.com","name":"antonok"}],"readme":"# Eth Keyring Controller [![CircleCI](https://circleci.com/gh/MetaMask/KeyringController.svg?style=svg)](https://circleci.com/gh/MetaMask/KeyringController)\n\nA module for managing groups of Ethereum accounts called \"Keyrings\", defined originally for MetaMask's multiple-account-type feature.\n\nTo add new account types to a `KeyringController`, just make sure it follows [The Keyring Class Protocol](./docs/keyring.md).\n\nThe KeyringController has three main responsibilities:\n- Initializing & using (signing with) groups of Ethereum accounts (\"keyrings\").\n- Keeping track of local nicknames for those individual accounts.\n- Providing password-encryption persisting & restoring of secret information.\n\n## Installation\n\n`npm install eth-keyring-controller --save`\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller')\nconst SimpleKeyring = require('eth-simple-keyring')\n\nconst keyringController = new KeyringController({\n  keyringTypes: [SimpleKeyring], // optional array of types to support.\n  initState: initState.KeyringController, // Last emitted persisted state.\n  encryptor: { // An optional object for defining encryption schemes:\n               // Defaults to Browser-native SubtleCrypto.\n    encrypt (password, object) {\n      return new Promise('encrypted!')\n    },\n    decrypt (password, encryptedString) {\n      return new Promise({ foo: 'bar' })\n    },\n  },\n})\n\n// The KeyringController is also an event emitter:\nthis.keyringController.on('newAccount', (address) => {\n  console.log(`New account created: ${address}`)\n})\nthis.keyringController.on('removedAccount', handleThat)\n```\n\n## Methods\n\nCurrently the methods are heavily commented in [the source code](./index.js), so it's the best place to look until we aggregate it here as well.\n\n","readmeFilename":"README.md"}