Reference
This documentation is auto-generated from the Aztec.js TypeScript source code.
This is an auto-generated reference. For tutorials and guides, see the Aztec.js Guide.
Package: @aztec/aztec.js
Generated: 2026-08-19T11:34:32.056Z
This document provides a comprehensive reference for all public APIs in the Aztec.js library.
Each section is organized by module, with classes, interfaces, types, and functions documented with their full signatures, parameters, and return types.
Table of Contents
- Account
- Authorization
- Contract
- BaseContractInteraction
- BatchCall
- abiChecker
- Contract
- ContractMethod
- ContractStorageLayout
- ContractBase
- ContractFunctionInteraction
- DeployInstantiationOptions
- BoundInstantiationOptions
- UniversalInstantiationOptions
- PendingInstantiationOptions
- DeployMethodContract
- DeployMethodPayload
- RequestDeployOptions
- DeployOptionsWithoutWait
- DeployOptions
- SimulateDeployOptions
- DeployResultMined
- DeployReturn
- DeployMethod
- BoundDeployMethod
- UniversalDeployMethod
- PendingDeployMethod
- fastForwardContractUpdate
- FeePaymentMethodOption
- GasSettingsOption
- InteractionFeeOptions
- RequestInteractionOptions
- NO_WAIT
- NoWait
- NO_FROM
- NoFrom
- InteractionWaitOptions
- SendInteractionOptionsWithoutWait
- SendInteractionOptions
- SimulateInteractionOptions
- ProfileInteractionOptions
- OffchainMessage
- OffchainOutput
- extractOffchainOutput
- SimulationResult
- TxSendResultImmediate
- TxSendResultMined
- SendReturn
- toSendOptions
- toSimulateOptions
- toProfileOptions
- WaitForProvenOpts
- DefaultWaitForProvenOpts
- waitForProven
- WaitOpts
- DefaultWaitOpts
- Deployment
- Ethereum
- Fee
- Utils
- FieldLike
- EthAddressLike
- AztecAddressLike
- FunctionSelectorLike
- EventSelectorLike
- U128Like
- WrappedFieldLike
- OptionLike
- IntentInnerHash
- CallIntent
- ContractFunctionInteractionCallIntent
- isContractFunctionInteractionCallIntent
- computeAuthWitMessageHash
- getMessageHashFromIntent
- computeInnerAuthWitHashFromAction
- lookupValidity
- SetPublicAuthwitContractInteraction
- waitForL1ToL2MessageReady
- isL1ToL2MessageReady
- getFeeJuiceBalance
- readFieldCompressedString
- waitForNode
- waitForTx
- createAztecNodeClient
- AztecNode
- generatePublicKey
- Wallet
- AccountEntrypointMetaPaymentMethod
- AccountManagerCreateOptions
- AccountManager
- CAPABILITY_VERSION
- ContractFunctionPattern
- AccountsCapability
- GrantedAccountsCapability
- ContractsCapability
- GrantedContractsCapability
- ContractClassesCapability
- GrantedContractClassesCapability
- SimulationCapability
- GrantedSimulationCapability
- TransactionCapability
- GrantedTransactionCapability
- DataCapability
- GrantedDataCapability
- Capability
- GrantedCapability
- AppCapabilities
- WalletCapabilities
- DeployAccountFeePaymentMethodOption
- RequestDeployAccountOptions
- DeployAccountOptions
- SimulateDeployAccountOptions
- DeployAccountMethod
- TxSimulationResultWithAppOffset
- Aliased
- SimulateOptions
- ProfileOptions
- SendOptions
- BatchableMethods
- BatchedMethod
- BatchedMethodResult
- BatchedMethodResultWrapper
- BatchResults
- EventFilterBase
- PrivateEventFilter
- PublicEventFilter
- Event
- PrivateEvent
- PublicEvent
- ContractMetadata
- ContractClassMetadata
- ExecuteUtilityOptions
- Wallet
- ExecutionPayloadSchema
- GasSettingsOptionSchema
- WaitOptsSchema
- SendOptionsSchema
- SimulateOptionsSchema
- ProfileOptionsSchema
- MessageHashOrIntentSchema
- EventMetadataDefinitionSchema
- PrivateEventFilterSchema
- PublicEventFilterSchema
- PrivateEventSchema
- PublicEventSchema
- ContractMetadataSchema
- ContractClassMetadataSchema
- ContractFunctionPatternSchema
- AccountsCapabilitySchema
- GrantedAccountsCapabilitySchema
- ContractsCapabilitySchema
- GrantedContractsCapabilitySchema
- ContractClassesCapabilitySchema
- GrantedContractClassesCapabilitySchema
- SimulationCapabilitySchema
- GrantedSimulationCapabilitySchema
- TransactionCapabilitySchema
- GrantedTransactionCapabilitySchema
- DataCapabilitySchema
- GrantedDataCapabilitySchema
- CapabilitySchema
- GrantedCapabilitySchema
- AppCapabilitiesSchema
- WalletCapabilitiesSchema
- BatchedMethodSchema
- BatchedResultSchema
- WalletSchema
Account
account/account.ts
AuthorizationProvider
Type: Interface
Provides authorization for actions via the AuthWitness mechanism.
Methods
createAuthWit
Creates an authentication witness from an inner hash with consumer, or a call intent
Signature:
createAuthWit(
intent: IntentInnerHash | CallIntent,
chainInfo: ChainInfo
): Promise<AuthWitness>
Parameters:
intent:IntentInnerHash | CallIntent- The action (or inner hash) to authorize
chainInfo:ChainInfo- Chain information needed for message hash computation
Returns:
Promise<AuthWitness>
Account
Type: Type Alias
Minimal interface for transaction execution and authorization.
Signature:
export type Account = EntrypointInterface &
AuthorizationProvider & {
getCompleteAddress(): CompleteAddress;
getAddress(): AztecAddress;
};
Type Members:
getCompleteAddress
Returns the complete address for this account.
Signature:
getCompleteAddress(): CompleteAddress
Returns:
CompleteAddress
getAddress
Returns the address for this account.
Signature:
getAddress(): AztecAddress
Returns:
AztecAddress
BaseAccount
Type: Class
An account implementation that uses authwits as an authentication mechanism and can assemble transaction execution requests for an entrypoint.
Implements: Account
Constructor
Signature:
constructor(
private entrypoint: EntrypointInterface,
private authWitnessProvider: AuthWitnessProvider,
private completeAddress: CompleteAddress
)
Parameters:
entrypoint:EntrypointInterfaceauthWitnessProvider:AuthWitnessProvidercompleteAddress:CompleteAddress
Methods
createTxExecutionRequest
Signature:
createTxExecutionRequest(
exec: ExecutionPayload,
gasSettings: GasSettings,
chainInfo: ChainInfo,
options: DefaultAccountEntrypointOptions
): Promise<TxExecutionRequest>
Parameters:
exec:ExecutionPayloadgasSettings:GasSettingschainInfo:ChainInfooptions:DefaultAccountEntrypointOptions
Returns:
Promise<TxExecutionRequest>
wrapExecutionPayload
Signature:
wrapExecutionPayload(
exec: ExecutionPayload,
chainInfo: ChainInfo,
options?: any
): Promise<ExecutionPayload>
Parameters:
exec:ExecutionPayloadchainInfo:ChainInfooptions(optional):any
Returns:
Promise<ExecutionPayload>
createAuthWit
Signature:
async createAuthWit(
messageHashOrIntent: CallIntent | IntentInnerHash,
chainInfo: ChainInfo
): Promise<AuthWitness>
Parameters:
messageHashOrIntent:CallIntent | IntentInnerHashchainInfo:ChainInfo
Returns:
Promise<AuthWitness>
getCompleteAddress
Signature:
getCompleteAddress(): CompleteAddress
Returns:
CompleteAddress
getAddress
Signature:
getAddress(): AztecAddress
Returns:
AztecAddress
account/account_contract.ts
AccountContract
Type: Interface
An account contract instance. Knows its artifact, deployment arguments, how to create transaction execution requests out of function calls, and how to authorize actions.
Methods
getContractArtifact
Returns the artifact of this account contract.
Signature:
getContractArtifact(): Promise<ContractArtifact>
Returns:
Promise<ContractArtifact>
getInitializationFunctionAndArgs
Returns the initializer function name and arguments for this instance, or undefined if this contract does not require initialization.
Signature:
getInitializationFunctionAndArgs(): Promise<{
constructorName: string;
constructorArgs: any[];
} | undefined>
Returns:
Promise<
| {
/** The name of the function used to initialize the contract */
constructorName: string;
/** The args to the function used to initialize the contract */
constructorArgs: any[];
}
| undefined
>
getImmutablesHash
The hash of this account's immutable instantiation params, committed into its address. Returns undefined for accounts that have no immutables (these are instead deployed via an onchain initializer, which contributes to the address through its initialization hash).
Signature:
getImmutablesHash(): Promise<Fr | undefined>
Returns:
Promise<Fr | undefined>
getAccount
Returns the account implementation for this account contract given an instance at the provided address. The account is responsible for assembling tx requests given requested function calls, and for creating signed auth witnesses given action identifiers (message hashes).
Signature:
getAccount(address: CompleteAddress): Account
Parameters:
address:CompleteAddress- Address of this account contract.
Returns:
Account - An account instance for creating tx requests and authorizing actions.
getAuthWitnessProvider
Returns the auth witness provider for the given address.
Signature:
getAuthWitnessProvider(address: CompleteAddress): AuthWitnessProvider
Parameters:
address:CompleteAddress- Address for which to create auth witnesses.
Returns:
AuthWitnessProvider
getAccountContractAddress
Type: Function
Compute the address of an account contract from secret, salt and optional immutables hash
Signature:
export async getAccountContractAddress(
accountContract: AccountContract,
secret: Fr,
salt: Fr,
immutablesHash?: Fr
)
Parameters:
accountContract:AccountContractsecret:Frsalt:FrimmutablesHash(optional):Fr
Returns:
Promise<any>
Authorization
authorization/call_authorization_request.ts
CallAuthorizationRequest
Type: Class
An authwit request for a function call. Includes the preimage of the data to be signed, as opposed of just the inner hash.
Constructor
Signature:
private constructor(
public selector: AuthorizationSelector,
public innerHash: Fr,
public onBehalfOf: AztecAddress,
public msgSender: AztecAddress,
public functionSelector: FunctionSelector,
public argsHash: Fr,
public args: Fr[]
)
Parameters:
selector:AuthorizationSelector- The selector of the authwit type, used to identify it when emitted from
emit_offchain_effectoracle. Computed as poseidon2("CallAuthwit((Field),(u32),Field)".to_bytes())
- The selector of the authwit type, used to identify it when emitted from
innerHash:Fr- The inner hash of the authwit, computed as poseidon2([msg_sender, selector, args_hash])
onBehalfOf:AztecAddress- The address on whose behalf the auth witness should be created. This is the account that must sign the authorization.
msgSender:AztecAddress- The address performing the call
functionSelector:FunctionSelector- The selector of the function that is to be authorized
argsHash:Fr- The hash of the arguments to the function call,
args:Fr[]- The arguments to the function call.
Methods
getSelector
Signature:
static getSelector(): Promise<AuthorizationSelector>
Returns:
Promise<AuthorizationSelector>
fromFields
Signature:
static async fromFields(fields: Fr[]): Promise<CallAuthorizationRequest>
Parameters:
fields:Fr[]
Returns:
Promise<CallAuthorizationRequest>
Contract
contract/base_contract_interaction.ts
BaseContractInteraction
Type: Class
Base class for an interaction with a contract, be it a deployment, a function call, or a batch. Implements the sequence create/simulate/send.
Constructor
Signature:
constructor(
protected wallet: Wallet,
protected authWitnesses: AuthWitness[] = [],
protected capsules: Capsule[] = []
)
Parameters:
wallet:WalletauthWitnesses(optional):AuthWitness[]capsules(optional):Capsule[]
Properties
log
Type: any
Methods
request
Returns an execution request that represents this operation. Can be used as a building block for constructing batch requests.
Signature:
public abstract request(options?: RequestInteractionOptions): Promise<ExecutionPayload>
Parameters:
options(optional):RequestInteractionOptions- An optional object containing additional configuration for the transaction.
Returns:
Promise<ExecutionPayload> - An execution request wrapped in promise.
send
Sends a transaction to the contract function with the specified options. By default, waits for the transaction to be mined and returns the receipt (or custom type).
Signature:
public send<TReturn = TxReceipt>(options: SendInteractionOptionsWithoutWait): Promise<TxSendResultMined<TReturn>>
Parameters:
options:SendInteractionOptionsWithoutWait- An object containing 'from' property representing the AztecAddress of the sender, optional fee configuration, and optional wait settings
Returns:
Promise<TxSendResultMined<TReturn>> - TReturn (if wait is undefined/WaitOpts) or TxHash (if wait is NO_WAIT)
send
Signature:
public send<TReturn = TxReceipt, W extends InteractionWaitOptions = undefined>(options: SendInteractionOptions<W>): Promise<SendReturn<W, TReturn>>
Parameters:
options:SendInteractionOptions<W>
Returns:
Promise<SendReturn<W, TReturn>>
send
Signature:
public async send<TReturn = TxReceipt>(options: SendInteractionOptions<InteractionWaitOptions>): Promise<SendReturn<typeof options.wait, TReturn>>
Parameters:
options:SendInteractionOptions<InteractionWaitOptions>
Returns:
Promise<SendReturn<typeof options.wait, TReturn>>
contract/batch_call.ts
BatchCall
Type: Class
A batch of function calls to be sent as a single transaction through a wallet.
Extends: BaseContractInteraction
Constructor
Signature:
constructor(
wallet: Wallet,
protected interactions: (BaseContractInteraction | ExecutionPayload)[],
private extraHashedArgs: HashedValues[] = []
)
Parameters:
wallet:Walletinteractions:(BaseContractInteraction | ExecutionPayload)[]extraHashedArgs(optional):HashedValues[]
Methods
request
Returns an execution request that represents this operation.
Signature:
public async request(options: RequestInteractionOptions = {}): Promise<ExecutionPayload>
Parameters:
options(optional):RequestInteractionOptions- An optional object containing additional configuration for the request generation.
Returns:
Promise<ExecutionPayload> - An execution payload wrapped in promise.
simulate
Simulates/executes the batch, supporting private, public and utility functions. Although this is a single interaction with the wallet, private and public functions will be grouped into a single ExecutionPayload that the wallet will simulate as a single transaction. Utility function calls will be executed one by one.
Signature:
public async simulate(options: SimulateInteractionOptions): Promise<SimulationResult>
Parameters:
options:SimulateInteractionOptions- An optional object containing additional configuration for the interaction.
Returns:
Promise<SimulationResult> - The results of all the interactions that make up the batch
getExecutionPayloads
Signature:
protected async getExecutionPayloads(): Promise<ExecutionPayload[]>
Returns:
Promise<ExecutionPayload[]>
contract/checker.ts
abiChecker
Type: Function
Validates the given ContractArtifact object by checking its functions and their parameters. Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types. Throws an error if any inconsistency is detected during the validation process.
Signature:
export abiChecker(artifact: ContractArtifact)
Parameters:
artifact:ContractArtifact- The ContractArtifact object to be validated.
Returns:
boolean - A boolean value indicating whether the artifact is valid or not.
contract/contract.ts
Contract
Type: Class
The Contract class represents a contract and provides utility methods for interacting with it. It enables the creation of ContractFunctionInteraction instances for each function in the contract's ABI, allowing users to call or send transactions to these functions. Additionally, the Contract class can be used to attach the contract instance to a deployed contract onchain through the PXE, which facilitates interaction with Aztec's privacy protocol.
Extends: ContractBase
Methods
at
Gets a contract instance.
Signature:
public static at(
address: AztecAddress,
artifact: ContractArtifact,
wallet: Wallet
): Contract
Parameters:
address:AztecAddress- The address of the contract instance.
artifact:ContractArtifact- Build artifact of the contract.
wallet:Wallet- The wallet to use when interacting with the contract.
Returns:
Contract - A promise that resolves to a new Contract instance.
deploy
Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
Signature:
public static deploy(
wallet: Wallet,
artifact: ContractArtifact,
args: any[],
constructorName?: string,
instantiation?: DeployInstantiationOptions
)
Parameters:
wallet:Wallet- The wallet for executing the deployment.
artifact:ContractArtifact- Build artifact of the contract to deploy
args:any[]- Arguments for the constructor.
constructorName(optional):string- The name of the constructor function to call.
instantiation(optional):DeployInstantiationOptions- Other address-affecting parameters (salt, deployer / universalDeploy, publicKeys).
Returns:
DeployMethod<Contract>
contract/contract_base.ts
ContractMethod
Type: Type Alias
Type representing a contract method that returns a ContractFunctionInteraction instance and has a readonly 'selector' property of type Buffer. Takes any number of arguments.
Signature:
export type ContractMethod = ((...args: any[]) => ContractFunctionInteraction) & {
selector: () => Promise<FunctionSelector>;
};
Type Members:
selector
The unique identifier for a contract function in bytecode.
Type: () => Promise<FunctionSelector>
ContractStorageLayout
Type: Type Alias
Type representing the storage layout of a contract.
Signature:
export type ContractStorageLayout<T extends string> = {
[K in T]: FieldLayout;
};
Type Members:
[K in T]
Signature: [K in T]: FieldLayout
Key Type: T
Value Type: FieldLayout
ContractBase
Type: Class
Abstract implementation of a contract extended by the Contract class and generated contract types.
Constructor
Signature:
protected constructor(
public readonly address: AztecAddress,
public readonly artifact: ContractArtifact,
public wallet: Wallet
)
Parameters:
address:AztecAddress- The contract's address.
artifact:ContractArtifact- The Application Binary Interface for the contract.
wallet:Wallet- The wallet used for interacting with this contract.
Properties
methods
An object containing contract methods mapped to their respective names.
Type: { [name: string]: ContractMethod }
Methods
withWallet
Creates a new instance of the contract wrapper attached to a different wallet.
Signature:
public withWallet(wallet: Wallet): this
Parameters:
wallet:Wallet- Wallet to use for sending txs.
Returns:
this - A new contract instance.
contract/contract_function_interaction.ts
ContractFunctionInteraction
Type: Class
This is the class that is returned when calling e.g. contract.methods.myMethod(arg0, arg1). It contains available interactions one can call on a method, including view.
Extends: BaseContractInteraction
Constructor
Signature:
constructor(
wallet: Wallet,
protected contractAddress: AztecAddress,
protected functionDao: FunctionAbi,
protected args: any[],
authWitnesses: AuthWitness[] = [],
capsules: Capsule[] = [],
private extraHashedArgs: HashedValues[] = []
)
Parameters:
wallet:WalletcontractAddress:AztecAddressfunctionDao:FunctionAbiargs:any[]authWitnesses(optional):AuthWitness[]capsules(optional):Capsule[]extraHashedArgs(optional):HashedValues[]
Methods
getFunctionCall
Returns the encoded function call wrapped by this interaction Useful when generating authwits
Signature:
public async getFunctionCall()
Returns:
Promise<any> - An encoded function call
request
Returns the execution payload that allows this operation to happen on chain.
Signature:
public override async request(options: RequestInteractionOptions = {}): Promise<ExecutionPayload>
Parameters:
options(optional):RequestInteractionOptions- Configuration options.
Returns:
Promise<ExecutionPayload> - The execution payload for this operation
simulate
Simulate a transaction and get information from its execution. Differs from prove in a few important ways: 1. It returns the values of the function execution, plus additional metadata if requested 2. It supports utility, private and public functions
Signature:
public async simulate(options: SimulateInteractionOptions = {} as SimulateInteractionOptions): Promise<SimulationResult>
Parameters:
options(optional):SimulateInteractionOptions- An optional object containing additional configuration for the simulation.
Returns:
Promise<SimulationResult> - Depending on the simulation options, this method directly returns the result value of the executed function or a rich object containing extra metadata, such as estimated gas costs (if requested via options), execution statistics and emitted offchain effects
profile
Simulate a transaction and profile the gate count for each function in the transaction.
Signature:
public async profile(options: ProfileInteractionOptions): Promise<TxProfileResult>
Parameters:
options:ProfileInteractionOptions- Same options as
simulate, plus profiling method
- Same options as
Returns:
Promise<TxProfileResult> - An object containing the function return value and profile result.
with
Augments this ContractFunctionInteraction with additional metadata, such as authWitnesses, capsules, and extraHashedArgs. This is useful when creating a "batteries included" interaction, such as registering a contract class with its associated capsule instead of having the user provide them externally.
Signature:
public with({ authWitnesses = [], capsules = [], extraHashedArgs = [], }: {
authWitnesses?: AuthWitness[];
capsules?: Capsule[];
extraHashedArgs?: HashedValues[];
}): ContractFunctionInteraction
Parameters:
-
{ authWitnesses = [], capsules = [], extraHashedArgs = [], }:{/** The authWitnesses to add to the interaction */authWitnesses?: AuthWitness[];/** The capsules to add to the interaction */capsules?: Capsule[];/** The extra hashed args to add to the interaction */extraHashedArgs?: HashedValues[];}
Returns:
ContractFunctionInteraction - A new ContractFunctionInteraction with the added metadata, but calling the same original function in the same manner
contract/deploy_method.ts
DeployInstantiationOptions
Type: Type Alias
Inputs that determine the contract's deployment address. salt and publicKeys are optional and default to a random Fr and PublicKeys.default() respectively. deployer and universalDeploy are mutually exclusive and both optional: - If neither is supplied, the deployer is locked lazily on the first send / simulate / profile call from options.from (NO_FROM/undefined → universal). This preserves the ergonomics of MyContract.deploy(wallet, ...args).send({ from: alice }). - If deployer or universalDeploy: true is supplied, the deployer is locked at construction. Once locked, the deployer cannot change. Subsequent calls with a from that would imply a different deployer throw — except when locked to AztecAddress.ZERO (universal), which is compatible with any sender.
Signature:
export type DeployInstantiationOptions = {
salt?: Fr;
deployer?: AztecAddress;
universalDeploy?: boolean;
publicKeys?: PublicKeys;
immutablesHash?: Fr;
};
Type Members:
salt
Salt used to derive the contract address. Defaults to a random Fr.
Type: Fr
deployer
Deployer address mixed into the address preimage. Mutually exclusive with universalDeploy.
Type: AztecAddress
universalDeploy
If true, the contract is deployed universally (deployer = AztecAddress.ZERO in the address preimage). Mutually exclusive with deployer.
Type: boolean
publicKeys
Public keys mixed into the address. Defaults to PublicKeys.default().
Type: PublicKeys
immutablesHash
Commitment to the contract's immutable storage values. Folded into the salted initialization hash, so a non-zero value affects the derived address. Defaults to Fr.ZERO.
Type: Fr
BoundInstantiationOptions
Type: Type Alias
Narrowed DeployInstantiationOptions accepted by BoundDeployMethod: requires a concrete deployer and forbids universalDeploy. The runtime check that deployer is non-zero stays as defense in depth (it's a value-level invariant the type system can't model).
Signature:
export type BoundInstantiationOptions = SharedInstantiationOptions & {
deployer: AztecAddress;
universalDeploy?: never;
};
Type Members:
deployer
Concrete deployer mixed into the address preimage. Required, must be non-zero.
Type: AztecAddress
universalDeploy
Forbidden on BoundDeployMethod; use UniversalDeployMethod for universal deploys.
Type: never
UniversalInstantiationOptions
Type: Type Alias
Narrowed DeployInstantiationOptions accepted by UniversalDeployMethod: forbids deployer and requires universalDeploy: true (so the call site reads as a universal deploy).
Signature:
export type UniversalInstantiationOptions = SharedInstantiationOptions & {
deployer?: never;
universalDeploy: true;
};
Type Members:
deployer
Forbidden on UniversalDeployMethod; use BoundDeployMethod if you need a concrete deployer.
Type: never
universalDeploy
Marks this as a universal deploy. Required for clarity at the call site.
Type: true
PendingInstantiationOptions
Type: Type Alias
Narrowed DeployInstantiationOptions accepted by PendingDeployMethod: forbids both deployer and universalDeploy. The deploy is locked from the first send-time from instead.
Signature:
export type PendingInstantiationOptions = SharedInstantiationOptions & {
deployer?: never;
universalDeploy?: never;
};
Type Members:
deployer
Forbidden on PendingDeployMethod; use BoundDeployMethod for a concrete deployer.
Type: never
universalDeploy
Forbidden on PendingDeployMethod; use UniversalDeployMethod for a universal deploy.
Type: never
DeployMethodContract
Type: Type Alias
Identifies which contract is being deployed and with what initializer.
Signature:
export type DeployMethodContract<TContract extends ContractBase = ContractBase> = {
artifact: ContractArtifact;
postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract;
args?: any[];
constructorNameOrArtifact?: string | FunctionArtifact;
};
Type Members:
artifact
Build artifact of the contract being deployed.
Type: ContractArtifact
postDeployCtor
Factory invoked after deployment to produce the typed contract handle.
Type: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract
args
Encoded constructor arguments for the contract. Defaults to [].
Type: any[]
constructorNameOrArtifact
Name (or full artifact) of the initializer to call.
Type: string | FunctionArtifact
DeployMethodPayload
Type: Type Alias
Execution-payload metadata propagated through request / send / simulate / profile.
Signature:
export type DeployMethodPayload = {
authWitnesses?: AuthWitness[];
capsules?: Capsule[];
extraHashedArgs?: HashedValues[];
};
Type Members:
authWitnesses
Auth witnesses propagated to the deploy interaction.
Type: AuthWitness[]
capsules
Capsules propagated to the deploy interaction.
Type: Capsule[]
extraHashedArgs
Extra hashed args propagated to the deploy interaction.
Type: HashedValues[]
RequestDeployOptions
Type: Type Alias
Options for deploying a contract on the Aztec network. Controls publication and registration policy for this deployment.
Signature:
export type RequestDeployOptions = RequestInteractionOptions & {
skipClassPublication?: boolean;
skipInstancePublication?: boolean;
skipInitialization?: boolean;
skipRegistration?: boolean;
};
Type Members:
skipClassPublication
Skip contract class publication.
Type: boolean
skipInstancePublication
Skip publication, instead just privately initialize the contract.
Type: boolean
skipInitialization
Skip contract initialization.
Type: boolean
skipRegistration
Skip contract registration in the wallet
Type: boolean
DeployOptionsWithoutWait
Type: Type Alias
Base deployment options without wait parameter.
Signature:
export type DeployOptionsWithoutWait = RequestDeployOptions &
Pick<SendInteractionOptionsWithoutWait, 'from' | 'fee' | 'additionalScopes'>;
DeployOptions
Type: Type Alias
Extends the deployment options with the required parameters to send the transaction.
Signature:
export type DeployOptions<W extends InteractionWaitOptions = undefined> = DeployOptionsWithoutWait & {
wait?: W;
};
Type Members:
wait
Options for waiting for the transaction to be mined. - undefined (default): wait with default options and return the contract instance - WaitOpts: wait with custom options - NO_WAIT: return TxHash immediately without waiting
Type: W
SimulateDeployOptions
Type: Type Alias
Options for simulating the deployment of a contract Allows skipping certain validations and computing gas estimations
Signature:
export type SimulateDeployOptions = Omit<DeployOptionsWithoutWait, 'fee'> & {
fee?: InteractionFeeOptions;
skipTxValidation?: boolean;
skipFeeEnforcement?: boolean;
includeMetadata?: boolean;
};
Type Members:
fee
The fee options for the transaction.
Type: InteractionFeeOptions
skipTxValidation
Simulate without checking for the validity of the resulting transaction, e.g. whether it emits any existing nullifiers.
Type: boolean
skipFeeEnforcement
Whether to ensure the fee payer is not empty and has enough balance to pay for the fee.
Type: boolean
includeMetadata
Whether to include metadata such as offchain effects and performance statistics (e.g. timing information of the different circuits and oracles) in the simulation result, instead of just the return value of the function
Type: boolean
DeployResultMined
Type: Type Alias
Result of deploying a contract when waiting for mining (default case).
Signature:
export type DeployResultMined<TContract extends ContractBase> = {
contract: TContract;
instance: ContractInstanceWithAddress;
receipt: TxReceipt;
} & OffchainOutput;
Type Members:
contract
The deployed contract instance.
Type: TContract
instance
The deployed contract instance with address and metadata.
Type: ContractInstanceWithAddress
receipt
The deploy transaction receipt.
Type: TxReceipt
DeployReturn
Type: Type Alias
Conditional return type for deploy based on wait options.
Signature:
export type DeployReturn<TContract extends ContractBase, W extends InteractionWaitOptions> = W extends NoWait
? TxSendResultImmediate
: DeployResultMined<TContract>;
DeployMethod
Type: Class
Umbrella type for a contract deployment interaction. DeployMethod is abstract: callers always interact with one of three concrete flavors — BoundDeployMethod, UniversalDeployMethod, or PendingDeployMethod — picked by DeployMethod.create based on the supplied DeployInstantiationOptions. The flavors only differ in their initial deployer-lock state; the full API (request / send / simulate / profile / getInstance / getAddress / getPartialAddress / register / with) lives on this base, so consumers can type variables as DeployMethod<T> and treat all three uniformly. The deployer (and therefore the deployed address) is locked once and never changes. Locking happens either at construction (via deployer or universalDeploy: true in the instantiation options) or lazily on the first send / simulate / profile call, which lock from options.from. Once locked: - The address is stable for the lifetime of this object. - Subsequent send / simulate / profile calls with a from that would imply a different deployer throw, to prevent silently deploying at a different address than getAddress() reported. - A locked universal deployer (AztecAddress.ZERO) is compatible with any from, since the address does not depend on the sender. Note that for some contracts, a tx is not required as part of its "creation": If there are no public functions, and if there are no initialization functions, then technically the contract has already been "created", and all of the contract's functions (private and utility) can be interacted-with immediately, without any "deployment tx".
Extends: BaseContractInteraction
Constructor
Signature:
protected constructor(
wallet: Wallet,
contract: DeployMethodContract<TContract>,
salt: Fr | undefined,
publicKeys: PublicKeys | undefined,
immutablesHash: Fr | undefined,
payload: DeployMethodPayload = {}
)
Parameters:
wallet:Walletcontract:DeployMethodContract<TContract>salt:Fr | undefinedpublicKeys:PublicKeys | undefinedimmutablesHash:Fr | undefinedpayload(optional):DeployMethodPayload
Properties
salt
Salt used in the address preimage.
Type: Fr
publicKeys
Public keys mixed into the address preimage.
Type: PublicKeys
immutablesHash
Immutables hash folded into the salted initialization hash.
Type: Fr
#instancePromise
Cached instance promise; resolved once the deployer is known.
Type: Promise<ContractInstanceWithAddress>
#resolvedInstance
Resolved value of #instancePromise, populated synchronously once the promise settles.
Type: ContractInstanceWithAddress
constructorArtifact
Constructor function to call.
Type: FunctionAbi | undefined
artifact
Build artifact of the contract being deployed.
Type: ContractArtifact
postDeployCtor
Factory invoked after deployment to produce the typed contract handle.
Type: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract
args
Encoded constructor arguments for the contract.
Type: any[]
extraHashedArgs
Extra hashed args propagated through with(...) and into the deploy payload.
Type: HashedValues[]
Methods
getDeployerAddress
The address that will be mixed into the contract's address preimage. Owned returns the concrete deployer; Universal returns AztecAddress.ZERO; Pending throws unless a prior send / simulate / profile call has already locked it.
Signature:
public abstract getDeployerAddress(): AztecAddress
Returns:
AztecAddress
lockDeployer
Reconciles a send-time from with the deploy's deployer. Owned asserts an exact match; Universal accepts anything; Pending uses the first call to lock its deployer (transitioning into an Owned/Universal sibling), then defers to that sibling's assertion on subsequent calls. The "locks-or-asserts" name is intentional: only Pending mutates state, and only on its first invocation. Owned and Universal are pure assertions.
Signature:
public abstract lockDeployer(from: SendInteractionOptionsWithoutWait['from'] | undefined): void
Parameters:
from:SendInteractionOptionsWithoutWait['from'] | undefined- The send-time
fromvalue (AztecAddress,NO_FROM, orundefined).
- The send-time
Returns:
void
cloneInstantiation
Returns the DeployInstantiationOptions that match this flavor. Used by with(...) to spawn a sibling instance carrying the same lock state.
Signature:
public abstract cloneInstantiation(): DeployInstantiationOptions
Returns:
DeployInstantiationOptions
create
Constructs the right concrete DeployMethod flavor for the supplied instantiation options: - { deployer: <addr> } → BoundDeployMethod - { universalDeploy: true } → UniversalDeployMethod - neither set → PendingDeployMethod Mixing deployer and universalDeploy throws. Returns the umbrella DeployMethod<T> type so callers can use the result generically without narrowing.
Signature:
public static create<TContract extends ContractBase>(
wallet: Wallet,
contract: DeployMethodContract<TContract>,
instantiation: DeployInstantiationOptions = {},
payload: DeployMethodPayload = {}
): DeployMethod<TContract>
Parameters:
wallet:Wallet- Wallet used to send / simulate the deploy tx.
contract:DeployMethodContract<TContract>- The contract being deployed (artifact, factory, args, initializer).
instantiation(optional):DeployInstantiationOptions- Address-affecting parameters (salt, deployer / universalDeploy, publicKeys). Defaults to pending.
payload(optional):DeployMethodPayload- Auth witnesses, capsules, and extra hashed args propagated to the deploy. Defaults to empty.
Returns:
DeployMethod<TContract>
request
Returns the execution payload that allows this operation to happen on chain. Requires the deployer to be known — call getDeployerAddress() first; on a PendingDeployMethod this throws unless a prior send / simulate / profile has already locked the deployer.
Signature:
public async request(options: RequestDeployOptions = {}): Promise<ExecutionPayload>
Parameters:
options(optional):RequestDeployOptions- Configuration options.
Returns:
Promise<ExecutionPayload> - The execution payload for this operation
convertDeployOptionsToSendOptions
Converts DeployOptions to SendOptions.
Signature:
protected convertDeployOptionsToSendOptions<W extends InteractionWaitOptions>(options: DeployOptions<W>): SendOptions<W>
Parameters:
options:DeployOptions<W>- Deploy options with wait parameter.
Returns:
SendOptions<W>
convertDeployOptionsToSimulateOptions
Converts deploy simulation options into wallet-level simulate options.
Signature:
protected convertDeployOptionsToSimulateOptions(options: SimulateDeployOptions): SimulateOptions
Parameters:
options:SimulateDeployOptions- The deploy simulation options to convert.
Returns:
SimulateOptions
convertDeployOptionsToProfileOptions
Converts deploy profile options into wallet-level profile options.
Signature:
protected convertDeployOptionsToProfileOptions(options: DeployOptionsWithoutWait & ProfileInteractionOptions): ProfileOptions
Parameters:
options:DeployOptionsWithoutWait & ProfileInteractionOptions- The deploy profile options to convert.
Returns:
ProfileOptions
register
Adds this contract to the wallet and returns the Contract object.
Signature:
public async register(): Promise<TContract>
Returns:
Promise<TContract>
getPublicationExecutionPayload
Returns an execution payload for: - publication of the contract class and - publication of the contract instance to enable public execution depending on the provided options.
Signature:
protected async getPublicationExecutionPayload(options?: RequestDeployOptions): Promise<ExecutionPayload>
Parameters:
options(optional):RequestDeployOptions- Contract creation options.
Returns:
Promise<ExecutionPayload> - An execution payload with potentially calls (and bytecode capsule) to the class registry and instance registry.
getInitializationExecutionPayload
Returns the calls necessary to initialize the contract.
Signature:
protected async getInitializationExecutionPayload(options?: RequestDeployOptions): Promise<ExecutionPayload>
Parameters:
options(optional):RequestDeployOptions- Deployment options.
Returns:
Promise<ExecutionPayload> - An array of function calls.
send
Send a contract deployment transaction (initialize and/or publish) using the provided options. By default, waits for the transaction to be mined and returns the deployed contract instance.
Signature:
public override send(options: DeployOptionsWithoutWait): Promise<DeployResultMined<TContract>>
Parameters:
options:DeployOptionsWithoutWait- An object containing various deployment options such as
fromandfee.
- An object containing various deployment options such as
Returns:
Promise<DeployResultMined<TContract>> - TxHash (if wait is NO_WAIT), or DeployResultMined with contract, receipt, and instance (otherwise)
send
Signature:
public override send<W extends InteractionWaitOptions>(options: DeployOptions<W>): Promise<DeployReturn<TContract, W>>
Parameters:
options:DeployOptions<W>
Returns:
Promise<DeployReturn<TContract, W>>
send
Signature:
public override async send(options: DeployOptions<InteractionWaitOptions>): Promise<any>
Parameters:
options:DeployOptions<InteractionWaitOptions>
Returns:
Promise<any>
getInstance
Builds the contract instance and returns it. The instance is computed once and cached for the lifetime of this DeployMethod; subsequent calls return the same instance. On a PendingDeployMethod this throws unless a prior send / simulate / profile call has already locked the deployer — otherwise the resolved address could silently differ from the eventually-deployed one.
Signature:
public getInstance(): Promise<ContractInstanceWithAddress>
Returns:
Promise<ContractInstanceWithAddress> - An instance object.
simulate
Simulate the deployment
Signature:
public async simulate(options: SimulateDeployOptions): Promise<SimulationResult>
Parameters:
options:SimulateDeployOptions- An optional object containing additional configuration for the simulation.
Returns:
Promise<SimulationResult> - A simulation result object containing metadata of the execution, including gas estimations (if requested via options), execution statistics and emitted offchain effects
profile
Simulate a deployment and profile the gate count for each function in the transaction.
Signature:
public async profile(options: DeployOptionsWithoutWait & ProfileInteractionOptions): Promise<TxProfileResult>
Parameters:
options:DeployOptionsWithoutWait & ProfileInteractionOptions- Same options as
send, plus extra profiling options.
- Same options as
Returns:
Promise<TxProfileResult> - An object containing the function return value and profile result.
getAddress
Returns the deployed contract address.
Signature:
public async getAddress(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getPartialAddress
Returns the partial address for this deployment.
Signature:
public async getPartialAddress(): Promise<Fr>
Returns:
Promise<Fr>
getCachedInstanceOrThrow
Returns the cached resolved instance synchronously, or throws if no instance has been computed yet. Intended for subclasses that run inside a code path where getInstance() is guaranteed to have already been awaited (e.g. request() invoked it). Not part of the public API.
Signature:
protected getCachedInstanceOrThrow(): ContractInstanceWithAddress
Returns:
ContractInstanceWithAddress
with
Augments this DeployMethod with additional metadata, such as authWitnesses and capsules. The deployer lock is preserved: a Pending that has not yet been locked stays Pending; a Pending that has already locked, along with Owned and Universal, returns the matching locked flavor so the cloned method deploys at the same address as this.
Signature:
public with({ authWitnesses = [], capsules = [], extraHashedArgs = [], }: {
authWitnesses?: AuthWitness[];
capsules?: Capsule[];
extraHashedArgs?: HashedValues[];
}): DeployMethod<TContract>
Parameters:
-
{ authWitnesses = [], capsules = [], extraHashedArgs = [], }:{/** The authWitnesses to add to the deployment */authWitnesses?: AuthWitness[];/** The capsules to add to the deployment */capsules?: Capsule[];/** The extra hashed args to add to the deployment */extraHashedArgs?: HashedValues[];}
Returns:
DeployMethod<TContract> - A new DeployMethod with the added metadata, but calling the same original function in the same manner
BoundDeployMethod
Type: Class
Deploy method whose deployer is fixed at construction to a concrete AztecAddress. The deployer is mixed into the address preimage, so the contract address is fully determined. Sending from a different account throws — letting it through would silently produce a deployed address different from the one getAddress() reported.
Extends: DeployMethod
Constructor
Signature:
public constructor(
wallet: Wallet,
contract: DeployMethodContract<TContract>,
instantiation: BoundInstantiationOptions,
payload: DeployMethodPayload = {}
)
Parameters:
wallet:Walletcontract:DeployMethodContract<TContract>instantiation:BoundInstantiationOptionspayload(optional):DeployMethodPayload
Properties
deployer
The address baked into the address preimage. Read-only — set at construction.
Type: AztecAddress
Methods
getDeployerAddress
Returns the locked deployer baked into the address preimage.
Signature:
public getDeployerAddress(): AztecAddress
Returns:
AztecAddress
lockDeployer
Throws unless from matches the locked deployer; the deployer is part of the address.
Signature:
public lockDeployer(from: SendInteractionOptionsWithoutWait['from'] | undefined): void
Parameters:
from:SendInteractionOptionsWithoutWait['from'] | undefined- The send-time
fromvalue (AztecAddress,NO_FROM, orundefined).
- The send-time
Returns:
void
cloneInstantiation
Re-emits this method's DeployInstantiationOptions for with(...) to consume.
Signature:
public cloneInstantiation(): DeployInstantiationOptions
Returns:
DeployInstantiationOptions
UniversalDeployMethod
Type: Class
Deploy method whose deployer is fixed at construction to AztecAddress.ZERO (universal deploy). The address does not depend on the sender, so any account may sign the deploy tx.
Extends: DeployMethod
Constructor
Signature:
public constructor(
wallet: Wallet,
contract: DeployMethodContract<TContract>,
instantiation: UniversalInstantiationOptions,
payload: DeployMethodPayload = {}
)
Parameters:
wallet:Walletcontract:DeployMethodContract<TContract>instantiation:UniversalInstantiationOptionspayload(optional):DeployMethodPayload
Methods
getDeployerAddress
Universal deploys are anchored at AztecAddress.ZERO; the sender does not enter the preimage.
Signature:
public getDeployerAddress(): AztecAddress
Returns:
AztecAddress
lockDeployer
Universal deploys accept any sender, including NO_FROM / undefined.
Signature:
public lockDeployer(_from: SendInteractionOptionsWithoutWait['from'] | undefined): void
Parameters:
_from:SendInteractionOptionsWithoutWait['from'] | undefined- Ignored.
Returns:
void
cloneInstantiation
Re-emits this method's DeployInstantiationOptions for with(...) to consume.
Signature:
public cloneInstantiation(): DeployInstantiationOptions
Returns:
DeployInstantiationOptions
PendingDeployMethod
Type: Class
Deploy method whose deployer is not yet decided. The first send / simulate / profile call promotes this into an BoundDeployMethod or UniversalDeployMethod (depending on whether options.from is an address or NO_FROM / undefined); subsequent calls reuse that promotion and reject mismatching from values. Reading the address (getInstance / getAddress / getPartialAddress) or building a payload (request) before the promotion happens throws — the address would otherwise be ambiguous and could differ from what send() ends up deploying.
Extends: DeployMethod
Constructor
Signature:
public constructor(
wallet: Wallet,
contract: DeployMethodContract<TContract>,
instantiation: PendingInstantiationOptions = {},
payload: DeployMethodPayload = {}
)
Parameters:
wallet:Walletcontract:DeployMethodContract<TContract>instantiation(optional):PendingInstantiationOptionspayload(optional):DeployMethodPayload
Properties
#locked
The locked sibling created on the first send-side call. Once set, all flavor-specific decisions (sender compatibility, address derivation, clone shape) delegate to it, so a second call with a mismatched from is rejected by BoundDeployMethod.lockDeployer.
Type: BoundDeployMethod<TContract> | UniversalDeployMethod<TContract>
Methods
getDeployerAddress
Returns the locked deployer once it has happened. Throws while still pending — the address would otherwise differ from what send() ends up deploying.
Signature:
public getDeployerAddress(): AztecAddress
Returns:
AztecAddress
lockDeployer
On the first call, promotes this pending method into a locked sibling and remembers it. On subsequent calls, defers to the locked sibling — so a mismatched from is rejected by the sibling's own policy, not a duplicate one here.
Signature:
public lockDeployer(from: SendInteractionOptionsWithoutWait['from'] | undefined): void
Parameters:
from:SendInteractionOptionsWithoutWait['from'] | undefined- The send-time
fromvalue (AztecAddress,NO_FROM, orundefined).
- The send-time
Returns:
void
cloneInstantiation
Re-emits this method's DeployInstantiationOptions for with(...) to consume.
Signature:
public cloneInstantiation(): DeployInstantiationOptions
Returns:
DeployInstantiationOptions
#promoteFrom
Builds the locked sibling implied by a send-time from: an AztecAddress becomes BoundDeployMethod; NO_FROM / undefined becomes UniversalDeployMethod.
Signature:
#promoteFrom(from: SendInteractionOptionsWithoutWait['from'] | undefined): BoundDeployMethod<TContract> | UniversalDeployMethod<TContract>
Parameters:
from:SendInteractionOptionsWithoutWait['from'] | undefined- The send-time
fromvalue.
- The send-time
Returns:
BoundDeployMethod<TContract> | UniversalDeployMethod<TContract>
contract/fastforward_contract_update.ts
fastForwardContractUpdate
Type: Function
Builds SimulationOverrides that simulate a deployed instance as if it had already been upgraded to a new contract class. Mirrors a real onchain upgrade (scheduling the new class and waiting out the delay): - publicStorage rewrites the ContractInstanceRegistry's delayed-public-mutable storage so the AVM's UpdateCheck resolves to the new class id. - contracts swaps the deployed instance for one whose currentContractClassId is bumped to the new class. The new class must already be registered on chain.
Signature:
export async fastForwardContractUpdate(args: {
instanceAddress: AztecAddress;
newClassId: Fr;
node: AztecNode;
}): Promise<SimulationOverrides>
Parameters:
-
args:{/** Address of the deployed instance to upgrade. */instanceAddress: AztecAddress;/** ID of the (already-registered) class to upgrade to. */newClassId: Fr;/** Node used to fetch the existing instance and validate the class is registered. */node: AztecNode;}
Returns:
Promise<SimulationOverrides>
contract/interaction_options.ts
FeePaymentMethodOption
Type: Type Alias
Interactions allow configuring a custom fee payment method that gets bundled with the transaction before sending it to the wallet
Signature:
export type FeePaymentMethodOption = {
paymentMethod?: FeePaymentMethod;
};
Type Members:
paymentMethod
Fee payment method to embed in the interaction
Type: FeePaymentMethod
GasSettingsOption
Type: Type Alias
User-defined partial gas settings for the interaction. This type is completely optional since the wallet will fill in the missing options
Signature:
export type GasSettingsOption = {
gasSettings?: Partial<FieldsOf<GasSettings>>;
congestionEstimate?: ManaUsageEstimate;
};
Type Members:
gasSettings
The gas settings
Type: Partial<FieldsOf<GasSettings>>
congestionEstimate
Assumed network congestion level for fee prediction. Controls how aggressively the wallet estimates future fees: None assumes empty blocks, Target assumes steady-state usage, and Limit assumes blocks at maximum capacity. Higher estimates produce higher fee predictions, reducing the risk of underpriced transactions during congestion spikes. Defaults to Limit (worst case) when not specified.
Type: ManaUsageEstimate
InteractionFeeOptions
Type: Type Alias
Fee options as set by a user.
Signature:
export type InteractionFeeOptions = GasSettingsOption & FeePaymentMethodOption;
RequestInteractionOptions
Type: Type Alias
Represents the options to configure a request from a contract interaction. Allows specifying additional auth witnesses and capsules to use during execution
Signature:
export type RequestInteractionOptions = {
authWitnesses?: AuthWitness[];
capsules?: Capsule[];
fee?: FeePaymentMethodOption;
};
Type Members:
authWitnesses
Extra authwits to use during execution
Type: AuthWitness[]
capsules
Extra capsules to use during execution
Type: Capsule[]
fee
Fee payment method to embed in the interaction request
Type: FeePaymentMethodOption
NO_WAIT
Type: Constant
Constant for explicitly not waiting for transaction confirmation. We use this instead of false to avoid confusion with falsy checks.
Value Type: any
NoWait
Type: Type Alias
Type for the NO_WAIT constant.
Signature:
export type NoWait = typeof NO_WAIT;
NO_FROM
Type: Constant
Constant for explicitly opting out of account contract mediation. When used as the from parameter, the wallet executes the payload directly via the DefaultEntrypoint without wrapping it in an account contract entrypoint. The app is responsible for assembling the complete execution payload, including any entrypoint wrapping (e.g. multicall) if needed. This will result in the first call of the chain receiving msg_sender as Option::none
Value Type: any
NoFrom
Type: Type Alias
Type for the NO_FROM constant.
Signature:
export type NoFrom = typeof NO_FROM;
InteractionWaitOptions
Type: Type Alias
Type for wait options in interactions. - NO_WAIT symbol: Don't wait for confirmation, return TxHash immediately - WaitOpts object: Wait with custom options and return receipt/result - undefined: Wait with default options and return receipt/result
Signature:
export type InteractionWaitOptions = NoWait | WaitOpts | undefined;
SendInteractionOptionsWithoutWait
Type: Type Alias
Base options for calling a (constrained) function in a contract, without wait parameter.
Signature:
export type SendInteractionOptionsWithoutWait = RequestInteractionOptions & {
from: AztecAddress | NoFrom;
fee?: InteractionFeeOptions;
additionalScopes?: AztecAddress[];
sendMessagesAs?: AztecAddress;
};
Type Members:
from
The sender's Aztec address, or NO_FROM to execute without account contract mediation.
Type: AztecAddress | NoFrom
fee
The fee options for the transaction.
Type: InteractionFeeOptions
additionalScopes
Additional addresses whose private state and keys should be accessible during execution, beyond the sender's. Required when the transaction needs to access private state or keys belonging to an address other than from, e.g. withdrawing from an escrow that holds its own private notes.
Type: AztecAddress[]
sendMessagesAs
Overrides the sender address used to derive discovery tags for private messages (notes, events, logs). Recipients use these tags to find messages addressed to them. Defaults to from. Typically set when from === NO_FROM, since there is no account address to derive tags from.
Type: AztecAddress
SendInteractionOptions
Type: Type Alias
Represents options for calling a (constrained) function in a contract.
Signature:
export type SendInteractionOptions<W extends InteractionWaitOptions = undefined> = SendInteractionOptionsWithoutWait & {
wait?: W;
};
Type Members:
wait
Whether to wait for the transaction to be mined. - undefined (default): wait with default options and return TxReceipt - WaitOpts object: wait with custom options and return TxReceipt - NO_WAIT: return txHash immediately without waiting
Type: W
SimulateInteractionOptions
Type: Type Alias
Represents the options for simulating a contract function interaction. Allows specifying the address from which the method should be called. Disregarded for simulation of public functions
Signature:
export type SimulateInteractionOptions = Omit<SendInteractionOptions, 'fee'> & {
fee?: InteractionFeeOptions;
skipTxValidation?: boolean;
skipFeeEnforcement?: boolean;
includeMetadata?: boolean;
overrides?: SimulationOverrides;
};
Type Members:
fee
The fee options for the transaction.
Type: InteractionFeeOptions
skipTxValidation
Simulate without checking for the validity of the resulting transaction, e.g. whether it emits any existing nullifiers.
Type: boolean
skipFeeEnforcement
Whether to ensure the fee payer is not empty and has enough balance to pay for the fee.
Type: boolean
includeMetadata
Whether to include metadata such as performance statistics (e.g. timing information of the different circuits and oracles) and simulated gas usage in the simulation result, in addition to the return value and offchain effects
Type: boolean
overrides
Pre-simulation overrides applied to the ephemeral fork and contract DB (publicStorage writes, contract instance overrides).
Type: SimulationOverrides
ProfileInteractionOptions
Type: Type Alias
Represents the options for profiling an interaction.
Signature:
export type ProfileInteractionOptions = SimulateInteractionOptions & {
profileMode: 'gates' | 'execution-steps' | 'full';
skipProofGeneration?: boolean;
};
Type Members:
profileMode
Whether to return gates information or the bytecode/witnesses.
Type: 'gates' | 'execution-steps' | 'full'
skipProofGeneration
Whether to generate a Chonk proof or not
Type: boolean
OffchainMessage
Type: Type Alias
A message emitted during execution or proving, to be delivered offchain.
Signature:
export type OffchainMessage = {
recipient: AztecAddress;
payload: Fr[];
contractAddress: AztecAddress;
anchorBlockTimestamp: bigint;
};
Type Members:
recipient
The intended recipient of the message.
Type: AztecAddress
payload
The message payload (typically encrypted).
Type: Fr[]
contractAddress
The contract that emitted the message.
Type: AztecAddress
anchorBlockTimestamp
Anchor block timestamp at message emission.
Type: bigint
OffchainOutput
Type: Type Alias
Groups all unproven outputs from private execution that are returned to the client.
Signature:
export type OffchainOutput = {
offchainEffects: OffchainEffect[];
offchainMessages: OffchainMessage[];
};
Type Members:
offchainEffects
Raw offchain effects emitted during execution.
Type: OffchainEffect[]
offchainMessages
Messages emitted during execution, to be delivered offchain.
Type: OffchainMessage[]
extractOffchainOutput
Type: Function
Splits an array of offchain effects into decoded offchain messages and remaining effects. Effects whose data starts with OFFCHAIN_MESSAGE_IDENTIFIER are parsed as messages and removed from the effects array.
Signature:
export extractOffchainOutput(
effects: OffchainEffect[],
anchorBlockTimestamp: bigint
): OffchainOutput
Parameters:
effects:OffchainEffect[]anchorBlockTimestamp:bigint
Returns:
OffchainOutput
SimulationResult
Type: Type Alias
Represents the result of a simulation. Always includes the return value and offchain output. When includeMetadata is set, also includes stats and the simulated gas usage.
Signature:
export type SimulationResult = {
result: any;
stats?: SimulationStats;
gasUsed?: GasUsed;
} & OffchainOutput;
Type Members:
result
Return value of the function
Type: any
stats
Additional stats about the simulation. Present when includeMetadata is set.
Type: SimulationStats
gasUsed
Raw gas consumed by the simulated transaction. Present when includeMetadata is set. Apps that want to declare explicit gas limits should derive their own from this (e.g. pad totalGas) and pass them via the fee options; otherwise the wallet fills in the network's per-tx admission limits automatically.
Type: GasUsed
TxSendResultImmediate
Type: Type Alias
Result of sendTx when not waiting for mining.
Signature:
export type TxSendResultImmediate = {
txHash: TxHash;
} & OffchainOutput;
Type Members:
txHash
The hash of the sent transaction.
Type: TxHash
TxSendResultMined
Type: Type Alias
Result of sendTx when waiting for mining.
Signature:
export type TxSendResultMined<TReturn = TxReceipt> = {
receipt: TReturn;
} & OffchainOutput;
Type Members:
receipt
The transaction receipt.
Type: TReturn
SendReturn
Type: Type Alias
Represents the result type of sending a transaction. If wait is NO_WAIT, returns TxSendResultImmediate. Otherwise returns TxSendResultMined.
Signature:
export type SendReturn<T extends InteractionWaitOptions, TReturn = TxReceipt> = T extends NoWait
? TxSendResultImmediate
: TxSendResultMined<TReturn>;
toSendOptions
Type: Function
Transforms and cleans up the higher level SendInteractionOptions defined by the interaction into SendOptions, which are the ones that can be serialized and forwarded to the wallet
Signature:
export toSendOptions<W extends InteractionWaitOptions = undefined>(options: SendInteractionOptions<W>): SendOptions<W>
Parameters:
options:SendInteractionOptions<W>- The send interaction options with optional wait parameter
Returns:
SendOptions<W> - The send options to forward to the wallet
toSimulateOptions
Type: Function
Transforms and cleans up the higher level SimulateInteractionOptions defined by the interaction into SimulateOptions, which are the ones that can be serialized and forwarded to the wallet
Signature:
export toSimulateOptions(options: SimulateInteractionOptions): SimulateOptions
Parameters:
options:SimulateInteractionOptions
Returns:
SimulateOptions
toProfileOptions
Type: Function
Transforms and cleans up the higher level ProfileInteractionOptions defined by the interaction into ProfileOptions, which are the ones that can be serialized and forwarded to the wallet
Signature:
export toProfileOptions(options: ProfileInteractionOptions): ProfileOptions
Parameters:
options:ProfileInteractionOptions
Returns:
ProfileOptions
contract/wait_for_proven.ts
WaitForProvenOpts
Type: Type Alias
Options for waiting for a transaction to be proven.
Signature:
export type WaitForProvenOpts = {
provenTimeout?: number;
interval?: number;
};
Type Members:
provenTimeout
Time to wait for the tx to be proven before timing out
Type: number
interval
Elapsed time between polls to the node
Type: number
DefaultWaitForProvenOpts
Type: Constant
Value Type: WaitForProvenOpts
waitForProven
Type: Function
Wait for a transaction to be proven by polling the node
Signature:
export async waitForProven(
node: AztecNode,
receipt: TxReceipt,
opts?: WaitForProvenOpts
)
Parameters:
node:AztecNodereceipt:TxReceiptopts(optional):WaitForProvenOpts
Returns:
Promise<any>
contract/wait_opts.ts
WaitOpts
Type: Type Alias
Options related to waiting for a tx.
Signature:
export type WaitOpts = {
ignoreDroppedReceiptsFor?: number;
timeout?: number;
interval?: number;
dontThrowOnRevert?: boolean;
waitForStatus?: TxStatus;
initialDelay?: number;
};
Type Members:
ignoreDroppedReceiptsFor
The amount of time to ignore TxStatus.DROPPED receipts (in seconds) due to the presumption that it is being propagated by the p2p network. Defaults to 5.
Type: number
timeout
The maximum time (in seconds) to wait for the transaction to be mined. Defaults to 300 (5 min).
Type: number
interval
The time interval (in seconds) between retries to fetch the transaction receipt. Defaults to 1.
Type: number
dontThrowOnRevert
Whether to accept a revert as a status code for the tx when waiting for it. If false, will throw if the tx reverts.
Type: boolean
waitForStatus
The minimum inclusion status to wait for. If set, waits until the receipt reaches this status or higher. Defaults to CHECKPOINTED.
Type: TxStatus
initialDelay
The time (in seconds) to wait before the first receipt poll. Defaults to 0. Used to avoid checking for a receipt right after sending a tx, when we know it cannot have been mined yet. Counts against timeout.
Type: number
DefaultWaitOpts
Type: Constant
Value Type: WaitOpts
Deployment
deployment/contract_deployer.ts
ContractDeployer
Type: Class
A class for deploying contract.
Constructor
Signature:
constructor(
private artifact: ContractArtifact,
private wallet: Wallet,
private constructorName?: string
)
Parameters:
artifact:ContractArtifactwallet:WalletconstructorName(optional):string
Methods
deploy
Deploy a contract using the provided instantiation parameters and constructor arguments. Creates a new DeployMethod instance that can be used to send the deployment transaction. The first argument is the DeployInstantiationOptions (salt, deployer) — pass {} to accept defaults (random salt, deployer = AztecAddress.ZERO). The remaining arguments are the constructor arguments for the contract.
Signature:
public deploy(
args?: any[],
instantiation?: DeployInstantiationOptions
)
Parameters:
args(optional):any[]- The constructor arguments for the contract being deployed.
instantiation(optional):DeployInstantiationOptions- Salt and deployer to mix into the address derivation.
Returns:
DeployMethod<Contract> - A DeployMethod instance configured with the ABI, PXE, and constructor arguments.
deployment/publish_class.ts
publishContractClass
Type: Function
Sets up a call to publish a contract class given its artifact.
Signature:
export async publishContractClass(
wallet: Wallet,
artifact: ContractArtifact
): Promise<ContractFunctionInteraction>
Parameters:
wallet:Walletartifact:ContractArtifact
Returns:
Promise<ContractFunctionInteraction>
deployment/publish_instance.ts
publishInstance
Type: Function
Sets up a call to the canonical contract instance registry to publish a contract instance.
Signature:
export publishInstance(
wallet: Wallet,
instance: ContractInstanceWithAddress
): ContractFunctionInteraction
Parameters:
wallet:Wallet- The wallet to use for the publication (setup) tx.
instance:ContractInstanceWithAddress- The instance to publish.
Returns:
ContractFunctionInteraction
Ethereum
ethereum/portal_manager.ts
L2Claim
Type: Type Alias
L1 to L2 message info to claim it on L2.
Signature:
export type L2Claim = {
claimSecret: Fr;
claimSecretHash: Fr;
messageHash: Hex;
messageLeafIndex: bigint;
};
Type Members:
claimSecret
Secret for claiming.
Type: Fr
claimSecretHash
Hash of the secret for claiming.
Type: Fr
messageHash
Hash of the message.
Type: Hex
messageLeafIndex
Leaf index in the L1 to L2 message tree.
Type: bigint
L2AmountClaim
Type: Type Alias
L1 to L2 message info that corresponds to an amount to claim.
Signature:
export type L2AmountClaim = L2Claim & { claimAmount: bigint };
Type Members:
claimAmount
Type: bigint
L2AmountClaimWithRecipient
Type: Type Alias
L1 to L2 message info that corresponds to an amount to claim with associated recipient.
Signature:
export type L2AmountClaimWithRecipient = L2AmountClaim & {
recipient: AztecAddress;
};
Type Members:
recipient
Address that will receive the newly minted notes.
Type: AztecAddress
generateClaimSecret
Type: Function
Generates a pair secret and secret hash
Signature:
export async generateClaimSecret(logger?: Logger): Promise<[
Fr,
Fr
]>
Parameters:
logger(optional):Logger
Returns:
Promise<[Fr, Fr]>
L1TokenManager
Type: Class
Helper for managing an ERC20 on L1.
Constructor
Signature:
public constructor(
public readonly tokenAddress: EthAddress,
public readonly handlerAddress: EthAddress | undefined,
private readonly extendedClient: ExtendedViemWalletClient,
private logger: Logger
)
Parameters:
tokenAddress:EthAddress- Address of the ERC20 contract.
handlerAddress:EthAddress | undefined- Address of the handler/faucet contract.
extendedClient:ExtendedViemWalletClientlogger:Logger
Methods
getMintAmount
Returns the amount of tokens available to mint via the handler.
Signature:
public async getMintAmount()
Returns:
Promise<any>
getL1TokenBalance
Returns the balance of the given address.
Signature:
public async getL1TokenBalance(address: Hex)
Parameters:
address:Hex- Address to get the balance of.
Returns:
Promise<any>
mint
Mints a fixed amount of tokens for the given address. Returns once the tx has been mined.
Signature:
public async mint(
address: Hex,
addressName?: string
)
Parameters:
address:Hex- Address to mint the tokens for.
addressName(optional):string- Optional name of the address for logging.
Returns:
Promise<void>
approve
Approves tokens for the given address. Returns once the tx has been mined.
Signature:
public async approve(
amount: bigint,
address: Hex,
addressName = ''
)
Parameters:
amount:bigint- Amount to approve.
address:Hex- Address to approve the tokens for.
addressName(optional):any- Optional name of the address for logging.
Returns:
Promise<void>
L1FeeJuicePortalManager
Type: Class
Helper for interacting with the FeeJuicePortal on L1.
Constructor
Signature:
constructor(
portalAddress: EthAddress,
tokenAddress: EthAddress,
handlerAddress: EthAddress | undefined,
private readonly extendedClient: ExtendedViemWalletClient,
private readonly logger: Logger
)
Parameters:
portalAddress:EthAddresstokenAddress:EthAddresshandlerAddress:EthAddress | undefinedextendedClient:ExtendedViemWalletClientlogger:Logger
Methods
getTokenManager
Returns the associated token manager for the L1 ERC20.
Signature:
public getTokenManager()
Returns:
L1TokenManager
bridgeTokensPublic
Bridges fee juice from L1 to L2 publicly. Handles L1 ERC20 approvals. Returns once the tx has been mined.
Signature:
public async bridgeTokensPublic(
to: AztecAddress,
amount: bigint | undefined,
mint = false
): Promise<L2AmountClaim>
Parameters:
to:AztecAddress- Address to send the tokens to on L2.
amount:bigint | undefined- Amount of tokens to send.
mint(optional):any- Whether to mint the tokens before sending (only during testing).
Returns:
Promise<L2AmountClaim>
new
Creates a new instance
Signature:
public static async new(
node: AztecNode,
extendedClient: ExtendedViemWalletClient,
logger: Logger
): Promise<L1FeeJuicePortalManager>
Parameters:
node:AztecNode- Aztec node client used for retrieving the L1 contract addresses.
extendedClient:ExtendedViemWalletClient- Wallet client, extended with public actions.
logger:Logger- Logger.
Returns:
Promise<L1FeeJuicePortalManager>
L1ToL2TokenPortalManager
Type: Class
Helper for interacting with a test TokenPortal on L1 for sending tokens to L2.
Constructor
Signature:
constructor(
portalAddress: EthAddress,
tokenAddress: EthAddress,
handlerAddress: EthAddress | undefined,
protected extendedClient: ExtendedViemWalletClient,
protected logger: Logger
)
Parameters:
portalAddress:EthAddresstokenAddress:EthAddresshandlerAddress:EthAddress | undefinedextendedClient:ExtendedViemWalletClientlogger:Logger
Properties
portal
Type: ViemContract<typeof TokenPortalAbi>
tokenManager
Type: L1TokenManager
l1TxUtils
Type: L1TxUtils
Methods
getTokenManager
Returns the token manager for the underlying L1 token.
Signature:
public getTokenManager()
Returns:
L1TokenManager
bridgeTokensPublic
Bridges tokens from L1 to L2. Handles token approvals. Returns once the tx has been mined.
Signature:
public async bridgeTokensPublic(
to: AztecAddress,
amount: bigint,
mint = false
): Promise<L2AmountClaim>
Parameters:
to:AztecAddress- Address to send the tokens to on L2.
amount:bigint- Amount of tokens to send.
mint(optional):any- Whether to mint the tokens before sending (only during testing).
Returns:
Promise<L2AmountClaim>
bridgeTokensPrivate
Bridges tokens from L1 to L2 privately. Handles token approvals. Returns once the tx has been mined.
Signature:
public async bridgeTokensPrivate(
to: AztecAddress,
amount: bigint,
mint = false
): Promise<L2AmountClaimWithRecipient>
Parameters:
to:AztecAddress- Address to send the tokens to on L2.
amount:bigint- Amount of tokens to send.
mint(optional):any- Whether to mint the tokens before sending (only during testing).
Returns:
Promise<L2AmountClaimWithRecipient>
L1TokenPortalManager
Type: Class
Helper for interacting with a test TokenPortal on L1 for both withdrawing from and bridging to L2.
Extends: L1ToL2TokenPortalManager
Constructor
Signature:
constructor(
portalAddress: EthAddress,
tokenAddress: EthAddress,
handlerAddress: EthAddress | undefined,
outboxAddress: EthAddress,
extendedClient: ExtendedViemWalletClient,
logger: Logger
)
Parameters:
portalAddress:EthAddresstokenAddress:EthAddresshandlerAddress:EthAddress | undefinedoutboxAddress:EthAddressextendedClient:ExtendedViemWalletClientlogger:Logger
Methods
withdrawFunds
Withdraws funds from the portal by consuming an L2 to L1 message. Returns once the tx is mined on L1.
Signature:
public async withdrawFunds(
amount: bigint,
recipient: EthAddress,
epochNumber: EpochNumber,
numCheckpointsInEpoch: number,
messageIndex: bigint,
siblingPath: SiblingPath<number>
)
Parameters:
amount:bigint- Amount to withdraw.
recipient:EthAddress- Who will receive the funds.
epochNumber:EpochNumber- Epoch number of the message.
numCheckpointsInEpoch:number- The partial-proof depth (1-indexed) the witness was built against.
messageIndex:bigint- Index of the message.
siblingPath:SiblingPath<number>- Sibling path of the message.
Returns:
Promise<void>
getL2ToL1MessageLeaf
Computes the L2 to L1 message leaf for the given parameters.
Signature:
public async getL2ToL1MessageLeaf(
amount: bigint,
recipient: EthAddress,
l2Bridge: AztecAddress,
callerOnL1: EthAddress = EthAddress.ZERO
): Promise<Fr>
Parameters:
amount:bigint- Amount to bridge.
recipient:EthAddress- Recipient on L1.
l2Bridge:AztecAddress- Address of the L2 bridge.
callerOnL1(optional):EthAddress- Caller address on L1.
Returns:
Promise<Fr>
Fee
fee/fee_juice_payment_method_with_claim.ts
FeeJuicePaymentMethodWithClaim
Type: Class
Pay fee directly with Fee Juice claimed in the same tx. Claiming consumes an L1 to L2 message that "contains" the fee juice bridged from L1.
Implements: FeePaymentMethod
Constructor
Signature:
constructor(
private sender: AztecAddress,
private claim: Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>
)
Parameters:
sender:AztecAddressclaim:Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>
Methods
getExecutionPayload
Creates an execution payload to pay the fee in Fee Juice.
Signature:
async getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload> - An execution payload that just contains the claim_and_end_setup function call.
getAsset
Signature:
getAsset()
Returns:
Promise<any>
getFeePayer
Signature:
getFeePayer(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getGasSettings
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
fee/fee_payment_method.ts
FeePaymentMethod
Type: Interface
Holds information about how the fee for a transaction is to be paid.
Methods
getAsset
The asset used to pay the fee.
Signature:
getAsset(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getExecutionPayload
Returns the data to be added to the final execution request to pay the fee in the given asset
Signature:
getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload> - The function calls to pay the fee.
getFeePayer
The expected fee payer for this tx.
Signature:
getFeePayer(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getGasSettings
The gas settings (if any) used to compute the execution payload of the payment method
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
fee/private_fee_payment_method.ts
PrivateFeePaymentMethod
Type: Class
Deprecated: Is not supported on mainnet. Use FeeJuicePaymentMethodWithClaim or SponsoredFeePaymentMethod instead.
Holds information about how the fee for a transaction is to be paid.
Implements: FeePaymentMethod
Constructor
Signature:
constructor(
private paymentContract: AztecAddress,
private sender: AztecAddress,
private wallet: Wallet,
protected gasSettings: GasSettings,
private setMaxFeeToOne = false
)
Parameters:
paymentContract:AztecAddress- Address which will hold the fee payment.
sender:AztecAddress- Address of the account that will pay the fee
wallet:Wallet- A wallet to perform the simulation to get the accepted asset
gasSettings:GasSettings- Gas settings used to compute the maximum fee the user is willing to pay
setMaxFeeToOne(optional):any- If true, the max fee will be set to 1. TODO(#7694): Remove this param once the lacking feature in TXE is implemented.
Methods
getAsset
The asset used to pay the fee.
Signature:
async getAsset(): Promise<AztecAddress>
Returns:
Promise<AztecAddress> - The asset used to pay the fee.
getFeePayer
Signature:
getFeePayer(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getExecutionPayload
Creates an execution payload to pay the fee using a private function through an FPC in the desired asset
Signature:
async getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload> - An execution payload that contains the required function calls and auth witnesses.
getGasSettings
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
fee/public_fee_payment_method.ts
PublicFeePaymentMethod
Type: Class
Deprecated: Is not supported on mainnet. Use FeeJuicePaymentMethodWithClaim or SponsoredFeePaymentMethod instead.
Holds information about how the fee for a transaction is to be paid.
Implements: FeePaymentMethod
Constructor
Signature:
constructor(
protected paymentContract: AztecAddress,
protected sender: AztecAddress,
protected wallet: Wallet,
protected gasSettings: GasSettings
)
Parameters:
paymentContract:AztecAddress- Address which will hold the fee payment.
sender:AztecAddress- An auth witness provider to authorize fee payments
wallet:Wallet- A wallet to perform the simulation to get the accepted asset
gasSettings:GasSettings- Gas settings used to compute the maximum fee the user is willing to pay
Methods
getAsset
The asset used to pay the fee.
Signature:
async getAsset(): Promise<AztecAddress>
Returns:
Promise<AztecAddress> - The asset used to pay the fee.
getFeePayer
Signature:
getFeePayer(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getExecutionPayload
Creates an execution payload to pay the fee using a public function through an FPC in the desired asset
Signature:
async getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload> - An execution payload that contains the required function calls.
getGasSettings
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
fee/sponsored_fee_payment.ts
SponsoredFeePaymentMethod
Type: Class
A fee payment method that uses a contract that blindly sponsors transactions. This contract is expected to be prefunded in testing environments.
Implements: FeePaymentMethod
Constructor
Signature:
constructor(private paymentContract: AztecAddress)
Parameters:
paymentContract:AztecAddress
Methods
getAsset
Signature:
getAsset(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getFeePayer
Signature:
getFeePayer()
Returns:
Promise<any>
getExecutionPayload
Signature:
async getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload>
getGasSettings
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
Utils
utils/abi_types.ts
FieldLike
Type: Type Alias
Any type that can be converted into a field for a contract call.
Signature:
export type FieldLike = Fr | Buffer | bigint | number | { toField: () => Fr };
EthAddressLike
Type: Type Alias
Any type that can be converted into an EthAddress Aztec.nr struct.
Signature:
export type EthAddressLike = { address: FieldLike } | EthAddress;
AztecAddressLike
Type: Type Alias
Any type that can be converted into an AztecAddress Aztec.nr struct.
Signature:
export type AztecAddressLike = { address: FieldLike } | AztecAddress;
FunctionSelectorLike
Type: Type Alias
Any type that can be converted into a FunctionSelector Aztec.nr struct.
Signature:
export type FunctionSelectorLike = FieldLike | FunctionSelector;
EventSelectorLike
Type: Type Alias
Any type that can be converted into an EventSelector Aztec.nr struct.
Signature:
export type EventSelectorLike = FieldLike | EventSelector;
U128Like
Type: Type Alias
Any type that can be converted into a U128.
Signature:
export type U128Like = bigint | number;
WrappedFieldLike
Type: Type Alias
Any type that can be converted into a struct with a single inner field.
Signature:
export type WrappedFieldLike = { inner: FieldLike } | FieldLike;
OptionLike
Type: Type Alias
Noir Option<T> lowered ABI shape, plus ergonomic direct T | null | undefined inputs.
Signature:
export type OptionLike<T> =
| T
| null
| undefined
| { _is_some: boolean; _value: T };
utils/authwit.ts
IntentInnerHash
Type: Type Alias
Intent with an inner hash
Signature:
export type IntentInnerHash = {
consumer: AztecAddress;
innerHash: Fr;
};
Type Members:
consumer
The consumer
Type: AztecAddress
innerHash
The action to approve
Type: Fr
CallIntent
Type: Type Alias
Intent with a call
Signature:
export type CallIntent = {
caller: AztecAddress;
call: FunctionCall;
};
Type Members:
caller
The caller to approve
Type: AztecAddress
call
The call to approve
Type: FunctionCall
ContractFunctionInteractionCallIntent
Type: Type Alias
Intent with a ContractFunctionInteraction
Signature:
export type ContractFunctionInteractionCallIntent = {
caller: AztecAddress;
action: ContractFunctionInteraction;
};
Type Members:
caller
The caller to approve
Type: AztecAddress
action
The action to approve
Type: ContractFunctionInteraction
isContractFunctionInteractionCallIntent
Type: Function
Identifies ContractFunctionInteractionCallIntents
Signature:
export isContractFunctionInteractionCallIntent(messageHashOrIntent: Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent): messageHashOrIntent is ContractFunctionInteractionCallIntent
Parameters:
messageHashOrIntent:Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent
Returns:
messageHashOrIntent is ContractFunctionInteractionCallIntent
computeAuthWitMessageHash
Type: Constant
Compute an authentication witness message hash from an intent and metadata If using the IntentInnerHash, the consumer is the address that can "consume" the authwit, for token approvals it is the token contract itself. The innerHash itself will be the message that a contract is allowed to execute. At the point of "approval checking", the validating contract (account for private and registry for public) will be computing the message hash (H(consumer, chainid, version, inner_hash)) where the all but the inner_hash is injected from the context (consumer = msg_sender), and use it for the authentication check. Therefore, any allowed innerHash will therefore also have information around where it can be spent (version, chainId) and who can spend it (consumer). If using the CallIntent, the caller is the address that is making the call, for a token approval from Alice to Bob, this would be Bob. The action is then used along with the caller to compute the innerHash and the consumer.
Value Type: any
getMessageHashFromIntent
Type: Function
Compute an authentication witness message hash from an intent and metadata. This is just a wrapper around computeAuthwitMessageHash that allows receiving an already computed messageHash as input
Signature:
export async getMessageHashFromIntent(
messageHashOrIntent: Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent,
chainInfo: ChainInfo
)
Parameters:
messageHashOrIntent:Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent- The precomputed messageHash or intent to approve (consumer and innerHash or caller and call/action)
chainInfo:ChainInfo
Returns:
Promise<Fr> - The message hash for the intent
computeInnerAuthWitHashFromAction
Type: Constant
Computes the inner authwitness hash for either a function call or an action, for it to later be combined with the metadata required for the outer hash and eventually the full AuthWitness.
Value Type: any
lookupValidity
Type: Function
Lookup the validity of an authwit in private and public contexts. Uses the chain id and version of the wallet.
Signature:
export async lookupValidity(
wallet: Wallet,
onBehalfOf: AztecAddress,
intent: IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent,
witness: AuthWitness
): Promise<{
isValidInPrivate: boolean;
isValidInPublic: boolean;
}>
Parameters:
wallet:Wallet- The wallet use to simulate and read the public data
onBehalfOf:AztecAddress- The address of the "approver"
intent:IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent- The consumer and inner hash or the caller and action to lookup
witness:AuthWitness- The computed authentication witness to check
Returns:
Promise<{
/** boolean flag indicating if the authwit is valid in private context */
isValidInPrivate: boolean;
/** boolean flag indicating if the authwit is valid in public context */
isValidInPublic: boolean;
}>
A struct containing the validity of the authwit in private and public contexts.
SetPublicAuthwitContractInteraction
Type: Class
Convenience class designed to wrap the very common interaction of setting a public authwit in the AuthRegistry contract
Extends: ContractFunctionInteraction
Constructor
Signature:
private constructor(
wallet: Wallet,
private from: AztecAddress,
messageHash: Fr,
authorized: boolean
)
Parameters:
wallet:Walletfrom:AztecAddressmessageHash:Frauthorized:boolean
Methods
create
Signature:
static async create(
wallet: Wallet,
from: AztecAddress,
messageHashOrIntent: Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent,
authorized: boolean
)
Parameters:
wallet:Walletfrom:AztecAddressmessageHashOrIntent:Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntentauthorized:boolean
Returns:
Promise<SetPublicAuthwitContractInteraction>
simulate
Overrides the simulate method, adding the sender of the authwit (authorizer) as from and preventing misuse
Signature:
public override simulate(options: Omit<SimulateInteractionOptions, 'from'> = {} as Omit<SimulateInteractionOptions, 'from'>): Promise<SimulationResult>
Parameters:
options(optional):Omit<SimulateInteractionOptions, 'from'>- An optional object containing additional configuration for the transaction.
Returns:
Promise<SimulationResult> - The result of the transaction as returned by the contract function.
profile
Overrides the profile method, adding the sender of the authwit (authorizer) as from and preventing misuse
Signature:
public override profile(options: Omit<ProfileInteractionOptions, 'from'> = { profileMode: 'gates' }): Promise<TxProfileResult>
Parameters:
options(optional):Omit<ProfileInteractionOptions, 'from'>- Same options as
simulate, plus profiling method
- Same options as
Returns:
Promise<TxProfileResult> - An object containing the function return value and profile result.
send
Overrides the send method, adding the sender of the authwit (authorizer) as from and preventing misuse
Signature:
public override send(options?: Omit<SendInteractionOptionsWithoutWait, 'from'>): Promise<TxSendResultMined>
Parameters:
options(optional):Omit<SendInteractionOptionsWithoutWait, 'from'>- An optional object containing 'fee' options information
Returns:
Promise<TxSendResultMined> - A TxReceipt (if wait is true/undefined) or TxHash (if wait is false)
send
Signature:
public override send<W extends InteractionWaitOptions>(options?: Omit<SendInteractionOptions<W>, 'from'>): Promise<SendReturn<W>>
Parameters:
options(optional):Omit<SendInteractionOptions<W>, 'from'>
Returns:
Promise<SendReturn<W>>
send
Signature:
public override send(options?: Omit<SendInteractionOptions<InteractionWaitOptions>, 'from'>): Promise<SendReturn<InteractionWaitOptions>>
Parameters:
options(optional):Omit<SendInteractionOptions<InteractionWaitOptions>, 'from'>
Returns:
Promise<SendReturn<InteractionWaitOptions>>
utils/cross_chain.ts
waitForL1ToL2MessageReady
Type: Function
Waits for the L1 to L2 message to be ready to be consumed.
Signature:
export waitForL1ToL2MessageReady(
node: Pick<AztecNode, 'getBlockData' | 'getL1ToL2MessageCheckpoint'>,
l1ToL2MessageHash: Fr,
opts: {
timeoutSeconds: number;
chainTip?: BlockTag;
}
)
Parameters:
-
node:Pick<AztecNode, 'getBlockData' | 'getL1ToL2MessageCheckpoint'>- Aztec node instance used to obtain the information about the message
-
l1ToL2MessageHash:Fr- Hash of the L1 to L2 message
-
opts:- Options
{/** Timeout for the operation in seconds */ timeoutSeconds: number;/*** Chain tip to evaluate readiness against. Defaults to `'latest'`. Set this to the tip the consuming PXE syncs to* (e.g. `'proven'`) so readiness answers whether the message is present at the same block the transaction* simulation will anchor to, not at a newer tip.*/chainTip?: BlockTag;}
Returns:
any
isL1ToL2MessageReady
Type: Function
Returns whether the L1 to L2 message is ready to be consumed.
Signature:
export async isL1ToL2MessageReady(
node: Pick<AztecNode, 'getBlockData' | 'getL1ToL2MessageCheckpoint'>,
l1ToL2MessageHash: Fr,
chainTip: BlockTag = 'latest'
): Promise<boolean>
Parameters:
node:Pick<AztecNode, 'getBlockData' | 'getL1ToL2MessageCheckpoint'>- Aztec node instance used to obtain the information about the message
l1ToL2MessageHash:Fr- Hash of the L1 to L2 message
chainTip(optional):BlockTag- Chain tip to evaluate readiness against. Defaults to
'latest'. Pass the tip the consuming PXE syncs to (e.g.'proven') so readiness is checked at the block the transaction simulation will anchor to.
- Chain tip to evaluate readiness against. Defaults to
Returns:
Promise<boolean> - True if the message is ready to be consumed, false otherwise
utils/fee_juice.ts
getFeeJuiceBalance
Type: Function
Returns the owner's fee juice balance. Note: This is used only e2e_local_network_example test. TODO: Consider nuking.
Signature:
export async getFeeJuiceBalance(
owner: AztecAddress,
node: AztecNode
): Promise<bigint>
Parameters:
owner:AztecAddressnode:AztecNode
Returns:
Promise<bigint>
utils/field_compressed_string.ts
readFieldCompressedString
Type: Constant
This turns
Value Type: any
utils/node.ts
waitForNode
Type: Constant
Waits for an Aztec node to become reachable, polling AztecNode.getNodeInfo until it succeeds.
Value Type: any
waitForTx
Type: Function
Waits for a transaction to be mined and returns its receipt.
Signature:
export async waitForTx(
node: AztecNode,
txHash: TxHash,
opts?: WaitOpts
): Promise<TxReceipt>
Parameters:
node:AztecNode- The Aztec node to query for transaction status
txHash:TxHash- The hash of the transaction to wait for
opts(optional):WaitOpts- Optional configuration for waiting behavior
Returns:
Promise<TxReceipt> - The transaction receipt
createAztecNodeClient
Type: Constant
This is re-exported from @aztec/stdlib/interfaces/client. See the source module for full documentation.
Value Type: Re-export
AztecNode
Type: Type Alias
This is a type re-exported from @aztec/stdlib/interfaces/client. See the source module for full type definition and documentation.
Signature:
export type { AztecNode } from '@aztec/stdlib/interfaces/client'
utils/pub_key.ts
generatePublicKey
Type: Function
Method for generating a public grumpkin key from a private key.
Signature:
export generatePublicKey(privateKey: GrumpkinScalar): Promise<PublicKey>
Parameters:
privateKey:GrumpkinScalar- The private key.
Returns:
Promise<PublicKey> - The generated public key.
Wallet
wallet/account_entrypoint_meta_payment_method.ts
AccountEntrypointMetaPaymentMethod
Type: Class
Fee payment method that allows an account contract to pay for its own deployment It works by rerouting the provided fee payment method through the account's entrypoint, which sets itself as fee payer. If no payment method is provided, it is assumed the account will pay with its own fee juice balance. Usually, in order to pay fees it is necessary to obtain an ExecutionPayload that encodes the necessary information that is sent to the user's account entrypoint, that has plumbing to handle it. If there's no account contract yet (it's being deployed) a MultiCallContract is used, which doesn't have a concept of fees or how to handle this payload. HOWEVER, the account contract's entrypoint does, so this method reshapes that fee payload into a call to the account contract entrypoint being deployed with the original fee payload. This class can be seen in action in DeployAccountMethod.ts#getSelfPaymentMethod
Implements: FeePaymentMethod
Constructor
Signature:
constructor(
private account: Account,
private chainInfo: ChainInfo,
private paymentMethod?: FeePaymentMethod,
private feeEntrypointOptions?: any
)
Parameters:
account:AccountchainInfo:ChainInfopaymentMethod(optional):FeePaymentMethodfeeEntrypointOptions(optional):any
Methods
getAsset
Signature:
getAsset(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getExecutionPayload
Signature:
async getExecutionPayload(): Promise<ExecutionPayload>
Returns:
Promise<ExecutionPayload>
getFeePayer
Signature:
getFeePayer(): Promise<AztecAddress>
Returns:
Promise<AztecAddress>
getGasSettings
Signature:
getGasSettings(): GasSettings | undefined
Returns:
GasSettings | undefined
wallet/account_manager.ts
AccountManagerCreateOptions
Type: Interface
Optional overrides passed to AccountManager.create.
Properties
salt
Contract instantiation salt. Defaults to a random Fr.
Type: Salt
immutablesHash
Commitment to the contract's immutable storage values. Folded into the salted initialization hash, so a non-zero value affects the derived address. Defaults to Fr.ZERO.
Type: Fr
deployer
Address recorded as the instance deployer. Defaults to AztecAddress.ZERO.
Type: AztecAddress
AccountManager
Type: Class
Manages a user account. Provides methods for calculating the account's address and other related data, plus a helper to return a preconfigured deploy method.
Constructor
Signature:
private constructor(
private wallet: Wallet,
private secretKey: Fr,
private accountContract: AccountContract,
private instance: ContractInstanceWithAddress
)
Parameters:
wallet:WalletsecretKey:FraccountContract:AccountContractinstance:ContractInstanceWithAddress
Methods
create
Signature:
static async create(
wallet: Wallet,
secretKey: Fr,
accountContract: AccountContract,
opts?: AccountManagerCreateOptions
)
Parameters:
wallet:WalletsecretKey:FraccountContract:AccountContractopts(optional):AccountManagerCreateOptions
Returns:
Promise<AccountManager>
getPublicKeys
Signature:
protected getPublicKeys()
Returns:
any
getPublicKeysHash
Signature:
protected getPublicKeysHash()
Returns:
any
getCompleteAddress
Gets the calculated complete address associated with this account. Does not require the account to have been published for public execution.
Signature:
public getCompleteAddress(): Promise<CompleteAddress>
Returns:
Promise<CompleteAddress> - The address, partial address, and encryption public key.
getSecretKey
Returns the secret key used to derive the rest of the privacy keys for this contract
Signature:
public getSecretKey()
Returns:
Fr
getInstance
Returns the contract instance definition associated with this account. Does not require the account to have been published for public execution.
Signature:
public getInstance(): ContractInstanceWithAddress
Returns:
ContractInstanceWithAddress - ContractInstance instance.
getAccount
Returns the account (the transaction signer) backed by this account contract. Use it to build and authorize transactions from this account.
Signature:
public async getAccount(): Promise<Account>
Returns:
Promise<Account>
getAccountContract
Returns the account contract that backs this account.
Signature:
getAccountContract(): AccountContract
Returns:
AccountContract - The account contract
getDeployMethod
Returns a preconfigured deploy method that contains all the necessary function calls to deploy the account contract.
Signature:
public async getDeployMethod(): Promise<DeployAccountMethod>
Returns:
Promise<DeployAccountMethod>
hasInitializer
Returns whether this account contract has an initializer function.
Signature:
public async hasInitializer()
Returns:
Promise<boolean>
Getters
address (getter)
Signature:
get address() {
Returns:
any
wallet/capabilities.ts
CAPABILITY_VERSION
Type: Constant
Current capability manifest version.
Value Type: any
ContractFunctionPattern
Type: Interface
Pattern for matching contract functions with wildcards. Used in simulation and transaction capabilities to specify which contract functions are allowed.
Properties
contract
Contract address or '*' for any contract
Type: AztecAddress | '*'
function
Function name or '*' for any function
Type: string
additionalScopes
Additional addresses whose private state and keys are accessible when calling this function, beyond the sender's. - undefined: No additional scopes allowed - AztecAddress[]: Only these specific addresses allowed as additional scopes - '*': All known address allowed as an additional scope
Type: AztecAddress[] | '*'
AccountsCapability
Type: Interface
Account access capability - grants access to user accounts. Maps to wallet methods: - getAccounts (when canGet: true) - createAuthWit (when canCreateAuthWit: true) The wallet decides which accounts to reveal to the app. Apps don't specify which accounts they want - they just request the capability and the wallet shows them the available accounts.
Properties
type
Discriminator for capability type
Type: 'accounts'
canGet
Can get accounts from wallet. Maps to: getAccounts
Type: boolean
canCreateAuthWit
Can create auth witnesses for accounts. Maps to: createAuthWit
Type: boolean
GrantedAccountsCapability
Type: Interface
Granted account access capability. Extends the request with specific accounts that were granted by the wallet.
Extends: AccountsCapability
Properties
accounts
Specific accounts granted by the wallet with their aliases. The wallet adds this when granting the capability.
Type: Aliased<AztecAddress>[]
ContractsCapability
Type: Interface
Contract interaction capability - for registering and querying contracts. Maps to wallet methods: - registerContract (when canRegister: true) - getContractMetadata (when canGetMetadata: true) Matching is done by contract address, not class ID. This allows updating existing contracts with new artifacts (e.g., when contract is upgraded to a new contractClassId onchain). Note: For querying contract class metadata, use ContractClassesCapability instead.
Properties
type
Discriminator for capability type
Type: 'contracts'
contracts
Which contracts this applies to: - '*': Any contract address - AztecAddress[]: Specific contract addresses
Type: '*' | AztecAddress[]
canRegister
Can register contracts and update existing registrations. Maps to: registerContract When true, allows: - Registering new contract instances at specified addresses - Re-registering existing contracts with updated artifacts (e.g., after upgrade)
Type: boolean
canGetMetadata
Can query contract metadata. Maps to: getContractMetadata
Type: boolean
GrantedContractsCapability
Type: Interface
Granted contract interaction capability. The wallet may reduce the scope (e.g., from '*' to specific addresses).
Extends: ContractsCapability
ContractClassesCapability
Type: Interface
Contract class capability - for querying contract class metadata and registering contract classes. Maps to wallet methods: - getContractClassMetadata (when canGetMetadata: true) - registerContractClass (when canRegister: true) Contract classes are identified by their class ID (Fr), not by contract address. Multiple contract instances can share the same class. This capability grants permission to query metadata for, and register, specific contract classes. Apps typically acquire this permission automatically when registering a contract with an artifact (the wallet auto-grants permission for that contract's class ID).
Properties
type
Discriminator for capability type
Type: 'contractClasses'
classes
Which contract classes this applies to: - '*': Any contract class ID - Fr[]: Specific contract class IDs
Type: '*' | Fr[]
canRegister
Can register a contract class artifact in the local PXE. Maps to: registerContractClass
Type: boolean
canGetMetadata
Can query contract class metadata. Maps to: getContractClassMetadata
Type: boolean
GrantedContractClassesCapability
Type: Interface
Granted contract class capability. The wallet may reduce the scope (e.g., from '*' to specific class IDs).
Extends: ContractClassesCapability
SimulationCapability
Type: Interface
Transaction simulation capability - for simulating transactions and executing utilities. Maps to wallet methods: - simulateTx (when transactions scope specified) - executeUtility (when utilities scope specified) - profileTx (when transactions scope specified)
Properties
type
Discriminator for capability type
Type: 'simulation'
transactions
Transaction simulation scope. Maps to: simulateTx, profileTx
Type:
{
/**
* Which contracts/functions to allow:
* - '*': Any transaction
* - ContractFunctionPattern[]: Specific contract functions
*/
scope: '*' | ContractFunctionPattern[];
}
utilities
Utility execution scope (unconstrained calls). Maps to: executeUtility
Type:
{
/**
* Which contracts/functions to allow:
* - '*': Any utility call
* - ContractFunctionPattern[]: Specific contract functions
*/
scope: '*' | ContractFunctionPattern[];
}
GrantedSimulationCapability
Type: Interface
Granted transaction simulation capability. The wallet may reduce the scope (e.g., from '*' to specific patterns).
Extends: SimulationCapability
TransactionCapability
Type: Interface
Transaction execution capability - for sending transactions. Maps to wallet methods: - sendTx Policy enforcement (rate limits, spending limits) should be handled at the contract level in Aztec, not at the wallet level.
Properties
type
Discriminator for capability type
Type: 'transaction'
scope
Which contracts/functions to allow: - '*': Any transaction - ContractFunctionPattern[]: Specific patterns
Type: '*' | ContractFunctionPattern[]
GrantedTransactionCapability
Type: Interface
Granted transaction execution capability. The wallet may reduce the scope (e.g., from '*' to specific patterns).
Extends: TransactionCapability
DataCapability
Type: Interface
Data access capability - for querying private data. Maps to wallet methods: - getAddressBook (when addressBook: true) - getPrivateEvents (when privateEvents specified)
Properties
type
Discriminator for capability type
Type: 'data'
addressBook
Access to address book. Maps to: getAddressBook
Type: boolean
privateEvents
Access to private events. Maps to: getPrivateEvents
Type:
{
/**
* Which contracts to allow event queries from:
* - '*': Any contract
* - AztecAddress[]: Specific contracts
*/
contracts: '*' | AztecAddress[];
}
GrantedDataCapability
Type: Interface
Granted data access capability. The wallet may reduce the scope (e.g., from '*' to specific contracts).
Extends: DataCapability
Capability
Type: Type Alias
Union type of all capability scopes (app request). Capabilities group wallet operations by their security sensitivity and functional cohesion, making permission requests understandable to users.
Signature:
export type Capability =
| AccountsCapability
| ContractsCapability
| ContractClassesCapability
| SimulationCapability
| TransactionCapability
| DataCapability;
GrantedCapability
Type: Type Alias
Union type of all granted capabilities (wallet response). The wallet may augment capabilities with additional information: - AccountsCapability: adds specific accounts granted - Other capabilities: may reduce scope (e.g., '*' to specific addresses)
Signature:
export type GrantedCapability =
| GrantedAccountsCapability
| GrantedContractsCapability
| GrantedContractClassesCapability
| GrantedSimulationCapability
| GrantedTransactionCapability
| GrantedDataCapability;
AppCapabilities
Type: Interface
Application capability manifest. Sent by dApp to declare all operations it needs. This reduces authorization friction from multiple dialogs to a single comprehensive permission request.
Properties
version
Manifest version for forward compatibility. Currently only '1.0' is supported.
Type: typeof CAPABILITY_VERSION
metadata
Application metadata for display in authorization dialogs.
Type:
{
/** Human-readable app name */
name: string;
/** App version */
version: string;
/** Optional description of what the app does */
description?: string;
/** Optional website URL */
url?: string;
/** Optional icon URL or data URI */
icon?: string;
}
capabilities
Requested capabilities grouped by scope.
Type: Capability[]
WalletCapabilities
Type: Interface
Wallet capability response. Returned by wallet after user reviews and approves/denies the capability request. The wallet can modify requested capabilities: - Reduce scope (e.g., restrict to specific contracts instead of '*') - Add information (e.g., specify which accounts are granted) - Deny capabilities (by omitting them from the granted array)
Properties
version
Response version for forward compatibility.
Type: typeof CAPABILITY_VERSION
granted
Capabilities granted by the wallet. Capabilities not in this array were implicitly denied. Empty array means the user denied all capabilities.
Type: GrantedCapability[]
wallet
Wallet implementation details.
Type:
{
/** Wallet name/implementation */
name: string;
/** Wallet version */
version: string;
}
wallet/deploy_account_method.ts
DeployAccountFeePaymentMethodOption
Type: Type Alias
Extended fee payment method option for account deployments that includes entrypoint wrapping options
Signature:
export type DeployAccountFeePaymentMethodOption = FeePaymentMethodOption & {
feeEntrypointOptions?: unknown;
};
Type Members:
feeEntrypointOptions
Optional entrypoint-specific options for wrapping execution payloads
Type: unknown
RequestDeployAccountOptions
Type: Type Alias
The configuration options for the request method.
Signature:
export type RequestDeployAccountOptions = Omit<RequestDeployOptions, 'fee'> & {
fee?: DeployAccountFeePaymentMethodOption;
from?: AztecAddress | NoFrom;
};
Type Members:
fee
Fee options specific to account deployment
Type: DeployAccountFeePaymentMethodOption
from
Sender of the request. When NO_FROM, the to-be-deployed account pays for its own deployment (self-paid deploy) and the payload is wrapped through the multicall entrypoint.
Type: AztecAddress | NoFrom
DeployAccountOptions
Type: Type Alias
The configuration options for the send/prove methods.
Signature:
export type DeployAccountOptions<W extends InteractionWaitOptions = undefined> = DeployOptionsWithoutWait & {
wait?: W;
};
Type Members:
wait
Whether to wait for the transaction to be mined. - undefined (default): wait with default options and return TxReceipt - WaitOpts object: wait with custom options and return TxReceipt - false: return txHash immediately without waiting
Type: W
SimulateDeployAccountOptions
Type: Type Alias
The configuration options for the simulate method.
Signature:
export type SimulateDeployAccountOptions = SimulateDeployOptions;
DeployAccountMethod
Type: Class
Modified version of the DeployMethod used to deploy account contracts. Supports deploying contracts that can pay for their own fee, plus some preconfigured options to avoid errors.
Extends: UniversalDeployMethod
Constructor
Signature:
constructor(
publicKeys: PublicKeys,
wallet: Wallet,
artifact: ContractArtifact,
postDeployCtor: (instance: ContractInstanceWithAddress, wallet: Wallet) => TContract,
salt: Fr,
immutablesHash: Fr,
private account: Account,
args: any[] = [],
constructorNameOrArtifact?: string | FunctionArtifact,
authWitnesses: AuthWitness[] = [],
capsules: Capsule[] = [],
extraHashedArgs: HashedValues[] = []
)
Parameters:
publicKeys:PublicKeyswallet:Walletartifact:ContractArtifactpostDeployCtor:(instance: ContractInstanceWithAddress, wallet: Wallet) => TContractsalt:FrimmutablesHash:Fraccount:Accountargs(optional):any[]constructorNameOrArtifact(optional):string | FunctionArtifactauthWitnesses(optional):AuthWitness[]capsules(optional):Capsule[]extraHashedArgs(optional):HashedValues[]
Methods
request
Returns the execution payload that allows this operation to happen on chain. For self-deployments (from === NO_FROM), the payload is wrapped through the multicall entrypoint on the app side so the wallet can execute it directly.
Signature:
public override async request(opts?: RequestDeployAccountOptions): Promise<ExecutionPayload>
Parameters:
opts(optional):RequestDeployAccountOptions- Configuration options.
Returns:
Promise<ExecutionPayload> - The execution payload for this operation
convertDeployOptionsToSendOptions
Signature:
protected override convertDeployOptionsToSendOptions<W extends InteractionWaitOptions>(options: DeployOptions<W>): SendOptions<W>
Parameters:
options:DeployOptions<W>
Returns:
SendOptions<W>
convertDeployOptionsToSimulateOptions
Signature:
protected override convertDeployOptionsToSimulateOptions(options: SimulateDeployOptions): SimulateOptions
Parameters:
options:SimulateDeployOptions
Returns:
SimulateOptions
convertDeployOptionsToProfileOptions
Signature:
protected override convertDeployOptionsToProfileOptions(options: DeployOptionsWithoutWait & ProfileInteractionOptions): ProfileOptions
Parameters:
options:DeployOptionsWithoutWait & ProfileInteractionOptions
Returns:
ProfileOptions
with
Augments this DeployAccountMethod with additional metadata, such as authWitnesses and capsules.
Signature:
public override with({ authWitnesses = [], capsules = [], extraHashedArgs = [], }: {
authWitnesses?: AuthWitness[];
capsules?: Capsule[];
extraHashedArgs?: HashedValues[];
}): DeployAccountMethod<TContract>
Parameters:
-
{ authWitnesses = [], capsules = [], extraHashedArgs = [], }:{/** The authWitnesses to add to the deployment */authWitnesses?: AuthWitness[];/** The capsules to add to the deployment */capsules?: Capsule[];/** The extra hashed args to add to the deployment */extraHashedArgs?: HashedValues[];}
Returns:
DeployAccountMethod<TContract> - A new DeployAccountMethod with the added metadata
wallet/tx_simulation_result_with_app_offset.ts
TxSimulationResultWithAppOffset
Type: Class
Extends TxSimulationResult with the app call offset, which tracks where the app's calls begin in the flattened array of calls. Tracking of app call offset is a wallet-level concern: the wallet may wrap the app payload in an entrypoint or may prepend calls (this is typically done for fee payments).
Extends: TxSimulationResult
Constructor
Signature:
constructor(
privateExecutionResult: PrivateExecutionResult,
publicInputs: PrivateKernelTailCircuitPublicInputs,
publicOutput?: PublicSimulationOutput,
stats?: SimulationStats,
public readonly appCallOffset: number | undefined = undefined
)
Parameters:
privateExecutionResult:PrivateExecutionResultpublicInputs:PrivateKernelTailCircuitPublicInputspublicOutput(optional):PublicSimulationOutputstats(optional):SimulationStatsappCallOffset(optional):number | undefined- Index of the app's first call in a flattened array of calls. 0 = app call is the root execution itself (DefaultEntrypoint / NO_FROM). 1..N = wallet prepended calls before the app call. undefined = wallet did not send the field; use heuristic fallback.
Methods
getPrivateReturnValuesOfAppCall
Returns the private return values that correspond to the provided app call.
Signature:
getPrivateReturnValuesOfAppCall(appCallIndex: number = 0): NestedProcessReturnValues | undefined
Parameters:
appCallIndex(optional):number- Index of the app call within the app calls.
Returns:
NestedProcessReturnValues | undefined
fromResultAndOffset
Creates a TxSimulationResultWithAppOffset from an existing TxSimulationResult, attaching the app call offset computed by the wallet (i.e. how many calls precede the first app call in the flattened execution tree).
Signature:
static fromResultAndOffset(
result: TxSimulationResult,
appCallOffset: number
): TxSimulationResultWithAppOffset
Parameters:
result:TxSimulationResult- The simulation result to wrap.
appCallOffset:number- The index of the app's first call in the flattened execution tree.
Returns:
TxSimulationResultWithAppOffset
random
Signature:
static override async random()
Returns:
Promise<TxSimulationResultWithAppOffset>
Getters
schema (getter)
Signature:
static override get schema(): ZodFor<TxSimulationResultWithAppOffset> {
Returns:
ZodFor<TxSimulationResultWithAppOffset>
wallet/wallet.ts
Aliased
Type: Type Alias
A wrapper type that allows any item to be associated with an alias.
Signature:
export type Aliased<T> = {
alias: string;
item: T;
};
Type Members:
alias
The alias
Type: string
item
The item being aliased.
Type: T
SimulateOptions
Type: Type Alias
Options for simulating interactions with the wallet. Overrides the fee settings of an interaction with a simplified version that only hints at the wallet whether the interaction contains a fee payment method or not
Signature:
export type SimulateOptions = Omit<SimulateInteractionOptions, 'fee'> & {
fee?: GasSettingsOption;
};
Type Members:
fee
The fee options
Type: GasSettingsOption
ProfileOptions
Type: Type Alias
Options for profiling interactions with the wallet. Overrides the fee settings of an interaction with a simplified version that only hints at the wallet whether the interaction contains a fee payment method or not
Signature:
export type ProfileOptions = Omit<ProfileInteractionOptions, 'fee'> & {
fee?: GasSettingsOption;
};
Type Members:
fee
The fee options
Type: GasSettingsOption
SendOptions
Type: Type Alias
Options for sending/proving interactions with the wallet. Overrides the fee settings of an interaction with a simplified version that only hints at the wallet whether the interaction contains a fee payment method or not
Signature:
export type SendOptions<W extends InteractionWaitOptions = undefined> = Omit<
SendInteractionOptionsWithoutWait,
'fee'
> & {
fee?: GasSettingsOption;
wait?: W;
};
Type Members:
fee
The fee options
Type: GasSettingsOption
wait
Whether to wait for the transaction to be mined
Type: W
BatchableMethods
Type: Type Alias
Helper type that represents all methods that can be batched (all methods except batch itself).
Signature:
export type BatchableMethods = Omit<Wallet, 'batch'>;
BatchedMethod
Type: Type Alias
Union of all possible batched method calls. This ensures type safety: the args must match the specific name.
Signature:
export type BatchedMethod = {
[K in keyof BatchableMethods]: BatchedMethodInternal<K>;
}[keyof BatchableMethods];
BatchedMethodResult
Type: Type Alias
Helper type to extract the return type of a batched method
Signature:
export type BatchedMethodResult<T> =
T extends BatchedMethodInternal<infer K> ? Awaited<ReturnType<BatchableMethods[K]>> : never;
BatchedMethodResultWrapper
Type: Type Alias
Wrapper type for batch results that includes the method name for discriminated union deserialization. Each result is wrapped as { name: 'methodName', result: ActualResult } to allow proper deserialization when AztecAddress and TxHash would otherwise be ambiguous (both are hex strings).
Signature:
export type BatchedMethodResultWrapper<T extends BatchedMethod> = {
name: T['name'];
result: BatchedMethodResult<T>;
};
Type Members:
name
The method name
Type: T['name']
result
The method result
Type: BatchedMethodResult<T>
BatchResults
Type: Type Alias
Maps a tuple of BatchedMethod to a tuple of their wrapped return types
Signature:
export type BatchResults<T extends readonly BatchedMethod[]> = {
[K in keyof T]: BatchedMethodResultWrapper<T[K]>;
};
Type Members:
[K in keyof T]
Signature: [K in keyof T]: BatchedMethodResultWrapper<T[K]>
Key Type: keyof T
Value Type: BatchedMethodResultWrapper<T[K]>
EventFilterBase
Type: Type Alias
Base filter options for event queries.
Signature:
export type EventFilterBase = {
txHash?: TxHash;
fromBlock?: BlockNumber;
toBlock?: BlockNumber;
};
Type Members:
txHash
Transaction in which the events were emitted.
Type: TxHash
fromBlock
The block number from which to start fetching events (inclusive). Optional. If provided, it must be greater or equal than 1. Defaults to the initial L2 block number (INITIAL_L2_BLOCK_NUM).
Type: BlockNumber
toBlock
The block number until which to fetch logs (not inclusive). Optional. If provided, it must be greater than fromBlock.
Type: BlockNumber
PrivateEventFilter
Type: Type Alias
Filter options when querying private events.
Signature:
export type PrivateEventFilter = EventFilterBase & {
contractAddress: AztecAddress;
scopes: AztecAddress[];
};
Type Members:
contractAddress
The address of the contract that emitted the events.
Type: AztecAddress
scopes
Addresses of accounts that are in scope for this filter.
Type: AztecAddress[]
PublicEventFilter
Type: Type Alias
Filter options when querying public events. The contract address is required because the public log index is keyed on (contract, tag); tag-only queries are not supported.
Signature:
export type PublicEventFilter = EventFilterBase & {
contractAddress: AztecAddress;
afterEvent?: EventCursor;
};
Type Members:
contractAddress
The address of the contract that emitted the events. Required.
Type: AztecAddress
afterEvent
Cursor to resume strictly after, for pagination. Pass GetPublicEventsResult.nextCursor from a previous page here to fetch the next one. Omit to start from the beginning of the range.
Type: EventCursor
Event
Type: Type Alias
An ABI decoded event with associated metadata.
Signature:
export type Event<T, M extends object = object> = {
event: T;
metadata: InTx & M;
};
Type Members:
event
The ABI decoded event
Type: T
metadata
Metadata describing event context information such as tx and block
Type: InTx & M
PrivateEvent
Type: Type Alias
An ABI decoded private event with associated metadata.
Signature:
export type PrivateEvent<T> = Event<T>;
PublicEvent
Type: Type Alias
An ABI decoded public event with associated metadata (includes contract address).
Signature:
export type PublicEvent<T> = Event<
T,
{
contractAddress: AztecAddress;
}
>;
ContractMetadata
Type: Type Alias
Contract metadata including deployment and registration status.
Signature:
export type ContractMetadata = {
instance?: ContractInstancePreimageWithAddress;
initializationStatus: ContractInitializationStatus;
isContractPublished: boolean;
isContractUpdated: boolean;
updatedContractClassId?: Fr | undefined;
};
Type Members:
instance
The contract instance preimage and address.
Type: ContractInstancePreimageWithAddress
initializationStatus
Whether the contract has been initialized.
Type: ContractInitializationStatus
isContractPublished
Whether the contract instance is publicly deployed onchain
Type: boolean
isContractUpdated
Whether the contract has been updated to a different class
Type: boolean
updatedContractClassId
The updated contract class ID if the contract has been updated
Type: Fr | undefined
ContractClassMetadata
Type: Type Alias
Contract class metadata.
Signature:
export type ContractClassMetadata = {
isArtifactRegistered: boolean;
isContractClassPubliclyRegistered: boolean;
};
Type Members:
isArtifactRegistered
Whether the artifact is registered in the wallet
Type: boolean
isContractClassPubliclyRegistered
Whether the contract class is publicly registered onchain
Type: boolean
ExecuteUtilityOptions
Type: Type Alias
Options for executing a utility function call.
Signature:
export type ExecuteUtilityOptions = {
scopes: AztecAddress[];
authWitnesses?: AuthWitness[];
};
Type Members:
scopes
The scopes for the utility execution (determines which notes and keys are visible).
Type: AztecAddress[]
authWitnesses
Optional auth witnesses to use during execution.
Type: AuthWitness[]
Wallet
Type: Type Alias
The wallet interface.
Signature:
export type Wallet = {
getPrivateEvents<T>(
eventMetadata: EventMetadataDefinition,
eventFilter: PrivateEventFilter,
): Promise<PrivateEvent<T>[]>;
getChainInfo(): Promise<ChainInfo>;
getContractMetadata(address: AztecAddress): Promise<ContractMetadata>;
getContractClassMetadata(id: Fr): Promise<ContractClassMetadata>;
registerSender(address: AztecAddress, alias?: string): Promise<AztecAddress>;
getAddressBook(): Promise<Aliased<AztecAddress>[]>;
getAccounts(): Promise<Aliased<AztecAddress>[]>;
registerContract(
instance: ContractInstancePreimage,
artifact?: ContractArtifact,
secretKeyOrKeys?: Fr | MasterSecretKeys,
): Promise<void>;
registerContractClass(artifact: ContractArtifact): Promise<void>;
simulateTx(exec: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResultWithAppOffset>;
executeUtility(call: FunctionCall, opts: ExecuteUtilityOptions): Promise<UtilityExecutionResult>;
profileTx(exec: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
sendTx<W extends InteractionWaitOptions = undefined>(
exec: ExecutionPayload,
opts: SendOptions<W>,
): Promise<SendReturn<W>>;
createAuthWit(from: AztecAddress, messageHashOrIntent: IntentInnerHash | CallIntent): Promise<AuthWitness>;
requestCapabilities(manifest: AppCapabilities): Promise<WalletCapabilities>;
batch<const T extends readonly BatchedMethod[]>(methods: T): Promise<BatchResults<T>>;
};
Type Members:
getPrivateEvents
Signature:
getPrivateEvents<T>(
eventMetadata: EventMetadataDefinition,
eventFilter: PrivateEventFilter
): Promise<PrivateEvent<T>[]>
Parameters:
eventMetadata:EventMetadataDefinitioneventFilter:PrivateEventFilter
Returns:
Promise<PrivateEvent<T>[]>
getChainInfo
Signature:
getChainInfo(): Promise<ChainInfo>
Returns:
Promise<ChainInfo>
getContractMetadata
Signature:
getContractMetadata(address: AztecAddress): Promise<ContractMetadata>
Parameters:
address:AztecAddress
Returns:
Promise<ContractMetadata>
getContractClassMetadata
Signature:
getContractClassMetadata(id: Fr): Promise<ContractClassMetadata>
Parameters:
id:Fr
Returns:
Promise<ContractClassMetadata>
registerSender
Signature:
registerSender(
address: AztecAddress,
alias?: string
): Promise<AztecAddress>
Parameters:
address:AztecAddressalias(optional):string
Returns:
Promise<AztecAddress>
getAddressBook
Signature:
getAddressBook(): Promise<Aliased<AztecAddress>[]>
Returns:
Promise<Aliased<AztecAddress>[]>
getAccounts
Signature:
getAccounts(): Promise<Aliased<AztecAddress>[]>
Returns:
Promise<Aliased<AztecAddress>[]>
registerContract
Signature:
registerContract(
instance: ContractInstancePreimage,
artifact?: ContractArtifact,
secretKeyOrKeys?: Fr | MasterSecretKeys
): Promise<void>
Parameters:
instance:ContractInstancePreimageartifact(optional):ContractArtifactsecretKeyOrKeys(optional):Fr | MasterSecretKeys
Returns:
Promise<void>
registerContractClass
Registers a contract class artifact in the local PXE without binding it to any instance. Useful for simulation flows that need the artifact available locally before any onchain upgrade has taken effect. No chain check.
Signature:
registerContractClass(artifact: ContractArtifact): Promise<void>
Parameters:
artifact:ContractArtifact
Returns:
Promise<void>
simulateTx
Signature:
simulateTx(
exec: ExecutionPayload,
opts: SimulateOptions
): Promise<TxSimulationResultWithAppOffset>
Parameters:
exec:ExecutionPayloadopts:SimulateOptions
Returns:
Promise<TxSimulationResultWithAppOffset>
executeUtility
Signature:
executeUtility(
call: FunctionCall,
opts: ExecuteUtilityOptions
): Promise<UtilityExecutionResult>
Parameters:
call:FunctionCallopts:ExecuteUtilityOptions
Returns:
Promise<UtilityExecutionResult>
profileTx
Signature:
profileTx(
exec: ExecutionPayload,
opts: ProfileOptions
): Promise<TxProfileResult>
Parameters:
exec:ExecutionPayloadopts:ProfileOptions
Returns:
Promise<TxProfileResult>
sendTx
Signature:
sendTx<W extends InteractionWaitOptions = undefined>(
exec: ExecutionPayload,
opts: SendOptions<W>
): Promise<SendReturn<W>>
Parameters:
exec:ExecutionPayloadopts:SendOptions<W>
Returns:
Promise<SendReturn<W>>
createAuthWit
Signature:
createAuthWit(
from: AztecAddress,
messageHashOrIntent: IntentInnerHash | CallIntent
): Promise<AuthWitness>
Parameters:
from:AztecAddressmessageHashOrIntent:IntentInnerHash | CallIntent
Returns:
Promise<AuthWitness>
requestCapabilities
Signature:
requestCapabilities(manifest: AppCapabilities): Promise<WalletCapabilities>
Parameters:
manifest:AppCapabilities
Returns:
Promise<WalletCapabilities>
batch
Signature:
batch<const T extends readonly BatchedMethod[]>(methods: T): Promise<BatchResults<T>>
Parameters:
methods:T
Returns:
Promise<BatchResults<T>>
ExecutionPayloadSchema
Type: Constant
Value Type: any
GasSettingsOptionSchema
Type: Constant
Value Type: any
WaitOptsSchema
Type: Constant
Value Type: any
SendOptionsSchema
Type: Constant
Value Type: any
SimulateOptionsSchema
Type: Constant
Value Type: any
ProfileOptionsSchema
Type: Constant
Value Type: any
MessageHashOrIntentSchema
Type: Constant
Value Type: any
EventMetadataDefinitionSchema
Type: Constant
Value Type: any
PrivateEventFilterSchema
Type: Constant
Value Type: any
PublicEventFilterSchema
Type: Constant
Value Type: any
PrivateEventSchema
Type: Constant
Value Type: z.ZodType<any>
PublicEventSchema
Type: Constant
Value Type: z.ZodType<PublicEvent<AbiDecoded>>
ContractMetadataSchema
Type: Constant
Value Type: any
ContractClassMetadataSchema
Type: Constant
Value Type: any
ContractFunctionPatternSchema
Type: Constant
Value Type: any
AccountsCapabilitySchema
Type: Constant
Value Type: any
GrantedAccountsCapabilitySchema
Type: Constant
Value Type: any
ContractsCapabilitySchema
Type: Constant
Value Type: any
GrantedContractsCapabilitySchema
Type: Constant
Value Type: any
ContractClassesCapabilitySchema
Type: Constant
Value Type: any
GrantedContractClassesCapabilitySchema
Type: Constant
Value Type: any
SimulationCapabilitySchema
Type: Constant
Value Type: any
GrantedSimulationCapabilitySchema
Type: Constant
Value Type: any
TransactionCapabilitySchema
Type: Constant
Value Type: any
GrantedTransactionCapabilitySchema
Type: Constant
Value Type: any
DataCapabilitySchema
Type: Constant
Value Type: any
GrantedDataCapabilitySchema
Type: Constant
Value Type: any
CapabilitySchema
Type: Constant
Value Type: any
GrantedCapabilitySchema
Type: Constant
Value Type: any
AppCapabilitiesSchema
Type: Constant
Value Type: any
WalletCapabilitiesSchema
Type: Constant
Value Type: any
BatchedMethodSchema
Type: Constant
BatchedResultSchema
Type: Constant
WalletSchema
Type: Constant
Value Type: ApiSchemaFor<Wallet>