Skip to content

Latest commit

 

History

538 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pacto

Pacto is a private, censorship-resistant, and governable community organizing platform that requires no KYC. Encrypted communications run over Nostr, a decentralized client-relay network, while governance and financial operations execute over EVM or Aztec blockchains with embedded wallets that require no configuration. Everything just works.

Nostr is used for communications because it is computationally cheap (virtually free to use), decentralized (censorship-resistant), and enables privacy with the following standards: NIP-17 Private DMs, NIP-44 Encrypted Payloads, NIP-59 Gift Wraps (metadata protection).

Ethereum and Aztec networks handle governance and financial activities - domains requiring enforcement of scarcity (votes and coins are digitally scarce items), unlike communications that only require privacy.

Privacy on these blockchains is achieved through Zero-Knowledge (ZK) proving schemes, which verify computation without exposing sensitive data. This enables voting and payments with Ethereum's security and immutability guarantees while keeping user activity private.

Install

Download the latest release for your platform from covenant-gov.github.io/pacto-app/ or use the commands below. Examples reference v0.3.2; check the releases page for the current version.

macOS

Homebrew

brew tap covenant-gov/pacto
brew install --cask pacto

Or in one line:

brew install --cask covenant-gov/pacto/pacto

Manual install

  1. Download the DMG for your Mac from the latest release:
    • Apple Silicon: pacto_0.3.2_aarch64.dmg
    • Intel: pacto_0.3.2_x64.dmg
  2. Open the DMG and drag pacto.app to Applications.

Unsigned app warning

Pacto is not currently signed by Apple. After installing, you may see a warning that says "pacto is damaged and can't be opened. You should move it to the Trash." (or similar):

macOS damaged app warning

To run the app, open a terminal and remove the quarantine attribute:

xattr -r -d com.apple.quarantine /Applications/pacto.app

Then launch Pacto from Applications.

Linux

Debian / Ubuntu (AMD64)

curl -LO https://github.com/covenant-gov/pacto-app/releases/download/v0.3.2/pacto_0.3.2_amd64.deb
sudo dpkg -i pacto_0.3.2_amd64.deb

Fedora / RHEL / openSUSE (x86_64)

curl -LO https://github.com/covenant-gov/pacto-app/releases/download/v0.3.2/pacto-0.3.2-1.x86_64.rpm
sudo dnf install ./pacto-0.3.2-1.x86_64.rpm

AppImage

curl -LO https://github.com/covenant-gov/pacto-app/releases/download/v0.3.2/pacto_0.3.2_amd64.AppImage
chmod +x pacto_0.3.2_amd64.AppImage
./pacto_0.3.2_amd64.AppImage

Windows

  1. Download pacto_0.3.2_x64_en-US.msi from the latest release.
  2. Run the installer and follow the prompts.

Windows Defender SmartScreen may warn that the app is unsigned. Click More infoRun anyway.

Feature Set

Core

  • DMs: End-to-End-Encrypted (E2EE) direct messaging
  • Squads: private Discord/Slack-style community hubs with text channels
  • Networks: private community hubs comprised of Squads that allow inter-organizational coordination (Squad of Squads)

Squad / Network

  • Message Layer Security (MLS) private and metadata-protected group messaging channels
  • Dashboard with Web3-integrated widgets
  • Modular Governance Platform to accommodate various models of democracy and decision making
  • Safe Wallet for collective management of financial resources

Architecture

Pacto is a Tauri v2 desktop app: a SvelteKit/Svelte frontend backed by a Rust backend. Encrypted messaging runs over Nostr; governance and treasury operations run over EVM chains via an embedded wallet derived from the same seed.

flowchart TB
    subgraph Frontend["SvelteKit SPA (src/)"]
        A[pages + components]
        B[stores / lib modules]
    end
    subgraph Tauri["Tauri v2 webview bridge"]
        C[invoke + event emit]
    end
    subgraph Backend["Rust backend (src-tauri/src/)"]
        D[Nostr / MLS]
        E[SQLite per npub]
        F[EVM wallet + contracts]
        G[crypto / media]
    end
    subgraph Network["External network"]
        H[Nostr relays]
        I[EVM / Aztec RPCs]
    end
    A <--> |invoke / listen| C
    C <--> |commands + events| D
    D <--> |read/write| E
    D <--> |kinds 1059, 443, 444| H
    F <--> |send / read| I
Loading

For a deeper walkthrough, see docs/ARCHITECTURE.md.

Fork

Vector - Private decentralized messenger built on Nostr

Pacto forked the Rust backend of Vector for the Nostr E2EE/MLS messaging. While Vector offers a Signal-style privacy messenger with mini-app support, Pacto extends the codebase to enable Discord-inspired communities that are governable through embedded blockchain primitives.

Developer documentation

Build Prerequisites

About

Private, Censorship-Resistant, & Governable Community Application

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages