4.3.8 • Published 3 years ago

@stacks/keychain v4.3.8

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

@stacks/keychain

Create and manage keys/wallets for the Stacks blockchain.

Installation

npm install @stacks/keychain

Mnemonic

Generate encrypted mnemonic

import { decrypt, generateEncryptedMnemonicRootKeychain } from '@stacks/keychain';

const password = '427706da374f435f959283de93652375';
const twelveWorder = await generateEncryptedMnemonicRootKeychain(password, 128);
const twentyFourWorder = await generateEncryptedMnemonicRootKeychain(password, 256);

const twelveWordDecrypted = await decrypt(twelveWorder.encryptedMnemonicPhrase, password);
console.log(twelveWordDecrypted);
  
const twentyFourWordDecrypted = await decrypt(twentyFourWorder.encryptedMnemonicPhrase, password);
console.log(twentyFourWordDecrypted);

Restore keychain from mnemonic

import { deriveRootKeychainFromMnemonic } from '@stacks/keychain';

const phrase =
    'eternal army wreck noodle click shock include orchard jungle only middle forget idle pulse give empower iron curtain silent blush blossom chef animal sphere';

const rootNode = await deriveRootKeychainFromMnemonic(phrase);
const privateKey = rootNode.privateKey?.toString('hex');
// privateKey

Encryption

Encrypt and decrypt

import { decrypt, encrypt } from '@stacks/keychain';

const phrase = 'vivid oxygen neutral wheat find thumb cigar wheel board kiwi portion business';
const password = 'supersecret';

const encryptedText = await encrypt(phrase, password);
const plainTextBuffer = await decrypt(encryptedText, password);
console.log(plainTextBuffer);

Wallet

Generate and restore wallet

import keychain, { decrypt } from '@stacks/keychain';
import { ChainID } from '@stacks/transactions';
import { Buffer } from '@stacks/common';

const password = 'password';
const generated = await keychain.Wallet.generate(password, ChainID.Testnet);

const encryptedBackupPhrase = generated.encryptedBackupPhrase;

const plainTextBuffer = await decrypt(Buffer.from(encryptedBackupPhrase, 'hex'), password);

const backupPhrase = plainTextBuffer.toString();

const restored = await keychain.Wallet.restore(password, backupPhrase, ChainID.Mainnet);

console.log(restored.identityPublicKeychain === generated.identityPublicKeychain);
// true

Get profile from auth response

import keychain from '@stacks/keychain';
import { ChainID } from '@stacks/transactions';
import { getPublicKeyFromPrivate, makeECPrivateKey } from '@stacks/encryption';
import { decodeToken } from 'jsontokens';

const password = 'password';
const generated = await keychain.Wallet.generate(password, ChainID.Testnet);
const [identity] = generated.identities;

const appDomain = 'https://banter.pub';
const gaiaUrl = 'https://hub.blockstack.org';
const transitPrivateKey = makeECPrivateKey();
const transitPublicKey = getPublicKeyFromPrivate(transitPrivateKey);

const authResponse = await identity.makeAuthResponse({
  appDomain,
  gaiaUrl,
  transitPublicKey,
  scopes: ['publish_data'],
});
const decoded = decodeToken(authResponse);
console.log(decoded);

Get a STX address

import keychain from '@stacks/keychain';
import { ChainID, TransactionVersion } from '@stacks/transactions';

const password = 'password';
const generated = await keychain.Wallet.generate(password, ChainID.Testnet);
const signer = generated.getSigner();
const mainnetAddress = signer.getSTXAddress(TransactionVersion.Mainnet);
console.log(mainnetAddress);

const testnetAddress = signer.getSTXAddress(TransactionVersion.Testnet);
console.log(testnetAddress);
4.3.8-beta.0

3 years ago

4.3.6

3 years ago

4.3.5

3 years ago

4.3.8

3 years ago

4.3.7

3 years ago

4.3.7-beta.1

3 years ago

4.3.7-beta.0

3 years ago

4.3.6-beta.0

3 years ago

4.3.5-beta.2

3 years ago

4.3.4-beta.0

3 years ago

4.3.1-beta.0

3 years ago

4.3.1-beta.3

3 years ago

4.3.1-beta.4

3 years ago

4.3.1-beta.1

3 years ago

4.3.1-beta.2

3 years ago

4.3.1-beta.7

3 years ago

4.3.1-beta.8

3 years ago

4.3.1-beta.5

3 years ago

4.3.1-beta.6

3 years ago

4.3.1-beta.9

3 years ago

4.3.5-beta.0

3 years ago

4.3.5-beta.1

3 years ago

4.3.2

3 years ago

4.3.3-beta.0

3 years ago

4.3.1

3 years ago

4.3.4

3 years ago

4.3.3-beta.1

3 years ago

4.3.2-beta.1

3 years ago

4.3.3

3 years ago

4.3.2-beta.0

3 years ago

4.3.0

3 years ago

4.3.1-beta.10

3 years ago

4.3.1-pr

3 years ago

4.2.3-beta.0

3 years ago

4.0.1

3 years ago

4.0.2

3 years ago

4.2.0-beta.4

3 years ago

4.2.0-beta.3

3 years ago

4.2.0-beta.6

3 years ago

4.2.0-beta.5

3 years ago

4.2.0-beta.0

3 years ago

4.2.0-beta.2

3 years ago

4.2.0-beta.1

3 years ago

4.0.2-beta.0

3 years ago

4.0.2-beta.1

3 years ago

4.2.2-beta.0

3 years ago

3.5.1

3 years ago

4.3.0-beta.2

3 years ago

4.3.0-beta.1

3 years ago

4.3.0-beta.0

3 years ago

4.2.1-beta.0

3 years ago

4.2.2

3 years ago

4.2.1

3 years ago

4.2.0

3 years ago

4.0.3-beta.0

3 years ago

4.0.1-beta.1

3 years ago

4.1.0

3 years ago

4.1.2

3 years ago

4.0.0

3 years ago

3.5.1-beta.1

3 years ago

3.5.1-beta.3

3 years ago

3.5.1-beta.2

3 years ago

3.5.1-beta.4

3 years ago

4.0.0-beta.2

3 years ago

4.0.0-beta.1

3 years ago

3.5.1-beta.0

3 years ago

3.5.0

3 years ago

3.5.0-beta.3

3 years ago

3.5.0-beta.1

3 years ago

3.5.0-beta.2

3 years ago

3.5.0-beta.0

3 years ago

3.4.1-beta.0

3 years ago

3.4.1-beta.1

3 years ago

3.2.0

3 years ago

3.2.1-alpha.0

3 years ago

3.3.0

3 years ago

3.2.1-beta.0

3 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.0.1

4 years ago

2.0.1-beta.2

4 years ago

2.0.1-beta.1

4 years ago

3.0.0-beta.0

4 years ago

2.0.0

4 years ago

2.0.0-beta.1

4 years ago

2.0.0-beta.0

4 years ago

1.5.0-alpha.1

4 years ago

1.5.0-alpha.0

4 years ago

0.17.18

4 years ago

0.17.17

4 years ago

1.4.1

4 years ago

1.3.5

4 years ago

1.3.3

4 years ago

1.3.0

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.1-alpha.0

4 years ago

1.2.2

4 years ago

1.2.2-alpha.0

4 years ago

1.2.0

4 years ago

1.1.1-alpha.0

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.17.15

4 years ago

0.17.14

4 years ago

0.17.13

4 years ago

0.17.12

4 years ago

0.17.7

4 years ago

0.17.6

4 years ago

0.17.5

4 years ago

0.17.4

4 years ago

0.17.3

5 years ago

0.17.2

5 years ago

1.0.0-beta.20

5 years ago

1.0.0-beta.21

5 years ago

0.17.1

5 years ago

1.0.0-alpha.19

5 years ago

1.0.0-beta.19

5 years ago

1.0.0-beta.18

5 years ago

1.0.0-beta.17

5 years ago

1.0.0-beta.16

5 years ago

1.0.0-beta.15

5 years ago

1.0.0-beta.14

5 years ago

0.17.0

5 years ago

1.0.0-beta.13

5 years ago

1.0.0-beta.11

5 years ago

1.0.0-beta.12

5 years ago

0.16.4

5 years ago

1.0.0-beta.10

5 years ago

0.16.3

5 years ago

0.16.2

5 years ago

0.16.1

5 years ago

0.16.0

5 years ago

1.0.0-beta.9

5 years ago

0.15.4

5 years ago

0.15.2

5 years ago

0.15.3

5 years ago

0.15.1

5 years ago

0.15.0

5 years ago

0.14.1

5 years ago

0.14.0

5 years ago

0.12.10

5 years ago

1.0.0-alpha.9

5 years ago

1.0.0-alpha.10

5 years ago

1.0.0-beta.8

5 years ago

1.0.0-beta.6

5 years ago

1.0.0-beta.7

5 years ago

1.0.0-beta.5

5 years ago

1.0.0-beta.2

5 years ago

1.0.0-beta.1

5 years ago