aztec-accounts

critesjosh's avatarfrom critesjosh

Manage Aztec accounts including Schnorr account creation, deployment, and recovery from credentials. Use when creating accounts, deploying wallets, or recovering existing accounts.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 8, 2026

When & Why to Use This Skill

The Aztec Accounts skill streamlines the management of privacy-preserving accounts on the Aztec network. It provides developers with automated workflows for creating, deploying, and recovering Schnorr-based wallets, handling complex cryptographic key generation and deterministic address derivation to accelerate the development of zero-knowledge decentralized applications.

Use Cases

  • Automated Wallet Provisioning: Programmatically generate new Schnorr accounts with randomized secret keys and salts for rapid prototyping and user onboarding.
  • Account Deployment & Initialization: Execute the deployment of account contracts on the Aztec network, including the configuration of sponsored fee payment methods.
  • Secure Credential Recovery: Restore access to existing Aztec accounts by importing saved secret keys, signing keys, and salts from secure environment variables.
  • Cryptographic Key Management: Manage sensitive account components like Grumpkin scalars and Fr fields for secure local storage and deterministic address derivation.
nameaztec-accounts
descriptionManage Aztec accounts including Schnorr account creation, deployment, and recovery from credentials. Use when creating accounts, deploying wallets, or recovering existing accounts.
allowed-toolsRead, Grep, Glob, Edit, Write, Bash

Aztec Accounts Skill

Create, deploy, and manage Aztec accounts with proper key management.

Subskills

Quick Start: Create and Deploy Account

import { Fr, GrumpkinScalar } from "@aztec/aztec.js/fields";
import { AztecAddress } from "@aztec/stdlib/aztec-address";
import { AccountManager } from "@aztec/aztec.js/wallet";
import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing";

// Generate new account keys
const secretKey = Fr.random();
const signingKey = GrumpkinScalar.random();
const salt = Fr.random();

// Create account manager
const account = await wallet.createSchnorrAccount(secretKey, salt, signingKey);
console.log(`Account address: ${account.address}`);

// Deploy account (required before use)
await (await account.getDeployMethod()).send({
    from: AztecAddress.ZERO,
    fee: { paymentMethod: sponsoredPaymentMethod }
}).wait({ timeout: 120000 });

Account Types

Aztec supports several account types:

Type Description Use Case
Schnorr ECDSA-compatible Most common, recommended
ECDSA Ethereum-style Ethereum compatibility

Key Components

  • Secret Key (Fr) - Private key for encryption
  • Signing Key (GrumpkinScalar) - Private key for transaction signing
  • Salt (Fr) - Randomness for address derivation
  • Address - Derived deterministically from above

Important: Save Credentials

After creating an account, always save the credentials:

console.log(`SECRET=${secretKey.toString()}`);
console.log(`SIGNING_KEY=${signingKey.toString()}`);
console.log(`SALT=${salt.toString()}`);

Store these in your .env file for later recovery.

Key Imports

// Key types
import { Fr, GrumpkinScalar } from "@aztec/aztec.js/fields";

// Account management
import { AccountManager } from "@aztec/aztec.js/wallet";
import { AztecAddress } from "@aztec/stdlib/aztec-address";

// Wallet
import { TestWallet } from "@aztec/test-wallet/server";

// Fee payment
import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing";