@persistent-ai/fireflow-overcast-aztec (0.37.0)
Installation
@persistent-ai:registry=npm install @persistent-ai/fireflow-overcast-aztec@0.37.0"@persistent-ai/fireflow-overcast-aztec": "0.37.0"About this package
@persistent-ai/fireflow-overcast-aztec
The Aztec runtime behind the FireFlow Overcast nodes: wallets, PXE, transaction building,
simulation and submission, artifact repair, and the x402 payment helpers. The nodes themselves —
their ports, schemas and titles — live in @persistent-ai/fireflow-overcast,
which carries no Aztec code and is what every FireFlow process loads to deserialise a flow.
Where it runs
Importing this package registers the runtime the nodes call at execute time, through the
registry in @persistent-ai/fireflow-overcast/nodes. The only place that import exists is the
execution worker's aztec entry, apps/fireflow-execution-worker/src/index-aztec.ts, which Vite
bundles into dist/index-aztec.js. The worker's plain entry, dist/index.js, registers the node
declarations alone; an Overcast node executed there fails with a sentence saying which entry to
run. A deployment that does not use Overcast runs the plain entry and installs none of @aztec/*.
To run the aztec entry from a thin install, install this package next to the worker: its
dependencies are what dist/index-aztec.js imports, as bare specifiers. That works where the
install hoists them next to the worker (npm, yarn, the Docker image's hoisted store); under pnpm's
strict layout the worker's own manifest would have to name them.
Aztec version
Pinned to @aztec/* 5.0.1 (was 4.2.0), matching the version the public testnet
and mainnet run. The AIP-20 token comes from
@aztec-foundation/aztec-standards@5.0.1, whose own config.aztecVersion is 5.0.1 —
SDK and artifact are built against the same release. 5.2.0 changed the arity of
proveTx and simulateTx, and src/utils/aztec-pxe-wallet.ts does not compile against it.
aztec-standardsmoved to AztecProtocol and now publishes under the@aztec-foundationscope. The old@defi-wonderlandscope has no stable v5.
Two consequences worth knowing:
- Every account address changed with v5, and v4 accounts are unusable. v5 reworked the
key hierarchy (
PublicKeysnow exposes poseidon2 hashes), addedimmutablesHashto address derivation, and switched Schnorr from blake2s/pedersen to Poseidon2. A Schnorr account deployed under v4 cannot be controlled by v5 code — accounts must be redeployed. - The signing key is required. It is the root of the key hierarchy, so it can
no longer be derived from the account secret (
deriveSigningKeywas removed). The key lives inside theaztec-accountvault secret that Aztec Ensure Account writes; Aztec Account Signer decrypts it from theAztecAccountRefpointer. Flows must not pass a signing key (or any account scalar) on a port. - Accounts are initializerless Schnorr. Sandbox genesis accounts (and the
Account Signer) use
createSchnorrInitializerlessAccount: signing keys are materialised locally, with nosigning_public_keynote to discover. Loading a genesis account via the note-backedcreateSchnorrAccountfails withFailed to get a note.
The token's
constructor_with_mintertakes anauth_contractargument. PassAztecAddress.ZEROto disable it. It is the token's own authorization hook, not the standard auth registry — passing the registry address makes every transfer revert.
Tests
Integration tests
Requires a local Aztec sandbox running at http://localhost:8080:
pnpm --filter @persistent-ai/fireflow-overcast-aztec test:integration
Testnet account measurement (opt-in)
pnpm --filter @persistent-ai/fireflow-overcast-aztec measure:testnet-account
Manual UI testing
Deploy local Aztec fixtures (accounts, Sponsored FPC, Token contract, Alice mint) and print copy-paste values for wiring Overcast nodes in the FireFlow editor.
Prerequisite: local Aztec sandbox at http://localhost:8080 (same as integration tests).
pnpm --filter @persistent-ai/fireflow-overcast-aztec deploy:local
After deployment, check Alice and Bob private balances anytime:
pnpm --filter @persistent-ai/fireflow-overcast-aztec balances:local <address-from-deploy-output>
Alternatively, pass the token address via environment variable:
TOKEN_CONTRACT_ADDRESS=<address-from-deploy-output> \
pnpm --filter @persistent-ai/fireflow-overcast-aztec balances:local
Optional environment overrides:
| Variable | Default | Description |
|---|---|---|
MINT_AMOUNT |
1000 |
Private tokens minted to Alice |
TOKEN_CONTRACT_ADDRESS |
(CLI arg preferred) | Token contract from deploy:local output (fallback if no CLI arg) |
Wire flows using the printed values and docs/specification.md:
- Aztec Ensure Account → Aztec Account Signer —
AztecAccountReffrom Ensure Account, plusdiscoverNotesFromfor Alice or Bob. Do not wire secret/salt/signing-key ports; those no longer exist. - Parse Contract Artifact → Aztec Smart Contract — store
TokenContract.artifactas a JSON file in the workspace, then set Parse'sworkspaceId/branch/path(or type those coordinates on Smart Contract's nestedartifactport). NetworkLocal, token address from script output. - Get Fee Payer — method
SponsoredFPC, FPC address from script output (no signer input) - Aztec Transaction Builder / Simulate Transaction / Submit Aztec Transaction — e.g.
balance_of_privateortransfer_private_to_private
Suggested test flow: read Alice balance → transfer to Bob → read both balances.
Unit tests
pnpm --filter @persistent-ai/fireflow-overcast-aztec test # unit, forks pool
pnpm --filter @persistent-ai/fireflow-overcast-aztec test:integration # against a local sandbox
pnpm --filter @persistent-ai/fireflow-overcast-aztec deploy:local # deploy the fixtures
The unit suite runs in the forks pool because @aztec/* native bindings SIGSEGV on
threads worker teardown; the root vitest.config.ts keeps this package in its own project
for the same reason.
Dependencies
Dependencies
| ID | Version |
|---|---|
| @aztec-foundation/aztec-standards | 5.0.1 |
| @aztec/accounts | 5.0.1 |
| @aztec/aztec.js | 5.0.1 |
| @aztec/bb.js | 5.0.1 |
| @aztec/constants | 5.0.1 |
| @aztec/noir-contracts.js | 5.0.1 |
| @aztec/stdlib | 5.0.1 |
| @aztec/wallet-sdk | 5.0.1 |
| @aztec/wallets | 5.0.1 |
| @galactica-net/x402-client | ^1.1.2 |
| @galactica-net/x402-core | ^1.1.2 |
| @galactica-net/x402-mechanism | ^1.1.2 |
| @galactica-net/x402-middleware | ^1.1.2 |
| @persistent-ai/fireflow-overcast | 0.37.0 |
| @persistent-ai/fireflow-types | 0.37.0 |
Development Dependencies
| ID | Version |
|---|---|
| @persistent-ai/typescript-config | 0.37.0 |
| @types/node | ^26.6.2 |
| tsx | ^4.23.15 |
| vitest | ^5.0.1 |