{
"repo": "keypear",
"timestamp": "2026-01-16T23:39:46.925Z",
"entryPoint": "index.js",
"exports": {
"packageJson": {
"main": "index.js"
}
},
"api": {
"file": "index.js",
"exports": [
{
"type": "default",
"name": "Keychain"
}
],
"classes": [
{
"name": "Keychain"
}
],
"functions": [
{
"name": "add"
},
{
"name": "fromKeyPair"
},
{
"name": "allocKeyPair"
},
{
"name": "toScalarKeyPair"
},
{
"name": "tweakKeyPair"
},
{
"name": "createSigner"
},
{
"name": "verify"
},
{
"name": "toBuffer"
}
]
},
"readme": {
"content": "# keypear\n\n🔑🍐 Keychain that derives deterministic Ed25519 keypairs and attestations\n\n```\nnpm install keypear\n```\n\n## Usage\n\n``` js\nconst Keychain = require('keypear')\n\nconst keys = new Keychain()\n\nconst cur = keys.get() // returns the current keypair instance\nconst foo = keys.get('foo') // tweaks and returns a keypair instance for 'foo'\n\nconst sub = keys.sub('bar') // get a sub keychain tweaked by 'bar'\nconst subsub = sub.sub('baz') // sub on the sub chain\n\n// to sign things\n\nconst sig = cur.sign(message)\nconst publicKey = cur.publicKey\n```\n\n## API\n\n#### `keys = new Keychain(publicKeyOrKeyPair)`\n\nMake a new Keychain instance.\n\n```js\nconst keys = new Keychain() // generates a fresh keypair for you\nconst keys = new Keychain(publicKey) // generate a \"readonly\" keychain\nconst keys = new Keychain(keyPair) // generate a keychain from a keypair\n```\n\n#### `keys.home`\n\nPoints to the keypair that was used to construct the Keychain.\n\n#### `keys.base`\n\nPoints to current checkout, or home if no c",
"sections": [
"intro",
"usage",
"api",
"bootstrapping helpers",
"license"
],
"hasApi": true,
"hasExamples": true,
"exampleCount": 9,
"examples": [
"npm install keypear",
"## API\n\n#### `keys = new Keychain(publicKeyOrKeyPair)`\n\nMake a new Keychain instance.",
"#### `keys.home`\n\nPoints to the keypair that was used to construct the Keychain.\n\n#### `keys.base`\n\nPoints to current checkout, or home if no checkout was made.\n\n#### `keys.tweak`\n\nPoints to the current tweak used.\n\n#### `keys.head`\n\nThe key pair of this chain, basically `base + tweak`.\n\n#### `keys = Keychain.from(keyChainOrPublicKeyOrKeyPair)`\n\nSame as above, except it will return the Keychain if passed to it.\nUseful to avoid a peer dependency on the Keychain in your application, ie"
]
},
"patterns": [
"cryptography"
]
}