stackmate-core provides a C-FFI library powered by bdk, to create and manage descriptor wallets.
cypherpost provides an e2ee data storage & sharing service.
Multi-signature contracts always suffered from the inability to syncronize across all parties involved. Usually, an alternative messaging service such as Signal, Elements or Threema were required for parties to share public keys and synchronize the creation and management of their multi-sig contracts.
By combining stackmate and cypherpost into a single application, users are able to use cypherpost to synchronize wallet data in a private manner.
Clients do not store any private key related data on cypherpost - only creation requests, xpubs, psbts, addresses used (to prevent address reuse) and public descriptors as backup(also stored on GDrive|Dropbox for redundancy).
Users do not have to rely on cypherpost for anything more than convenience. Failure of cypherpost to maintain reliability will only lead to a loss of convenience.
By default we use cypherpost.io
as the home server, which charges a nominal spam-prevention/registration fee of 3000 sats
for public usage.
Those unwilling to pay this fee can chose to run their own cypherpost server for their personal/business usecase with private access settings.
This project requires nodeJS runtime which can be installed here: https://nodejs.org/en/download/
Install all npm dependencies:
npm i
No integration tests are written yet.
Navigate into folders with *.spec.ts files and run the following:
mocha -r ts-node/register *.spec.ts --exit
cypherpost & stackmate tests require a timeout since they make network calls.
cd src/cypherpost
mocha -r ts-node/register cypherpost.spec.ts --timeout 10000 --exit
cd src/wallet
mocha -r ts-node/register stackmate.spec.ts --timeout 10000 --exit
Since this project has just started and is primarily being built on Linux, binaries only exist for Linux.
If testing on Mac or Windows, you will have to compile stackmate-core binaries for those targets.
This will be added later.