Kuuma: Substrate Vault
March 6, 2023 ยท View on GitHub
The easiest way to create and manage Substrate Vaults with complex hierarchical and granular transaction approval policies.
Project Description
Kuuma is an app that provides a simple user interface for creating and managing Substrate "vaults" with complex hierarchical and granular transaction approval policies.
A "vault" is a high-level keyless account abstraction that uses a pure/anonymous proxy as the user-facing account/address that is in turn controlled by other proxy accounts, that can be standard accounts (private key accounts), multi-signature accounts or even other pure/anonymous proxies, based on complex hierarchical and granular transaction approval policies.
Kuuma leverages the composability of Substrate's robust and powerful account primitives to provide features like:
- Complex and hierarchical transaction approval policies (e.g. either the CEO alone, or the CFO and COO together, or any other combination of 3 executives can approve transactions).
- Granular access control based on the type of transaction and role of the signatories by leveraging the different delegation types available for proxy accounts (e.g different sets of approval policies and signatories for transfers, staking, governance, auctions etc).
- Account and/or key rotation and approval policy changes while preserving the same user-facing vault address.
- Ability to prevent destructive and unrecoverable proxy related actions when using the Kuuma interface (e.g. not allowing users to remove the last any type proxy from a vault).
To minimize the risk of potentially destructive approval policy management actions due to order of execution of approval policy management transactions, Kuuma executes all changes to approval polices as batchAll calls which are atomically executed.
The Problem
Substrate provides very robust and powerful account primitives including proxy, pure/anonymous proxy, multi-signature and standard (private key) accounts which can be composed into complex and flexible high-level abstractions to model complex real-world account relationships and access control structures.
However, there are very few foolproof and user-friendly UI (user interface) tools that allow non-technical users to leverage these capabilities to create and manage accounts with complex hierarchical and granular transaction approval policies for both personal and corporate use. Kuuma aims to change this.
Technology
Kuuma's functionality relies on the proxy, mutlisig and utility pallets which it interacts with through the @polkadot/api library.
Instructions
For Demos and Testing
For Developers
Install dependencies
yarn install
Start a local dev server.
yarn start
Go to http://localhost:3000/ to use the app
License
This code is released under GPL-3.0