๐ŸฆŠGalactica Snap for Metamask

Self custody for Galactica zkCertificates inside Metamask

The Galactica ZK Vault is a Snap adds Galactica Network features to Metamask. It holds zero-knowledge certificates (zkCerts) in self custody and allows generating zero-knowledge proofs for selective disclosures. This provides compliance with maximum privacy.

The implementation can be found on GitHub.

Snaps are plugins for Metamask. The Galactica ZK Vault has been audited by Sayfer and whitelisted by the Metamask team. It is now available for Metamask. (The development version Metamask Flask is only needed for installing test versions.)

More context on Snaps in general can be found here: https://metamask.io/snaps/

Features

  • Self custody for zero-knowledge certificates, such as zkKYC or other self sovereign identity (SSI) documents.

  • Generation of zero-knowledge proofs on your local machine for compliance, selective disclosures and reputation proofs.

  • Deriving a zero-knowledge compatible signing and encryption keys from a usual Metamask wallet.

  • Integration in the popular Metamask wallet for using Galactica Network just as any other EVM compatible blockchain.

  1. Install the Metamask browser extension: https://metamask.io/

  2. Import the wallets you are going to use in Metamask.

  3. Go to TestNet or DevNet Galactica web application.

  4. Connect to Metamask. This will check that you have the current Galactica Snap installed. It is identified with the name of this package on NPM: npm:@galactica-net/snap.

  5. If the Galactica Snap needs to be (re-)installed, Metamask will ask you to accept the permissions used by the Snap, similar to how app permissions work on Android and iOS.

Getting started

As a user

Visit the Galactica Passport site

It will guide you through the process of creating your first zkKYC. With it, you can prove and claim your Galactica citizenship on-chain.

In general, the following steps are performed by a user:

  1. Setup zkCert holder: Initializes the keys for holding zkCertificates from a signature by your Metamask wallet. It is required for efficient signing and encryption in zero-knowledge proof generation.

  2. Export holder commitment: Creates a commitment that you send to a zkCert provider for issuing a zkCert on-chain. It is used to tie the zkCert to your holder wallet without disclosing this connection to anyone.

  3. Import zkCertificate: After a provider has created and issued a zkCert for you, it can be imported in your wallet.

  4. Proof generation: To utilize a zkCert, the Galactica Snap can create various zero knowledge proofs. In the process, the Snap informs about the selective disclosures you are going to make publicly and generates the proof. This proof can then be sent by the front-end in a usual smart contract transaction through Metamask.

As a developer

See Front End and GitHub.

Last updated