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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions