Lux Proposals
← All proposals
LP-0039Draft

LP-039: Lux Safe + Quasar Signer Pattern

Abstract

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.

| Slot | Signer | Solidity | Role |
| ---- | ------ | -------- | ---- |
| 1 | Lamport | SafeThresholdLamportModule | hash-based one-time keys (long-term cold) |
| 2 | CGGMP21 | SafeCGGMP21Signer | threshold ECDSA, classical compat |
| 3 | FROST | SafeFROSTSigner | Schnorr threshold (Taproot-compat) |
| 4 | FROST-CoSigner | SafeFROSTCoSigner | per-tx FROST guard |
| 5 | ML-DSA | SafeMLDSASigner | NIST FIPS 204 single signer |
| 6 | LSS | SafeLSSSigner | Lux secret-sharing committee |
| 7 | Corona | SafeCoronaSigner | M-LWE threshold (Quasar core) |
| 8 | Pulsar | SafePulsarSigner | M-LWE threshold ML-DSA (Quasar core) |
| 9 | Magnetar (optional) | 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.

Specification

Eight (+ optional ninth) signer set

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.

Precompile addresses (LP-099 page 5)

| Primitive | C-Chain | Q-Chain |
| --- | --- | --- |
| Corona | 0x...15203 | 0x...15303 |
| Pulsar | 0x...15206 | 0x...15306 |
| Magnetar| 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.

Compatibility

Rationale

Reference deployments

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.

Security considerations