Agent skill

aztec-typescript

Generate TypeScript client code for interacting with Aztec contracts. Use when building frontend integrations, creating contract clients, or setting up wallet connections.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/aztec-typescript

SKILL.md

Aztec TypeScript Integration

Generate TypeScript code for interacting with Aztec contracts.

Subskills

  • Contract Client - Type-safe contract interaction wrapper
  • Wallet Setup - Wallet and node connection patterns
  • Transaction Patterns - Common transaction patterns
  • AuthWit Frontend - Client-side authorization witness implementation

Quick Start: Contract Interaction

typescript
import { MyContract } from "../artifacts/MyContract.js";
import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee";

// Get contract instance
const contract = MyContract.at(contractAddress, wallet);

// Call a method
const tx = await contract.methods.myMethod(arg1, arg2).send({
    from: account.address,
    fee: { paymentMethod },
    wait: { timeout: 600 }
});

console.log('Transaction successful');

Generated Artifacts

After running aztec codegen, you get TypeScript bindings:

typescript
// src/artifacts/MyContract.ts
import { MyContractContract } from "../artifacts/MyContract.js";

// Available methods
MyContractContract.deploy(wallet, ...args)  // Deploy new contract
MyContractContract.at(address, wallet)       // Connect to existing
contract.methods.myFunction(args)            // Call contract method

Key Imports

typescript
// Contract and wallet
import { Wallet } from "@aztec/aztec.js/wallet";
import { AztecAddress } from "@aztec/aztec.js/addresses";

// Transaction handling
import { TxReceipt } from "@aztec/stdlib/tx";

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

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

// Logging
import { type Logger, createLogger } from "@aztec/foundation/log";

Transaction Flow

  1. Get contract instance (at() or deploy())
  2. Call method via contract.methods.xxx()
  3. Send with fee payment and wait .send({ from, fee, wait: { timeout } })
  4. Transaction resolves when confirmed

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results