Private M-of-N Multisig

From Local Area Network
Private M-of-N Multisig
What it does: A private M-of-N multisig for the Logos Execution Zone where shielded members approve without revealing who voted
Stage: Prototype
Licence: MIT OR Apache-2.0
Verified on 4 November 2026 against README and commit of 9 September 2026.

Private M-of-N Multisig is a multisig wallet by the GitHub account pramadanif in which shielded (private) members approve without revealing who voted. It runs on the Logos Execution Zone (LEZ), the Logos layer that runs on-chain programs, with a Basecamp app. The README does not say whether it is an official Logos project.

What it does

  • M of N shielded members, for example 2 of 3, approve a proposal without showing which members approved.
  • The README says on-chain state records a threshold and nullifiers, never member identities. A nullifier is a one-time tag that marks an approval as used without saying who gave it.
  • Approvals use privacy-preserving execution, in which the approval is proved privately and the chain checks the proof.
  • One nullifier per member and proposal stops a member approving twice.
  • Execution is public and permissionless, with the recipient and amount fixed in the proposal.
  • A CLI named pmsig covers create, propose, approve, execute and status, and status prints the count and the nullifiers, never who approved.
  • A Basecamp app reads the deployed multisig. The README says its Approve page deliberately does not submit approvals, so approvals go through the CLI or SDK.

Stage: Prototype. The README, last changed on 9 September 2026, marks the public testnet lifecycle as "Done" in its status table, with a full 2-of-3 run on the LEZ testnet. It says the multisig was redeployed on 8 September 2026 after a testnet reset. The version in metadata.json is 0.1.0.

It was built for λPrize LP-0002.

Use it

  1. Install the toolchain: Rust 1.94 or later and risc0 r0vm, as listed in docs/VERSIONS.md. On Linux, also install pkg-config and libpcsclite-dev.
  2. Build the guests with ./scripts/build-guests.sh --docker.
  3. Run the local demo with ./demo.sh. It takes about 40 to 50 minutes or more and needs about 9 GB of free RAM for each approval.
  4. For the public testnet, run the fund, deploy and verify scripts listed in the README.
  5. Use the CLI with cargo run -p pmsig-cli --bin pmsig -- --help.
  6. For Basecamp, run ./scripts/build-basecamp.sh, then use Install Local Package with app/private_multisig.lgx. The package is for darwin-arm64 only, and Basecamp should be started with QT_ENABLE_REGEXP_JIT=0.

Build it

  • ./scripts/build-guests.sh --docker builds the guests, a step required before deploying.
  • ./scripts/build-basecamp.sh builds the Basecamp package.
  • The pinned versions are LEZ v0.2.4, Rust 1.94.0 and risc0 3.0.6.

Releases

  • The repository has no tags and GitHub lists no releases.
  • Version in app/metadata.json: 0.1.0 (module name private_multisig).

See also

Sources

Page status: Stub. Stub · Outline · Usable · Guide · Star. Anyone can improve this page and change its status.