@persistent-ai/fireflow-overcast (0.34.1)
Installation
@persistent-ai:registry=npm install @persistent-ai/fireflow-overcast@0.34.1"@persistent-ai/fireflow-overcast": "0.34.1"About this package
@persistent-ai/fireflow-overcast
FireFlow nodes for Overcast — private stablecoin payments on the Aztec blockchain.
This package is licensed under Apache 2.0. A public snapshot lives at Galactica-corp/fireflow-overcast.
Overview
This package provides atomic FireFlow graph nodes that let an AI agent execute private stablecoin payments using the Overcast protocol on Aztec. Each node is a single operation with defined inputs and outputs, composable into larger payment flows.
See docs/specification.md for the full node roadmap.
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.
aztec-standardsmoved to AztecProtocol and now publishes under the@aztec-foundationscope. The old@defi-wonderlandscope has no stable v5.
Two consequences worth knowing before using this package:
- Every account address changes, and old 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 now 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.
Nodes (current iteration)
| Node | Description |
|---|---|
| Aztec Ensure Account | Get-or-create the caller's aztec-account vault secret and .ffsecret pointer; output AztecAccountRef |
| Aztec Account Signer | Assemble an AztecSignerRef from an AztecAccountRef (no vault / PXE I/O) |
| Parse Contract Artifact | Validate a VFS artifact JSON file and emit an AztecArtifactRef |
| Aztec Smart Contract | Bind a deployed contract address to an AztecArtifactRef |
| Get Fee Payer | Assemble an AztecFeePayerRef (fee juice or sponsored FPC) |
| Aztec Transaction Builder | Assemble an AztecTxRequestRef for simulation or submission |
| Simulate Transaction | Resolve the request and locally simulate (read methods) |
| Submit Aztec Transaction | Resolve the request and submit to the network |
Agent wallet onboarding
Aztec Ensure Account get-or-creates the end user's Aztec credentials during a conversation: found-branch when the pointer already exists, mint when it does not. Output is a public AztecAccountRef — no secret ports. Aztec Account Signer takes that ref and assembles an AztecSignerRef; Simulate / Submit / x402 rehydrate the live wallet via resolveSigner. See docs/specification.md §5.1 and §5.1.1.
Environment
| Variable | Default | Description |
|---|---|---|
AZTEC_NODE_URL |
http://localhost:8080 |
Aztec node RPC endpoint |
Development
pnpm --filter @persistent-ai/fireflow-overcast build
pnpm --filter @persistent-ai/fireflow-overcast test
pnpm --filter @persistent-ai/fireflow-overcast typecheck
Integration tests
Requires a local Aztec sandbox running at http://localhost:8080:
pnpm --filter @persistent-ai/fireflow-overcast test:integration
Testnet account measurement (opt-in)
pnpm --filter @persistent-ai/fireflow-overcast 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 deploy:local
After deployment, check Alice and Bob private balances anytime:
pnpm --filter @persistent-ai/fireflow-overcast 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 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.
Exports
@persistent-ai/fireflow-overcast— client-safe shared types@persistent-ai/fireflow-overcast/nodes— node registration (frontend)@persistent-ai/fireflow-overcast/server— server barrel (executor / worker)
License
Apache License 2.0 — see LICENSE. Copyright 2026 PersistentAI.
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-types | 0.34.1 |
Development Dependencies
| ID | Version |
|---|---|
| @persistent-ai/typescript-config | 0.34.1 |
| @types/node | ^25.5.0 |
| tsx | ^4.21.0 |
| vitest | ^4.1.0 |