What are Wallets?
Wallets are the base container in TrustVault that hold your crypto assets. For those technically minded, it's an HD wallet that follows a set of standards on how to store and access a number of private keys. A private key is what ultimately controls your assets and TrustVault keeps them safe inside our infrastructure of hardware security modules (HSMs), firmware and secure cloud data centres with multiple encryptions.
Within TrustVault, a Wallet also defines the policy for that wallet. A policy covers two main things:
Who can change the policy controlling this wallet. This process is called "recovering" and is covered elsewhere.
Who can make a transactions from this wallet.
A transaction in this instance means a Bitcoin transaction or an Ethereum transaction.
A policy defines the number of signatures required before a transaction is considered valid by TrustVault. For example, you could require that two signatures from a possible list of three is required for all transactions from a specific Wallet. This is often referred to as multi-signature or multi-sig.
The Wallet policy can be changed. This often happens when a user gets a new phone through the TrustVault recovery process.
However, a Wallet isn't really aware of the chain specific assets. That's where the Sub-Wallets come in.
What are Sub-Wallets?
Sub-Wallets are the chain specific container within the wallet. "Chain specific" means that a Sub-Wallet is created for a specific blockchain. Currently, we support Bitcoin, Ethereum (ETH not ETC) and Binance.
All Sub-Wallets must be placed inside a wallet. The Sub-Wallet will, therefore, inherit the policy of the parent wallet which is subsequently shared across all Sub-wallets that sit within that container.
Creating a new Sub-Wallet will require you to specify the Wallet that it will sit in. Once the Sub-Wallet has been created inside a wallet it cannot be moved and is fixed to that Wallet. Any changes required for the Sub-Wallet can be effected through the Wallet policy which can be changed through the TrustVault recovery process.
How might Wallets and Sub-Wallets be used?
It might be pertinent to create a Wallet called "Savings". This would define a policy where two of three signatures are required to transact. You could then create a BTC Sub-Wallet and an ETH Sub-Wallet to store your savings requiring a multi-sig (effectively a stricter set of rules to withdraw funds)
You may wish to create a Wallet called "Petty Cash" (Perhaps where you store a small amount of funds). This would define a policy where only one of three signatures are required to transact. You could then create a BTC Sub-Wallet. This would only require a single signature to move funds.
How are wallets and subWallets presented in TrustVault?
The following table show the different values for a wallet and subWallet.
The unique identifier to a wallet (and the associated policies
The unique identifier to a subWallet. It consists of three parts.
The first part of the subWalletId is the walletId helping you see which subWallets are inside each wallet
This the cluster name of HSMs that are used to secure your wallet. Each wallet can only belong to a single cluster and for most customers this will be an online cluster.
Wallets are a container for your assets, defining a policy - who needs to sign a transaction.
Sub-Wallets are a container within a Wallet, inheriting the policy rules whilst being specific to a chain.