Skip to content

aztec start --pxe: flag is defined but has no handler ("No module specified to start") #22293

@awprojs

Description

@awprojs

Description

aztec start --pxe is listed in aztec start --help with full config options (pxe.nodeUrl, pxe.proverEnabled, pxe.l2BlockBatchSize, pxe.syncChainTip), but running it produces:

No module specified to start

Root Cause

In aztec_start_action.ts, the if/else chain handles --node, --bot, --archiver, --p2p-bootstrap, --prover-agent, --prover-broker, --txe, and --sequencer, but there is no else if (options.pxe) branch. The flag is defined in aztec_start_options.ts (via allPxeConfigMappings) but falls through to the "No module specified" error.

There is also no start_pxe.ts in cmds/.

Impact

There is currently no way to run a standalone PXE process that:

  • Connects to a remote Aztec node (e.g. a third-party RPC provider)
  • Syncs blocks continuously in the background
  • Persists state (LMDB) across restarts

This makes it impossible to use aztec-wallet for accounts that were deployed in earlier blocks, because the embedded PXE starts fresh (or from stale LMDB state), immediately jumps to simulation before catching up, and fails with:

Assertion failed: Failed to get a note 'self.is_some()'

The PXE never gets a chance to sync far enough to discover notes from earlier blocks (e.g. a Schnorr signing key note from block 352 when the chain is at block 3000+).

Environment

  • aztec CLI version: 4.1.3 (also reproduced on 4.1.2)
  • macOS (darwin, arm64)
  • Connecting to Aztec Alpha mainnet via dRPC

Expected Behavior

aztec start --pxe --pxe.nodeUrl <url> should start a standalone PXE service that:

  1. Connects to the specified remote node
  2. Syncs blocks continuously
  3. Exposes a JSON-RPC API (or at minimum, allows aztec-wallet to connect to it)
  4. Persists LMDB state across restarts

Workaround

None currently. The EmbeddedWallet from @aztec/wallets/embedded can create an in-process PXE programmatically, but aztec-wallet always creates its own PXE per invocation and there's no CLI path to a persistent one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions