Awesome-omni-skill aztec-accounts

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

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/aztec-accounts" ~/.claude/skills/diegosouzapw-awesome-omni-skill-aztec-accounts && rm -rf "$T"
manifest: skills/devops/aztec-accounts/SKILL.md
source content

Aztec Accounts Skill

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

Subskills

Quick Start: Create and Deploy Account

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

// 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:

TypeDescriptionUse Case
SchnorrECDSA-compatibleMost common, recommended
ECDSAEthereum-styleEthereum 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 } from "@aztec/aztec.js/fields";
import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin";

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

// Wallet
import { EmbeddedWallet } from "@aztec/wallets/embedded";

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