Laminar FAQ
Straight answers for operators, reviewers, and integrators. Focus is on key safety boundaries, validation behavior, CLI modes, wallet handoff limits, and Phase 1 pass/fail expectations.
What It Is and Why It Matters
01What is Laminar?+
Laminar is a local-first tool for creating Zcash batch payment requests without holding keys or funds.
02What problem does it solve?+
It fixes the Spreadsheet Gap: payouts are tracked in spreadsheets, but sending them one by one is slow and easy to get wrong.
03Who is the primary user?+
Treasurers and operators managing payroll, grants, vendor payments, and recurring disbursements.
04Is Laminar a wallet?+
No. Laminar only builds payment requests. It never holds keys or funds.
05What is the Brain vs. Muscle architecture?+
The desktop app prepares and validates the batch (Brain). The mobile wallet signs and sends it (Muscle).
06What is Phase 1 (Tactical Spike)?+
A 12-week build to prove the full end-to-end flow works with minimal features.
07What are Phase 1 deliverables in one line?+
Core engine, dual-mode CLI, and desktop UI producing QR/UR handoffs and audit receipts.
08What is out of scope for Phase 1?+
Any wallet feature: key management, signing, broadcasting, custody, or recovery flows.
09Is Laminar local-first?+
Yes. No required servers and no server-side state.
10Is telemetry or analytics included?+
No. There is no telemetry, analytics, or external tracking.
Custody Boundary and Security Posture
11Does Laminar ever handle private keys or seed phrases?+
No. It never stores, generates, requests, or transmits key material.
12Can Laminar sign transactions?+
No. Only the wallet can sign.
13Can Laminar broadcast transactions?+
No. Only the wallet can broadcast.
14What is the Calculator Defense?+
Laminar acts like a calculator: it prepares payment data but cannot approve or send funds.
15What local data is stored?+
Only optional draft batches and address-book metadata. No secret material is needed to use Laminar.
16How is local data protected?+
Sensitive local fields are encrypted on disk with AES-256-GCM.
17How are encryption keys derived?+
Keys are derived with a memory-hard KDF, with Argon2id as the default target.
18How does Laminar avoid monetary precision bugs?+
All amounts are handled as integer zatoshis. Floating-point math is not used.
19How does it handle malicious spreadsheets (CSV injection)?+
Laminar sanitizes input on import to block formula injection and related spreadsheet attacks.
20What happens if any row is invalid?+
The whole batch is rejected. Partial execution is not allowed.
Validation, Determinism, and Error Handling
21Is output deterministic?+
Yes. The same inputs and settings produce the same payload and receipt bytes.
22What is validated?+
Laminar validates network, address format, amount limits, memo encoding and size, required columns, and schema shape.
23Are Unified, Sapling, and Transparent addresses supported?+
Yes. All three are validated and supported.
24Are memos supported?+
Yes. Each recipient can have a UTF-8 memo up to 512 bytes. Invalid or oversized memos are rejected.
25How are mainnet and testnet mix-ups prevented?+
Any network mismatch triggers rejection of the entire batch.
26Are duplicate recipients allowed?+
Yes. Duplicates can be intentional, so they are allowed but clearly flagged for review.
27What input formats are supported?+
CSV for human workflows and JSON for programmatic integrations.
28What CSV schema is required?+
Required: address plus amount or amount_zatoshis. Optional: memo and label.
29What are the batch size limits?+
Laminar enforces recipient and payload limits. If a batch is too large, it is split into ordered segments.
30What happens to sensitive data after completion?+
Sensitive batch data is cleared as soon as practical, with minimal persistence in memory and on disk.
Dual-Mode CLI for Humans and Agents
31What is Dual-Mode?+
One CLI that switches between human-friendly and machine-friendly behavior.
32How is mode detected?+
Laminar checks whether stdout is a TTY at startup. You can override this with flags.
33What does Operator Mode optimize for?+
Safety and clarity: confirmations, readable summaries, and high-signal validation output.
34What does Agent Mode optimize for?+
Machine-friendly output: strict JSON, stable schema, and no interactive prompts.
35Can Agent Mode block waiting for stdin?+
No. In Agent Mode it does not wait on stdin; missing arguments return an immediate structured error.
36Can Agent Mode be forced manually?+
Yes. Example: --output json.
37How are failures communicated to agents?+
With structured JSON error objects, stable error codes, and deterministic exit codes.
38How are agent input injection risks addressed?+
Through strict schema validation, sanitization, explicit size limits, and fail-closed processing.
39What is the minimum agent integration proof?+
A scripted end-to-end Agent Mode run that generates intents and receipts with no manual steps.
40Why support agents?+
Automation needs safe financial building blocks. Laminar provides payout construction without custody.
Wallet Handoff, QR/UR Constraints, and Compatibility
41How does Laminar hand off to wallets?+
Through an air gap: static QR or animated UR, plus deeplink or manual copy where supported.
42What is the primary compatibility target wallet?+
Zodl (formerly Zashi) on iOS and Android.
43What about YWallet?+
YWallet is supported as a fallback for static QR and deeplink. If animated UR is unavailable, Laminar splits more often.
44What determines static QR vs animated UR?+
Payload size. Smaller payloads use static QR; larger payloads use animated UR.
45How many recipients fit in a static QR?+
Typically around 8 to 12 recipients, depending on memo lengths and payload overhead.
46How many recipients fit in an animated UR segment?+
Often 50+ recipients per segment, depending on memo size and scan conditions.
47What happens if a batch exceeds UR capacity?+
Laminar splits the batch into ordered segments until all recipients are included.
48Can operators control animated playback for scan reliability?+
Yes. The desktop UI provides pause and play controls for scan stability.
Grant Execution and Acceptance Criteria
49What are the Phase 1 milestones?+
- M1: Iron Core (core engine + dual-mode CLI).
- M2: Interface (desktop UI + end-to-end workflows).
- M3: Release package (v1.0, field manual, integration guide, production proof).
50What is the committee pass/fail acceptance standard?+
Pass/fail requires clear proof of deterministic output, fail-fast validation, strict non-custodial boundaries, non-blocking dual-mode behavior, wallet compatibility tests, and a final end-to-end Genesis run.
Need Full Operating Detail?
Use the Field Manual for schemas, constants, compatibility matrices, and implementation detail.