npm.io
5.2.0 • Published 1 month ago

@aztec/accounts

Licence
Version
5.2.0
Deps
6
Size
8.4 MB
Vulns
0
Weekly
0

Accounts

Accounts is a client library that provides implementations for some common account flavors. Use it to acquire a Wallet object that corresponds to an account, and use that together with @aztec/aztec.js to interact with the network.

Installing

npm install @aztec/accounts

Account types

  • Schnorr: Uses an Grumpkin private key with Schnorr signatures for authentication, and a separate Grumpkin private key for encryption. Recommended for most use cases.
  • ECDSA: Uses an ECDSA private key for authentication, and a Grumpkin private key for encryption. Recommended for building integrations with Ethereum wallets.

Usage

Deploy a new account
import { getSchnorrAccount } from '@aztec/accounts/schnorr';
import { GrumpkinScalar } from '@aztec/foundation/curves/bn254';
import { Fr } from '@aztec/stdlib';

const encryptionSecretKey = Fr.random();
const signingPrivateKey = GrumpkinScalar.random();
const wallet = getSchnorrAccount(pxe, encryptionSecretKey, signingPrivateKey)
  .deploy({ deployWallet }) // Use a wallet with funds to pay for the fee for the deployment.
  .wait();
console.log(`New account deployed at ${wallet.getAddress()}`);
Create a wallet object from an already deployed account
import { getSchnorrWallet } from '@aztec/accounts/schnorr';

const wallet = getSchnorrWallet(pxe, address, signingPrivateKey);
console.log(`Wallet for ${wallet.getAddress()} ready`);