A Multisig (multiple signature) wallet requires multiple signers to approve transactions, offering enhanced security and collective management over funds. This is useful for organizations or groups looking to share control of a wallet among multiple parties.
This project (SecureSign) allows users to securely create and manage wallets with multiple signers on substrate-based chains like Bittensor and CommuneAI. Designed with enhanced security and collaboration in mind, users can easily set up wallets that require the approval of multiple parties for transactions and wallet management, ensuring transparency and protection for all stakeholders.
In addition to standard multisig functionality, users can:
- Stake/Unstake tokens: Seamlessly stake or unstake their assets to/from a hotkey (validator).
- Subnet Management: Register new subnets and set weights.
SecureSign is built to streamline asset management, staking, and network participation, offering a user-friendly experience within the Polkadot ecosystem.
The repo is split into a number of packages, each representing an application.
It provides a view and interaction layer from a browser.
Contributions are welcome!
To start off, this repo uses yarn workspaces to organize the code. As such, after cloning dependencies should be installed via yarn
, not via npm, the latter will result in broken dependencies.
To get started -
- Clone the repo locally, via
git clone https://github.com/tenetlab/secure-sign.git
- Ensure that you have a recent LTS version of Node.js, for development purposes Node >= 16 is recommended.
- Ensure that you have a recent version of Yarn, for development purposes Yarn >= 1.22 is required.
- Install the dependencies by running
yarn
- Ready! Now you can launch the UI (assuming you have a local Polkadot Node running), via
yarn run start
- Access the UI via http://localhost:3000
You can run a docker container via -
docker run --rm -it --name polkadot-ui -e WS_URL=ws://someip:9944 -p 80:80 jacogr/polkadot-js-apps:latest
To build a docker container containing local changes -
docker build -t jacogr/polkadot-js-apps -f docker/Dockerfile .
When using these Docker commands, you can access the UI via http://localhost:80 (or just http://localhost)
To add a new network to be supported, follow these steps -
- Copy the Logo: Place the logo of the new network in the
packages/apps-config/src/ui/logos/chains/generated
directory. Ensure the logo is appropriately named to match the network. - Export the Logo: Update the
packages/apps-config/src/ui/logos/chains/index.ts
file to export the newly added logo. This makes the logo available for use within the application. - Add the Endpoint: Add the network's endpoint to the appropriate files within the
packages/apps-config/src/endpoints
directory. This involves specifying the network's connection details so that the application can interact with it. - Modify the
index.ts
File: Update theindex.ts
file in thepackages/apps-config/src/endpoints
directory to include the new network. This ensures that the network is recognized and can be selected within the application.