This LP fixes the canonical eight-signer set used with the luxfi/standard
Safe deployment. Every Lux mainnet/testnet/devnet Safe — and every
white-label Safe deployed on top of @luxfi/standard (Zoo, Hanzo, Pars,
Osage, …) — composes its owner set from this fixed registry. The list
is closed by design: one and only one way to express each signing
primitive.
SafeThresholdLamportModule | hash-based one-time keys (long-term cold) |SafeCGGMP21Signer | threshold ECDSA, classical compat |SafeFROSTSigner | Schnorr threshold (Taproot-compat) |SafeFROSTCoSigner | per-tx FROST guard |SafeMLDSASigner | NIST FIPS 204 single signer |SafeLSSSigner | Lux secret-sharing committee |SafeCoronaSigner | M-LWE threshold (Quasar core) |SafePulsarSigner | M-LWE threshold ML-DSA (Quasar core) |SafeMagnetarSigner | SLH-DSA THBS-SE (Quasar defense-in-depth) |Slots 7–9 form the Quasar consensus signer triad. Pulsar + Corona are
mandatory; Magnetar is gated by the enabled constructor flag and rejects
every signature when disabled. Renames from earlier prototypes: "Corona"
is gone — the canonical name is Corona.
Every Safe deployed with the Lux PaaS template registers the eight
mandatory signers as Safe owners. Magnetar registration is conditional
on the ENABLE_MAGNETAR deploy-time flag. Threshold m is chosen per
deployment and stored in the Safe itself.
Real public keys are supplied per-deployment via the matching factory
(SafeCoronaFactory, SafePulsarFactory, SafeMagnetarFactory, …).
Genesis deploys ship with deterministic placeholder pubkeys so the
singletons can be set up before the operator handoff that swaps the
real pubkeys in.
0x...15203 | 0x...15303 |0x...15206 | 0x...15306 |0x...15207 | 0x...15307 |Single-signer Safes use the IERC1271 path (isValidSignature); threshold
co-signers use the dedicated verifyCoSignature path so that the precompile
verification is gated by the Safe address.
@safe-global/safe-smart-account.IERC1271 (current + legacy) so Safe execTransactionsignature mixing works without changes.
--include='*.sol' MUST return zero hits across luxfi/standard`,
luxfi/dao, zooai/safe, and any other white-label package.
threshold primitives instead of extending them. Each signer is
independently complete and validatable.
ship the wiring, but each deployment chooses whether to require the
third primitive via a single boolean — no silent forks of the signer
set.
where the type lives. "Corona" was the prototype label; it does not
appear in any production source.
luxfi/standard/script/DeployLuxDAO.s.sol deploys this pattern in one
script (Foundry, no Hardhat) against any of 96369 (mainnet C-Chain),
96368 (testnet), 96370 (devnet). Per-network outputs land in
deployments/<network>/<chainid>-c-chain/lux-dao.json.
codebases — implementation diversity, not family-disjoint). Magnetar
is hash-based (the cross-family leg).
Safe transaction; the Safe owner-set + threshold m decides what
combination is required.
authoritative — operators MUST factory-deploy real signers with real
pubkeys before granting the Safe live custody.